- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章at89c51与输入外设和输出外设的接口设计
第10章 AT89C51与输入外设和输出外设的接口设计 ;图10-1;为使LED显示不同的符号或数字,要为LED提供段码(或称字型码)。;显示字符;表10-2只列出了部分段码,可根据实际情况选用,也可重
新定义。 ;N个LED显示块有N位位选线和8×N根段码线。 ;段码线控制显示的字型,;2. LED动态显示方式;图10-4:4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而位选线占用一个4位I/O口。;图10-5为8位LED动态显示2008.10.10的过程。;10.2 键盘接口原理
10.2.1 键盘输入应解决的问题
键盘输入的特点
键盘:一组按键开关的集合。行线电压信号通过键盘开关机械触点的断开、闭合,其输出波形如图10-6。;2. 按键的确认;10.2.2 键盘接口的工作原理
独立式按键接口和行列式键盘接口。;图10-7;图10-8为82C55扩展I/O口的独立式按键接口电路。;2. 行列式(矩阵式)键盘接口;(1)行列式键盘工作原理;识别键盘有无键被按下的方法,分两步进行:;图10-10;第1步:列线输出为全低电平,则行线中电平由高变低的所在
行为按键所在行。;原则:即要保证能及时响应按键操作,又不要过多占用CPU的
工作时间。;(2)用软件来消除按键抖动的影响。如有键按下,则进行下
一步。;第1层:单片机如何来监视键盘的输入。三种工作方式:①编
程扫描②定时扫描③中断扫描。;图10-11;图10-11所示的8个74LS164:74LS164(0)~74LS164(7)作为8位
LED的段码输出口,AT89C51的P3.4、P3.5作为两行键的行状
态输入线。
P3.3作为TXD引脚同步移位脉冲输出控制线,P3.3?=?0时,与门
输入为0,禁止同步移位脉冲输出。
这种静态显示方式的优点是亮度大,很容易做到显示不闪烁,
且CPU不必频繁地为显示服务,因而主程序可不必扫描显示
器,软件设计比较简单,从而使单片机有更多的时间处理其
他事务。下面是显示子程序和键盘扫描子程序的清单。
显示子程序:
DIR: SETB P3.3 ; P3.3=1, 允许TXD引脚同步移位脉冲输出
MOV R7,#08H ; 送出的段码个数, R7为段码个数计数器
MOV R0,#7FH ; 7FH~78H为显示数据缓冲区
DL0: MOV A,@R0 ; 取出要显示的数送A; ADD A,#0DH ; 加上偏移量
MOVC A,@A+PC ; 查段码表SEGTAG, 取出段码
MOV SBUF ,A ; 将段码送SBUF
DL1: JNB TI,DL1 ; 输出段码, 查询TI状态, 1个字节的段码
;输出完否?
CLR TI ; 1个字节的段码输出完, 清TI标志
DEC R0 ; 指向下一个显示数据单元
DJNZ R7,DL0 ; 段码个数计数器R7是否为0, 如不为0, 继
;续送段码
CLR P3.3 ; 8个段码输出完毕, 关闭显示器输出
RET ; 返回
SEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99H ; 共阳极段码表, 0,1,2,3,4
DB 92H,82H,0F8H,90H ; 5,6,7,8,9
DB 88H,83H,0C6H,0A1H,86H ; A,B,C,D,E
DB 8FH,0BFH,8CH,0FFH,0FFH ; F,-,P, 暗;键盘扫描子程序:
KEYI: MOV A,#00H ; 判断有无键按下,所有列线为0的编码送A
MOV SBUF,A ; 扫描键盘的(8)号74LS164输出为00H,
;使所有列线为0
KL0: JNB TI,KL0 ; 串行输出完否?
CLR TI ; 串行输出完毕, 清TI
KL1: JNB P3.4,PK1 ; 第一行有闭合键吗?如有, 跳PK1进行处理
JB P3.5,KL1 ; 在第二行键中有闭合键吗?无闭合键跳KL1
PK1: ACALL DL10 ; 调用延时10ms子程序DL10, 软件消除抖动
JNB P3.4,PK2 ; 判断是否由抖动引起?
JB P3.5,KL1
文档评论(0)