1、1第八章第八章 单片机的人机接口单片机的人机接口v 8.1 键盘接口键盘接口 8.1.1 键盘的工作原理和扫描方式键盘的工作原理和扫描方式 键盘的结构:键盘的结构:1 1、独立式键盘、独立式键盘2第八章第八章 单片机的人机接口单片机的人机接口 2 2、矩阵式键盘、矩阵式键盘P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0。+5V按键3第八章第八章 单片机的人机接口单片机的人机接口v 3种键盘扫描方式1 1、程序控制扫描方式程序控制扫描方式在主程序中用一段专门的在主程序中用一段专门的扫描和读键程序来检查有无键按下,并确定键值。扫描和读键程序来检查有无键按下,并确定键值。2 2、定
2、时扫描方式定时扫描方式利用单片机内的定时器来产生利用单片机内的定时器来产生定时中断,然后在定时中断的服务程序中扫描和读定时中断,然后在定时中断的服务程序中扫描和读键,检查有无键按下,并确定键值。键,检查有无键按下,并确定键值。3 3、中断扫描方式中断扫描方式当有键按下时由相应的硬件电当有键按下时由相应的硬件电路产生中断信号,单片机在中断服务程序中扫描和路产生中断信号,单片机在中断服务程序中扫描和读键,再次检查有无键按下,并确定键值。读键,再次检查有无键按下,并确定键值。4第八章第八章 单片机的人机接口单片机的人机接口5判断键盘中有无键按下。判断键盘中有无键按下。单片机先使单片机先使8255A的
3、的A口的各位口的各位PA0PA3均为低电平,再读均为低电平,再读C口口(PC0PC3)。若。若C口的各口的各位不全为高电平位不全为高电平,则表示有键按下。,则表示有键按下。消除抖动。消除抖动。先延时先延时10ms,然后再读,然后再读C口,此时,若口,此时,若C口各位仍口各位仍不全为高电平,说明确实有键按下。不全为高电平,说明确实有键按下。第八章第八章 单片机的人机接口单片机的人机接口6第八章第八章 单片机的人机接口单片机的人机接口v求键号。求键号。过程如下:先置过程如下:先置PA0PA00 0,PA1PA1PA3PA3均为均为1 1,再读再读C C口,由口,由C C口低电平的位置便可确定按下键
4、的位口低电平的位置便可确定按下键的位置。例如,若在置。例如,若在PA0PA00 0时时PC0=0PC0=0,那么是,那么是0 0号键按下号键按下。键码值高。键码值高4 4位是键所在行号,低位是键所在行号,低4 4位是键所在列的位是键所在列的号码。号码。7第八章第八章 单片机的人机接口单片机的人机接口 扫描与读键程序:扫描与读键程序:(1.(1.判断有无键按下子程序判断有无键按下子程序)JUDGE:MOV DPTR,#0FFDDH ;8255A JUDGE:MOV DPTR,#0FFDDH ;8255A口地址口地址 MOV A,#00HMOV A,#00H MOVX DPTR,A ;AMOVX
5、DPTR,A ;A口输出低电平口输出低电平 INC DPTRINC DPTR INC DPTRINC DPTR MOVX A,DPTR ;MOVX A,DPTR ;从从C C口读数据口读数据 CPL ACPL A ANL A,#0FH ;ANL A,#0FH ;取低四位取低四位 RETRET8第八章第八章 单片机的人机接口单片机的人机接口(2.2.读键程序)读键程序)KEY1:ACALL JUDGE ;KEY1:ACALL JUDGE ;看有否键按下看有否键按下 JNZ LK1 ;JNZ LK1 ;有键按下,跳转至按键处理有键按下,跳转至按键处理 ACALL DELAYACALL DELAY
6、AJMP KEY1 ;AJMP KEY1 ;无键则延时后再扫描无键则延时后再扫描LK1:ACALL DELAY ;LK1:ACALL DELAY ;延时去抖动延时去抖动 JNZ LK2 JNZ LK2 ;再次判断有无键;再次判断有无键 ACALL DELAYACALL DELAY ALMP KEY1 ;ALMP KEY1 ;无键则延时后再扫描无键则延时后再扫描LK2:MOV R2,#0EH ;LK2:MOV R2,#0EH ;扫描列线扫描列线 MOV R4,#00H ;MOV R4,#00H ;列号列号LK3:MOV DPTR,#0FFDDHLK3:MOV DPTR,#0FFDDH MOV A
7、,R2 MOV A,R2 MOVX DPTR,A ;MOVX DPTR,A ;送送0EH0EH至至A A口口 INC DPTRINC DPTR INC DPTR INC DPTR MOVX A,DPTR ;MOVX A,DPTR ;从从C C口读入口读入9第八章第八章 单片机的人机接口单片机的人机接口JB ACC.0,LINE1 ;JB ACC.0,LINE1 ;第第0 0行为行为1 1表示无键,则转表示无键,则转1 1行行 MOV A,#00HMOV A,#00H AJMP LKP AJMP LKPLINE1:JB ACC.1,LINE2 ;LINE1:JB ACC.1,LINE2 ;第第1
8、 1行为行为1 1表示无键,则转表示无键,则转2 2行行 MOV A,#04HMOV A,#04H AJMP LKP AJMP LKPLINE2:JB ACC.2,LINE3 ;LINE2:JB ACC.2,LINE3 ;第第2 2行为行为1 1表示无键,则转表示无键,则转3 3行行 MOV A,#08HMOV A,#08H AJMP LKP AJMP LKPLINE3:JB ACC.3,NEXT ;LINE3:JB ACC.3,NEXT ;第第3 3行为行为1 1表示无键,则转表示无键,则转NEXTNEXT MOV A,#0CH MOV A,#0CHLKP:ADD A,R4LKP:ADD A
9、,R4 PUSH ACC PUSH ACCNT:ACALL DELAYNT:ACALL DELAY ACALL JUDGE ACALL JUDGE JNZ NT JNZ NT POP ACC POP ACC10第八章第八章 单片机的人机接口单片机的人机接口 RET NEXT:INC R4 MOV A,R2 JNB ACC.3,KND ;判断整个判断整个4 44 4键盘是否扫描结束键盘是否扫描结束 RL A MOV R2,A ;扫描下一列扫描下一列 AJMP LK3KND:AJMP KEY111第八章第八章 单片机的人机接口单片机的人机接口 LED显示器是由发光二极管构成的字段组成的显示器显示器
10、是由发光二极管构成的字段组成的显示器 分类:分类:8段和段和16段段LEDLED显示器显示器 连接方法:共阴极和共阳极连接方法:共阴极和共阳极a ab bc cd de ef fg ga ab bc cd de ef fg gh hi ij jk kl lm mn n12第八章第八章 单片机的人机接口单片机的人机接口 字型码表:字型码表:通过字符查到相应通过字符查到相应 的字型码。的字型码。排列顺序:排列顺序:dp/g/f/e/d/c/b/a 例如例如“0”的字型码,共阴的字型码,共阴 极为极为3FH,共阳极为,共阳极为0C0H13第八章第八章 单片机的人机接口单片机的人机接口v静态显示静态显
11、示需要显示的字符的各字段连续通电,所显示的字段连续发光。v动态显示动态显示所需显示字段断续通以电流,在需要多个字符同时显示时,可以轮流给每一个字符通以电流,逐次把所需显示的字符显示出来。14第八章第八章 单片机的人机接口单片机的人机接口v 1.静态显示电路1)、本身的静态端口(、本身的静态端口(P1口)或扩展的口)或扩展的IO端口直接与端口直接与LED电路连接;电路连接;2)、利用本身的串行端口、利用本身的串行端口TXD和和RXD与与LED电路连接电路连接(让串行让串行接口工作在方式接口工作在方式0:RXD串行串行I/O、TXD移位脉冲移位脉冲)。15第八章第八章 单片机的人机接口单片机的人机
12、接口 1.静态显示程序静态显示程序 DIR:SETB P3.3 MOV R7 ,#08H ;循环次数为循环次数为8次次 MOV R0 ,6FH ;先送最后一个显示字符;先送最后一个显示字符 DI0:MOV A ,R0 ;取显示的数据;取显示的数据 ADD A,#e ;加上字形码表的偏移量;加上字形码表的偏移量 MOVC A ,A+PC ;取字形码取字形码 MOV SBUF ,A ;送出显示送出显示 DI1:JNB TI ,DIl ;查询输出完否查询输出完否?CLR TI DEC R0 DJNZ R7,DI0 CLR P3.3 RET16第八章第八章 单片机的人机接口单片机的人机接口TBT:DB
13、 0COH,0F9H,0A4HTBLl:DB 0BOH,99H,92HTBL2:DB 82H,0F8H,80HTBL3:DB 90H,00H,00H17第八章第八章 单片机的人机接口单片机的人机接口 2动态显示电路动态显示电路18第八章第八章 单片机的人机接口单片机的人机接口 2.动态显示程序动态显示程序 DIRDIR:MOV R0 MOV R0,#6AH#6AH ;显示缓冲区首地址送显示缓冲区首地址送R0R0 MOV R3 MOV R3,#01H#01H ;指向最右位;指向最右位 MOV A MOV A ,R3 R3 DIO:MOV DPTR DIO:MOV DPTR,#0101H#0101
14、H ;DPTRDPTR指向指向8155PA8155PA口口 MOVX DPTRMOVX DPTR,A A INC DPTR INC DPTR MOV A MOV A ,R0R0 ADD A ,#12H ADD A ,#12H ;加上字形码表的偏移量;加上字形码表的偏移量 MOVC A ,A+PCMOVC A ,A+PC MOVX DPTR,A MOVX DPTR,A ACALI ACALI,DELAY1 DELAY1 ;调;调1ms1ms子程序子程序 INC R0INC R0 MOV A,R3 MOV A,R3 JB ACC.6,DI1 JB ACC.6,DI1 ;查;查6 6个显示位扫完否?
15、个显示位扫完否?RL ARL A MOV R3,A MOV R3,A AJMP DI0 AJMP DI0 DI1 DI1:RETRET19第八章第八章 单片机的人机接口单片机的人机接口CODE: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 18H,00H,00H,00H;共阴极段码表;共阴极段码表 END DELAY1:MOV R7,#02H;延时;延时1ms DE1:MOV R6,#0FFH DE2:DJNZ R6,D
16、E2 DJNZ R7,DE1 RET20第八章第八章 单片机的人机接口单片机的人机接口 用液晶制成的显示器是一种被动式显示器件,用液晶制成的显示器是一种被动式显示器件,液晶本身并不发光,而是借助自然光或外来光源显液晶本身并不发光,而是借助自然光或外来光源显示数码。示数码。21第八章第八章 单片机的人机接口单片机的人机接口 1、LCD显示器的接口电路显示器的接口电路 SED1335 特点特点:(1)有较强功能的)有较强功能的I/O缓冲器;缓冲器;(2)指令功能丰富;)指令功能丰富;(3)四位数据并行发送,最大驱动能力为)四位数据并行发送,最大驱动能力为640256点阵。点阵。22第八章第八章 单
17、片机的人机接口单片机的人机接口SED1335的电路原理图的电路原理图23第八章第八章 单片机的人机接口单片机的人机接口8.4 8279专用键盘显示器专用键盘显示器功能:功能:接收来自键盘的输入数据,并作预处理;接收来自键盘的输入数据,并作预处理;数据显示的管理和数据显示器的控制。数据显示的管理和数据显示器的控制。内部资源:内部资源:16168 8显示数据显示数据RAMRAM,每个单元寄存,每个单元寄存1 1个字符的个字符的8 8位显示代码,位显示代码,能将能将1616个数据分时送到个数据分时送到1616个显示器并显示出来。个显示器并显示出来。为显示数据为显示数据RAM输出同步扫描信号。通过命令
18、字可选择显示输出同步扫描信号。通过命令字可选择显示器的器的4种工作方式即左端入、右端输入、种工作方式即左端入、右端输入、8位字符显示、位字符显示、16位位字符显示。字符显示。8个字节的键盘个字节的键盘FIFO的的RAM(先入先出堆栈),每按一次键(先入先出堆栈),每按一次键8279便自动进行编码,并送便自动进行编码,并送FIFO RAM 中。中。24第八章第八章 单片机的人机接口单片机的人机接口8279的内部原理图的内部原理图25第八章第八章 单片机的人机接口单片机的人机接口 1输出输入信号 DB0一一DB7:双向数据总线,用于传送命令字和数据。双向数据总线,用于传送命令字和数据。RL0 RL
19、0一一RL7RL7:键盘回送线,当某一个键闭合时变低电平键盘回送线,当某一个键闭合时变低电平,在选通输入方式下在选通输入方式下,这些输入端亦可用作,这些输入端亦可用作8 8位输入线位输入线;SL0SL3(扫描线):(扫描线):输出为键盘扫描线及显示位控输出线;输出为键盘扫描线及显示位控输出线;OUTAO OUTAOOUTA3OUTA3,OUTB0OUTB0OUTB3OUTB3:显示寄存器输出线。显示寄存器输出线。SHIFT(换档信号):(换档信号):输入,高有效。该信号线用来扩充键开关的功能。输入,高有效。该信号线用来扩充键开关的功能。CNTL/STB(控制(控制/选通):选通):输入,高电平
20、有效输入,高电平有效,在键盘工作方式时,作为在键盘工作方式时,作为控制功能键使用控制功能键使用,在选通方式时,该信号的上升沿可以将来自在选通方式时,该信号的上升沿可以将来自RL0-RL7的的数据存入数据存入FIFO存储器,在传感器方式,无效存储器,在传感器方式,无效;BD BD(消隐显示):(消隐显示):输出,低有效。该输出信号在数字切换显示或使用显输出,低有效。该输出信号在数字切换显示或使用显示消隐命令时,将显示消隐。示消隐命令时,将显示消隐。26第八章第八章 单片机的人机接口单片机的人机接口RD(读信号)和(读信号)和WR(写信号):(写信号):输入,低有效输入,低有效,使使8279数据缓
21、数据缓冲器向外部总线发送数据或从外部总线接收数据;冲器向外部总线发送数据或从外部总线接收数据;CLK:外部时钟输入信号,外部时钟输入信号,8279设置定时器将外部时钟变为内设置定时器将外部时钟变为内部时钟,其内部基频外部时钟定标器值部时钟,其内部基频外部时钟定标器值CS,当,当CS=1时时,信息的传送地址为片内命令字寄存器,信息的传送地址为片内命令字寄存器,CS=0时,则传送时,则传送的信息将作为数据与的信息将作为数据与16X 8显示数据存贮器或显示数据存贮器或FIFO RAM进行进行交换,其传送方向由交换,其传送方向由RD或或WR确定;确定;A0:缓冲器地址线;缓冲器地址线;IRQ:中断请求
22、线,高电平有效。在键盘工作方式下,若中断请求线,高电平有效。在键盘工作方式下,若FIFO传感器传感器RAM中有数则中有数则IRQ变高,经反相后向单片机请求中变高,经反相后向单片机请求中断。断。27第八章第八章 单片机的人机接口单片机的人机接口8279的键盘显示器电路的键盘显示器电路28第八章第八章 单片机的人机接口单片机的人机接口 8.4.3 8279的键盘显示器电路的键盘显示器电路 8.4.4 8279的设置的设置 8279共有八条命令:共有八条命令:(1)键盘键盘/显示方式设置命令显示方式设置命令 命令特征位:命令特征位:D7D6D5=000000DDKKK29第八章第八章 单片机的人机接
23、口单片机的人机接口 (2)时钟编程命令时钟编程命令 命令特征位:命令特征位:D7D6D5=001001PPPPP(3)读)读FIFO/传感器传感器RAM命令命令命令特征位:命令特征位:D7D6D5=010010AIXAAA 30第八章第八章 单片机的人机接口单片机的人机接口 (4)读显示读显示RAM命令命令 命令特征位:命令特征位:D7D6D5=011011AIAAAA(5)写显示写显示RAM命令命令 命令特征位:命令特征位:D7D6D5=100100AIAAAA 31第八章第八章 单片机的人机接口单片机的人机接口 (6)显示禁止写入显示禁止写入/消隐命令消隐命令 命令特征位:命令特征位:D7
24、D6D5=101。101XIWIWBLBL(7)清除命令清除命令 命令特征位:命令特征位:D7D6D5=110。110CDCDCDCFCA 32第八章第八章 单片机的人机接口单片机的人机接口 (8)结束中断结束中断/错误方式设置命令错误方式设置命令 命令特征位命令特征位D7D6D5=111。111EXXXX 33第八章第八章 单片机的人机接口单片机的人机接口 SET8279:MOV R0,#0EDH;命令字口地址送;命令字口地址送R0 MOV A,#25H MOVX R0,A MOV A,#0A0H MOVX R0,A MOV A,#10H MOVX R0,A MOV A,#90H ;写显示;写显示RAM,从,从0地址开始地址自动加地址开始地址自动加1 MOVX R0,A ;MOV A,#40H MOVX R0,A SJMP$34第八章第八章 单片机的人机接口单片机的人机接口 2.显示子程序:显示子程序:DISPLAY:MOV R7,#08H ;显示字符指针长度;显示字符指针长度 MOV R1,#060H MOV R0H,#0ECH DIS01:MOV A,R1 ;显示字符送;显示字符送8279 MOVX R0,A INC R1 DJNZ R7,DIS01 ;没显示完循环显下一个;没显示完循环显下一个 RET