第 9章 接口技术
9.1 LED 显示器接口
9.2 键盘与单片机接口
9.3 D/A转换器接口
9.4 A/D转换器接口
9.5 扩展 IO口( 8155)
9.1 LED 显示器接口
LED显示器用于显示工业控制参数、过程状态。
9.1.1LED数码管共阴极 LED和共阳极 LED
当 LED字段引线与数据线连接,
每个显示字形对应一个字形码。
COMP1.0~ 1.7
MCS-51
a
f b
g
e c
d h
a
b
h
a b h
COM
LED 的字形码 ( 字段码 )
显示字符 共阴极 共阳极
0 3 F H C 0 H
1 06H F 9 H
8,FFH 00H
‘灭’ 00 FFH
F 71H 84H
U 3 E H C 1 H
P,F 3 H 02HD7 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 ; 字形码表

COMP1.0~ 1.7
MCS-51
a
f b
g
e c
d h
a
b
h
9.1.2LED接口电路显示多位数据的两种电路:
1)静态显示
a b h
COM
a
f b
ge c
d h
a b h
COM
a b h
COM
COM
h
COM
D7

D1D
0
D0
D1
D2
h bbh
COM
a
f b
g
e c
d h
a ab a
2,动态显示对应字位线,D0 D1 D2 D3 D4 D5 显示缓冲区地址 内容
7 A H
7 B H
7 CH
7 DH
7 E H
7 F H
每个 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 ACC.6,DLP ; 未显示到最右边 LED,继续显示
RET ; 全部扫描一遍,结束
DTAB,DB 0C0H,0F9H,0A4H ; 字形表
DB 0B0H,99H,
DLY1MS … ; 延时 1ms子程序
9.2 键盘与单片机接口键盘处理程序任务
1)键输入检查键盘是否有键被按下,
消除按键抖动。确定被按键的键号,获取键号。
硬件电路消除抖动或软件消除抖动。
2)键译码键号为键盘位置码,根据键号查表得出被按键的键值。键值:数字键 0~ 9、字符键
0AH~ 0FH,功能键 10H~ 。
延时等待 10ms
仍有按键信号?
Y
有按键信号? N
Y
N
键盘处理按键释放? N
Y
3)键处理根据键值转移到不同程序段。
若键值属于数字、字符键,则调用显示数字和字符的子程序。
若键值属于功能键,则进行多分支转移,
执行各个功能程序段。
抖动时间
< 10ms
开关动作时间
> 100ms
,1,
,0
” < 10ms
& I/O
接口

+5v
+5v
消除抖动电路开关 单片机
9.2.1 独立式键盘电路 9.2.2 矩阵式键盘
0 1
+5vC0 C
1
R0
R1
键盘
I/O接口
1.扫描法列线输出,行线输入。
列线逐行输出 0,某行有按键,行线输入有 0,若无按键,行线输入全部为 1。
2.反转法行列线交换输入、输出,两步获取按键键号。
P1.0
P1.1
P1.7
+5v
每个按键单独占有一根 I/O
接口引线 。
按键处理程序:
延时消抖键扫描求键号延时等待键译码求键值修改显示缓冲区 跳转各功能程序有按键输入?
确有按键?
按键释放?
是数字键?
9.3 D/A转换器接口
9.3.1 D/A转换原理
n位数字量与模拟量的关系式:
VO = VREF / 2n × D (VREF - 参考电压 )
8.3.2 集成 D/A转换器
DAC 0832,8位双缓冲器结构的 D/A转换器。
8位
DAC
DAC
寄存器输入寄存器 -
+I
OUT2
IOUT1
RVER
VO
D0~ 7
AGNDPA0
PA1
DAC 0832与单片机连接例,D/A转换程序,用 DAC 0832输出 0~ 5V锯齿波,电路为直通方式。
设 VREF= - 5V,DAC 0832地址为 7FFFH,脉冲周期要求为 100ms。
100ms
DACS,MOV DPTR,#7FFFH; 0832 I/O地址
MOV A,#0 ; 开始输出 0V
DACL,MOVX @DPTR,A ; 输出模拟量
INC A ; 升压
ACALL DELAY ; 延时 100ms/256
AJMP DACL ; 连续输出
DELAY,… ; 延时子程序直通方式,
输入寄存器和 DAC寄存器共用一个地址,同时选通输出。
双缓冲器方式,
输入寄存器和 DAC寄存器分配有各自的地址,可分别选通用同时输出多路模拟信号。
9.4 A/D转换器接口
9.4.1 集成 A/D转换器
ADC 0809/0808为 8路输入通道,8位逐次逼近式 A/D转换器,
可分时转换 8路模拟信号。
一,结构一个 8位逐次逼近式 A/D转换器,8路模拟转换开关,3-8
地址锁存译码器和三态输出数据锁存器。
二,引脚
8路模拟量输入信号端:
IN0~ IN7
8位数字量输出信号端:
D0~ D7
通道选择地址信号输入端:
ADDA,ADDB,ADDC
多路转换开关
A B C
IN0
IN1
IN7
A/D转换三,ADC 0809与单片机连接
A/D转换程序,MOV DPTR,#0FE00H ; ADC口地址
MOV A,#00 ; 转换 IN0
MOVX @DPTR,A ; 启动 A/D转换
LCALL DELAY ; 等待转换结束
MOVX A,@DPTR ; 取转换结果
AD0~ 7
ALE
INT
WR
P2,0
RD
D0~ 7
ADDABC
CLK
EOC
ALE
SC
OE
≥1
≥1
1
1
1
MCS-51 ADC08098
3
IN0~ 7
复习一,概念填空二,指令分析指令执行结果和如何影响标志位三,程序分析为程序加注释,说明程序功能,写出程序执行结果,
计算延时程序执行时间 。
四,编写程序数据处理程序,片内 I/O接口编程 。
五,单片机应用系统硬件电路设计