第八章 单片机接口技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及应用——自动化系
键盘扫描程序
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作为列号寄存器
单片机原理及应用——自动化系
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 单片机原理及应用——自动化系
;ACC.0=1无键按下转查下一列 ;ACC.0=0有键按下,行首号送A ;4行均没有键按下,则转到下一列 ;左移一位查找下一列 ;ACC.0=0查完
上一页
单片机原理及应用——自动化系
键盘工作方式——定时扫描与中断扫描
• 定时扫描工作方式 每隔一段时间对键盘扫描一次。它利 用单片机内部的定时器产生一定时间(例 10ms)的定时,当定时时间到就产生定时 器溢出。可通过查询或中断方式对键盘进 行扫描,确定是否有键按下及识别键号。 再根据键号执行该键对应的功能程序。
显示
单片机原理及应用——自动化系
静态显示方式
• 连接:所有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
使用时主程序应该为:MAIN:LCALL KS JZ XXXX …
单片机原理及应用——自动化系
方法一
按键识别——扫描法
原理: 在某一时刻只让一条列线处于低电平,其余列线均处 于高电平,则当这一列有键按下时,该键所在的行电平将 会由高电平变为低电平,可判定该列相应的行有键按下。 流程: 当第0列处于低电平时,逐行查找是否有行线变低,若 有,则第0列与该行的交叉点按键按下;若无,则表示第0 列无键按下,再让下一列处于低电平,依次循环,这种方 式成为键盘扫描。 键号=行首号(0、4、8、12)+列号(0、1、2、3)
10ms=10000us计数10000次 选择定时器1方式2 初值:X=256-100=156=9CH 循环100次
;调用按键测试程序,看是否有键按下,出口为A ;判断A的内容:(A=0无键按下,转TM) ;去抖
;调用键扫描程序,判断键号
单片机原理及应用——自动化系
因为每隔10ms自动中断,当进行键处理 例:方法二 时就不能再中断了,这里关中断
CJNE A,#01H,KB01 LCALL PGM1 SJMP KB KB01:CJNE A,#02H,KB02 LCALL PGM2 SJMP KB KB02:CJNE A,#04H,KB LCALL PGM1 SJMP KB END
单片机原理及应用——自动化系
行列式键盘接口
接口电路
特点:按键 识别应采用 扫描法或线 路反转法。 编程较为复 杂,节省资 源,8键以上 使用。
单片机原理及应用——自动化系
例:方法一
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 …
ORG 0000H LJMP MAIN 0RG 001BH LJMP LK MAIN:MOV IE,#88H TM :MOV R1,#100 TM0 :MOV TMOD,#20H MOV TH1,#9CH MOV TH0,#9CH SETB TR1 SJMP $
SKEY:MOV IE,00H LCALL KEY LCALL KEY JZ TM1 LCALL T10MS LCALL KEY JZ TM1 LCALL SERCH … TM1: MOW IE,#88H RETI
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
;ACC.3=1无键按下转查下一行 ;ACC.3=0有键按下,行首号送A ;ACC.2=1无键按下转查下一行 ;ACC.2=0有键按下,行首号送A
;ACC.1=1无键按下转查下一行 ;ACC.1=0有键按下,行首号送A
方法一
单片机原理及应用——自动化系
LINE3: JB ACC.0,LINE4 MOV A,#0CH AJMP TRYK LINE4: INC R3 MOV A,R2 RL A JNB ACC.0,BACK MOV R2,A AJMP LINE0 TRYK: ADD A,R3 BACK: RET
保存闭合键号。
单片机原理及应用——自动化系
键按下/释放判断
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~20ms后再 次判断。
单片机原理及应用——自动化系
独立式键盘接口
特点:
Biblioteka Baidu
+5v
一线一键,按键识 别(编程)简单;但是 占用较多口线,适合8键 以下使用。
P1.0
P1.1
P1.7
单片机原理及应用——自动化系
例:用P1口检测三个按键的状态完成相应的功能。
解:资源分配:用P1口的低三位检测三个按键 的输入,为1表示按键没有按下,为0表示相应 按键被按下。
等待,定时计数器计满溢出,自动重装初值,然后向CPU 申请中断,(与上例不同,不用查询TF1)转到001B, CPU接受中断TF1自动清零。 单片机原理及应用——自动化系
• 中断扫描方式
为了提高CPU工作 效率,可采用中断扫 描工作方式,其工作 过程如下:当无键按 下时, CPU处理自己 工作,当有键按下时, 产生中断请求,CPU 转去执行键盘扫描子 程序,并识别键号。
单片机原理及应用——自动化系
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
难点在于如何判 断究竟是哪个键 按下?
列号 0 4 8 1 2 3 行线 5 6 7 9 10 11
12 13 14 15 行首号 键号=行号+列号 列线
返回键扫描
单片机原理及应用——自动化系
键盘扫描子程序一般包括以下内容:
判别有无键按下;
扫描获取闭合键的行、列值; 用计算法或者查表法得到键值;
判断闭合键释放否,如果没有释放继续等待;
第八章 单片机接口技术
人机接口: 键盘接口 显示接口 模拟量输入/输出接口: D/A转换接口 A/D转换接口 通讯接口
单片机原理及应用——自动化系
8.1键盘接口
• 按键的特点及输入原理 • 独立式按键
• 行列式按键
单片机原理及应用——自动化系
按键的特点及工作原理
◎按键的分类: 触点式:机械;无触点式:电气 ◎键输入原理: 通过按键的接通与断开,产生两种相反的逻辑状态。 低电平“0”与高电平“1” ◎键功能的实现: 1:对于一组键或一个键盘,需要通过接口电路与单片机相连。可 采用查询或中断的方式测试有无按键; 2:再确定那一个键按下,将键号送入累加器A; 3:然后判断是数字键还是功能键,若是数字键,将键号对应的数 字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键 的功能程序,执行完后再返回主程序。
1 2 3 4 dp 5 C d com e dp
LED段码(8段)
显示字符 0 1 2 3 4 5 6 共阴极段 码 3FH 06H 5BH 4FH 66H 6DH 7DH 共阳极段 码 C0H F9H A4H B0H 99H 92H 82H 显示字符 c d E F P U T 共阴极段 码 39H 5EH 79H 71H 73H 3EH 31H 共阳极段 码 C6H A1H 86H 8EH 8CH C1H CEH
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
单片机原理及应用——自动化系
键盘接口需要解决的问题
+5v
“1” • 按键的识别 Q & I/O “0” 是否有键按下?(通过编程来判断) A +5v 接 单 开关 <10ms 抖动时间 片 口 <10ms 求键号 机 B & 开关动作时间 • 键的抖动及消除(主要指的是机械按键) >100ms 消除抖动电路 ★机械按键抖动时间在5ms~10ms之间 ★消除方法: 硬件方案—双稳态去抖电路
流程图: 编程:按三个按键中的任一键都对应一个特定功 能。
单片机原理及应用——自动化系
键分析 读P1口 有键按下吗?
延时10ms
有键按下吗? Y P1.0=0? N P1.1=0? N P1.2=0? N 读P1口 N 键已释放吗? Y 延时10ms 分析结束 单片机原理及应用——自动化系 N Y Y Y
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
• 特点:原理简单、显示亮度强,无闪烁、占用I/O口资源较多。
单片机原理及应用——自动化系
动态显示方式
• 连接:所有LED的段选线共同连接在一起共用一个8位的I/O口 动态显示用分时的方法轮流控制各个数码管的COM端,使每个数码管轮流 线,而每个LED的位选分别由一根相应的I/O口线控制。因此必 点亮。在轮流点亮数码管的扫描过程中,每位数码管的点亮时间极为短暂。但是 须采用动态扫描显示方式,每一个时刻只选通其中一个LED, 由于人的视觉暂留现象和发光二极管的余辉,给人的印象就是一组稳定的显示数 据。 同时在段选口送出该位LED的字型码。 动态显示节省I/O口资源,此外因为是亮灭的形式,还节省能源。但是亮度 不如静态显示。