《第8章 单片机的人机接口技术.ppt》由会员分享,可在线阅读,更多相关《第8章 单片机的人机接口技术.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计第第8章章 单片机的人机接口技术单片机的人机接口技术8.1 LED8.1 LED显示器及其接口显示器及其接口显示器及其接口显示器及其接口8.2 8.2 键盘及其接口键盘及其接口键盘及其接口键盘及其接口8.3 8.3 可编程键盘显示器接口可编程键盘显示器接口可编程键盘显示器接口可编程键盘显示器接口INTEL 8279INTEL 8279第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.1 LED显示器及其接口显示器及其接口 8.1.1 LED8.1.1 LED的结构与原理的结构与原理的结构与原理的结构与原理LEDLED显显显显示示
2、示示是是是是由由由由若若若若干干干干个个个个发发发发光光光光二二二二极极极极管管管管组组组组成成成成的的的的,控控控控制制制制不不不不同组合的二极管导通,就能显示出各种字符。同组合的二极管导通,就能显示出各种字符。同组合的二极管导通,就能显示出各种字符。同组合的二极管导通,就能显示出各种字符。在在在在单单单单片片片片机机机机应应应应用用用用系系系系统统统统中中中中通通通通常常常常使使使使用用用用的的的的是是是是七七七七段段段段LEDLED。七七七七段段段段LEDLED中中中中7 7个个个个发发发发光光光光二二二二极极极极管管管管构构构构成成成成字字字字形形形形“8”8”,一一一一个个个个发发发
3、发光二极管构成小数点。光二极管构成小数点。光二极管构成小数点。光二极管构成小数点。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.1.1 LED的结构与原理的结构与原理显显示示字符字符共阴极共阴极段段选码选码共阳极共阳极段段选码选码显显示示字符字符共阴极共阴极段段选码选码共阳极共阳极段段选码选码03FHC0HA77H88H106HF9HB7CH83H25BHA4HC39HC6H34FHB0HD5EHA1H466H99HE79H86H56DH92HF71H8EH67DH82HP73H8CH707HF8HU3EHC1H87FH80Hr31HCEH96FH90Hy6EH91H“灭灭”00
4、HFFHH76H89H第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计N N位位位位LEDLED显显显显示示示示器器器器有有有有N N根根根根位位位位选选选选线线线线和和和和8*N8*N根根根根段段段段选选选选线线线线。根根根根据据据据显显显显示示示示方方方方式式式式不不不不同同同同,位位位位选选选选线线线线与与与与段段段段选选选选线线线线的的的的连连连连接接接接方方方方法法法法不不不不同。同。同。同。段选线控制要显示什么样的字符。段选线控制要显示什么样的字符。段选线控制要显示什么样的字符。段选线控制要显示什么样的字符。位选线则控制要在哪一位上显示这个字符。位选线则控制要在哪一位上显示
5、这个字符。位选线则控制要在哪一位上显示这个字符。位选线则控制要在哪一位上显示这个字符。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.1.2 静态与动态显示静态与动态显示 1 1静态显示原理静态显示原理静态显示原理静态显示原理静态显示是当显示某一字符时,相应的发光二极管静态显示是当显示某一字符时,相应的发光二极管静态显示是当显示某一字符时,相应的发光二极管静态显示是当显示某一字符时,相应的发光二极管恒定地导通或截止。恒定地导通或截止。恒定地导通或截止。恒定地导通或截止。I/OI/O口只要有段码输出,相应字符即显示出来,并口只要有段码输出,相应字符即显示出来,并口只要有段码输出,相应
6、字符即显示出来,并口只要有段码输出,相应字符即显示出来,并保持不变,直到保持不变,直到保持不变,直到保持不变,直到I/OI/O口输出新的段码。口输出新的段码。口输出新的段码。口输出新的段码。较小的电流即可获得较高的亮度,且占用较小的电流即可获得较高的亮度,且占用较小的电流即可获得较高的亮度,且占用较小的电流即可获得较高的亮度,且占用CPUCPU时时时时间少,编程简单。间少,编程简单。间少,编程简单。间少,编程简单。每一个显示位都需要一个每一个显示位都需要一个每一个显示位都需要一个每一个显示位都需要一个8 8位输出口控制,位输出口控制,位输出口控制,位输出口控制,N N位静位静位静位静态显示器就
7、要求有态显示器就要求有态显示器就要求有态显示器就要求有N*8N*8根根根根I/OI/O口线,硬件电路复杂,口线,硬件电路复杂,口线,硬件电路复杂,口线,硬件电路复杂,占用较多资源,只适合于显示位数较少的场合。占用较多资源,只适合于显示位数较少的场合。占用较多资源,只适合于显示位数较少的场合。占用较多资源,只适合于显示位数较少的场合。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.1.2 静态与动态显示静态与动态显示第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.1.2 静态与动态显示静态与动态显示 2 2动态显示接
8、口原理动态显示接口原理动态显示接口原理动态显示接口原理动态显示是一位一位地轮流点亮各位数码管,对动态显示是一位一位地轮流点亮各位数码管,对动态显示是一位一位地轮流点亮各位数码管,对动态显示是一位一位地轮流点亮各位数码管,对于每一位数码管来说,每隔一段时间点亮一次。于每一位数码管来说,每隔一段时间点亮一次。于每一位数码管来说,每隔一段时间点亮一次。于每一位数码管来说,每隔一段时间点亮一次。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.1.2 静态与动态显示静态与动态显示第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.1.2 静态与动态显示静态与动态显示 3.3.动态显示
9、程序设计动态显示程序设计动态显示程序设计动态显示程序设计设在设在设在设在80318031内部内部内部内部RAMRAM的的的的79H7eH79H7eH为显示缓冲区,为显示缓冲区,为显示缓冲区,为显示缓冲区,依次存放依次存放依次存放依次存放6 6个要显示的数据。个要显示的数据。个要显示的数据。个要显示的数据。81558155的的的的A A口输出的字口输出的字口输出的字口输出的字位总是有一位为高电平,位总是有一位为高电平,位总是有一位为高电平,位总是有一位为高电平,81558155的的的的B B口输出相应位口输出相应位口输出相应位口输出相应位(共阴极)的显示数据的七段代码,使某一位显(共阴极)的显示
10、数据的七段代码,使某一位显(共阴极)的显示数据的七段代码,使某一位显(共阴极)的显示数据的七段代码,使某一位显示一个字符,其它位为暗,依次地改变示一个字符,其它位为暗,依次地改变示一个字符,其它位为暗,依次地改变示一个字符,其它位为暗,依次地改变A A口输出口输出口输出口输出的高电平的位,的高电平的位,的高电平的位,的高电平的位,B B口输出对应的七段代码,口输出对应的七段代码,口输出对应的七段代码,口输出对应的七段代码,8 8位显位显位显位显示器就显示出缓冲器中显示数据所确定的字符。示器就显示出缓冲器中显示数据所确定的字符。示器就显示出缓冲器中显示数据所确定的字符。示器就显示出缓冲器中显示数
11、据所确定的字符。程序清单如下:程序清单如下:程序清单如下:程序清单如下:第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计DIR:MOV R0,DIR:MOV R0,79H ;79H ;显示缓冲区首址送显示缓冲区首址送显示缓冲区首址送显示缓冲区首址送R0R0 MOV R3,MOV R3,01H ;01H ;使显示器最右边位亮使显示器最右边位亮使显示器最右边位亮使显示器最右边位亮 MOV A,R3MOV A,R3LD0:MOV DPTR,LD0:MOV DPTR,0101H ;0101H ;扫描值送扫描值送扫描值送扫描值送PAPA口口口口 MOVX DPTR,AMOVX DPTR,A IN
12、C DPTR ;INC DPTR ;指向指向指向指向PBPB口口口口 MOV AMOV A,R0 ;R0 ;取显示数据取显示数据取显示数据取显示数据 ADD A ADD A,12H ;12H ;加上偏移量加上偏移量加上偏移量加上偏移量 MOVX AMOVX A,A+PC ;A+PC ;取出字形取出字形取出字形取出字形 MOVX DPTRMOVX DPTR,A ;A ;送出显示送出显示送出显示送出显示 ACALL DL1 ;ACALL DL1 ;延时延时延时延时 INC R0 ;INC R0 ;缓冲区地址加缓冲区地址加缓冲区地址加缓冲区地址加 1 1 MOV A,R3;MOV A,R3;JB A
13、CC.5,LD1 ;JB ACC.5,LD1 ;扫到第扫到第扫到第扫到第 6 6 个显示位了吗?个显示位了吗?个显示位了吗?个显示位了吗?RL A ;RL A ;没有没有没有没有,R3,R3 左移一位左移一位左移一位左移一位,扫描下一位扫描下一位扫描下一位扫描下一位 MOV R3,AMOV R3,A AJMP LD0 AJMP LD0LD1:RETLD1:RET第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计DSEG:DB 3FH,06H,5BH,4FH,66H,6DH DSEG:DB 3FH,06H,5BH,4FH,66H,6DH DSEG1:DB 7DH,07H,7FH,6FH,7
14、7H,7CH DSEG1:DB 7DH,07H,7FH,6FH,77H,7CH DSEG2:DB 39H,5EH,79H,71H,73H,3EHDSEG2:DB 39H,5EH,79H,71H,73H,3EHDSEG3:DB 31H,61H,1CH,23H,40H,03HDSEG3:DB 31H,61H,1CH,23H,40H,03HDSEG4:DB 18H,00H,00H,00HDSEG4:DB 18H,00H,00H,00H;延时子程序延时子程序延时子程序延时子程序DL1:MOV R7,DL1:MOV R7,02H02HDL:MOV R6,DL:MOV R6,0FFH0FFHDL6:DJN
15、Z R6,DL6DL6:DJNZ R6,DL6 DJNZ R7,DL DJNZ R7,DL RET RET 第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.2 键盘及其接口键盘及其接口 8.2.1 8.2.1 键盘的结构与原理键盘的结构与原理键盘的结构与原理键盘的结构与原理 1 1键盘的结构键盘的结构键盘的结构键盘的结构独立式按键:直接用独立式按键:直接用独立式按键:直接用独立式按键:直接用I/OI/O口线构成的单个按键电路,其特口线构成的单个按键电路,其特口线构成的单个按键电路,其特口线构成的单个按键电路,其特点是每个按键单独占用一根点是每个按键单独占用一根点是每个按键单独占用一
16、根点是每个按键单独占用一根I/OI/O口线,每个按键的工作不口线,每个按键的工作不口线,每个按键的工作不口线,每个按键的工作不会影响其它会影响其它会影响其它会影响其它I/OI/O口线的状态。口线的状态。口线的状态。口线的状态。独立式按键电路、软件简单,但每个按键占用一根独立式按键电路、软件简单,但每个按键占用一根独立式按键电路、软件简单,但每个按键占用一根独立式按键电路、软件简单,但每个按键占用一根I/OI/O口口口口线,因此,在按键较多时,线,因此,在按键较多时,线,因此,在按键较多时,线,因此,在按键较多时,I/OI/O口线浪费较大。口线浪费较大。口线浪费较大。口线浪费较大。第第4章章 单
17、片机汇编语言程序设计单片机汇编语言程序设计8.2.1 8.2.1 键盘的结构与原理键盘的结构与原理键盘的结构与原理键盘的结构与原理矩阵式键盘:由行线和列线组成,按键位于行、矩阵式键盘:由行线和列线组成,按键位于行、矩阵式键盘:由行线和列线组成,按键位于行、矩阵式键盘:由行线和列线组成,按键位于行、列线的交叉点上。列线的交叉点上。列线的交叉点上。列线的交叉点上。矩阵式键盘行线通过上拉电阻接到矩阵式键盘行线通过上拉电阻接到矩阵式键盘行线通过上拉电阻接到矩阵式键盘行线通过上拉电阻接到5V5V上。当无上。当无上。当无上。当无键按下时,行线处于高电平状态;当有键按下时,键按下时,行线处于高电平状态;当有
18、键按下时,键按下时,行线处于高电平状态;当有键按下时,键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线行、列线将导通,此时,行线电平将由与此行线行、列线将导通,此时,行线电平将由与此行线行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。相连的列线电平决定。相连的列线电平决定。相连的列线电平决定。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计 2 2键盘的工作原理与方式键盘的工作原理与方式键盘的工作原理与方式键盘的工作原理与方式单片机系统中普遍使用非编码式键盘,这类键盘采用软件单片机系统中普遍使用非编码式键盘,这类键盘采用软件单片机系统
19、中普遍使用非编码式键盘,这类键盘采用软件单片机系统中普遍使用非编码式键盘,这类键盘采用软件编编编编/译码的方式,通过扫描,对每个被按下的键判别输出译码的方式,通过扫描,对每个被按下的键判别输出译码的方式,通过扫描,对每个被按下的键判别输出译码的方式,通过扫描,对每个被按下的键判别输出相应的键码。主要需要解决以下几个问题:相应的键码。主要需要解决以下几个问题:相应的键码。主要需要解决以下几个问题:相应的键码。主要需要解决以下几个问题:键的识别:是否有键按下以及识别哪个键按下。键的识别:是否有键按下以及识别哪个键按下。键的识别:是否有键按下以及识别哪个键按下。键的识别:是否有键按下以及识别哪个键按
20、下。防抖动:由于机械开关在转换状态时有信号的抖动,故防抖动:由于机械开关在转换状态时有信号的抖动,故防抖动:由于机械开关在转换状态时有信号的抖动,故防抖动:由于机械开关在转换状态时有信号的抖动,故必须考虑防抖动的问题。抖动时间长短与开关的机械特性必须考虑防抖动的问题。抖动时间长短与开关的机械特性必须考虑防抖动的问题。抖动时间长短与开关的机械特性必须考虑防抖动的问题。抖动时间长短与开关的机械特性有关,一般为有关,一般为有关,一般为有关,一般为510ms510ms之间。之间。之间。之间。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计 键的保护:当键盘中同时有两个或两个以上的键的保护:当键
21、盘中同时有两个或两个以上的键的保护:当键盘中同时有两个或两个以上的键的保护:当键盘中同时有两个或两个以上的键被按下时产生保护作用,此时任何一个键的编键被按下时产生保护作用,此时任何一个键的编键被按下时产生保护作用,此时任何一个键的编键被按下时产生保护作用,此时任何一个键的编码信息都不进入单片机,直至仅剩下一个键保持码信息都不进入单片机,直至仅剩下一个键保持码信息都不进入单片机,直至仅剩下一个键保持码信息都不进入单片机,直至仅剩下一个键保持闭合时,该键的编码信息方能进入,这样可以避闭合时,该键的编码信息方能进入,这样可以避闭合时,该键的编码信息方能进入,这样可以避闭合时,该键的编码信息方能进入,
22、这样可以避免误操作信号进入单片机。免误操作信号进入单片机。免误操作信号进入单片机。免误操作信号进入单片机。非编码式键盘识别按键的方法有两种:一是行扫非编码式键盘识别按键的方法有两种:一是行扫非编码式键盘识别按键的方法有两种:一是行扫非编码式键盘识别按键的方法有两种:一是行扫描法,二是线反转法。描法,二是线反转法。描法,二是线反转法。描法,二是线反转法。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计 1)行扫描法行扫描法第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计键位与行列线关系表键位与行列线关系表第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计 2)线反转法线反转
23、法第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.2.1 8.2.1 键盘的结构与原理键盘的结构与原理键盘的结构与原理键盘的结构与原理 3.3.键盘的工作方式键盘的工作方式键盘的工作方式键盘的工作方式 键盘的工作方式有三种:编程扫描、定时扫描和中键盘的工作方式有三种:编程扫描、定时扫描和中键盘的工作方式有三种:编程扫描、定时扫描和中键盘的工作方式有三种:编程扫描、定时扫描和中断扫描。断扫描。断扫描。断扫描。编程扫描方式:利用单片机完成其它工作的空余时编程扫描方式:利用单片机完成其它工作的空余时编程扫描方式:利用单片机完成其它工作的空余时编程扫描方式:利用单片机完成其它工作的空余时间
24、,调用键盘扫描子程序来响应键盘输入的要求。间,调用键盘扫描子程序来响应键盘输入的要求。间,调用键盘扫描子程序来响应键盘输入的要求。间,调用键盘扫描子程序来响应键盘输入的要求。在执行按键对应的功能程序时,单片机不再响应键在执行按键对应的功能程序时,单片机不再响应键在执行按键对应的功能程序时,单片机不再响应键在执行按键对应的功能程序时,单片机不再响应键输入要求,直到单片机重新扫描键盘为止。输入要求,直到单片机重新扫描键盘为止。输入要求,直到单片机重新扫描键盘为止。输入要求,直到单片机重新扫描键盘为止。定时扫描方式:每隔一段时间对键盘扫描一次,它定时扫描方式:每隔一段时间对键盘扫描一次,它定时扫描方
25、式:每隔一段时间对键盘扫描一次,它定时扫描方式:每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如利用单片机内部的定时器产生一定时间(例如利用单片机内部的定时器产生一定时间(例如利用单片机内部的定时器产生一定时间(例如10 10 msms)的定时,当定时时间到就产生定时器溢出中)的定时,当定时时间到就产生定时器溢出中)的定时,当定时时间到就产生定时器溢出中)的定时,当定时时间到就产生定时器溢出中断。断。断。断。CPUCPU响应中断后对键盘进行扫描,并在有键按响应中断后对键盘进行扫描,并在有键按响应中断后对键盘进行扫描,并在有键按响应中断后对键盘进行扫描,并在有键按下时识别出
26、该键,再执行该键的功能程序。下时识别出该键,再执行该键的功能程序。下时识别出该键,再执行该键的功能程序。下时识别出该键,再执行该键的功能程序。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计中中中中断断断断扫扫扫扫描描描描方方方方式式式式:采采采采用用用用上上上上述述述述两两两两种种种种键键键键盘盘盘盘扫扫扫扫描描描描方方方方式式式式时时时时,无无无无论论论论是是是是否否否否按按按按键键键键,单单单单片片片片机机机机都都都都要要要要定定定定时时时时扫扫扫扫描描描描键键键键盘盘盘盘,而而而而单单单单片片片片机机机机应应应应用用用用系系系系统统统统工工工工作作作作时时时时,并并并并非非非非
27、经经经经常常常常需需需需要要要要键键键键盘盘盘盘输输输输入入入入,因因因因此此此此,单单单单片片片片机机机机经经经经常常常常处处处处于于于于空空空空扫扫扫扫描描描描状状状状态态态态。为为为为提提提提高高高高单单单单片片片片机机机机工工工工作作作作效效效效率率率率,可可可可采采采采用用用用中中中中断断断断扫扫扫扫描描描描工工工工作作作作方方方方式式式式。其其其其工工工工作作作作过过过过程程程程如如如如下下下下:当当当当无无无无键键键键按按按按下下下下时时时时,CPUCPU处处处处理理理理自自自自己己己己的的的的工工工工作作作作,当当当当有有有有键键键键按按按按下下下下时时时时,产产产产生生生生中
28、中中中断断断断请请请请求求求求,CPUCPU转转转转去去去去执执执执行行行行键键键键盘扫描子程序,并识别键号。盘扫描子程序,并识别键号。盘扫描子程序,并识别键号。盘扫描子程序,并识别键号。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.2.2 键盘接口电路键盘接口电路将键盘的列线接到单片机的输出端,将键盘的列线接到单片机的输出端,将键盘的列线接到单片机的输出端,将键盘的列线接到单片机的输出端,CPUCPU依次向各列线发依次向各列线发依次向各列线发依次向各列线发送低电平(称为扫描),键盘的行线接到单片机的输入口,送低电平(称为扫描),键盘的行线接到单片机的输入口,送低电平(称为扫描)
29、,键盘的行线接到单片机的输入口,送低电平(称为扫描),键盘的行线接到单片机的输入口,CPUCPU检测行线的电平。检测行线的电平。检测行线的电平。检测行线的电平。采用采用采用采用81558155接口芯片的键盘接口电路如下图:接口芯片的键盘接口电路如下图:接口芯片的键盘接口电路如下图:接口芯片的键盘接口电路如下图:第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.2.2 键盘接口电路键盘接口电路下面的程序是用行扫描法进行按键识别的程序,其中下面的程序是用行扫描法进行按键识别的程序,其中下面的程序是用行扫描法进行按键识别的程序,其中下面的程序是用行扫描法进行按键识别的程序,其中KS1 KS
30、1 为判键闭合的子程序。为判键闭合的子程序。为判键闭合的子程序。为判键闭合的子程序。有键闭合时(有键闭合时(有键闭合时(有键闭合时(A A)=0=0。DIRDIR为数码为数码为数码为数码显示器扫描显示子程序,执行一遍的时间约显示器扫描显示子程序,执行一遍的时间约显示器扫描显示子程序,执行一遍的时间约显示器扫描显示子程序,执行一遍的时间约6 ms6 ms。程序程序程序程序执行后执行后执行后执行后,若键闭合若键闭合若键闭合若键闭合,键值存入键值存入键值存入键值存入A A中中中中,键值的计算公式是:键键值的计算公式是:键键值的计算公式是:键键值的计算公式是:键值值值值=行号行号行号行号4+4+列号;
31、若无键闭合,则列号;若无键闭合,则列号;若无键闭合,则列号;若无键闭合,则A A中存入标志中存入标志中存入标志中存入标志FFHFFH。KEY1:LCALL KS1 ;KEY1:LCALL KS1 ;检查有无闭合键检查有无闭合键检查有无闭合键检查有无闭合键?JNZ LK1 ;JNZ LK1 ;(A A)=0=0,有键闭合则转,有键闭合则转,有键闭合则转,有键闭合则转 LJMP LK8 ;LJMP LK8 ;无闭合键则返回无闭合键则返回无闭合键则返回无闭合键则返回 LK1:LCALL DIR ;LK1:LCALL DIR ;延时延时延时延时 12 ms12 ms LCALL DIR ;LCALL
32、DIR ;清抖清抖清抖清抖 LCALL LS1 ;LCALL LS1 ;再检查有键闭合否再检查有键闭合否再检查有键闭合否再检查有键闭合否?JNZ LK2 ;JNZ LK2 ;有键闭合则转有键闭合则转有键闭合则转有键闭合则转 LJMP LK8 ;LJMP LK8 ;无键闭合则返回无键闭合则返回无键闭合则返回无键闭合则返回 LK2:MOV R3LK2:MOV R3,00H ;00H ;行号初值送行号初值送行号初值送行号初值送R3R3 MOV R2 MOV R2,FEH ;FEH ;行扫描初值送行扫描初值送行扫描初值送行扫描初值送R2R2第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.2
33、.2 键盘接口电路键盘接口电路LK3:MOV DPTRLK3:MOV DPTR,0101H ;0101H ;指向指向指向指向 8155 8155 口口口口A A MOV A MOV A,R2 ;R2 ;行扫描值送行扫描值送行扫描值送行扫描值送A A MOVX DPTR MOVX DPTR,A ;A ;扫描扫描扫描扫描 1 1 行行行行 INC DPTRINC DPTR INC DPTR ;INC DPTR ;指向指向指向指向 8155 8155 口口口口C C MOVX A MOVX A,DPTR ;DPTR ;读入列值读入列值读入列值读入列值 ANL AANL A,0FH ;0FH ;保留低
34、保留低保留低保留低 4 4 位位位位 MOV R4MOV R4,A ;A ;暂存列值暂存列值暂存列值暂存列值 CJNZ ACJNZ A,0FH0FH,LK4 ;LK4 ;列值非全列值非全列值非全列值非全“1”1”则转则转则转则转 MOV AMOV A,R2 ;R2 ;行扫描值送行扫描值送行扫描值送行扫描值送A A JNB ACC.7 JNB ACC.7,LK8 ;LK8 ;扫至最后一行则转扫至最后一行则转扫至最后一行则转扫至最后一行则转 RL A ;RL A ;未扫完,则移至下一行未扫完,则移至下一行未扫完,则移至下一行未扫完,则移至下一行 MOV R2 MOV R2,A ;A ;行值存入行值
35、存入行值存入行值存入R2 R2 中中中中 INC R3 ;INC R3 ;行号加行号加行号加行号加 1 1 SJMP LK3 ;SJMP LK3 ;转至扫描下一行转至扫描下一行转至扫描下一行转至扫描下一行 第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.2.2 键盘接口电路键盘接口电路LK4:MOV ALK4:MOV A,R3 ;R3 ;行号送入行号送入行号送入行号送入A A ADD A ADD A,R3 ;R3 ;行号行号行号行号22 MOV R5 MOV R5,A A ADD A ADD A,R5 ;R5 ;行号行号行号行号44 MOV R5 MOV R5,A ;A ;存入存入
36、存入存入R5 R5 中中中中 MOV A MOV A,R4 ;R4 ;列值送列值送列值送列值送A A LK5:RRC A ;LK5:RRC A ;右移一位右移一位右移一位右移一位 JNC LK6 ;JNC LK6 ;该位为该位为该位为该位为 0 0 则转则转则转则转 INC R5 ;INC R5 ;列号加列号加列号加列号加 1 1 SJMP LK5 ;SJMP LK5 ;列号未判完则继续列号未判完则继续列号未判完则继续列号未判完则继续LK6:MOV 20HLK6:MOV 20H,R5 ;R5 ;存键值存键值存键值存键值LK7:LCALL DIR ;LK7:LCALL DIR ;扫描一遍显示器扫
37、描一遍显示器扫描一遍显示器扫描一遍显示器 LCALL KS1 ;LCALL KS1 ;发扫描信号发扫描信号发扫描信号发扫描信号 JNZ LK7 ;JNZ LK7 ;键未释放等待键未释放等待键未释放等待键未释放等待 LCALL DIR ;LCALL DIR ;键已释放键已释放键已释放键已释放 LCALL DIR ;LCALL DIR ;延时延时延时延时 12 ms12 ms,清抖,清抖,清抖,清抖 MOV AMOV A,20H ;20H ;键值存入键值存入键值存入键值存入A A中中中中第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.2.2 键盘接口电路键盘接口电路KND:RET KN
38、D:RET LK8:MOV ALK8:MOV A,FFH ;FFH ;无键标志无键标志无键标志无键标志FFHFFH存入存入存入存入A A中中中中 RET RET KS1:MOV DPTR KS1:MOV DPTR,0101H ;0101H ;判键子程序判键子程序判键子程序判键子程序 MOV AMOV A,00H ;00H ;全扫描信号全扫描信号全扫描信号全扫描信号 MOVX DPTRMOVX DPTR,A ;A ;发全扫描信号发全扫描信号发全扫描信号发全扫描信号 INC DPTRINC DPTR INC DPTR ;INC DPTR ;指向指向指向指向81558155口口口口C C MOVX
39、A MOVX A,DPTR ;DPTR ;读入列值读入列值读入列值读入列值 ANL AANL A,0FH ;0FH ;保留低保留低保留低保留低4 4位位位位 ORL A ORL A,F0H ;F0H ;高高高高4 4位取位取位取位取“1”1”CPL A CPL A ;取反,无键按下则全取反,无键按下则全取反,无键按下则全取反,无键按下则全“0”0”RET RET 第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.3 可编程键盘显示器接口INTEL 8279 82798279是是IntelIntel公司生产的通用可编程键盘公司生产
40、的通用可编程键盘/显示器接口芯片,显示器接口芯片,它包含有键盘输入和显示器输出两种功能。它包含有键盘输入和显示器输出两种功能。8.3.1 82798.3.1 8279的结构与原理的结构与原理的结构与原理的结构与原理第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.3.1 8279的结构与原理的结构与原理 1.I/O1.I/O控制及数据缓冲器控制及数据缓冲器控制及数据缓冲器控制及数据缓冲器I/OI/O控制线是控制线是CPUCPU对对82798279进行控制的引线,对应的引脚为进行控制的引线,对应的引脚为数据选择线数据选择线A0A0、片选线、片选线CSCS、读信号线、读信号线RDRD和写
41、信号和写信号WRWR。数据缓冲器是双向缓冲器,连接内外总线,用于传送数据缓冲器是双向缓冲器,连接内外总线,用于传送CPUCPU和和82798279之间的命令或数据,对应的引脚为数据总线之间的命令或数据,对应的引脚为数据总线DB0DB7DB0DB7。2.2.控制与定时寄存器及定时控制控制与定时寄存器及定时控制控制与定时寄存器及定时控制控制与定时寄存器及定时控制控制与定时寄存器用来寄存键盘及显示工作方式控制字,控制与定时寄存器用来寄存键盘及显示工作方式控制字,同时还用来寄存其它操作方式控制字。与其对应的引脚为同时还用来寄存其它操作方式控制字。与其对应的引脚为时钟输入端时钟输入端CLKCLK,复位端
42、,复位端RESETRESET。定时控制电路由定时控制电路由N N个基本计数器(个基本计数器(N=231N=231)组成,其中)组成,其中第一个计数器是可编程的第一个计数器是可编程的N N级计数器,由软件编程将外部级计数器,由软件编程将外部输入时钟输入时钟CLKCLK进行分频,产生进行分频,产生100kHz100kHz的内部定时信号,的内部定时信号,为键盘提供适当的扫描频率和显示扫描时间。为键盘提供适当的扫描频率和显示扫描时间。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.3.1 8279的结构与原理的结构与原理 3.3.扫描计数器扫描计数器扫描计数器扫描计数器扫描计数器为键盘和显
43、示器共用,可提供二者所需的扫描扫描计数器为键盘和显示器共用,可提供二者所需的扫描信号。信号。它有两种工作方式,按编码方式工作时,计数器以二进制它有两种工作方式,按编码方式工作时,计数器以二进制方式计数,方式计数,4 4位计数状态从扫描线位计数状态从扫描线SL3SL0SL3SL0输出,为键盘输出,为键盘和显示器提供出和显示器提供出1616位扫描线;按译码方式工作时,扫描计位扫描线;按译码方式工作时,扫描计数器的低二位译码后从数器的低二位译码后从SL3SL0SL3SL0输出,提供输出,提供4 4选选1 1的扫描译的扫描译码。码。4.4.回复缓冲器与键盘去抖动控制电路回复缓冲器与键盘去抖动控制电路回
44、复缓冲器与键盘去抖动控制电路回复缓冲器与键盘去抖动控制电路在逐行列扫描时,回复线用来搜寻每一行列中闭合的键,在逐行列扫描时,回复线用来搜寻每一行列中闭合的键,当某一键闭合时,去抖电路被置位,延时等待当某一键闭合时,去抖电路被置位,延时等待10ms10ms后,后,再检查该键是否仍处在闭合状态。再检查该键是否仍处在闭合状态。5 5FIFOFIFO传感器传感器传感器传感器RAMRAM和显示器和显示器和显示器和显示器RAMRAM82798279具有多个先进先出的键输入缓冲器,并提供具有多个先进先出的键输入缓冲器,并提供1616个字个字节的显示数据缓冲器。节的显示数据缓冲器。CPUCPU将段数据写入显示
45、缓冲器,将段数据写入显示缓冲器,82798279自动对显示器扫描,将其内部显示缓冲器中的数据在自动对显示器扫描,将其内部显示缓冲器中的数据在显示器上显示出来。显示器上显示出来。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.3.2 8279的引脚与功能的引脚与功能 1.82791.8279的引脚的引脚的引脚的引脚82798279为为4040引脚双列直插封装,引脚排列及功能如图所示。引脚双列直插封装,引脚排列及功能如图所示。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.3.2 8279的引脚与功能的引脚与功能D0D7D0D7:双向三态数据总线,和系统数据总线相连,用于:
46、双向三态数据总线,和系统数据总线相连,用于CPUCPU和和82798279间的数据命令传送。间的数据命令传送。CLKCLK:系统时钟输入端,提供:系统时钟输入端,提供82798279内部时钟。内部时钟。RESETRESET:复位输入线,当:复位输入线,当RESET=1RESET=1时,时,82798279复位。复位。CSCS:片选信号输入端,当:片选信号输入端,当CS=0CS=0时,允许时,允许CPUCPU对其读、写对其读、写操作。操作。A0A0:命令:命令/数据选择位,当数据选择位,当A0=1A0=1时,时,CPUCPU写入写入82798279的信的信息为命令,息为命令,CPUCPU从从82
47、798279读出的信息为状态。当读出的信息为状态。当A0=0A0=0时,时,I IOO信息都为数据。信息都为数据。RDRD、WRWR:读、写信号输入端,低电平有效。:读、写信号输入端,低电平有效。IRQIRQ:中断请求输出线,高电平有效。:中断请求输出线,高电平有效。SL3SL0SL3SL0:扫描输出线。用来扫描键盘和显示器。它们可:扫描输出线。用来扫描键盘和显示器。它们可以编程为编码(以编程为编码(4 4选选1 1)或译码输出()或译码输出(1616选选1 1)。)。RL7RL0RL7RL0:反馈输入线,它们是键盘矩阵或传感器矩阵的:反馈输入线,它们是键盘矩阵或传感器矩阵的列(或行)信号输入
48、线。列(或行)信号输入线。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.3.2 8279的引脚与功能的引脚与功能SHIFTSHIFT、CNTLCNTLSTBSTB:控制键输入线,:控制键输入线,SHIFTSHIFT是换档,是换档,CNTLCNTL为控制,为控制,STVSTV为选通。为选通。OUTA3 OUTA0OUTA3 OUTA0、OUTB3 OUTB0OUTB3 OUTB0:显示段数据输出线,:显示段数据输出线,可分别作为两个半字节输出,也可作为可分别作为两个半字节输出,也可作为8 8位段数据输出口。位段数据输出口。BDBD:显示消隐输出线,低电平有效。该信号在数字切换:显示
49、消隐输出线,低电平有效。该信号在数字切换显示或使用消隐命令时,将显示消隐。显示或使用消隐命令时,将显示消隐。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计2.8279的输入和输出方式其输入方式包括:(1)扫描键盘带有编码扫描线(88键键盘)或译码扫描线(48键键盘)。每按一下按键,就产生一个表示按键位置的6位编码。按键的位置信息以及字型变换和控制状态都被存储在FIFO中,所有按键都以两键连锁或N键巡回的方式自动回跳。(2)扫描传感器阵列带有编码扫描线(88阵列开关)或译码扫描线(48阵列开关),按键的状态(打开或闭合)被存储在可由CPU寻址的RAM中。其输出方式包括:(1)8字符或1
50、6字符的多路切换式显示器。该显示器可被组合成双排4位或单排8位形式(B0=D0,A3=D7)。(2)右端输入或左端输入的显示格式。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.3.3 8279的控制字的控制字 1 1操作命令控制字操作命令控制字操作命令控制字操作命令控制字82798279操作命令控制字共有操作命令控制字共有8 8条:条:(1 1)键盘显示方式设置命令字)键盘显示方式设置命令字D7D7,D6D6,D5=000D5=000为方式设置命令待征位。为方式设置命令待征位。第第4章章 单片机汇编语言程序设计单片机汇编语言程序设计8.3.3 8279的控制字的控制字D4D4,D