单片机接口教程.ppt

单片机接口教程.ppt

ID:55868465

大小:728.50 KB

页数:91页

时间:2020-06-11

单片机接口教程.ppt_第1页
单片机接口教程.ppt_第2页
单片机接口教程.ppt_第3页
单片机接口教程.ppt_第4页
单片机接口教程.ppt_第5页
资源描述:

《单片机接口教程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机实用接口技术键盘接口技术LED接口技术A/D转换器与单片机的接口设计D/A转换器与单片机的接口设计1键盘接口设计几种设计方法1.利用并行口设计2.利用8279芯片设计键的识别1.行扫描法2.线反转法消除键的抖动——延时扫描键的保护——多键同时按下2独立式按键接口电路+5VP1.0P1.1P1.2P1.3803134线反转法设计要点将行线编程为输入线,列线编程为输出线,并使输出线输出为全零电平,则行线中电平由高到低所在行为按键所在行。同前面相反,将行线编程为输出线,列线编程为输入线,并使输出线输出为全零电平,则列线中电平由高

2、到低所在列为按键所在列。综合上两步的结果,可确定按键所在行和列,从而识别出所按的键5键盘扫描方式CPU对键盘的扫描分为编程扫描,定时扫描,中断扫描三种67编程扫描方式8255的口地址:PA口:0700HPC口:0702H控制寄存器:0703H(1)判断有无键按下:PA口输出全0,读PC口低4位,若4位为全1,则表示无键按下。否则有键按下。(2)去抖处理:软件延时10ms再读PC口,判断有无键按下。开始返回有键闭合吗?软件延时10ms有键闭合吗?确定按键位置闭合键释放?按键值存ANYNNYY8(3)PA口依次逐列输出扫描信号,PC

3、口低4位输入4位行信号,均为低电平有效。由此确定出按键的行,列位置。(4)键闭合一次仅进行一次按键处理。待按键释放以后,才能进行下一次按键处理。BEGIN:ACALLKEY_ON;判断有无键按下JNZDELAY;有键按下AJMPBEGINDELAY:ACALLDL10MS;去抖延时ACALLKEY_ON;再判断有无键按下JNZKEY_NUM;有键按下,确定按键位置AJMPBEGINKEY_NUM:ACALLKEY_PANLA,#0FFHJZBEGINACALLKEY_CODE;编码PUSHAKEY_OFF:ACALLKEY_ON

4、;等待按键释放JNZKEY_OFF9POPARET;判断有无键按下子程序,有键按下时,A的值不为0KEY_ON:MOVA,#00HMOVDPTR,#0700H;PA口MOVX@DPTR,AMOVDPTR,#0702HMOVXA,@DPTRCPLAANLA,#0FHRET;延时10ms子程序(时钟6MHZ)DL10MS:MOVR7,#05HLOOP1:MOVR6,#0F9HLOOP2:NOPNOPDJNZR6,LOOP2DJNZR7,LOOP1RET10;扫描按键位置的子程序KEY_P:MOVR7,#0FEHMOVA,R7L_LO

5、OP:MOVDPTR,#0700HMOVX@DPTR,AMOVDPTR,#0702HMOVXA,@DPTRANLA,#0FHMOVR6,A;R6中保存行号XRLA,#0FH;低4位取反JZNEXT;此行无键按下AJMPKEY_CNEXT:MOVA,R7RLAJNBACC.0,ERRORMOVR7,A;R7保存扫描码AJMPL_LOOPERORR:MOVA,#00H;置出错码00HRET11;确定按键的行列位置子程序KEY_C:MOVR2,#00H;R2用于行计数MOVR3,#00H;R3用于列计数MOVR5,#04HMOVA,R

6、6;行号AGAIN1:JNBACC.0,OUT1INCR2RRADJNZR5,AGAIN1OUT1:INCR2MOVR5,#08HMOVA,R7;列号AGAIN2:JNBACC.0,OUT2INCR3RRADJNZR5,AGAIN2OUT2:INCR3MOVA,R2SWAPAADDA,R3;行号在高4位,列号在低4位RET12;编码子程序,键码=行号*8+列号KEY_CODE:PUSHAANLA,#0FHMOVR7,A;R7=列号DECR7POPASWAPAANLA,#0FHDECAMOVB,#08HMULABADDA,R7RE

7、T中断方式必须用硬件形成中断信号1314编程要点:P1.0,P1.1,P1.2作为输出口输出扫描码000—111,经译码后产生列扫描信号,此时8列中只有1列为0电平。其余各都为高电平。行状态由P1.3,P1.4读入15LED显示器接口设计LED的结构LED静态显示LED动态显示16171.LED静态显示方式各数码管的共阴极(或共阳极)连接在一起并接地(接+5V),每个数码管的各段分别与一个8位的锁存器输出相连,这样当锁存器存入一个数据后,数码管将始终显示此数据。特点:硬件电路多。编程简单。1819START:SETBP1.7MO

8、VR1,#06HMOVR0,#00HMOVDPTR,#TABLOOP:MOVA,R0MOVCA,@A+DPTRMOVSBUF,AWAIT:JNBT1,WAIT;串行输出完成否CLRT1INCR0DJNZR1,LOOPCLRP1.7TAB:DB06H,4FH,3F

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

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

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