文档介绍:第9章接口技术
LED 显示器接口
键盘与单片机接口
D/A转换器接口
A/D转换器接口
扩展IO口(8155)
LED 显示器接口
LED显示器用于显示工业控制参数、过程状态。
共阴极LED和共阳极LED
当LED字段引线与数据线连接,每个显示字形对应一个字形码。
COM
~
MCS-51
a
f b
g
e c
d h
a
b
h
a b h
COM
D7 D6 D5 D4 D3 D2 D1 D0
h g f e d c b a
显示程序任务:
1)设置显示缓冲区,存放待显示数据和字符(位置码)。
2)显示译码:程序存储器中建立字形码常数表,查表得出对应数据和字符的字形码。
3)输出显示:输出字形码到显示端口。
例: MOV DPTR,#WTAB;指向字形码表首地址
MOV A,***@R0 ;取显示缓冲区中数据
MOVC A,***@A+DPTR;查表显示译码
MOV P1,A ;输出显示
…
WTAB: DB 3FH,06H,5BH ;字形码表
…
COM
~
MCS-51
a
f b
g
e c
d h
a
b
h
LED接口电路
显示多位数据的两种电路:
1)静态显示
a b h
COM
a
f b
g
e c
d h
a b h
COM
a b h
COM
COM
h
COM
D7
…
D1
D0
D0
D1
D2
h
b
b
h
COM
a
f b
g
e c
d h
a
a
b
a
对应字位线: D0 D1 D2 D3 D4 D5
每个LED需要一个8位并行口
多位LED共用一个8位字段口,各位LED公共端用字位口控制,扫描输出显示不同字形。
显示缓冲区与多位LED对应关系:
显示程序:
DIS: MOV R0,#7AH ;指向显示缓冲区起始单元
MOV R3,#01H ;字位码初值→R3
MOV A,R3 ;取字位码
DLP: MOV DPTR,#PAAR;指向字位口(PA口) MOVX ***@DPTR,A ;输出字位码,显示其中1位
MOV A,***@R0 ;取一个显示数据
ADD A,#0CH ;查表偏移量
MOVC A,***@A+PC ;取出字形码
INC DPTR ;指向字段口(PB口)
MOVX ***@DPTR,A ;输出字形码
ACALL DLY1MS ;延时1ms
INC R0 ;指向显缓区下一单元
MOV A,R3 ;修改字位码
RL A ;显示下一位
MOV R3,A
JNB ,DLP ;未显示到最右边LED,继续显示
RET ;全部扫描一遍,结束
DTAB:DB 0C0H,0F9H,0A4H ;字形表
DB 0B0H,99H,
DLY1MS:…;延时1ms子程序
键盘与单片机接口
键盘处理程序任务
1)键输入
检查键盘是否有键被按下,消除按键抖动。确定被按键的键号,获取键号。
硬件电路消除抖动或软件消除抖动。
2)键译码
键号为键盘位置码,根据键号查表得出被按键的键值。键值:数字键0~9、字符键0AH~0FH、功能键10H~ 。
延时等待10ms
仍有按键信号?
Y
有按键信号?
N
Y
N
键盘处理
按键释放?
N
Y
3)键处理
根据键值转移到不同程序段。
若键值属于数字、字符键,则调用显示数字和字符的子程序。
若键值属于功能键,则进行多分支转移,执行各个功能程序段。
抖动时间
<10ms
开关动作时间
>100ms
“ 1 ”
“ 0 ”
<10ms
&
I/O
接
口
&
+5v
+5v
消除抖动电路
开关
单片机
独立式键盘电路
矩阵式键盘
0 1
+5v
C0 C1
R0 R1
键盘
I/O接口
列线输出,行线输入。
列线逐行输出0,某行有按键,行线输入有0,若无按键,行线输入全部为1。
行列线交换输入、输出,两步获取按键键号。
+5v
每个按键单独占有一根I/O接口引线。
按键处理程序:
延时消抖
键扫描求键号
延时等待
键译码求键值
修改显示缓冲区
跳转各功能程序
有按键输入?
确有按键?
按键释放?
是数字键?
D/A转换器接口
D/A转换原理
n位数字量与模拟量的关系式:
VO = VREF / 2n ×D (VREF - 参考电压)
集成D/A