单片机原理与应用及c51程序设计第7章习题答案

单片机原理与应用及c51程序设计第7章习题答案

ID:8569807

大小:110.50 KB

页数:6页

时间:2018-04-01

单片机原理与应用及c51程序设计第7章习题答案_第1页
单片机原理与应用及c51程序设计第7章习题答案_第2页
单片机原理与应用及c51程序设计第7章习题答案_第3页
单片机原理与应用及c51程序设计第7章习题答案_第4页
单片机原理与应用及c51程序设计第7章习题答案_第5页
资源描述:

《单片机原理与应用及c51程序设计第7章习题答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第7章习题答案7-1键抖动对单片机系统有何影响?有哪些消除抖动的方法?答:由于按键是机械开关结构,所以当用手按下其中一个键时,往往会出现所按键在闭合位置和断开位置之间发生跳几下后才会稳定到闭合状态的情况。在释放一个键时,也会出现类似的情况,这就是键的抖动,抖动的持续时间不一,但通常不会大于10ms。若抖动问题不解决,就会引起对闭合键的多次读入。对于键抖动最方便的解决方法就是当发现有键按下后,不是立即进行扫描,而是延时大约10ms后再进行。由于一个键按下的时间一般会持续上百毫秒,所以延迟10ms后再扫描处理并不迟。另外一种办法

2、就是使用硬件电路(如触发器)进行消抖。7-3自己设计一个3×3的矩阵键盘的硬件电路,试编制相应的键盘扫描程序。(注:为结合开发板的情况),我以开发板上的4×4键盘为例进行说明:解:只考虑了键盘的处理,并没有考虑显示#include"regx52.h"#defineucharunsignedchar#defineuintunsignedintstaticconstcharc_keyCode[16]={0x01,0x02,0x03,0x0a,/*键盘1,2,3,A*/0x04,0x05,0x06,0x0b,/*键盘4,5,6,B

3、*/0x07,0x08,0x09,0x0c,/*键盘7,8,9,C*/0x0e,0x00,0x0f,0x0d};/*键盘*,0,#,D*/ucharScanKeys(void);/*扫描键盘模块*/voidDelay(ucharvalue);/*10ms延时*/voidmain(void)/*主程序入口*/{while(1){ScanKeys();}}ucharScanKeys(void)/*扫描键盘模块*/{ucharscanValue;P3_2=0;P3_3=0;P1=0xf0;if((P1&0xf0)!=0xf0)/*

4、有键按下*/{Delay(1);/*延时10ms以消除抖动*/P1=0xf0;if((P1&0xf0)==0xf0)/*有键按下*/{return0xee;}else{P1=0xfe;scanValue=P1;switch(scanValue){case0xee:iScan=0x01;break;//键"a"case0xde:iScan=0x02;break;//键"1"case0xbe:iScan=0x03;break;//键"2"case0x7e:iScan=0x0a;break;//键"3"}P1=0xfd;scanV

5、alue=P1;switch(scanValue){case0xed:iScan=0x04;break;//键"4case0xdd:iScan=0x05;break;//键"5case0xbd:iScan=0x06;break;//键"6case0x7d:iScan=0x0b;break;//键"b}P1=0xfb;scanValue=P1;switch(scanValue){case0xeb:iScan=0x07;break;//键"7case0xdb:iScan=0x08;break;//键"8case0xbb:iSca

6、n=0x09;break;//键"9case0x7b:iScan=0x0c;break;//键"c}P1=0xf7;scanValue=P1;switch(scanValue){case0xe7:iScan=0x00;break;//键"0case0xd7:iScan=0x0d;break;//键"dcase0xb7:iScan=0x0e;break;//键"ecase0x77:iScan=0x0f;break;//键"f}}//P1=0xf0;while((P1&0xf0)!=0xf0);//防止键按住不放returniS

7、can;}return0xee;}voidDelay(ucharvalue)/*10ms延时*/{uchari,j;while(value--){for(j=20;j>0;j--)for(i=250;i>0;i--);}}7-4结合开发板的情况,在6个数码管上从右到左依次显示一个“3”,直到出现6个“3”为止,延时时间设为1秒。解:电路图如下图所示#include#include#defineucharunsignedchar#defineuintunsignedintsbitP3_2

8、=P3^2;#defineSCAN_CYCLE700unsignedcharcodeledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};ucharDispAr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。