第5章 及显示器、开关、键盘接口设计.ppt

第5章 及显示器、开关、键盘接口设计.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 及显示器、开关、键盘接口设计

图5-6 控制数码管循环显示单个数字的电路 【例5-5】利用单片机控制一个8段LED数码管先循环显示单个偶数:0、2、4、6、8,再显示单个奇数:1、3、5、7、9,如此反复循环显示。 思路: 字符段码表 依次送出 #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int #define out P0 uchar code seg[]={0xc0,0xa4,0x99,0x82,0x80,0xf9,0xb0,0x92,0xf8,0x90,0x01}; //共阳极段码表 void delayms(uint); void main(void) { uchar i; while(1) { out=seg[i]; delayms(900); i++; if(seg[i]==0x01) i=0; // 如段码为0x01,表明一个循环显示已结束 } 如果欲送出的数组元素为0x01(数字“9”段码0x90的下一个元素,即结束码),表明一个循环显示已结束,则i=0,则重新开始循环显示,从段码数组表的第一个元素seg[0],即段码0xc0(数字0)重新开始显示。 参考程序如下: } void delayms(uint j) // 延时函数 { uchar i; for(;j0;j--) { i=250; while(--i); i=249; while(--i); } } 说明:语句“if(seg[i]==0x01)i=0; ” 含义:如果欲送出的数组元素为0x01(数字“9”段码0x90的下一个元素,即结束码),表明一个循环显示已结束,则i=0,则重新开始循环显示,从段码数组表的第一个元素seg[0],即段码0xc0(数字0)重新开始显示。 5.3.2 LED数码管的静态显示与动态显示 两种显示方式:静态显示和动态显示。 1. 静态显示方式 多位LED数码管工作于静态显示方式时,各位共阴极(或共阳极)连接在一起并接地(或接+5V); 每位数码管段码线(a~dp)分别与一个8位I/O口锁存器输出相连。 如果送往各个LED数码管所显示字符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到送入下一个显示字符段码。 无论多少位LED数码管,都同时处于显示状态。 静态显示方式显示无闪烁,亮度较高,软件控制较易。 图5-7 4位LED静态显示的示意图 静态显示电路,各数码管可独立显示,只要向控制各位I/O口锁存器送相应显示段码,该位就能保持相应的显示字符。静态显示方式占用I/O口端口线较多。 要占用4个8位I/O口(或锁存器)。 这样在同一时间,每一位显示的字符可各不相同。如数码管数目增多,则需增加I/O口数目。 图5-8 2位数码管静态显示的原理电路 【例5-6】单片机控制2只数码管,静态显示2个数字“27”。 单片机用P0口与P1口,分别控制加到两个数码管DS0与DS1的段码,而共阳极数码管DS0与DS1的公共端(公共阳极端)直接接至+5V,因此数码管DS0与DS1始终处于导通状态。利用P0口与P1口带有的锁存功能,只需向单片机P0口与P1口分别写入相应的显示字符“2”和“7”的段码即可。 P0=0xa4; //将数字“2”的段码送P0口 P1=0xf8;//将数字7的段码送P1口 思路: 参考程序如下: #includereg51.h //包含8051单片机寄存器定义的头文件 void main(void) { P0=0xa4; //将数字2的段码送P0口 P1=0xf8; //将数字7的段码送P1口 while(1) //无限循环 ; } * 图5-9 4位LED数码管动态显示示意图 2. 动态显示方式 显示位数较多时,静态显示所占的I/O口多,这时常采用动态显示。 为节省I/O口,通常将所有显示器段码线相应段并联在一起,由一个8位I/O口控制,各显示位公共端分别由另一单独I/O口线控制。 单片机发出的段码占用1个8位I/O(1)端口, 而位选控制使用I/O(2)端口中4位口线。 单片机向段码线输出欲显示字符的段码 每一时刻,只有1位位选线有效 每隔一定时间逐位轮流点亮各数码管 由于数码管余辉和人眼的“视觉暂留”作用 动态显示过程小结: 单片机向段码线输出欲显示字符的段码。

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档