键盘与显示器接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键盘与显示器接口
存储器 地址 SEG SEG+1 SEG+2 SEG+3 SEG+4 SEG+5 SEG+6 SEG+7 SEG+8 SEG+9 SEG+10
SEG+11
SEG+12
SEG+13
SEG+14
SEG+15
显示 数字
0 1 2 3 4 5 6 7 8 9 A
B
C
D
E
F
LED数码显示器共阴极和共阳极段码
0110
0111
1000
1001
1010
1011
1100
1111
十六进制代码 ×0H ×1H ×2H ×3H ×4H ×5H ×6H ×7H ×8H ×9H ×AH ×BH ×CH ×FH
8051单片机与MAX7219的接口
8051的P3.5连到MAX7219的DIN端,P3.6连到LOAD端,P3.7连 到CLK端,采用软件模拟方式产生所需的工作时序。执行驱动程 序后在LED上显示8051字样。
当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖 动和弹跳,如下图所示,这是机械式开关的一个共同性问题。 消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用 软件延迟的方法。
采用RS触发器实现硬件反弹跳
当键数较多时经常用软件 延时的方法来反弹跳,如 流程图所示。当检出有键 按下后,先执行一个反颤 延时20ms的子程序,待前 沿弹跳消失后再转入键闭 合CLOSE子程序。然后再判 断此次按键是否松开,如 果没有,则进行等待。若 已松开,则又执行一次延 时20ms的子程序以消除后 沿弹跳的影响,再去检测 下次按键的闭合。
MAX7219的内部寄存器及其地址
寄存器
NO-OP 数字0 数字1 数字2 数字3 数字4 数字5 数字6 数字7 译码方式 亮度 扫描界限 停机 显示测试
D15~D12 × × × × × × × × × × × × × ×
地
址
D11 D10 D9 D8
0000
0001
0010
0011
0100
0101
;DPTR指向段码表首地址 ;设置动态显示扫描初值
;查表取得段码 ;判断段码是否为结束符
;段码送B保存
;显示位扫描值左移1位 ;显示位扫描值送P3口
;显示段码送P0显示 ;延时
;延时子程序
RET
TABLE: DB DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;段码表
01H
;结束符
串行接口LED驱动器MAX7219
MAX7219是MAXIM公司生产的一种串行接口 方式7段共阴极LED显示驱动器,其片内包含 有一个BCD码到B码的译码器、多路复用扫描 电路、字段和字位驱动器以及存储每个数字 的8×8 RAM,每位数字都可以被寻址和更新, 允许对每一位数字选择B码译码或不译码。采 用三线串行方式与单片机接口,电路十分简 单,只需要一个10k左右的外接电阻来设置所 有LED的段电流。
MOV DPTR,#0088H MOV A,#00H MOVX @DPTR,A
软件译码LED显示接口
软件译码动态扫描显示接口如下图,根据要显示的字符查段码 表取得相应的段码并输出到LED显示器,采用逐位扫描的方法 控制哪一位LED被点亮。
动态扫描汇编语言驱动程序
START: MOV DPTR,#TABLE MOV R7,#07FH
2、串键保护
有三种处理串键的技术:两键同时按下、n键同时按下和n 键锁定。
“两键同时按下”技术是在两个键同时按下时产生保护作 用。最简单的办法是当只有一个键按下时才读取键盘的输出, 最后仍被按下的键是有效的正确按键。当用软件扫描键盘时 常采用这种方法。另一种方法是当第一个按键未松开时,按 第二个键不产生选通信号。这种方法常藉助硬件来实现。
共阴极接法的七段状态 gfedcba 0111111 0000110 1011011 1001111 1100110 1101101 1111101 0000111 1111111 1100111
1110111
共阴极接法 段码(十六进制数)
3F 06 5B 4F 66 6D 7D 07 7F 67
77
键盘接口技术
键盘可分为编码式键盘和非编码式键盘。编码 键盘能够由硬件自动提供与被按键对应的ASCII 码或其它编码。非编码键盘则仅提供行和列的矩 阵,其硬件逻辑与按键编码不存在严格的对应关 系,而要由所用的程序来确定。 任何键盘接口均要解决三个主要问题: 1、反弹跳 2、串键保护 3、按键识别
1、反弹跳
S1: MOV A,#00H MOVC A,@A+DPTR CJNE A,#01H,S2 SJMP START
S2: MOV B,A MOV A,R7 RL A MOV P3,A MOV R7,A MOV P0,B LCALL DELAY INC DPTR SJMP S1
DELAY: MOV R5,#80 D2: DJNZ R5,D2
MAX7219采用串行数据传输方式,由16位数据包发送到DIN引脚 的串行数据在每个CLK的上升沿被移入到内部16位移位寄存器 中,然后在LOAD的上升沿将数据锁存到数字或控制寄存器中。 LOAD信号必须在第16个时钟上升沿同时或之后,但在下一个时 钟上升沿之前变高,否则将会丢失数据。DIN端的数据通过移位 寄存器传送,并在16.5个时钟周期后出现在DOUT端。DOUT端的 数据在CLK的下降沿输出。串行数据以16位为一帧,其中D15~ D12可以任意,D11~D8为内部寄存器地 址,D7~D0为寄存器 数据,工作时序如下:
共阳极接法 段码(十六进制数)
40 79 24 30 19 12 02 78 00 18
08
1111100
7C
03
0111001
39
46
1011110
5E
பைடு நூலகம்
21
1111001
79
06
1110001
71
0E
硬件译码LED显示接口
如图所示为采用硬件译码器的七段LED接口电路,显示器是共阴 极的。9368是硬件段译码器,它能自动将输入的16进制数转换 成段码输出,在+5V时能输出约30mA的电流点亮显示器的段。 7475是4位锁存器,4个数据输入端接到系统数据总线的D3~D0。 锁存器的选通端E接到地址译码器,若该接口的地址为0088H, 执行以下指令即可在显示器上显示数字“0”。
存储器 地址 SEG SEG+1 SEG+2 SEG+3 SEG+4 SEG+5 SEG+6 SEG+7 SEG+8 SEG+9 SEG+10
SEG+11
SEG+12
SEG+13
SEG+14
SEG+15
显示 数字
0 1 2 3 4 5 6 7 8 9 A
B
C
D
E
F
LED数码显示器共阴极和共阳极段码
0110
0111
1000
1001
1010
1011
1100
1111
十六进制代码 ×0H ×1H ×2H ×3H ×4H ×5H ×6H ×7H ×8H ×9H ×AH ×BH ×CH ×FH
8051单片机与MAX7219的接口
8051的P3.5连到MAX7219的DIN端,P3.6连到LOAD端,P3.7连 到CLK端,采用软件模拟方式产生所需的工作时序。执行驱动程 序后在LED上显示8051字样。
当按键开关的触点闭合或断开到其稳定,会产生一个短暂的抖 动和弹跳,如下图所示,这是机械式开关的一个共同性问题。 消除由于键抖动和弹跳产生的干扰可采用硬件方法,也可采用 软件延迟的方法。
采用RS触发器实现硬件反弹跳
当键数较多时经常用软件 延时的方法来反弹跳,如 流程图所示。当检出有键 按下后,先执行一个反颤 延时20ms的子程序,待前 沿弹跳消失后再转入键闭 合CLOSE子程序。然后再判 断此次按键是否松开,如 果没有,则进行等待。若 已松开,则又执行一次延 时20ms的子程序以消除后 沿弹跳的影响,再去检测 下次按键的闭合。
MAX7219的内部寄存器及其地址
寄存器
NO-OP 数字0 数字1 数字2 数字3 数字4 数字5 数字6 数字7 译码方式 亮度 扫描界限 停机 显示测试
D15~D12 × × × × × × × × × × × × × ×
地
址
D11 D10 D9 D8
0000
0001
0010
0011
0100
0101
;DPTR指向段码表首地址 ;设置动态显示扫描初值
;查表取得段码 ;判断段码是否为结束符
;段码送B保存
;显示位扫描值左移1位 ;显示位扫描值送P3口
;显示段码送P0显示 ;延时
;延时子程序
RET
TABLE: DB DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;段码表
01H
;结束符
串行接口LED驱动器MAX7219
MAX7219是MAXIM公司生产的一种串行接口 方式7段共阴极LED显示驱动器,其片内包含 有一个BCD码到B码的译码器、多路复用扫描 电路、字段和字位驱动器以及存储每个数字 的8×8 RAM,每位数字都可以被寻址和更新, 允许对每一位数字选择B码译码或不译码。采 用三线串行方式与单片机接口,电路十分简 单,只需要一个10k左右的外接电阻来设置所 有LED的段电流。
MOV DPTR,#0088H MOV A,#00H MOVX @DPTR,A
软件译码LED显示接口
软件译码动态扫描显示接口如下图,根据要显示的字符查段码 表取得相应的段码并输出到LED显示器,采用逐位扫描的方法 控制哪一位LED被点亮。
动态扫描汇编语言驱动程序
START: MOV DPTR,#TABLE MOV R7,#07FH
2、串键保护
有三种处理串键的技术:两键同时按下、n键同时按下和n 键锁定。
“两键同时按下”技术是在两个键同时按下时产生保护作 用。最简单的办法是当只有一个键按下时才读取键盘的输出, 最后仍被按下的键是有效的正确按键。当用软件扫描键盘时 常采用这种方法。另一种方法是当第一个按键未松开时,按 第二个键不产生选通信号。这种方法常藉助硬件来实现。
共阴极接法的七段状态 gfedcba 0111111 0000110 1011011 1001111 1100110 1101101 1111101 0000111 1111111 1100111
1110111
共阴极接法 段码(十六进制数)
3F 06 5B 4F 66 6D 7D 07 7F 67
77
键盘接口技术
键盘可分为编码式键盘和非编码式键盘。编码 键盘能够由硬件自动提供与被按键对应的ASCII 码或其它编码。非编码键盘则仅提供行和列的矩 阵,其硬件逻辑与按键编码不存在严格的对应关 系,而要由所用的程序来确定。 任何键盘接口均要解决三个主要问题: 1、反弹跳 2、串键保护 3、按键识别
1、反弹跳
S1: MOV A,#00H MOVC A,@A+DPTR CJNE A,#01H,S2 SJMP START
S2: MOV B,A MOV A,R7 RL A MOV P3,A MOV R7,A MOV P0,B LCALL DELAY INC DPTR SJMP S1
DELAY: MOV R5,#80 D2: DJNZ R5,D2
MAX7219采用串行数据传输方式,由16位数据包发送到DIN引脚 的串行数据在每个CLK的上升沿被移入到内部16位移位寄存器 中,然后在LOAD的上升沿将数据锁存到数字或控制寄存器中。 LOAD信号必须在第16个时钟上升沿同时或之后,但在下一个时 钟上升沿之前变高,否则将会丢失数据。DIN端的数据通过移位 寄存器传送,并在16.5个时钟周期后出现在DOUT端。DOUT端的 数据在CLK的下降沿输出。串行数据以16位为一帧,其中D15~ D12可以任意,D11~D8为内部寄存器地 址,D7~D0为寄存器 数据,工作时序如下:
共阳极接法 段码(十六进制数)
40 79 24 30 19 12 02 78 00 18
08
1111100
7C
03
0111001
39
46
1011110
5E
பைடு நூலகம்
21
1111001
79
06
1110001
71
0E
硬件译码LED显示接口
如图所示为采用硬件译码器的七段LED接口电路,显示器是共阴 极的。9368是硬件段译码器,它能自动将输入的16进制数转换 成段码输出,在+5V时能输出约30mA的电流点亮显示器的段。 7475是4位锁存器,4个数据输入端接到系统数据总线的D3~D0。 锁存器的选通端E接到地址译码器,若该接口的地址为0088H, 执行以下指令即可在显示器上显示数字“0”。