第5章单片机并行扩展技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7406 OC门 X 3
+5V
(7FH) (7EH) (7DH) (7CH) (7BH) (7AH) 十万 万位 千位 百位 十位 个位
数据缓冲区 / 显示缓冲区
P0口送段 代码,P1 口送位选 信号。 待显数据 已经放在: 7FH— 7AH单元 (分别对应 十万位→ 个位) 使用共阳 译码表。
DIR: MOV DPTR, #DSEG ;数码管译码表首址
Vcc
A12
PGM
A12
PGM A12
A14
A7 A6
2764
NC A8
A7 A6
27128
A13 A8
A7 A6
27256
A13 A8
A5
A9
A5
A9
A5
A9
A4
A11
A4
A11
A4
A11
A3
OE
A3
OE
A3
OE
A2
A10
A2
A10
A2
A10
A1
CE
A1
CE
A1
CE
A0
D7
A0
D7
A0
D7
D0
D6
P0.7
段 P0.6 P0.5
代 P0.4 P0.3
码 P0.2 P0.1 P0.0
7406 OC门 X 3
+5V
上拉 电阻 ×14
AT89C51
共阴 数码管
位 P1.5 P1.4
选 P1.3 P1.2
线 P1.2 P1.0
要求:此处为共阴数码管,P0口送段代码,P1口送位选信号。 通过查表实现动态显示。 条件:待显数据(00H—09H)已放在: 7FH—7AH单元中(分 别对应十万位~个位) 说明:由于用了反相驱动器7406,要用共阳译码表。
D0
D6
D0
D6
D1
D5
D1
D5
D1
D5
D2
D4
D2
D4
D2
D4
GND
D3
GND
D3
GND
D3
程序存储器 2764 的扩展:
D0-D7
P0.0-P0.7 ALE EA
8D 8Q G OE
A0-A7
PSEN P2.0-P2.4
OE CE A8-A12
单片机
锁存器 74LS373
EPROM 2764
51单片机能提供16条地址线,可扩展64K字节
三、LED显示器的扩展(软件译码)
LED数码管的译码:软件译码
硬件译码特点: 采用专用译码/驱动器件, AT89C51
驱动功率较大;增加了硬
P1.0 P1.1
件的开销;软件编程简单;
P1.2 P1.3
字型固定(比如:只有七段, P1.4
P1.5
只可译数字,字型不好
P1.6
看……)。
P1.7
+5V
f
一、存储器的扩展(EPROM)
①程序存储器 EPROM 的扩展:
单片机内部没有ROM,或虽有ROM但容量太小
时,必须扩展外部程序存储器方能工作。最常用
的ROM器件是EPROM。 如:
2764(8K)/27128(16K)
V/pp27256(32VcKc )/2Vp7p 040(512VcKc )…Vpp…
动态显示特点:
有闪烁,用元器件少,占I/O线少,必须扫描,花费CPU时 间,编程复杂。(有多个LED时尤为突出)
LED数码管静态显示举例(学习串行口已见过)
+5V VCC TxD
RxD
A B
CLK CLR
74LS164
A B
CLK CLR
74LS164
hgfedcba
hgfedcba
A B
CLK
CLR
第5章单片机并行扩展
重点: 片外RAM与片外ROM扩展(参考范例应 用); LED显示接口(动态与静态,硬件译码与
软件译码,电路与编程应用).
RAM,ROM存储器扩 展
单片机本身资源不足以满足应用需求的情况下, 必须借助外部器件对系统进行扩展
主要介绍: 并口、RAM、ROM、键盘、LED、 DAC、ADC 等接口的扩展与应用, 其中涉及到 6264、2764、74LS373、 DAC0832 、ADC0809 等芯片。
CJNE R0,#36H,REDO ;判断是否发完6个数?
RET
;发完6个数就返回
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳LED译
码表
LED数码管动态显示举例
工作原理:从P0口送段代码,P1口送位选信号。段码虽同时 到达 6个LED,但一次仅一个LED被选中。利用“视觉暂 留”,每送一个字符并选中相应位线,延时一会儿,再送/选 下一个……循环扫描即可。
hgfedcba
低电平点亮
公共阴极
接地
@ 单片机系统扩展LED数码管时多用共阳LED: 共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱 动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮 的,要求驱动功率较大。 @ 通常每个段笔画要串一个数百欧姆的降压电阻。
三、LED显示器的扩展(结构)
动态显示举例 (循环显示“8”的实验)
实验箱从P0口扩展了两个8位的简单I/O口:
一个送段代码(字形状),地址是0DCH;
一个送位选信号(字位置),地址是0DDH。
ORG 0000H
MOV R0,#0DCH ;指向字形口
MOV A, #80H
;送“8”的字形代码
MOVX @R0,A
;输出字形代码
MOV R1,#0DDH
D6
D0
D6
D0
D6
D1
D5
D1
D5
D1
D5
D2
D4
D2
D4
D2
D4
GND
D3
GND
D3
GND
D3
数据存储器 6264 的扩展:
P0.0-P0.7
+5V EA
ALE
8D 8Q G OE
D0-D7 A0-A7
P2.0-P2.4 P2.7 RD WR
89C51单片机
锁存器 74LS373
A8-A12 CE2 CE1 OE WE
…
Vpp
Vcc Vpp
Vcc
A12
WE
A12
WE
A7 A6
Vcc A8
A7 A6
6264
CE2 A8
A7 A6
62128
A13 A8
A5
6116
A9
A5
A9
A5
A9
A4
WE
A4
A11
A4
A11
A3
OE
A3
OE
A3
OE
A2
A10
A2
A10
A2
A10
A1
CE
A1
CE1
A1
CE
A0
D7
A0
D7
A0
D7
D0
P0.7
段 P0.6 P0.5
代 P0.4 P0.3
码 P0.2 P0.1 P0.0
7406 OC门 X 3
+5V
上拉 电阻 ×14
AT89C51
共阴 数码管
位 P1.5 P1.4
选 P1.3 P1.2
线 P1.2 P1.0
P0口送段 代码,P1 口送位选 信号。 待显数据 已经放在: 7FH— 7AH单元 (分别对应 十万位→ 个位) 使用共阳 译码表。
h g f …… a
hgfedcba
低电平点亮
公共阴极
接地
八段LED数码管段代码编码表(连线不同可有多种表):
字形 0 1 2 3 4 5 6 7 8 9 黑 共阳 0C0 0F9 0A4 0B0 99 92 82 0F8 80 90 0FF 共阴 3F 06 5B 4F 66 6D 7D 07 7F 6F 00
MOV R0,#7AH ;待显缓冲区个位地址
MOV R3,#01H ;个位的位选信号=01H
LD1: MOV A, @R0
;通过R0间接寻址
MOVC A, @A+DPTR ;查表
MOV P0, A
;字段码送到P0口
MOV P1,R3
;字位选择送到P1口
LCALL DELY
;调延时1ms子程序
INC R0
三、LED显示器的扩展(显示方式)
LED数码管的显示方式:③静态与动态
静态显示:
各数码管在显示过程中持续得到送显信号,与各数码管接口 的I/O口线是专用的。
动态显示:
各数码管在显示过程中轮流得到送显信号,与各数码管接口 的I/O口线是共用的。
静态显示特点:
无闪烁,用元器件多,占I/O线多,无须扫描,节省CPU时 间,编程简单。
;R0 指向下一字节
MOV A,R3
JB ACC.5,LD2
;判是否发完6个数?
RL A
;R1指向下一个位
MOV R3,A
;位选信号存回R1
SJMP LD1
;跳去再显示下一个数
LD2: RET
;发完6个数就返回
DSEG:DB 0C0H,0F9H,0A4H,0B0H,99H;共阳译码表
DB 92H, 82H, 0F8H, 80H,90H
74LS164
hgfedcba
89C51 单片机
共阳LED
数码管
+5V
有几个LED就要几个74LS164,但只要数据不变, 送一次就保持住了,且不闪烁,编程十分简单。
要求:根据上图编写通过串行口和74LS164驱动
共
阳LED数码管查表显示的子程序。
条件:系统有6个LED数码管,待显数据(00H—
D09SPHL)Y已:M放O在V 3D5PHT—R,3#0THAB单LE元;共中阳(分LE别D数对码应管十译万码位表→首 址个位),
SRAM6264
51单片机能提供16条地址线,可扩展64K字节 的RAM。可以用一片芯片,也可以用多片 RAM
显示器接口扩展
三、LED显示器的扩展(结构)
LED数码管的结构:①共阳与共阴
公共阳极
接高电平
hgfedcba
高电平点亮
h g f …… a
f
a g
源自文库
b
f
a g
b
ed c
ed c
h
h
h g f …… a
LED数码管的译码:②硬件译码与软件译码
AT89C51
CD4511
共阴LED
P1.3
D
g
P1.2
C
f
P1.1
B
e
P1.0
A
d
c
b
a
f
a g
b
ed c h
74LS48/CD4511是“BCD码→七段共阴译码/驱 动”IC; 74LS47是“BCD码→七段共阳译码/驱 硬动件”译IC码特点:采用专用的译码/驱动器件,驱动功 率较大;增加了硬件的开销;软件编程简单;字型固 定(比如:只有七段,只可译数字,字型不好看…)。
MOV R0,#30H ;待显数据缓冲区的个位地址
REDO:MOV A, @R0 ;通过R0实现寄存器间接寻址
MOVC A, @A+DPTR ;查表
MOV SBUF, A ;经串行口发送到74LS164
JNB TI, $ ;查询送完一个字节的第8位?
CLR TI
;为下一字节发送作准备
INC R0
;R0指向下一个数据缓冲单元
a g
b
ed c h
共阳LED
软件译码特点:
不用专用的译码/驱动器件,驱动功率较小;不增
加硬件的开销;软件编程较复杂;字型灵活(比如:
有八段,只可译多种字符,字型好看……)。
LED数码管的软件译码
公共阳极
接高电平
hgfedcba
高电平点亮
h g f …… a
f
a g
b
f
a g
b
ed c
ed c
h
h
;指向字位口
MOV A,#20H
;从最高位开始
LEDO: MOVX @R1,A
;输出字位代码
ACALL DEYS
;调延时子程序
RR A
;右移一位
SJMP LEDO
;循环显示“8”
OVER !
的ROM。可以用一片EPROM,也可以用多片
EPROM
一、存储器的扩展(RAM)
②数据存储器 RAM 的扩展:
有时需要扩展外部数据存储器RAM方能工作(如数
据采集系统数据量较大,需要专设 RAM或 Flash
RAM)。最常用的 RAM器件是SRAM。
如:6116(2K)/6264(8K)/62128(16K)/628128(128K) …