第八章 单片机接口技术
等待,定时计数器计满溢出,自动重装初值,然后向CPU 申请中断,(与上例不同,不用查询TF1)转到001B, CPU接受中断TF1自动清零。 单片机原理及应用——自动化系
• 中断扫描方式
为了提高CPU工作 效率,可采用中断扫 描工作方式,其工作 过程如下:当无键按 下时, CPU处理自己 工作,当有键按下时, 产生中断请求,CPU 转去执行键盘扫描子 程序,并识别键号。
软件方案—延时10ms~20ms后再 次判断。
单片机原理及应用——自动化系
独立式键盘接口
特点:
+5v
一线一键,按键识 别(编程)简单;但是 占用较多口线,适合8键 以下使用。
P1.0
P1.1
P1.7
单片机原理及应用——自动化系
例:用P1口检测三个按键的状态完成相应的功能。
解:资源分配:用P1口的低三位检测三个按键 的输入,为1表示按键没有按下,为0表示相应 按键被按下。
显示Βιβλιοθήκη 单片机原理及应用——自动化系
静态显示方式
• 连接:所有LED的位选(公共)端连接到+VCC或GND,每个LED的8 根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字 型码显示字型。 I/O(2) I/O(1) I/O(3) I/O(4)
GND/+5V
GND/+5V
GND/+5V
GND/+5V GND/+5V
单片机原理及应用——自动化系
8.2显示器接口技术
• LED的结构及显示原理
• 静态显示方式 • 动态显示方式 • 动态显示的实现
单片机原理及应用——自动化系
问题:LED显示器如何显示出指定数字/字符?
g f com a 8
a f b
b 6
10 9
7
g
共 阴 极
共 阳 极
e d
c
.
若用共阴极接法,显示数字“2”应送什么二进制8位数? D7 D6 D5 D4 D3 D2 D1 D0 Dp g f e d c b a 0 1 0 1 1 0 1 1 单片机原理及应用——自动化系
单片机原理及应用——自动化系
例:方法一
TM :MOV R1,#100 TM0 :MOV TMOD,#20H MOV TH1,#9CH MOV TH0,#9CH SETB TR1 LK :JBC TF1,TM1 SJMP LK TM1 :DJNZ R1,TM0 SKEY :LCALL KEY JZ TM LCALL T10MS LCALL KEY JZ TM LCALL SERCH …
流程图: 编程:按三个按键中的任一键都对应一个特定功 能。
单片机原理及应用——自动化系
键分析 读P1口 有键按下吗?
延时10ms
有键按下吗? Y P1.0=0? N P1.1=0? N P1.2=0? N 读P1口 N 键已释放吗? Y 延时10ms 分析结束 单片机原理及应用——自动化系 N Y Y Y
7
8 9 A b
07H
7FH 6FH 77FH 7CH
F8H
80H 90H 88H 83H
y
H L “灭” …
6EH
76H 38H 00H …
91H
89H C7H FFH …
单片机原理及应用——自动化系
例:模拟产品计数显示电路
P1.0 P1.1 P1.2 P1.3
510Ω×8
a b c d f
a b g
P1.4
P1.5 P1.6
e
f g dp e d c
T1
P1.7
+5V
.
8051
P3.3
单片机原理及应用——自动化系
编程
来一个脉冲加 一,只要T1内 容变化,显示 就立刻变化。
因为是一位显 DISP2:MOV DPTR,#TAB ORG 0000H 示器,所以最 MOV A,TL1 START:MOV TMOD,#60H 多显示到F MOVC A,@A+DPTR MOV TH1,#00H MOV P1,A MOV TL1,#00H CJNE A,#8E,DISP2 MAIN:MOV P1,#0C0H ;显示0(共阳极) LJMP START DISP:JB P3.3,DISP TAB:0C0H,0F9H,0A4H… DELAY:MOV R2,#14H ACALL DELAY 去抖 DELAY1:MOV R3,$ JB P3.3,DISP DJNZ R3,$ DISP1:JNB P3.3,DISP DJNZ R2,DELAY1 ACALL DELAY 松开了吗? RET JNB P3.3,DISP1 END SETB TR1
使用时主程序应该为:MAIN:LCALL KS JZ XXXX …
单片机原理及应用——自动化系
方法一
按键识别——扫描法
原理: 在某一时刻只让一条列线处于低电平,其余列线均处 于高电平,则当这一列有键按下时,该键所在的行电平将 会由高电平变为低电平,可判定该列相应的行有键按下。 流程: 当第0列处于低电平时,逐行查找是否有行线变低,若 有,则第0列与该行的交叉点按键按下;若无,则表示第0 列无键按下,再让下一列处于低电平,依次循环,这种方 式成为键盘扫描。 键号=行首号(0、4、8、12)+列号(0、1、2、3)
第八章 单片机接口技术
人机接口: 键盘接口 显示接口 模拟量输入/输出接口: D/A转换接口 A/D转换接口 通讯接口
单片机原理及应用——自动化系
8.1键盘接口
• 按键的特点及输入原理 • 独立式按键
• 行列式按键
单片机原理及应用——自动化系
按键的特点及工作原理
◎按键的分类: 触点式:机械;无触点式:电气 ◎键输入原理: 通过按键的接通与断开,产生两种相反的逻辑状态。 低电平“0”与高电平“1” ◎键功能的实现: 1:对于一组键或一个键盘,需要通过接口电路与单片机相连。可 采用查询或中断的方式测试有无按键; 2:再确定那一个键按下,将键号送入累加器A; 3:然后判断是数字键还是功能键,若是数字键,将键号对应的数 字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键 的功能程序,执行完后再返回主程序。
难点在于如何判 断究竟是哪个键 按下?
列号 0 4 8 1 2 3 行线 5 6 7 9 10 11
12 13 14 15 行首号 键号=行号+列号 列线
返回键扫描
单片机原理及应用——自动化系
键盘扫描子程序一般包括以下内容:
判别有无键按下;
扫描获取闭合键的行、列值; 用计算法或者查表法得到键值;
判断闭合键释放否,如果没有释放继续等待;
S0键处理 S1键处理 S2键处理
若判断键是 程序: 否释放将如 何修改?
ORG 0000H KB:MOV P1,#0FFH MOV A,P1 CPL A ANL A,#07H;只用到了低三 位,将其它位屏蔽掉 JZ KB LCALL D10ms;去抖 MOV A,P1 CPL A ANL A,#07H JZ KB
单片机原理及应用——自动化系
键盘扫描程序
SERCH: MOV R2,#0EFH MOV R3,#00H LTNE0: MOV A,R2 MOV P1,A MOV A,P1 JB ACC.3,LINE1 MOV A,#00H AJMP TRYK LINE1: JB ACC.2,LINE2 MOV A,#04H AJMP TRYK LINE2: JB ACC.1,LINE3 MOV A,#08H AJMP TRYK ;某一列为低电平(P1.4=0) ;R3作为列号寄存器
单片机原理及应用——自动化系
0 0
0
0
例:方法三
ORG 0000H LJMP MAIN ORG 0003H LJMP SKEY MAIN:MOV P1,#0F0H; MOV IE,#81H; SJMP $ SKEY:LCALL KEY;有键按下,就申请中断 JZ TM1 LCALL T10MS LCALL KEY JZ TM1 LCALL SERCH; … TM1:MOV IE,#81H RETI
保存闭合键号。
单片机原理及应用——自动化系
键按下/释放判断
KS:MOV MOV MOV MOV CPL ANL RET A,#00H P1,A P1,#0FH A,P1 A A,#0FH
;全扫描字#00H送P1口 ;读入P1口状态 ;变正逻辑,高电平表示有键按下 ;取低四位 ;返回,A≠0表示有键按下
10ms=10000us计数10000次 选择定时器1方式2 初值:X=256-100=156=9CH 循环100次
;调用按键测试程序,看是否有键按下,出口为A ;判断A的内容:(A=0无键按下,转TM) ;去抖
;调用键扫描程序,判断键号
单片机原理及应用——自动化系
因为每隔10ms自动中断,当进行键处理 例:方法二 时就不能再中断了,这里关中断
;ACC.0=1无键按下转查下一列 ;ACC.0=0有键按下,行首号送A ;4行均没有键按下,则转到下一列 ;左移一位查找下一列 ;ACC.0=0查完
上一页
单片机原理及应用——自动化系
键盘工作方式——定时扫描与中断扫描
• 定时扫描工作方式 每隔一段时间对键盘扫描一次。它利 用单片机内部的定时器产生一定时间(例 10ms)的定时,当定时时间到就产生定时 器溢出。可通过查询或中断方式对键盘进 行扫描,确定是否有键按下及识别键号。 再根据键号执行该键对应的功能程序。
• 特点:原理简单、显示亮度强,无闪烁、占用I/O口资源较多。
单片机原理及应用——自动化系
动态显示方式
• 连接:所有LED的段选线共同连接在一起共用一个8位的I/O口 动态显示用分时的方法轮流控制各个数码管的COM端,使每个数码管轮流 线,而每个LED的位选分别由一根相应的I/O口线控制。因此必 点亮。在轮流点亮数码管的扫描过程中,每位数码管的点亮时间极为短暂。但是 须采用动态扫描显示方式,每一个时刻只选通其中一个LED, 由于人的视觉暂留现象和发光二极管的余辉,给人的印象就是一组稳定的显示数 据。 同时在段选口送出该位LED的字型码。 动态显示节省I/O口资源,此外因为是亮灭的形式,还节省能源。但是亮度 不如静态显示。