10-C51单片机(第十章MCS-51与键盘、显示器、打印机的接口设计)ppt课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《10-C51单片机(第十章MCS-51与键盘、显示器、打印机的接口设计)ppt课件.ppt》由会员分享,可在线阅读,更多相关《10-C51单片机(第十章MCS-51与键盘、显示器、打印机的接口设计)ppt课件.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、新疆师范大学物理与电子工程学院新疆师范大学物理与电子工程学院刘楚湘刘楚湘主讲主讲第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计10.1 键盘接口原理键盘接口原理1键盘输入的特点键盘输入的特点第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计2. 按键的确认按键的确认 键的闭合与否,反映在行线输出电压上就是呈现高电平或低电平,键的闭合与否,反映在行线输出电压上就是呈现高电平或低电平,如果高电平表示键断开低电平则声示键闭合,通过对行线电平高低状如果高电平表示键断开低电平则
2、声示键闭合,通过对行线电平高低状态的检测,便可确认按键按下与否。为了确保态的检测,便可确认按键按下与否。为了确保CPUCPU对一次按键动作只确认对一次按键动作只确认一次按键有效,必须消除抖动期一次按键有效,必须消除抖动期t1t1和和t3t3的影响。下面将介绍消除抖动的的影响。下面将介绍消除抖动的措施。措施。 3如何消除按键的抖动如何消除按键的抖动 常采常采用软件来消除按键抖动用软件来消除按键抖动。 采用软件来消除按键抖动的采用软件来消除按键抖动的基本思想基本思想是:在第一次检测到有键按下时,是:在第一次检测到有键按下时,该键所对应的行线为低电平,执行一段延时该键所对应的行线为低电平,执行一段延
3、时10 ms的子程序后,确认该的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认为该行确实有键按行线电平是否仍为低电平,如果仍为低电平,则确认为该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时下。当按键松开时,行线的低电平变为高电平,执行一段延时10 ms的的子程序后,检测该行线为高电平,说明按键确实已经松开。采取以上措子程序后,检测该行线为高电平,说明按键确实已经松开。采取以上措施,躲开了两个抖动期施,躲开了两个抖动期t1和和t3,从而消除了按键抖动的影响。,从而消除了按键抖动的影响。第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计
4、单片机与键盘、显示器、打印机的接口设计10.2.1 键盘接口的工作原理键盘接口的工作原理 1独立式键盘接口独立式键盘接口第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计图10-9程序如下:第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计 KEYIN: MOV DPTR ,BFFFH ;键盘地址BFFFH MOVX A ,DPTR ;读键盘状态 ANL A ,
5、01FH ;屏蔽高 3位 0001 1111 MOV R3 ,A ;保存键盘状态值 LCALL DELAY10 ;调用延时10ms子程序, 软件去键盘抖动 MOVX A,DPTR ;再读键盘状态 ANL A ,01FH ;屏蔽高3位 CJNE A ,R3,RETURN ;2次结果不一样,说明是抖动引起的,转RETURN地址译码关系图地址译码关系图键盘地址BFFFH第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计 CJNE A,1EH,KEY2 ;2次结果一样, 有键按下。再判是否S1键按下? S1键未按下,转KEY2 0001 1
6、110 LJMP PKEY1 ;是S1键按下,转S1键处理 子程序PKEY1 KEY2:CJNE A,1DH,KEY3 ;S2键未按下,转 KEY3 0001 1101 LJMP PKEY2 ;S2键按下,转PKEY2处理KEY3:CJNE A,1BH,KEY4 ;S3未按下,转 KEY4 0001 1011 LJMP PKEY3 ;S3按下,转PKEY3处理第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计KEY4:CJNE A,17H,KEY5 ;S4键未按下,转键未按下,转KEY5 0001 0111 LJMP PKEY4 ;
7、S4按下,转按下,转PKEY4处理处理KEYS:CJNE A,0FH,PASS ;S5未按下,转未按下,转RETURN 0000 1111 LJMP PKEY5 ;S5按下,转按下,转PKEY5处理处理RETURN:RET ;重键或无键按下,从子程序返回;重键或无键按下,从子程序返回 PKEY1: ; S1键处理子程序 PKEY2: ; S2键处理子程序 PKEY3: ; S3键处理子程序 PKEY4: ; S4键处理子程序第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计 2行列式键盘接口行列式键盘接口行列式键盘工作原理行列式键盘
8、工作原理( (1) )行列式键盘的结构行列式键盘的结构第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计扫描法扫描法 第第1步,识别键盘有无键被按步,识别键盘有无键被按下;下;第第2步,如有键被按下,识别步,如有键被按下,识别出具体的按键。出具体的按键。 首先把首先把所有的列线均置为低电平所有的列线均置为低电平,检查各行线电平是否有变化,如果有检查各行线电平是否有变化,如果有变化,则说明有键被接下,如果没有变化,则说明有键被接下,如果没有变化,则说明无键被按下。变化,则说明无键被按下。 其次,先把其次,先把某一列置低电平某一列置低电
9、平,其,其余各列置为高电平,检查各行线电平余各列置为高电平,检查各行线电平的变化,如果某行线电平为低电平,的变化,如果某行线电平为低电平,则可确定此行此列交叉点处的按键被则可确定此行此列交叉点处的按键被按下。按下。 (2)按键的识别方法)按键的识别方法以图以图1010(b)中)中3号键号键被按下为例,来说明此键是如何被识别出来的。被按下为例,来说明此键是如何被识别出来的。第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计 第第1 1步步,让行线编程为输,让行线编程为输入线,列线编程为输出线,并入线,列线编程为输出线,并使输出线输出为
10、全低电平,则使输出线输出为全低电平,则行线中电平由高变低的所在行行线中电平由高变低的所在行为按键所在行。为按键所在行。 第第2 2步步,再把行线编程为,再把行线编程为输出线,列线编程为输入线,输出线,列线编程为输入线,并使输出线输出为全低电平,并使输出线输出为全低电平,则列线中电平由高变低所在列则列线中电平由高变低所在列为按键所在列。为按键所在列。 结合上述结合上述2 2步的结果,可步的结果,可确定按键所在行和列,从而识确定按键所在行和列,从而识别出所按的健。别出所按的健。线反转法线反转法第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接
11、口设计【例】假设【例】假设3号键号键被按下,被按下,那么第那么第1步即在步即在D0D3输输出全为出全为0,然后读入,然后读入D4D7位,结果位,结果D40,而,而D5、D6和和D7均为均为1,因此,第,因此,第1行出现电平的变化,说明行出现电平的变化,说明第第1行有键按下;行有键按下;第第2步让步让D4D7输出全为输出全为0,然后读入,然后读入D0D3位,结果位,结果D0=0而而D1、D2和和D3均为均为1,因此第,因此第4列出现电平的变化,说明第列出现电平的变化,说明第4列有键按下。综合上述分析,即第列有键按下。综合上述分析,即第1行第行第4列按键被按下,此按列按键被按下,此按键即是键即是3
12、号键。号键。第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计 对于对于独立式键盘独立式键盘,由于按键的数目比较,由于按键的数目比较少,可根据实际需要灵活编码。少,可根据实际需要灵活编码。 对于对于行列式键盘行列式键盘,按键的位置由行号和按键的位置由行号和列号惟一确定、所以常常采用依次排列键号列号惟一确定、所以常常采用依次排列键号的方式对键盘进行编码。以的方式对键盘进行编码。以44键盘为例,键盘为例,键号可以编码为键号可以编码为01H,02H,03H,0EH,0FH,10H共共16个。个。(3)键盘的编码键盘的编码第十章第十章MCS
13、-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计10.2.2 键盘的工作方式键盘的工作方式 1. 编程扫描方式编程扫描方式 这种方式就是只有当单片机空闲时,才调用键盘扫描子程序,反复的扫描键这种方式就是只有当单片机空闲时,才调用键盘扫描子程序,反复的扫描键盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。 第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计端口端口地址地址PA口口7F00HPB口口7F01HPC口口7F02
14、H控制寄存器控制寄存器7F03H编程扫描方式的具体步骤编程扫描方式的具体步骤(1)(1)设置设置PAPA口工作于方式口工作于方式0 0输出,输出,PCPC口低口低4 4位工作位工作于方式于方式0 0输入。输入。(2)(2)判断键盘上有无键按下判断键盘上有无键按下(PA(PA口口8 8位输出全位输出全0 0,读读PCPC口低口低4 4位状态位状态) )(3)(3)延时延时10 ms10 ms来消除按键抖动来消除按键抖动(4)(4)求按下键的键号求按下键的键号(扫描法或线反转法扫描法或线反转法)。)。(5 5)等待按键释放后,再进行按键功能的处理)等待按键释放后,再进行按键功能的处理操作操作。 第
15、十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计 单片机对键盘的扫描也可采用定时扫描方式,即每隔一定的时间对键盘扫描一次。” 在这种扫描方式中,通常利用单片机内的定时器,产生10 ms的定时中断,CPU响应定时器溢出中断请求,对键盘进行扫描,在有键按下时识别出该键,并执行相应键的处理功能程序。2定时扫描工作方式定时扫描工作方式 为进一步提高单片机扫描键盘的工作效率,可采用中断扫描方式,即只有在键盘有键按下时,才执行键盘扫描程序并执行该按键功能程序,如果无键按下,单片机将不理睬键盘。 3中断工作方式中断工作方式 第第1层:层:单片机如
16、何来监视键盘的输入。体现在键盘的工作方式上就是:编程扫描工作方式;定时扫描工作方式;中断扫描工作方式。 第第2层:层:确定具体按键的键号。体现在按键的识别方法上就是:扫描法;线反转法。 第第3层:层:实现按键的功能,执行键处理程序。键盘所做的工作分为键盘所做的工作分为3 3个层次个层次第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计键盘扫描应用举例键盘扫描应用举例 (例题例题10_110_3)第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计10.3 键盘显示器接口设计
17、实例键盘显示器接口设计实例 10.3.1 利用并行利用并行IO芯片芯片8155H实现键盘实现键盘/显示器接口显示器接口第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计 8155H的的IO口地址为口地址为7F00H7F05H , RAM地址为地址为7E00H7EFFH 。 8155H的的PA口为输出口,控制键盘列线的扫描,口为输出口,控制键盘列线的扫描,PA口同时又是口同时又是6位共阴极显示器的位扫描口。位共阴极显示器的位
18、扫描口。PB为输为输出口作为显示器的段码(字型码)口,出口作为显示器的段码(字型码)口,8155H的的PC口口作为键盘的行线状态的输入口,故称为键输入口。作为键盘的行线状态的输入口,故称为键输入口。 75452为反相驱动器,为反相驱动器,7407为同相驱动器。为同相驱动器。 第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计81558155芯片使用介绍芯片使用介绍第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计 图图10101414中的中的6 6位显示器采用动态位显示器
19、采用动态显示的方式。显示的方式。在在80518051内部内部RAMRAM中设置中设置6 6个个显示缓冲单元显示缓冲单元79H79H7EH7EH,分别存放显示,分别存放显示器要显示的器要显示的6 6位数据。位数据。8155H8155H的的PAPA口扫描口扫描输出总是只有输出总是只有1 1位高电平,经位高电平,经7545275452反相反相后,即显示器的后,即显示器的6 6位中仅有位中仅有1 1位公共阴极位公共阴极为低电平,其他位为高电平。为低电平,其他位为高电平。8155H8155H的的PBPB口输出相应位的显示数据的段码,使口输出相应位的显示数据的段码,使某一位显示某一字符,其它位为暗。依某一
20、位显示某一字符,其它位为暗。依次的改变次的改变PAPA口输出为高的位,口输出为高的位,PBPB口输出口输出对应的段码,显示器的对应的段码,显示器的6 6位就动态地显位就动态地显示出由缓冲区中显示数据所确定的字符。示出由缓冲区中显示数据所确定的字符。显示程序的流程如图显示程序的流程如图10101515所示。所示。 0000 0001 位选码位选码R31动态显示程序设计动态显示程序设计第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计参考程序如下:参考程序如下:DIR: MOV R0,79H ;置缓冲器指针初值置缓冲器指针初值 MOV
21、R3,01H ;位选码的初值送位选码的初值送 R3 MOV A ,R3 0000 0001LD0: MOV DPTR,#7F01H ;DPTR指向指向8155H PA口口 MOV DPTR ,A ;位选码位选码8155H PA口口 (PA0位)最左边位)最左边LED亮亮 INC DPTR ;数据指针指向数据指针指向 PB口口 MOV A,R0 ;缓冲区中取出显示数据缓冲区中取出显示数据A ADD A,0DH ;加偏移量(下条指令到表首间加偏移量(下条指令到表首间 所有指令占的单元数)所有指令占的单元数) MOVC A,APC ;根据显示数据来查表取段码根据显示数据来查表取段码 在在803180
22、31内部内部RAMRAM中设置中设置6 6个显示缓冲单元个显示缓冲单元79H79H7EH7EH,分别存,分别存放显示器要显示的放显示器要显示的6 6位数据。位数据。8155H的的IO口地址为口地址为7F00H7F05H第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计DIR1: MOVX DPTR,A ;段码8155H的 PB口 ACALL DL1ms ;延时1ms,即该位显示1ms INC R0;显示数据缓冲区指针指向下一个数据单元 MOV A,R3 ;位选码送入 A中(初值R3=01H) JB ACC.5,LD1 ;判断是否扫描
23、到最右边的LED, 如到最右边,则返回 RL A ;位选码向左移一位,准备让右边的下一位 LED亮 MOV R3,A ;位选码送R3中保存 AJMP LD0LD1: RET初始的位选码初始的位选码0000 0001第十章第十章MCS-51MCS-51单片机与键盘、显示器、打印机的接口设计单片机与键盘、显示器、打印机的接口设计DSEG: ;共阴极;共阴极LED段码表段码表 DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,73H,3EH DB 31H,6EH,1CH,23H,40H,03H DB 38
24、H,00DL1ms:MOV R7,#02H ;延时;延时1ms子程序子程序 DL:MOV R6,#0FFH DL6: DJNZ R6,DL6 DJNZ R7,DL RET 程序中的程序中的 ADD AADD A,0DH0DH指令中的指令中的“0DH”0DH”为偏移量(即为查表指令下一为偏移量(即为查表指令下一条指令到表首地址标号条指令到表首地址标号DESGDESG之间所有指令所占单元之和),在显示数据的基之间所有指令所占单元之和),在显示数据的基础上加上偏移量,可查到该显示数据所对应的段码。础上加上偏移量,可查到该显示数据所对应的段码。第十章第十章MCS-51MCS-51单片机与键盘、显示器、
25、打印机的接口设计单片机与键盘、显示器、打印机的接口设计2键盘程序设计键盘程序设计 键盘程序的功能有以下键盘程序的功能有以下4 4个方面:个方面: (1)判别键盘上有无键闭合:判别键盘上有无键闭合:其方法为其方法为:首先把所有的首先把所有的列线列线(PA口)均置为低电平口)均置为低电平,检查各,检查各行线(行线(PC口)电平口)电平是否有变化是否有变化 (2)去除键的机械抖动:去除键的机械抖动:其方法为延迟一段时间再判别键其方法为延迟一段时间再判别键盘的状态。盘的状态。 (3)判别闭合键的键号判别闭合键的键号:方法为对键盘的列线进行逐列扫方法为对键盘的列线进行逐列扫描,扫描口描,扫描口PA0PA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 C51 单片机 第十 MCS 51 键盘 显示器 打印机 接口 设计 ppt 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内