第8章 单片机的人机接口技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章 单片机汇编语言程序设计
8.1.1 LED的结构与原理
显示 字符 0 1 2 3 共阴极 段选码 3FH 06H 5BH 4FH 共阳极 段选码 C0H F9H A4H B0H 显示 字符 A B C D 共阴极 段选码 77H 7CH 39H 5EH 共阳极 段选码 88H 83H C6H A1H
第4章 单片机汇编语言程序设计
1) 行扫描法
第4章 单片机汇编语言程序设计
键位与行列线关系表
第4章 单片机汇编语言程序设计
2) 线反转法
第4章 单片机汇编语言程序设计
8.2.1 键盘的结构与原理 3. 键盘的工作方式 键盘的工作方式有三种:编程扫描、定时扫描和中 断扫描。 编程扫描方式:利用单片机完成其它工作的空余时 间,调用键盘扫描子程序来响应键盘输入的要求。 在执行按键对应的功能程序时,单片机不再响应键 输入要求,直到单片机重新扫描键盘为止。 定时扫描方式:每隔一段时间对键盘扫描一次,它 利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中 断。CPU响应中断后对键盘进行扫描,并在有键按 下时识别出该键,再执行该键的功能程序。
第4章 单片机汇编语言程序设计
8.2.1 键盘的结构与原理 矩阵式键盘:由行线和列线组成,按键位于行、 列线的交叉点上。 矩阵式键盘行线通过上拉电阻接到+5V上。当无 键按下时,行线处于高电平状态;当有键按下时, 行、列线将导通,此时,行线电平将由与此行线 相连的列线电平决定。
第4章 单片机汇编语言程序设计
第4章 单片机汇编语言程序设计
8.1.2 静态与动态显示
3. 动态显示程序设计
设在8031内部RAM的79H~7eH为显示缓冲区, 依次存放6个要显示的数据。8155的A口输出的字 位总是有一位为高电平,8155的B口输出相应位 (共阴极)的显示数据的七段代码,使某一位显 示一个字符,其它位为暗,依次地改变A口输出 的高电平的位,B口输出对应的七段代码,8位显 示器就显示出缓冲器中显示数据所确定的字符。
ห้องสมุดไป่ตู้
第4章 单片机汇编语言程序设计
8.2.2 键盘接口电路
LK3: MOV DPTR,#0101H MOV A,R2 MOVX @DPTR,A INC DPTR INC DPTR MOVX A,@DPTR ANL A,#0FH MOV R4,A CJNZ A,#0FH,LK4 MOV A,R2 JNB ACC.7,LK8 RL A MOV R2,A INC R3 ; 指向 8155 口A ; 行扫描值送A ; 扫描 1 行 ; 指向 8155 口C ; ; 保留低 4 ; ; 列值非全“1” ; 行扫描值送A ; ; ; 行值存入R2 ; 行号加 1
1. I/O控制及数据缓冲器 I/O控制线是CPU对8279进行控制的引线,对应的引脚为 数据选择线A0、片选线CS、读信号线RD和写信号WR。 数据缓冲器是双向缓冲器,连接内外总线,用于传送CPU 和8279之间的命令或数据,对应的引脚为数据总线 DB0~DB7。 2. 控制与定时寄存器及定时控制 控制与定时寄存器用来寄存键盘及显示工作方式控制字, 同时还用来寄存其它操作方式控制字。与其对应的引脚为 时钟输入端CLK,复位端RESET。 定时控制电路由N个基本计数器(N=2~31)组成,其中 第一个计数器是可编程的N级计数器,由软件编程将外部 输入时钟CLK进行分频,产生100kHz的内部定时信号, 为键盘提供适当的扫描频率和显示扫描时间。
2.键盘的工作原理与方式
单片机系统中普遍使用非编码式键盘,这类键盘采用软件 编/译码的方式,通过扫描,对每个被按下的键判别输出 相应的键码。主要需要解决以下几个问题: ① 键的识别:是否有键按下以及识别哪个键按下。 ② 防抖动:由于机械开关在转换状态时有信号的抖动, 故必须考虑防抖动的问题。抖动时间长短与开关的机械特 性有关,一般为5~10ms之间。
第4章 单片机汇编语言程序设计
8.3.1 8279的结构与原理
3. 扫描计数器 扫描计数器为键盘和显示器共用,可提供二者所需的扫描 信号。 它有两种工作方式,按编码方式工作时,计数器以二进制 方式计数,4位计数状态从扫描线SL3~SL0输出,为键盘 和显示器提供出16位扫描线;按译码方式工作时,扫描计 数器的低二位译码后从SL3~SL0输出,提供4选1的扫描译 码。 4. 回复缓冲器与键盘去抖动控制电路 在逐行列扫描时,回复线用来搜寻每一行列中闭合的键, 当某一键闭合时,去抖电路被置位,延时等待10ms后, 再检查该键是否仍处在闭合状态。 5.FIFO/传感器RAM和显示器RAM 8279具有多个先进先出的键输入缓冲器,并提供16个字 节的显示数据缓冲器。CPU将段数据写入显示缓冲器, 8279自动对显示器扫描,将其内部显示缓冲器中的数据在 显示器上显示出来。
第4章 单片机汇编语言程序设计
8.1.2 静态与动态显示
1.静态显示原理
静态显示是当显示某一字符时,相应的发光二极 管恒定地导通或截止。
I/O口只要有段码输出,相应字符即显示出来,并 保持不变,直到I/O口输出新的段码。 较小的电流即可获得较高的亮度,且占用CPU时 间少,编程简单。 每一个显示位都需要一个8位输出口控制,N位静 态显示器就要求有N*8根I/O口线,硬件电路复杂, 占用较多资源,只适合于显示位数较少的场合。
第4章 单片机汇编语言程序设计
8.2.2 键盘接口电路
将键盘的列线接到单片机的输出端,CPU依次向各列线发 送低电平(称为扫描),键盘的行线接到单片机的输入口, CPU检测行线的电平。 采用8155接口芯片的键盘接口电路如下图:
第4章 单片机汇编语言程序设计
8.2.2 键盘接口电路
下面的程序是用行扫描法进行按键识别的程序,其中KS1 为判键闭合的子程序。 有键闭合时(A)=0。 DIR为数码 显示器扫描显示子程序,执行一遍的时间约6 ms。 程序 执行后, 若键闭合, 键值存入A中, 键值的计算公式是:键 值=行号×4+列号;若无键闭合,则A中存入标志FFH。
第4章 单片机汇编语言程序设计
中断扫描方式:采用上述两种键盘扫描方式时, 无论是否按键,单片机都要定时扫描键盘,而单 片机应用系统工作时,并非经常需要键盘输入, 因此,单片机经常处于空扫描状态。为提高单片 机工作效率,可采用中断扫描工作方式。其工作 过程如下:当无键按下时, CPU处理自己的工作, 当有键按下时,产生中断请求, CPU 转去执行键 盘扫描子程序,并识别键号。
第4章 单片机汇编语言程序设计
第4章 单片机汇编语言程序设计
8.1.2 静态与动态显示
第4章 单片机汇编语言程序设计
8.1.2 静态与动态显示
2.动态显示接口原理 动态显示是一位一位地轮流点亮各位数码管,对 于每一位数码管来说,每隔一段时间点亮一次。
第4章 单片机汇编语言程序设计
8.1.2 静态与动态显示
第4章 单片机汇编语言程序设计
8.2 键盘及其接口
8.2.1 键盘的结构与原理
1.键盘的结构 独立式按键:直接用I/O口线构成的单个按键电路,其特 点是每个按键单独占用一根I/O口线,每个按键的工作不 会影响其它I/O口线的状态。 独立式按键电路、软件简单,但每个按键占用一根I/O口 线,因此,在按键较多时,I/O口线浪费较大。
键按下
前沿抖动
后沿抖动
闭合 稳定
第4章 单片机汇编语言程序设计
③ 键的保护:当键盘中同时有两个或两个以上的 键被按下时产生保护作用,此时任何一个键的编 码信息都不进入单片机,直至仅剩下一个键保持 闭合时,该键的编码信息方能进入,这样可以避 免误操作信号进入单片机。 非编码式键盘识别按键的方法有两种:一是行扫 描法,二是线反转法。
第4章 单片机汇编语言程序设计
DSEG: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH DSEG1: DB 7DH, 07H, 7FH, 6FH, 77H, 7CH DSEG2: DB 39H, 5EH, 79H, 71H, 73H, 3EH DSEG3: DB 31H, 61H, 1CH, 23H, 40H, 03H DSEG4: DB 18H, 00H, 00H, 00H ; DL1: MOV R7, #02H DL: MOV R6, #0FFH DL6: DJNZ R6, DL6 DJNZ R7, DL RET
KEY1: LCALL KS1 JNZ LK1 LJMP LK8 LK1: LCALL DIR LCALL DIR LCALL LS1 JNZ LK2 LJMP LK8 LK2: MOV R3,#00H MOV R2,#FEH ; 检查有无闭合键? ; (A)=0 ; 无闭合键则返回 ; 延时 12 ms ; ; 再检查有键闭合否? ; ; 无键闭合则返回 ; 行号初值送R3 ; 行扫描初值送R2
第4章 单片机汇编语言程序设计
第4章 单片机汇编语言程序设计
8.3 可编程键盘/显示器接口—INTEL 8279
8279是Intel公司生产的通用可编程键盘/显示器接口芯片, 它包含有键盘输入和显示器输出两种功能。 8.3.1 8279的结构与原理
第4章 单片机汇编语言程序设计
8.3.1 8279的结构与原理
4
5 6
66H
6DH 7DH
99H
92H 82H
E
F P
79H
71H 73H
86H
8EH 8CH
7
8 9 “灭”
07H
7FH 6FH 00H
F8H
80H 90H FFH
U
r y H
3EH
31H 6EH 76H
C1H
CEH 91H 89H
第4章 单片机汇编语言程序设计
N位LED显示器有N根位选线和8*N根段选线。根 据显示方式不同,位选线与段选线的连接方法不 同。 段选线控制要显示什么样的字符。 位选线则控制要在哪一位上显示这个字符。
SJMP LK3
; 转至扫描下一行
第4章 单片机汇编语言程序设计
8.2.2 键盘接口电路
LK4: MOV A,R3 ADD A,R3 MOV R5,A ADD A,R5 MOV R5,A MOV A,R4 LK5: RRC A JNC LK6 INC R5 SJMP LK5 LK6: MOV 20H,R5 LK7: LCALL DIR LCALL KS1 JNZ LK7 LCALL DIR LCALL DIR MOV A,20H ; 行号送入A ; 行号×2 ; 行号×4 ; 存入R5 ; 列值送A ; ; 该位为 0 ; 列号加 1 ; ; ; ; ; ; ; 延时 12 ms ; 键值存入A
程序清单如下:
第4章 单片机汇编语言程序设计
DIR:
LD0:
LD1:
MOV R0, #79H ; 显示缓冲区首址送R0 MOV R3, #01H ; MOV A, R3 MOV DPTR, #0101H ; 扫描值送PA MOVX @DPTR, A INC DPTR ; 指向PB MOV A,@R0 ; 取显示数据 ADD A,#12H ; MOVX A,@A+PC ; MOVX @DPTR,A ; 送出显示 ACALL DL1 ; INC R0 ; 缓冲区地址加 1 MOV A, R3; JB ACC.5, LD1 ; 扫到第 6 个显示位了吗? RL A ; 没有, R3 左移一位, MOV R3, A AJMP LD0 RET
第4章 单片机汇编语言程序设计
第8章 单片机的人机接口技术
8.1 LED显示器及其接口 8.2 键盘及其接口 8.3 可编程键盘/显示器接口—INTEL 8279
8.1 LED显示器及其接口
第4章 单片机汇编语言程序设计
8.1.1 LED的结构与原理 LED 显示是由若干个发光二极管组成的,控制不 同组合的二极管导通,就能显示出各种字符。 在单片机应用系统中通常使用的是七段 LED 。七 段 LED 中 7 个发光二极管构成字形“ 8” ,一个发 光二极管构成小数点。
第4章 单片机汇编语言程序设计
8.2.2 键盘接口电路
KND: RET LK8: MOV A,#FFH ; 无键标志FFH存入A RET KS1: MOV DPTR,#0101H ; MOV A,#00H ; MOVX @DPTR,A ; INC DPTR INC DPTR ; 指向8155口C MOVX A,@DPTR ; ANL A,#0FH ; 保留低4 ORL A,#F0H ; 高4位取“1” CPL A ; 取反,无键按下则全“0” RET