
51单片机
文章平均质量分 76
xouou_53320
小兵张嘎,PK鬼子!
展开
-
51单片机学习笔记:步进电机控制,正转反转等
步进电机应用广泛,例如打印机、磁盘驱动器、玩具、汽车雨刷、手机震动、机械夹具、刻录机等各种机械控制场合一些概念:拍数N定子控制绕组每改变一次通电方式,即为一拍一个磁场通电周期是 A-B-C-D-A完成一个磁场周期性变化所需脉冲数,也指电机转过一个齿距角所需脉冲数,用N表示拍数又等于相数的1倍或2倍,以四相电机为例,有4相4拍, A-B-C-D-A... 4相8拍, A-AB-B...2013-03-01 17:52:35 · 4317 阅读 · 1 评论 -
硬件和软件兼容i2c协议的24Cxx系列EEPROM存储器
硬件上由于24c01的A0A1A2管脚不允许悬空,故暂时的想法是兼容24c02 ---24c16使用一个dip8封装的芯片插座,A0 A1 A2管脚都悬空即可,换芯片方便软件上24c02地址只有8位,而其他型号是大于8位的,故地址参数使用16位256个字节作为一个大页,即largePage,测试芯片24c04空间有512字节 上代码,求测试和讨论#include "MY...2013-01-19 17:46:27 · 575 阅读 · 0 评论 -
51单片机学习笔记:基于状态机的按键对时程序(短按,长按,连发)
之前的电子钟程序中,用的按键消抖处理方法是10ms的延时,这种方法效率比较低所以现在利用状态机原理重写一下,效率很高啊 4个独立按键中用到3个,keys5用于切换对时分秒等状态,keys2是减小数值,keys3是增加数值 同时可以判断按键的"短按,长按,连发"等功能小于2秒视为短按,大于2秒视为长按,在长按状态下每0.2秒自动连发一次, 这样对时的时候就不用...2013-01-20 10:27:12 · 3372 阅读 · 0 评论 -
手工制作51开发板
纯山寨tx-1c开发板 ,第一次动手焊板子, ,*_*,可以兼容以前写的程序板子右边还有些空间,准备加上lcd接口反正是低频的, 各种飞线, 飞来飞去单体的数码管焊接有些麻烦,9*15cm的板子要尽量挤挤,5V的供电直接用手机充电器,手上有好几个呢, 用7805反而麻烦,反正电脑USB口也是5V的可以用. 板子上没加TTL与232转换部分,我的台式机和笔记本上都...2013-01-29 16:08:27 · 487 阅读 · 0 评论 -
51单片机学习笔记:DS18B20测温程序
#include "my51.h"#include "smg.h"#include "ds18b20.h"void main() //测试 ,6位数码管显示温度值{ u8 i=0; u16 temp=0; while(1) { temp=ds18b20_readTemperaData(); for(i=0;...2013-02-13 10:51:16 · 2762 阅读 · 0 评论 -
51单片机学习笔记:使用DS1302芯片制作电子钟
百度ds1302 写道DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品...2013-02-15 20:07:45 · 2197 阅读 · 0 评论 -
51单片机学习笔记:红外接收(对原子哥的ALIENTEK遥控器进行解码)
正点原子的ALIENTEK遥控器用户码00ff16进制键值码表45 46 4744 40 4307 15 0916 19 0d0c 18 5e08 1c 5a42 ☻ 4a 红外接收管 通用型即可 ----------------------------------------...2013-02-23 15:50:08 · 1770 阅读 · 0 评论 -
51单片机学习笔记:连续读写STC89C52RC内部EEPROM存储器
STC单片机的内部EEPROM是用DATAFLASH模拟出来的,不是真正的EEPROM存储器,不能用普通的方法来操作下面是一些注意点:1.字节写之前要先将这个字节所在扇区的其它有效数据读取到RAM暂存(这步不是必须的)2.暂存完之后再对整个扇区(512字节)进行擦除操作,擦拭完后,整个扇区每个地址中数据都变成0xFF3.将欲写入的N个字节数据,用字节写函数写入EEPROM4.将暂存到RAM的其...2013-02-26 17:03:10 · 4970 阅读 · 0 评论 -
12864液晶驱动源码,独创中英文混合输出
控制器7920 代码没啥好说,我尽量多写了注释,播放动画也很流畅的 亮点就是支持中英文混合输出,其他没啥 昨天发现座的公交车上用的也是这种12864 ,显示温度和时间... #ifndef _LCD12864_H #define _LCD12864_H #include "my51.h"#define LCD_dataBus P0 //总线sbit...2015-02-02 15:46:19 · 920 阅读 · 0 评论 -
51单片机学习笔记,模拟iic总线连续读写24c02存储器
AT24C02A, 2K SERIAL EEPROM: Internally organized with 32 pages of 8 bytes each,the 2K requires an 8-bit data word address for random word addressing.24c02有32个页,每页8字节,本帖中不讨论页写的方式-----------------...2012-09-03 13:02:14 · 2292 阅读 · 2 评论 -
51单片机学习笔记,操作1602液晶
TX-1C板 操作并行模式的1602液晶液晶第1,2脚是gnd和vcc第3脚是对比度调节第4脚是数据/指令选择端RS第5脚是读写选择端R/W,我们这次只写不读,故直接接地第6脚是读写使能EN第7到14脚是数据口,我们接STC89C52RC的P0口第15,16脚是背光源 最终液晶显示Tom is playing the TNT game!#include <reg52...2012-08-16 14:12:02 · 385 阅读 · 0 评论 -
51单片机学习笔记:利用ADC0804模数转换器采集电压
电位器调节待检测电压值,在数码管上显示出来,代码大多从书上搬过来的,书上例5.3.1要求前3个数码管显示AD转换后的8位数字量(即0~255)我这里让前4个数码管显示具体电压值,比如1.352 #include <reg52.h>#include "MY51.H"void initSMG() //数码管初始化信息{ //上电时,都为高电平 P0...2012-08-10 20:06:03 · 5179 阅读 · 2 评论 -
51单片机学习笔记:写了个led宏,并尝试控制led灯的亮度
经常用led灯来观察现象,甚至调试代码,修改代码时用0和1很不方便,而且阅读性也不好,故写了个宏,用起来方便些.今天尝试控制灯的亮度. 先试试for循环控制,占空比调节...//#include "my51.h"#include <reg52.h>typedef unsigned char u8;typedef unsigned short int u16;...2013-03-02 11:19:55 · 871 阅读 · 0 评论 -
51单片机学习笔记:定时器产生PWM可调方波,控制led灯亮度
使用定时器T0产生PWM方波,用按键调整占空比,20级可调控制led灯的亮度等级. #include "my51.h"#include "timer0.h"#define grading 20 //亮度20级变化sbit keyS3=P3^5; //按键调整占空比,PWM_keyChange++sbit keyS4=P3^...2013-03-04 11:43:23 · 7048 阅读 · 3 评论 -
51单片机学习笔记,简易时钟
使用芯片STC89C52RC, 2个锁存器6个带小数点共阴极数码管显示一个24时制时钟没有时钟芯片,所以掉电后时间会复位原理图为TX-1C开发板 暂时显示了半小时,一秒不差,未验证有无其他bug,代码贴上来,欢迎高手指点 ==============================最终显示的<时.分.秒>是 16.31.37 形式#inc...2012-07-19 16:31:48 · 800 阅读 · 0 评论 -
51单片机学习笔记:ST7920控制器的12864液晶使用总结
总结:1、 控制芯片不同,液晶接口定义,或者寄存器定义也可能不同2、 显示方式有并行和串行,串行方式据说不能读数据寄存器(DR),那指令暂存器IR是否可读?3、 含字库芯片显示字符时不必对字符取模了,但字库有可能缺斤少两,就是说有一部分字(哪怕是常用字),在字库中没有,如果你第一次测试代码就遇到该字在字库中没有的情况,建议去买体育彩票,支持体育运动!4、 对芯片的结构地址一定要理解清楚,个人阅...2013-03-22 17:05:21 · 2193 阅读 · 1 评论 -
51单片机学习笔记:合并1602和12864液晶排插接口
今天成功合并1602和12864液晶排插接口! 码出来分享下 上面这2个图是1602和12864液晶的排插接口,一般的单片机开发板上都会有仔细观察发现他们的插口大多是相同的, 对于第三脚的对比度调节,1602和12864液晶在硬件上是相反的(1602是低电位方向对比度增强,12864是高电位方向对比度增强),但他们接口位置相同,所以一个10K左右的3脚电位器...2013-03-23 17:44:03 · 995 阅读 · 0 评论 -
51单片机学习笔记:可对时电子钟
本篇是对上一篇的改进,昨天学习了第4章 中的独立键盘的使用 独立键盘拥有自己独有的IO口,所以比较简单,我上一篇写的电子钟程序只能烧程序对时,不能手动按键对时,这肯定是最差劲的做法,所以学习了按键之后,就立马动手改进我的电子钟了 同时改进了数码管小数点的显示,消除了叠影 使用芯片STC89C52RC, 2个锁存器6个带小数点共阴极数码管显示一个24时制时钟没有时钟芯片...2012-07-24 20:45:44 · 212 阅读 · 0 评论 -
51单片机学习笔记,4*4矩阵键盘
今天学习了下矩阵键盘,4*4, 分别代表0~F这16个数字我们按了哪个键就显示到数码管上 看完郭老师讲解原理后就自己动手写了,郁闷的是在keil软件中,我在switch-case语句中 少了个冒号,竟然编译通过!结果当然不正确了,然后我再keil中调试代码,那更郁闷了,P3口在扫描到第2行键盘时就会复位成0xff,怎么赋值都没用,其实是没写冒号啊! 调了半天都...2012-07-27 21:59:23 · 4034 阅读 · 0 评论 -
51单片机学习笔记:串口接收和发送数据
芯片STC89C52RC 在PC端向单片机发送任意数据后, 单片机向PC端发送4行文本,由于在windos下,回车换行用\r\n #include <reg52.h>#include "MY51.h"void initSer(); //串口初始化uchar sendFlag = 0; //未发送数据时...2012-08-05 16:57:20 · 7185 阅读 · 1 评论 -
基于c8051f310的mcp41010数字电位器驱动源码
#include "mcp41010.h"void MCP41010_init(){ //P2MDIN // 上电默认 digital P2MDOUT = setBits(P2MDOUT,pin4|pin5|pin6|pin7); // port2 4567 push-pull}#define ...2015-05-16 20:22:48 · 2277 阅读 · 0 评论