动态显示与按键消抖.ppt

上传人:小飞机 文档编号:5933883 上传时间:2023-09-06 格式:PPT 页数:44 大小:2.93MB
返回 下载 相关 举报
动态显示与按键消抖.ppt_第1页
第1页 / 共44页
动态显示与按键消抖.ppt_第2页
第2页 / 共44页
动态显示与按键消抖.ppt_第3页
第3页 / 共44页
动态显示与按键消抖.ppt_第4页
第4页 / 共44页
动态显示与按键消抖.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《动态显示与按键消抖.ppt》由会员分享,可在线阅读,更多相关《动态显示与按键消抖.ppt(44页珍藏版)》请在三一办公上搜索。

1、三、IO应用-LED数码管,X 位X 段数码管,8段LED,段码是按格式:如下图,显示位,段码位,显示位,段码位,即为:0 xC0,LED数码管 显示“0”编码,显示位,段码位,即为:0 xF9,LED数码管 显示“1”编码,七段共阳数码管显示数据表,LED数码管显示器的显示方法有两种:静态显示和动态扫描显示。,(一)LED数码管的显示方法,LED静态显示,例:利用2位LED静态显示“12”,#includeunsigned char d1=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;void main()P0=0 x

2、ff;P2=0Xff;while(1)P0=d11;/笔段码P2=d12;/笔段码思考:如是实现 显示完“12”延时一会儿有显示“34”呢?,#includeunsigned char d1=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;void delay(int m)unsigned int i,j;for(i=0;im;i+)for(j=0;j200;j+);void main()P0=0 xff;P2=0Xff;while(1)P0=d11;/笔段码”1”P2=d12;/笔段码”2”delay(100);P0=d

3、13;/笔段码”3”P2=d14;/笔段码”4”delay(100);,静态显示:就是每一个LED数码管都单独和一个I/O接口相连,CPU只要把欲显示的字型代码送到某个I/O口上,就可以使对应的LED数码管显示所需的数字或符号,此后,即使CPU不再向它输出其它字型码,显示的内容也不会消失。优点:显示程序十分简单,显示亮度大,节约CPU的工作时间 缺点:占用的I/O口线较多,硬件成本较高。,LED动态显示,#includeunsigned char d1=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;void delay(

4、int m)unsigned int i,j;for(i=0;im;i+)for(j=0;j200;j+);void main()while(1)P0=d11;/笔段码P2_1=0;P2_0=1;/位选码 delay(1);/延时P2=0XFF;/消隐 P0=d12;/笔段码P2_1=0;P2_0=1;/位选码delay(1);/延时P2=0XFF;/消隐,动态扫描显示是指采用分时的方法,轮流控制各个显示器的公共端,使各个显示器轮流点亮。虽然每个时刻只有一个数码管有效,但只要延时适当,由于人眼的“视觉暂留效应”(约20ms左右),看起来则是同时显示的。其接口电路是把所有显示器的8个笔划段adp

5、同名端并联接到I/O口上,而每一个显示器的公共极COM是各自独立地受I/O线控制。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。,思考:如何利用下面硬件电路显示:123456?,#includeunsigned char d1=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;unsigned char d2=0 xdf,0 xef,0 xf7,0 xf

6、b,0 xfd,0 xfe;void delay(int m);void main()unsigned char i;P0=0XFF;P2=0XFF;while(1)for(i=0;i6;i+)P0=d1i+1;/送笔段码P2=d2i;/送位选码delay(1);/延时5msP0=0XFF;/消隐,6位LED动态扫描电路-共阳电路连接,笔段码,位选码,0导通,1关闭,6位LED动态扫描电路-共阴电路连接,笔段码,位选码,1导通,0关闭,四、IO应用 点阵(了解:自学),有兴趣了解一下点阵显示器做广告用,一个好的单片机应用系统,通常要有优秀的人机交互接口。键盘是与单片机进行人机交互的最基本的途径

7、,其以按键的形式来设置控制功能或输入数据。按键的输入状态本质上是一个开关量。人们通过键盘输入一些命令或数据,以达到控制单片机运行的目的。常用的键盘有独立式按键键盘和矩阵式按键键盘两种。独立式按键接口简单,适合于简单而且少的开关量的输入。矩阵式按键键盘则适合于输入参数较多、功能复杂的系统,可以最大限度地使用单片机的引脚资源。本小节主要介绍了独立式按键和矩阵式按键键盘输入的相关知识及其编程接口。,五、IO应用 按键(BUTTON),键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换为电气上的逻辑关系(1和0)。,(一)独立按键,独立式键盘电路设计时,每个按键的一端与单片机的一个端口引脚

8、相连,另一端接地。无键按下时,P1的3个I/O口均通过电阻接高电平,信息为“1”。有键按下,将使对应的I/O口通过该键接地,信息为“0”。独立式按键的程序设计比较简单,一般采用查询方式即可。,防抖动措施,为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。键数较少时,采用硬件去抖;键数较多时,采用软件去抖。,按键触点的机械抖动,“软件去抖”思想,软件上采取的措施:在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除抖动的影响。,

9、任务:键控闪烁灯,#include void Delayms(unsigned char);/具体定义省略void main(void)/main函数 P2_0=1;/按键初始化,防止误读while(1)/保证系统一直运行if(P2_0=0)/如果有按键按下 Delayms(10);/延时去抖动 if(P2_0=0)/再次确认按键 P2_7=P2_7;while(P2_0=0);/等待按键释放,#include sbit LED=P2_7;sbit KEY=P2_0;void Delayms(unsigned char);void main(void)/main函数 KEY=1;/按键初始化w

10、hile(1)/死循环,保证系统一直运行if(KEY=0)/如果有按键按下 Delayms(10);/延时去抖动 if(KEY=0)/再次确认按键 LED=LED;/将LED取反 while(KEY=0);/等待松开,例2:键控花样流水灯,请大家思考,根据流程图采用C51编出任务程序!下节课用带来检查,并计入平时成绩!,例2:2位十进制按键计数器(0099),请大家思考,采用C51编出任务程序,并画出流程图!下节课用带来检查,并计入平时成绩!,单片机系统中,若使用按键较多时,通常采用矩阵式键盘,其结构如下图所示。,(二)矩阵按键(keyboard),行列式键盘,由图可知,一个44的行、列结构,

11、可以构成一个含有16个按键的键盘,节省了很多I/O口。,识别矩阵键盘按键的方法,1、行扫描法;2、线反转法,判断哪一行有键按下写端口(0 xf0):行线电平=0;列线电平=1。读端口进行判断:若P1=0 xf0没有按键压下;若P10 xf0某行有键压下W1,判断哪一列有键按下写端口(0 x0f):行线电平=1;列线电平=0。读端口进行判断:若P1=0 x0f没有按键压下;若P1 0 x0f某列有键压下W2,将W1与W2相“或”并存于W(形成键值)闭合键所在行、列的状态均为0,其余皆为1。,利用查表比对法求出闭合按键的键模。,线反转法思路,例1:矩阵键盘识别,利用LED来显示按键。,#inclu

12、deunsigned char code table=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0 x83,0 xC6,0 xA1,0 x86,0 x8E;unsigned char w;void delay();/申明函数void key_scan();void key_tran();void main()P1=0XFF;/输入初始化P0=0 x00;/LED开始不亮while(1)/保证系统一直运行key_scan();/键盘扫描程序key_tran();/键值译码并显示,void key_scan(

13、)unsigned char w1,w2;P1=0 x0F;w1=P1,void key_tran()switch(w)case 0 xEE:P0=table0;break;/LED显示0 case 0 xED:P0=table1;break;/LED显示1 case 0 xEB:P0=table2;break;/LED显示2 case 0 xE7:P0=table3;break;/LED显示3 case 0 xDE:P0=table4;break;/LED显示4 case 0 xDD:P0=table5;break;/LED显示5 case 0 xDB:P0=table6;break;/LE

14、D显示6 case 0 xD7:P0=table7;break;/LED显示7 case 0 xBE:P0=table8;break;/LED显示8 case 0 xBD:P0=table9;break;/LED显示9 case 0 xBB:P0=table10;break;/LED显示A case 0 xB7:P0=table11;break;/LED显示B case 0 x7E:P0=table12;break;/LED显示C case 0 x7D:P0=table13;break;/LED显示D case 0 x7B:P0=table14;break;/LED显示E case 0 x77:P0=table15;break;/LED显示F default:break;,Question&Answer任何建议和疑问,请不要犹豫!刘强:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号