单片机原理及应用(第九章).docx

单片机原理及应用(第九章).docx

ID:62465691

大小:99.54 KB

页数:11页

时间:2021-05-08

单片机原理及应用(第九章).docx_第1页
单片机原理及应用(第九章).docx_第2页
单片机原理及应用(第九章).docx_第3页
单片机原理及应用(第九章).docx_第4页
单片机原理及应用(第九章).docx_第5页
资源描述:

《单片机原理及应用(第九章).docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、如有帮助,欢迎支持。第九章MCS—51单片机与键盘、显示器(LED)的接口9.1MCS—51单片机与键盘的接口9.1.1键盘的工作原理及0按纽在按下和松开的瞬间(10ms内),都会产生电平的快速波动(抖动)。见P212的图9-1。1.硬件消抖:添加电路。①采用双稳态的RS触发器(见P213的图9-2),但需使用三个接点的按键。②采用RC积分电路(见P213的图9-3)。2.软件消抖:当检测到有电平变化时,延时一段时间(10ms),跳过电平的抖动,再进行识别处理。在单片机的应用中都是使用软件消抖的方法,不添加电

2、路。扳键式开关9.1.2扳键开关、拨盘开关与单片机的接口扳键开关和拨盘开关一般用在不太需变换状态的输入位识别中,最终变为另一稳定状态,一般不需消抖。常见的接口电路有:1.直接P口输入①单个扳键开关例:针对下图电路编程实现:当K闭合,LED持续闪动(每200ms一次);当K断开则关闭LED。设:Delay300为延时300ms的子程序。KBITP1.1Main:SETBK;P口作为输入的位,在测试前必须先置为“1”。JBK,LB;测试开关的电平,为“1”则转移到LB。LA:SETBP1.0;输出高电平,闪亮LE

3、DLCALLDelay200;延时200msAP1.0CLRP1.0;输出低电平,闪灭+5VLCALLDelay200;延时200ms8051LJMPMain;循环测试开关R[LB:CLRP1.0;输出低电平,熄灭SJMPMain;循环测试开关丄*r31.12②多个拨盘开关(排键)多个拨盘开关一般用于静态的状态位输入,在程序的初始段中识别。对应的控制程序:MOVP1,#0FFHMOVA,P12如有帮助,欢迎支持。11如有帮助,欢迎支持。2.扩展I/O口输入对应的控制程序:+5V11如有帮助,欢迎支持。MOVD

4、PTR,#7FFFHMOVXA,@DPTR按纽式按键按钮式按键在按下和松开的瞬间会产生电位的抖动,识别的软件需加以处理,运行的结果才不会异常。9.1.3独立式键盘接口设计8051■IP1・U■1P1.1P1.2J1

5、

6、'l'

7、K21K1K01+5V按纽式按键的识别(程序段):按下后还得有键释放的处理。K0EQUP1.0K1EQUP1.1K2EQUP1.2Main:ANO:SETBKOJBKO,AN1;P1.O=1表示按键KO没按下,转处理其他按键。LCALLDelaylO;P1.O=O表示按键按下,延时1Om

8、s(消除抖动)SETBKOJBKO,AN1;再测,P1.O=1是按键抖动,转处理其他按键。LCALLFUN_KO;KO键的处理子程序LA:SETBKO;键释放处理。JNBKO,LA;P1.O=O表示按键KO没松开,转键释放处理。LCALLDelaylO;P1.O=1表示按键松开,延时1Oms(消除抖动)SETBKOJNBKO,LA;再测,P1.O=O是按键抖动,转键释放处理。LJMPMainAN1:SETBK111如有帮助,欢迎支持。JBK1,AN2;P1.1=1表示按键K1没按下,转处理其他按键例1单个7段

9、码LED显示器倒计数程序。KBITP2.0SEQU20HORG0000HMain:MOVS,#09HMOVP3,#0FFH;显示’空’L1:SETBKJBK,L1;K=1,无键入L2:MOVA,S;K键按下的处理:显示数值S(9~0),SS-1MOVDPTR,#TABMOVCA,@A+DPTR;取出数值S对应的LED显示段码MOVP3,A;显示数值S(0~9)LCALDelay;延时1sMOVA,SJZMainDECSSJMPL2TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F

10、8H,80H,90H,0C0HDelay:MOVR3,#5;5*200ms=1000ms=1sDe0:MOVR4,#200;200*1ms=200msDel:MOVR5,#250;250*4us=1msDe2:DJNZR5,De2;4us,设f=6MHzDJNZR4,De1DJNZR3,De0RETEND例2:按键计数程序。(有异常的程序,按键没有消抖处理)KBITP2.0SEQU20HORG0000HMain:MOVS,#00H;S置初值0MOVP3,#0C0H;显示’0'L1:SETBKJBK,L1;K=

11、1,无键入INCS;K键按下的处理:SS+1,显示数值S(0~9)MOVA,SMOVDPTR,#TABMOVCA,@A+DPTR;取出数值S对应的LED显示段码MOVP3,A;显示数值S(0~9)MOVA,SCJNEA,#10,L1SJMPMain11如有帮助,欢迎支持。TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H11如有帮助,欢迎支

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

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

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