51单片机学习笔记(二) 单个数码管显示1到9
来源:互联网 发布:网络时间现在几点 编辑:程序博客网 时间:2024/05/20 02:56
转自我的博客:http://sincos.in/?p=20数码管,其实就是8个发光二极管按顺序排列而成的,所以让数码管显示特定的数字,只需要将该亮的二极管点亮,不该亮的灭了就好了。为了达到这个目的,就得参考电路图了,51HEI开发板的电路图在我的相册里有,但是整张贴出来就太大了,所以这里只显示部分。电路图如下:
乍一看这张图比较明显的就是最左边的单片机和两个锁存器U1和U2的引脚信息了,从D00到D07,两个锁存器是共用的,D00对应输出Y1和X1,D07对应输出Y8和X8。锁存器,从它的名字大概就可以知道它的用途了!其作用就是有的引脚输入改变的时候输出保持之前的状态,达到锁和存的效果(我目前的理解是这样的,不理解的可以上网搜官方解释)。查查74HC573是怎么用的,表格如下:
图中引脚1代表输出使能,11引脚代表锁存使能。锁存器嘛,打开锁存,让输出使能引脚处于低电平,锁存使能引脚输入高电平,传入对应的D,然后再使锁存使能引脚处于低电平,这样就能让输出保持不变。使用的过程就是打开锁,传数据,关锁保持。
说完了锁存器,回到第一张电路图,途中的锁存器1号引脚都接地,自然是低电平,11号引脚分别对应单片机的D26和D27,所以控制U1和U2就靠这2个引脚啦!
按道理说,8个数码管,应该有8*8=64根线才对啊,而第一张图中只有24个引脚,里面肯定有复用的引脚,所以不知道内部电路是没办法写滴,还好51HEI给的资料比较全。
2个LED管的内部电路如下: ABCDEFG DP总共8个二极管,分别由11、7、4、2、1、10、5、3引脚控制,而1这8个引脚对应第一个图中的Y1到Y8,12、9、8、6呢则有两组,一组是共阴极的数码管,一组是共阳极的数码管。12、9、8、6呢则对应X1到X8,有2个,一组是X1到X4,一组是X4到X8,X1到X4是共阴极的,X5到X8是共阳极的。本实验只让共阴极的DIG1那个数码管显示数据,把别的都关掉。那只要12(X1)引脚输入低电平,986输入高电平,其他的都不会亮了,让DIG1显示什么数字,就由Y1到Y7来决定了。
经计算,让DIG1显示0到9还有小数点的表格如下:
uint8 table[11]={ 0x3f, 0x30, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x80 };
#includetypedef unsigned char uint8;typedef unsigned int uint16; sbit D24 = P2^4; sbit D25 = P2^5; sbit U1 = P2^6; //U1锁存器的开关 sbit U2 = P2^7; //U2锁存器的开关 sbit LINX1 = P0^0; sbit LINY5 = P0^4; sbit LINY6 = P0^5; uint8 table[11]={ 0x3f, 0x30, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x80 }; void main(void) { uint8 counter = 0; uint8 offset = 0; TH0 = 0x3C; TL0 = 0xB0; TR0 = 1; TMOD = 0x01; //计时模式选01模式 U2 = 1;P0 = 0xfe;U2 = 0; P0 = 0xff; D24 = 0; //关闭8X8点阵LED D25 = 0; while(1){ if(TF0==1) //每次计时是50ms,达到50ms后计时器0的溢出位位1,进行软件清零和计时器初始化. { counter++; TF0=0; TH0 = 0x3C; //12MHZ的晶振算出来是从15536开始计时,十六进制就是 0x3CB0 TL0 = 0xB0; //高位取0x3C,低位取0xB0 } if(counter==20) //20*50ms=1000ms=1s { counter=0;U1 = 1;P0 = table[offset++];U1 = 0;if(offset==11){ offset = 0;} }} }
- 51单片机学习笔记(二) 单个数码管显示1到9
- 学习笔记 从零开始学单片机(2) 全八段数码管显示
- 单片机学习笔记(三)——数码管显示
- FPGA学习笔记二(数码管动态显示)
- 单片机编程:让led数码管显示数字0到9
- 单片机: 热敏电阻测温并且显示到数码管(温度计)
- 51单片机之数码管显示
- 51单片机动态数码管显示
- 51单片机—数码管显示
- 51单片机数码管动态显示
- 单片机(二)__seg数码管
- 51单片机 学习之旅[4] 数码管 动态显示
- 【51单片机学习过程记录】5数码管静态显示
- 【51单片机学习过程记录】6数码管动态显示
- C51单片机学习(一):LED和数码管静态显示
- C51单片机学习(三):数码管动态显示和键盘
- FPGA学习笔记一(数码管显示)
- C51学习笔记(一)---数码管显示
- MFC逃跑按钮的实现(两种方式)
- Windows下编译objective-C
- Java设计模式之命令模式
- 多线程编程之二——MFC中的多线程开发
- datagridview模糊查询
- 51单片机学习笔记(二) 单个数码管显示1到9
- WPF 数据绑定 定制一个集合的视图 导航
- Web导出(二)之Freemarker+XML导出Word
- 设计模式之命令模式
- 通信专业如何发论文
- expdp时遇到的三个异常
- hdu 4009(最小树形图)
- HDU1060 数学方法实现超大数计算
- Milking Cows 挤牛奶