74
第第第 MCS-51 第 第第第第 6.1 MCS-51 第第第第 6.2 第第第第第第第第 6.3 第第第第第第第第 6.4 第第第第第第第 6.5 A/D D/A 第第第第 6.6 第第第第第第第第第 6.7 第第第第第第

第六章 MCS-51 系统扩展技术

Embed Size (px)

DESCRIPTION

第六章 MCS-51 系统扩展技术. 6.1 MCS-51 系统扩展原理 6.2 程序存储器的扩展 6.3 数据存储器的扩展 6.4 并行接口的扩展 6.5 A/D 、 D/A 转换技术 6.6 七断发光显示器接口 6.7 键盘及其接口. 上一章. 下一章. 结束. 6.1 MCS-51 系统扩展原理. 返回. 结束. 下一节. 6.2 程序存储器的扩展. 6.2.1 常用的程序存储器 6.2.2 MCS-51 程序存储器的扩展. 返回. 结束. 下一节. 6.2.1 常用的程序存储器. - PowerPoint PPT Presentation

Citation preview

Page 1: 第六章 MCS-51 系统扩展技术

第六章 MCS-51 系统扩展技术 6.1 MCS-51系统扩展原理 6.2 程序存储器的扩展 6.3 数据存储器的扩展 6.4 并行接口的扩展 6.5 A/D、D/A转换技术 6.6 七断发光显示器接口 6.7 键盘及其接口

Page 2: 第六章 MCS-51 系统扩展技术

6.1 MCS-51 系统扩展原理外部程序存贮器

扩展RAM

I /并行O接口

A/ D转换器

I /串行O接口

D/ A转换器

定时器计数器

外部数据存贮器

扩展总线

I / O并行设备

I / O串行设备

模拟量 模拟量

PSEN

P2 P、 0

MCS-51

RDWR

6-1 MCS-51图 系统扩展示意图

Page 3: 第六章 MCS-51 系统扩展技术

6.2 程序存储器的扩展

6.2.1 常用的程序存储器 6.2.2 MCS-51程序存储器的扩展

Page 4: 第六章 MCS-51 系统扩展技术

6.2.1 常用的程序存储器 1 . EPROM 的结构和特性 EPROM 是紫外线可擦除电可编程的半导体只读存贮器,掉电后

信息不会被丢失。 EPROM 中的程序一般由专门的编程器写入。常用的 EPROM 电路有: 2716 , 2732 , 2764 , 27128 , 27256 , 27512 等。图 6-2 中涉及的引脚符号的意义如下:

A0 ~ Ai :地址输入线, i = l0 ~ 15 ; O0 ~ O7 :三态数据总线, CS : 片选信号输入线,“ 0”( 即

TTL 低电平 ) 有效, PGM : 编程脉冲输入线; OE : 读选通信号输入线,“ 0” 有效; Vpp : 编程电源输入线, Vpp 的值因芯片型号和因制造商而异; Vcc : 主电源输入线, Vcc 一般为 +5V ; GND : 线路地。

Page 5: 第六章 MCS-51 系统扩展技术

6.2.1 常用的程序存储器 2.EPROM 的操作方式 EPROM 的主要操作方式有 编程方式:把程序代码(机器指令、常数)固化到 EP

ROM 中; 编程校验方式:读出 EPROM 中的内容,校验编程操

作的正确性; 读出方式: CPU 从 EPROM 中读取指令或常数; 维持方式:数据呈高阻; 编程禁止方式:使用于多片 EPROM 并行编程不同数

据。

Page 6: 第六章 MCS-51 系统扩展技术

6.2.2 MCS-51 程序存储器的扩展 1 、程序存储器扩展的基本原理

一个机器周期

OSC

ALE

PSEN

RD、WR

PORT2

PORT0

A15 A8地址 ~ A15 A8地址 ~

A7 A0~ A7 A0~指令

6-3 图 MCS-51访问外部程序存储器的时序波形图

Page 7: 第六章 MCS-51 系统扩展技术

6.2.2 MCS-51 程序存储器的扩展 2 .程序存贮器扩展的一般方法

5V+

10kΩ 8051/ 8751

EA

MCS-51PSEN

P0

P2

ALE

A8 A15~

A0 A7~

D0 D7~

A0 Ai~ CEEPROM存贮器

OE

地址锁存器

6-4 图 MCS-51与外部程序存贮器的接口框图

O0 O~ 7

Page 8: 第六章 MCS-51 系统扩展技术

6.2.2 MCS-51 程序存储器的扩展

20 11

101

VCCQ7 D7 D6 Q6 Q5 D5 Q4D4 G

E Q0 Q1 Q2 Q3D0 D1 D2 D3 GND

74LS373

a ( ) 引脚

输入 D0 D~ 7 Q0 Q~ 7

接数控制

G

E(输出允许)

Q0 Q~ 7

b ( ) 结构

6-5 74LS373图 引脚和结构图E G 功能0 1 Qi Di直通( = )0 0 Qi保持( 保持不变)1 X (输出高阻)

6-7 74LS373表 功能表

Page 9: 第六章 MCS-51 系统扩展技术

6.2.2 MCS-51 程序存储器的扩展 8031 与一片 2764 的接口电

8031

PSENP2. 0 P~ 2. 4

ALE

P0

EA

G

5V+

74LS373E GND

A0 A7~ A8 A12~ OE

2764

D0 7~ GND CE 5V+

VCCVPPPGM

6-6 8031 2764图 与一片 接口电路

Page 10: 第六章 MCS-51 系统扩展技术

6.2.2 MCS-51 程序存储器的扩展 8051 与一片 2764 的接口电路

P2. 0P2. 1P2. 2P2. 3

P0

PSEN

EA

ALE

8051/ 8751

5V+ E

G74LS373

A0 7~

D0 D7~CE

OE

A8 A9A10A11

2732

6-7 8051 2732图 与一片 接口电路

Page 11: 第六章 MCS-51 系统扩展技术

6.2.2 MCS-51 程序存储器的扩展 3 .线选法扩展多片 ROM 的扩展电路

P2. 7

P2. 6

P2. 5

P2. 4~P2. 0

P0. 7~P0. 0

ALE

PSEN

EA

OE OE OE

CE CE CEA12~A0 A12~A0 A12~A0

A15A13 A14

74LS373

G

8

5

2764A 1( ) 2764A 3( )2764A 2( )O7~O0 O7~O0O7~O0

6-8 3 EPROM 2764A图 采用线选法扩展 片 电路原理图

8031

Page 12: 第六章 MCS-51 系统扩展技术

6.2.2 MCS-51 程序存储器的扩展 4. 译码法实现多片 ROM 的扩展电路

P2. 7

P2. 6

P2. 5

P2. 4~P2. 0

P0. 7~P0. 0

ALE

PSEN

EA

OE OE OE

CE CE CEA12~A0 A12~A0 A12~A0

74LS373

G

8

5

2764A 1( ) 2764A 3( )2764A 2( )O7~O0 O7~O0O7~O0

6-9 3 EPROM 2764 图 采用译码法扩展 片 的方法

8031

Y0

Y3Y2Y1

G

BA

74LS139

Page 13: 第六章 MCS-51 系统扩展技术

6.3 数据存储器的扩展

6.3.1 常用的数据存储器 6.3.2MCS-51扩展外部数据存储器的原理 6.3.3 典型的MCS-51存储器扩展电路

Page 14: 第六章 MCS-51 系统扩展技术

6.3.1 常用的数据存储器 1 、静态 RAM 存储器( SRAM )

( 1 )静态 RAM 的结构和特性静态随机存取存贮器 RAM 具有存取速度快、使用方便和价格低廉等优点。它的缺点是

一旦掉电,内部所存数据信息便会丢失。目前常用的静态 RAM 电路有 6116 , 6264 , 62256 等,它们的引脚排列如图 6-10 所

示, 图 6-10 中所涉及的引脚符号的功能如下:●A0 ~ Ai :地址输入线, i = l0 ~ 14 ;●O0 ~ O7 :双向三态数据线,有时用 D0—D7 表示;● : 片选信号输入线,“ 0”( 即 TTL 低电平 ) 有效,● : 读选通信号输入线,“ 0” 有效;● : 写选通信号输入线,“ 0” 有效;●Vcc : 主电源输入线, Vcc 一般为 +5V ;●GND : 线路地。注: 6264 的 26 脚为高电平有效的片选端 CS 。

CEOE

WE

Page 15: 第六章 MCS-51 系统扩展技术

6.3.1 常用的数据存储器24 13

121

24 13

121

24 13

121

28

1 1

28

14

15

14

15

VCCA8A9

A7A6A5A4 A3A2A1A0 O0O1O2GND

WEOE CEA10 O7O6 O5O4O3

VCC A8A9WE OE CEA10 O7O6O5O4O3 VCC A8A9WE OE CEA10 D7D6 D5D4D3

A7A6A5A4 A3A2A1A0 O0O1O2GND A7A6A5A4 A3A2A1A0 D0D1D2GND

CS A11

A12NC

6264

6116

A13 A11

A12A14

62256

图6-10 常用静态RAM电路引脚图

Page 16: 第六章 MCS-51 系统扩展技术

6.3.1 常用的数据存储器 ( 2 )静态 RAM 的工作方式 静态 RAM 存储器有读出、写入和维持三种工作方式,这些工作

方式的操作控制见表 6-10 。

表 6-10 6116 、 6264 、 62256 的操作控制 信号

CE OE WE方式O0~O7

读 VIL VIL VIH 数据输出

写 VIL VIH VIL 数据输入

维持 * VIH 任意 任意 高阻态

Page 17: 第六章 MCS-51 系统扩展技术

6.3.2 MCS-51 扩展外部数据存储器的原理 1 . MCS-51 对外部数据存储器的操作指令如前面第三章所述, MCS-51 对外部数据存储器的操作指令有如下

四条: ①MOVX A,@Ri ; A ← ( (P2) ( Ri )) ②MOVX @Ri,A ; (P2) ( Ri )← A

③MOVX A,@DPTR ; A ← (( DPTR )) ④MOVX @DPTR,A ;( DPTR )← A CPU 在执行①和②指令时. P2 口输出 P2 锁存器的内容. P0 口

输出 R0 或 R1 的内容。 CPU 在执行③和④指令时, P2 口输出 DPH 内容, P0 口输出 DPL 的内容。图 6-11 是 MCS-5l 访问外部数据存贮器的时序波形图。

Page 18: 第六章 MCS-51 系统扩展技术

6.3.2 MCS-51 扩展外部数据存储器的原理

Page 19: 第六章 MCS-51 系统扩展技术

6.3.2 MCS-51 扩展外部数据存储器的原理

Page 20: 第六章 MCS-51 系统扩展技术

6.3.2 MCS-51 扩展外部数据存储器的原理 2 . MCS-51 和外部数据存储器的接口方法

P2

ALE

P0RDWR

MCS-51

8 A高 位地址 8 A~ 15

8 A低 位地址 0 A~ 7

地址锁存器 外部数据存贮器

片选

读 写数据

图6-12 MCS-51与外部数据存储器的接口框图

Page 21: 第六章 MCS-51 系统扩展技术

6.3.3 典型的 MCS-51 存储器扩展电路 1 、扩展 32K RAM 和 32K EPROM 的 8031 系统

A15

A8 A14~

A0 A7~

A0 A7~ A0 A7A8 A14~ ~ A0 A7 A8 A14~ ~

D0D1 D0 D2D3D4D5D6D7D7D6D5D4D3D2 D1 D5 D7D6D4D3D2D1D0CE CEWEOEOEE GND GND

G 5V-5V+

16

1729323334353637383930

2122232425262728

P2. 0 P~ 2. 7

P0. 0 P~ 0. 7

8031ALE

RDPSEN

WR

图6-13 扩展32KB RAM、32KB EPROM的8031系统

74LS373 27256 62256

Page 22: 第六章 MCS-51 系统扩展技术

6.4 并行接口的扩展

6.4.1 可编程并行接口芯片8255A

6.4.2 用74系列器件扩展并行I/O口

Page 23: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 1 . 8255A 的结构

A组控制

A组A口

A组C口

B组B口

B组C口

B组控制

数据总线驱动器

/读 写控制逻辑

D7~D0

RD

A1A0

RESET

WR

CS

8( )

8( )

4( )

4( )

PA7 PA0~

PB7 PB0~

PC7 PC4~

PC3 PC0~

PA1PA2PA3

PA0RDCSGNDA1A0PC7PC6PC5PC4

PC3

PC0PC1PC2

PB0PB1PB2 PB3

PB4PB5PB6PB7VCCD7D6D5D4D3D2D1D0RESETWR

PA4PA5

PA7PA6

8255A

20 21

1 40

b 8255A( ) 引脚a 8255A( ) 逻辑框图

图6-14 8255A 逻辑框图和引脚图

Page 24: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 2 、 8255A 操作方式 ( 1)方式 0(基本 I/O方式 )

RD

I NPUT

CS A1 A0,

D7 D0~

D7 D0~

CS A1 A0,

OUTPUT

WR

0方式 (基本输入)

0方式 (基本输出)

6-15 图 8255A方式0输入输出时的时序图

Page 25: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 2 、 8255A 操作方式 ( 2)方式 1(输入 )

Page 26: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 2 、 8255A 操作方式 ( 2)方式 1(输入 )

STB

I BF

I NTRRD

I NPUT

图6-17 方式1输入时序波形

Page 27: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 2 、 8255A 操作方式 ( 2)方式 1(输出 )

Page 28: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 2 、 8255A 操作方式 ( 2)方式 1(输出 )

图6-19 方式1 输出时序

WR

OBF

I NTR

ACK

OUTPUT

Page 29: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 2 、 8255A 操作方式 ( 3)方式 2(双向选通 I/O方式)

PB7 PB~ 0

WR

控制字

1 10

D7 D6 D5 D4 D3 D2 D1 D0

I NTE1PC6PC7

PC4

OBFA

ACKA

1 0 011

RD

PC5

I NTE2 STBA

I BF

PC3 I NTRA

PA7~PA08

I /O3

PC2~PC0

PC2~PC01=输入

0=输出1=输入

0=输出B口

B组方式

1 1=方式0 0=方式

图6-20 PA口方式2逻辑组态

Page 30: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 2 、 8255A 操作方式 ( 3)方式 2(双向选通 I/O方式)

OBF

I BFBUS

WR

I NTR

ACK

STB

RD8255数据从外围器件到 8255数据从 至外围器件

图6-21 PA口方式2逻辑时序

Page 31: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 3 、 8255A 的控制字 ( 1 )方式控制字

Page 32: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 3 、 8255A 的控制字 ( 1 )方式控制字

Page 33: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 4 、 MCS-51 和 8255A 的接口方法 (1)

P2. 7MCS-51

ALE

A1A0VCC

RESETGND

D7 D~ 0P0

CS

RDRD

WRWR

GE

74LS373 CR

I / O

I / O

I / O

PA

PC

PB

8255A

图6-23 8255A方式0时和MCS-51的一种接口逻辑

Page 34: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 4 、 MCS-51 和 8255A 的接口方法 (1) 假设图中 8255A 的 PA 口接一组开关, PB 口接一组指示灯,如果要将MCS-

51 的寄存器 R2 的内容送指示灯显示、将开关状态读入 MCS-51 的累加器A ,则 8255初始化和输入 / 输出程序如下:

R8255 : MOV DPTR, #7FFFH ; 写方式控制字( PA 口方式 0 输入, PB ; 口方式 0 输出) MOV A, #98H MOVX @DPTR, A DEL DPL ;将 R2 内容从 PB 口输出 DEC DPL MOV A, R2 MOV @DPTR, A DEC DPL ;将 PA 口内容读入累加器 A MOVX A, @DPTR

Page 35: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 4 、 MCS-51 和 8255A 的接口方法 (2)

P2. 7

MCS-51

I BFA

PA

ALE

I NTRA

设备A

A1A0 8255

P0

I NTRB

I NT1

I NT0

RD

WR

CS

STBA

设备B

D0 D7~PB

74LS373

OBFB

ACKB

图6-24 MCS-51和8255A的另一种接口逻辑

Page 36: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 4 、 MCS-51 和 8255A 的接口方法 (2) 图中设备 PB 口接打印机,此打印机每打印完一个字符后会输出“打印完”信号 (负脉冲 ) ,故 8255A 可采用方式 1 工作。 CPU 可采用中断方式控制打印机打印。如果要把 MCS-51 内部 RAM 中 30H开始的 32个单元的字符输出打印,则可这样编程:

主程序:MAIN: MOV R0, #30H ;设 RAM 地址 MOV R7, #20H ;设长度 SETB EA ;开中断,允许外中断 1 ,电平触发方式 SETB EX1

MOV DPTR,#7FFFH ;将 8255A 的 PC2 (即 INTEB )置 1 MOV A, #05H MOVX @DPTR, A MOV A,#0BCH ;写方式控制字( PB )口方式、输出

Page 37: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 4 、 MCS-51 和 8255A 的接口方法 (2) MOVX @DPTR, A MOV DPTR, #7FFDH ;从 PB 口输出第一个数据打印 MOV A, @R0 MOVX @DPTR, A INC R0 ; RAM 指针加 1 DEC R7 ;长度减 1 …… ;执行其它任务外中断 1服务程序:PINT1 : …… ;保护现场 …… MOV A, @R0 ;从 PB 口输出下一个数据打印 MOV DPTR, #7FFDH

Page 38: 第六章 MCS-51 系统扩展技术

6.4.1 可编程并行接口芯片 8255A 4 、 MCS-51 和 8255A 的接口方法 (2)

MOVX @DPTR, A INC R0 ;修改指针、长度 DJNZ R7, BACK CLR EX1 ;长度为 0关中断返回 SETB 00H ;置打印结束标志 BACK: ……

……

RETI

Page 39: 第六章 MCS-51 系统扩展技术

6.4.2 用 74 系列器件扩展并行 I/O 口 1 、用 74LS377 (或 74HC377 )扩展并行输出口

Q0 Q1 Q2 Q3D0 D1 D2 D3 GNDE

74LS377

VCCQ7 D7 D6 D5 D4Q6 Q5 Q4 CLK

20 19 18 17 16 15 14 13 12 11

10987654321

输入 输出

(接数允许)(接数时钟)

D0 D7~Q0 Q7~

CLKE

b( )结构 c( )操作控制a( )引脚

E CLK 操作

保持

接数

1

0

0

×

×

图6-25 74LS377的功能特性

Page 40: 第六章 MCS-51 系统扩展技术

6.4.2 用 74 系列器件扩展并行 I/O 口 1 、用 74LS377 (或 74HC377 )扩展并行输出口

P2. 7P2. 6P2. 5

P2. 4~P2. 0

MCS-51ALE

P0

WRRD

A8~A12A0~A7

A15A14

A13

设备 设备

Q0 Q~ 7 Q0 Q~ 7地址锁存器 地址选片

8KB RAM数据写 读

E E

D0 D~ 7 D0 D~ 7CLK CLK74377 2( )74377 1( )

图6-26 74LS377和MCS-51的一种接口逻辑

Page 41: 第六章 MCS-51 系统扩展技术

6.4.2 用 74 系列器件扩展并行 I/O 口 2 、 用 74LS245 扩展并行输入口

1 20

10 11

74245

DI RA1

Vcc

A2

A3

A4

A5

A6

A7

A8

B8

B7

B6

B5

B4

B3

B2

B1

G

6-12表 74LS245功能表G

(使能)DI R

(方向控制) 操 作

L LL HH X

B A端送至 端A B端送至 端不传送

MCS-51P0

P2. 7

A1~A874LS245

B1 B~ 8

DI RRDG

图6-27 74LS245引脚图 图6-28 MCS-51和74LS245的一种接口逻辑

Page 42: 第六章 MCS-51 系统扩展技术

6.5 A/D 、 D/A 转换技术

6.5.1 D/A转换常用器件——DAC0832

6.5.2 A/D转换常用芯片——ADC0809

Page 43: 第六章 MCS-51 系统扩展技术

6.5.1 D/A 转换常用器件— DAC0832 1 、 DAC0832 结构

a DAC0832( ) 引脚图

D7

D6D5D4

D3D2D1D0

RfbDGND

VREF

I OUT1

I OUT2

I LEVCC

WR2XFER

AGNDWR1CS

WR2

WR1

I LE

XFER DGND

AGNDVCC

I OUT1

I OUT2

Rfb

VREF

8位数据锁存器

8位DAC寄存器

8位D/ A转换器0832

1 20

10 11

10203

11128

LE1 LE2

b DAC0832( ) 结构框图

CS

D0~D7

图6-30 DAC0832的引脚图和结构框图

Page 44: 第六章 MCS-51 系统扩展技术

6.5.1 D/A 转换常用器件— DAC0832 2 . DAC0832 工作方式 根据对 DAC0832 的输入锁存器和 DAC寄存器的不同的控制

方法, DAC0832 有如下三种工作方式: (1)单援冲方式。此方式适用于只有—路模批量输出或几路模拟量非同步输出的情形,方法是控制输入锁存器和 DAC寄存器同时接收数据,或者只用输入锁存器而把 DAC寄存器接成直通方式。

(2) 双缓冲方式。此方式适用于多个 DAC0832 同步输出的情形,方法是先分别使这些 DAC0832 的输入锁存器接收数据。再控制这些 DAC0832 同时传递数据到 DAC寄疗器以实现多个 D/A 转换同步输出。

(3)直通方式。此方式适宜于连续反馈控制线路中,方法是使所有控制信号均有效。

Page 45: 第六章 MCS-51 系统扩展技术

6.5.1 D/A 转换常用器件— DAC0832 3 . DAC0832 与 MCS-51 的接口方法 ( 1 )   具有一路模拟量输出的 MCS-51 系统

P0

P2. 7

WR

8031

0832

D0~D7

VCC

5V+

I LERfb

AGND

I OUT1

I OUT2

VREF

CS

WR1

WR2

XFER +

9

11

312

8 12V-200Ω

0.01μ F0.01μ F 51

0Ω8V

VOUT

图6-31 具有一路模拟量输出的MCS-51系统

Page 46: 第六章 MCS-51 系统扩展技术

6.5.1 D/A 转换常用器件— DAC0832 3 . DAC0832 与 MCS-51 的接口方法 ( 1 )   具有一路模拟量输出的 MCS-51 系统MCS-51 执行下面的程序后,运放的输出端将产生一个锯齿形电压波。MAVE: MOV DPTR, #7FFFH MOV A, #0LOOP: MOVX @DPTR, A INC A AJMP LOOP END

Page 47: 第六章 MCS-51 系统扩展技术

6.5.1 D/A 转换常用器件— DAC0832 3 . DAC0832 与 MCS-51 的接口方法 ( 2 )具有两路模拟量同步输出的 MCS-51 系统

P0

P2. 7

WR

8031D0~D7

I LE

AGND

I OUT1

CS

WR1

WR2

XFER

+-

1# DAC0832

D0~D7

VCC

5V+

I LE

AGND

I OUT1

I OUT2

VREF 5V(- )

CS

WR1WR2

XFER

VCC 5V+

-+

P2. 5 I LE

I LE

DGND

I OUT2

DGND

VREF 5V(- )

RFB

RFB

0 5V~

0 5V~ X

Y

图形显示器

2# DAC0832

P2. 6

图6-32 具有两路模拟量输出的MCS-51系统

Page 48: 第六章 MCS-51 系统扩展技术

6.5.1 D/A 转换常用器件— DAC0832 3 . DAC0832 与 MCS-51 的接口方法 ( 2 )具有两路模拟量同步输出的 MCS-51 系统 MCS-51 执行下面程序后,可使显示器上的光点根据参数 X. Y的值同步移动:

MOVE: MOV DPTR, #0DFFFH ;参数 X写入 DAC①的数据输入锁存器 MOV A, #X MOVX @DPTR, A MOV DPTR, #0BFFFH ;参数 Y写入 DAC②的数据输入锁存器 MOV A, #Y MOVX @DPTR, A MOV DPTR, #7FFFH ;两片 DAC0832 同时接收数,同步输出 MOVX @DPTR, A RET

Page 49: 第六章 MCS-51 系统扩展技术

6.5.2 A/D 转换常用芯片— ADC0809 1 . ADC0809 结构及引脚功能

多路开关地址锁存器

8: 1模拟多路开关

控制逻辑

逐次逼近数码寄存器

三态

输出

锁存器

开 关 网 落

CLOCK

EOC

START

ABC

I N0I N1I N2I N3I N4I N5I N6I N7

OE

D0D1D2D3D4D5D6D7

ALE

2/ 3R R R 1/ 2R

梯形电阻网络REF(+) REF(- )

1234567891011121314

2827262524232221201918171615

I N3I N4I N5I N6I N6

STARTEOCD3OE

CLKVcc

VREF(+)GNDD1

I N2I N1I N0ADDAADDBADDCALED7D6D5D4D0VREF(- )D2

ADC0

809

图6-33 ADC0809内部结构引脚图

Page 50: 第六章 MCS-51 系统扩展技术

6.5.2 A/D 转换常用芯片— ADC0809 2 . ADC0809的接口电路

8031

OE

G

Q0

Q7

~~D0

D7

74LS373

8

8

ALE

P0

≥ 1

≥ 1

WR

P2. 0

RD

I NT1

ADC0809

8

3

D0 D7~

ADDAADDBADDC

CLK

STARTALEOE

EOC

+5VVREF(+)

VREF(- )

I N0 I N7~ 模拟输入

6-34 ADC0809图 接口电路

Page 51: 第六章 MCS-51 系统扩展技术

6.5.2 A/D 转换常用芯片— ADC0809 2 . ADC0809的接口电路 假设将 8 路模拟量转换所得到的数字量依次存放于 30H~ 37H。MAIN : MOV R0, #30H ; R0 指向数字量暂存区首址 MOV R7, #08H ;模拟量通道数 SETB IT1 ;置中断方式为边沿触发 SETB EX1 ;开中断 SETB EA MOV DPTR, #0FEF8H; ADC0809 IN0 通道地址LOOP: MOVX @DPTR,A ;启动 A/D 转换 SJMP $ DJNZ R7, LOOP

Page 52: 第六章 MCS-51 系统扩展技术

6.5.2 A/D 转换常用芯片— ADC0809 中断服务程序INT1: MOVX A, @DPTR ; 读取 A/D 转换结果 MOV @R0, A ; 存入响应数据区 INC DPTR ; 更新通道 INC R0 ; 更新存储单元 RETI ;中断返回

Page 53: 第六章 MCS-51 系统扩展技术

6.6 七断发光显示器接口

6.6.1 显示器的结构 6.6.2 显示器的工作方式和

显示程序设计

Page 54: 第六章 MCS-51 系统扩展技术

6.6.1 显示器的结构 常用的七段显示器的结构如图 6-35 所示。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。 1位显示器由八个发光二极管组成,其中七个发光二极管 a~ g控制七个笔画 (段 ) 的亮或暗,另一个控制一个小数点的亮和暗。这种笔画式的七段显示器能显示的字符较少,字符的形状有些失真,但控制简单.使用方便。

a

b

C

d

e

fg

h

(a)外形

. g f e d c b a

COM公共阳极

(b)共阳极

. g f e d c b a

COM公共阴极(c)共阴极

图6-35 七端发光显示器的结构

Page 55: 第六章 MCS-51 系统扩展技术

6.6.2 显示器的工作方式和显示程序设计 1 、静态显示方式 所谓静态显示方式,就是当显示

器显示某一个字符时,相应的发光二极管恒定地导通或截止,例如七端显示器的 a,b,c,d,e,f导通,g 截止时显示“ 0” 。这种显示方式的每一个七端显示器需要一个 8位输出口控制。图 6-36给出了用 8255 的三个口控制 3位7段显示器的接口逻辑,程序中将相应的字形数据(常称之为段数据)写入 8255 的 PA,PB,PC口显示器就显示出 3位字符(数字或部分英文字母)。

8255PA

PB

PC

+5V

图6-36 3位静态显示器接口

Page 56: 第六章 MCS-51 系统扩展技术

6.6.2 显示器的工作方式和显示程序设计 图 6-37给出了 8位静态显示器的接口逻辑。

MCS-51

74LS164(0)

LED0共阳极

74LS164(1)

LED1共阳极

74LS164(7)

LED7共阳极

1, 2 1, 2

…………

……

……

…… 5V+

hgfedcba

3456 10111213

8 8 89 9 9

10

11TXD

RXD

图6-37 8位静态显示器接口

Page 57: 第六章 MCS-51 系统扩展技术

6.6.2 显示器的工作方式和显示程序设计 下面列出更新显示器子程序清单:DIR: MOV R7, #08H MOV R0, #7FH ;7F~78H为显示缓冲区DL0: MOV A, @R0 ;读取要显示的数 ADD A, #0BH ; 加上偏移量 MOVC A, @A+DPTR ; 查表读取字形数据 MOV SBUF, A ; 送出显示DL1: JNB TI, DL1 ;输出完否? CLR TI ; 完清中断标志 DEC R0 ; 再取下一个数 DJNZ R7, DL0 ; 循环 8次 RETSEGTAB: DB …… ;表格内为 7 断显示码

Page 58: 第六章 MCS-51 系统扩展技术

6.6.2 显示器的工作方式和显示程序设计 2 、动态显示方式所谓动态显示,就是一位一位地轮流点亮各位显示器 (扫描 ) ,

对于每一位显示器来说,每隔—段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。若显示器的位数不大于 8位,则控制显示器公共极电位只需一个 8位口 (称为扫描口 ) ,控制各位显示器所显示的字形也需一个 8位口 (称为段数据口 ) 。 6位共阴极显示器和 8255 的接口逻辑如图 6-38 所示。 8255 的 PA口作为扫描口,经反相驱动器 75452 接显示器公共极, PB口作为段数据口,经同相驱动器 7407 接显示器的各个段。

Page 59: 第六章 MCS-51 系统扩展技术

6.6.2 显示器的工作方式和显示程序设计 对于图 6-38 中的 6位显示器,

在 8031RAM 存贮器中设置六个显示缓冲器单元 79~ 7EH,分别存放 6位显示器的显示数据, 8255 的 PA 口扫描输出总是只有一位为高电平,即 6位显示器中仅有一位公共阴极为低电平,其它位为高电平, 8255 的 PB口输出相应位 (阴极为低 ) 的显示数据的段数据,使某一位显示出一个字符,其它位为暗,依次地改变 PA 口输出为高的位, PB口输出对应的段数据,6位显示器就显示出由缓冲器中显示数据所确定的字符。

8255

5V+

7407abc

def

gh

COM5 COM4 COM3 COM2 COM1

75452

100Ω × 8PB0PB1

PB2PB3PB4PB5

PB6PB7

PA5PA4PA3PA2

PA1PA0

图6-38 6位动态显示器接口

COM0

Page 60: 第六章 MCS-51 系统扩展技术

6.6.2 显示器的工作方式和显示程序设计 程序清单:DIR: MOV R0, #79H ; 置缓冲器指针初值 MOV R3, #01H MOV A, R3LD0: MOV DPTR,#7FFCH ; 模式→ 8255A 口 MOVX @DPTR, A INC DPTR MOV A, @R0 ;取显示数据 ADD A,#0DH MOVC A, @A+PC ; 查表取段数据 SJMP LD0LD1: RET ;在这里略去表格和延时程序

Page 61: 第六章 MCS-51 系统扩展技术

6.7 键盘及其接口

6.7.1非编码键盘接口 6.7.2 键盘的工作方式

Page 62: 第六章 MCS-51 系统扩展技术

6.7.1非编码键盘接口 1 、独立式键盘接口

P1. 0

P1. 1

P1. 3

P1. 2

P1. 4

P1. 5

P1. 5

P1. 6

EA

8031

图6-40 独立式键盘接口电路

R1 R2 R4 R5 R6 R7 R8R3

S1

S2

S3

S4

S5

S6

S7

S8

+5V

Page 63: 第六章 MCS-51 系统扩展技术

6.7.1非编码键盘接口 2 、矩阵式键盘接口 矩阵式键盘按键数目较多,

接口电路如图 6-41 所示。图中 4×4矩阵键盘,共 16个键,列线通过上拉电阻接+5V 电源,有按键按下时,按键所在的行和列被接通。

&

R1 R2 R3 R4

+5V

P1. 0

P1. 1

P1. 3

P1. 2

P1. 4

P1. 5

P1. 5

P1. 6

0列

1列

2列

3列

0行

1行

2行

3行

EA

I NT0

8031

图6-41 矩阵式键盘接口电路

Page 64: 第六章 MCS-51 系统扩展技术

6.7.1非编码键盘接口 3 、键盘输入处理过程 ( 1 )判断是否有键按下。 ( 2 )去除抖动(机械触点抖动时间为

5 ~ 10ms,为保证闭合一次只做一次处理,常采用软件延时 10 ~ 20ms的方法解决)

( 3 )判断键号。 ( 4 )等待键释放。 ( 5 )转入相应的键处理程序 。

Page 65: 第六章 MCS-51 系统扩展技术

6.7.2 键盘的工作方式

1 . 编程扫描方式 编程扫描方式是 CPU反复扫描键盘,等待键盘输入

信息。 CPU 在处理键入信息过程中,不再响应键入要求,直到 CPU 执行完键处理程序后重新返回扫描键盘。编程扫描方式在实用系统中应用较少。

Page 66: 第六章 MCS-51 系统扩展技术

6.7.2 键盘的工作方式 2. 定时扫描方式 定时扫描方式是利用片内定时器产生中断, CPU响应中断后执行键盘扫描子程序。这样 CPU 在非响应时间可以执行其他任务,从而提高了 CPU的工作效率。定时扫描程序流程如图 6-42 所示。

主程序开始

定时器初始化开中断

执行其他程序

扫描键盘

延时去抖动

有键闭合吗?

扫描键盘

有键闭合吗?

键盘扫描逐行判断闭合键键号

A键值送入

延时等待键释放

键释放了吗?

A取出键值 并执行

中断返回

中断开始

结束

Y

Y

Y

N

N

N

6-42 图 定时扫描程序流程图

Page 67: 第六章 MCS-51 系统扩展技术

6.7.2 键盘的工作方式 图 6-43 是利用 8255A 扩展的矩阵式键盘接口电路

5V+

PA7PA6PA5PA4PA3PA2

PA1PA0

PC0PC1

PC2PC3

0 1 2 3 4 5 6 7

8 9 10 11 12 13 14 15

16 17 18 19 20 21 22 23

24 25 26 27 28 29 30 31

5. 1kΩ × 4

ALE

RESET RESET

OE

GQ0

Q1

Q7~~

D0

D7

74LS373P0

RDWR

RDWR

D0 D7~8

8

80318255A

6-43 8255A图 做矩阵式键盘接口

CS

Page 68: 第六章 MCS-51 系统扩展技术

6.7.2 键盘的工作方式 定时扫描程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP KEY ; 跳转到中断服务程序 ORG 0100HMIAN: MOV TMOD, #00H ; 设置 T0 为方式 0 MOV TH0,#0F0H ; 定时器初值,延时约 1ms MOV TL0,#0C0H SETB TR0 ; 启动定时器 MOV IE, #82 ; 开中断 MOV DPTR, #0FF7FH ;指向 8255A 的控制寄存器 MOV A, #81H;设置 8255 控制字 MOVX @DPTR, A ……

Page 69: 第六章 MCS-51 系统扩展技术

6.7.2 键盘的工作方式 中断服务程序: ORG 0E00HKEY: LCALL KS1 ; 调用判断是否有键闭合子程序 JNZ K1 ;(A)≠0 ,有键闭合,转 K1 LJMP K11 ;(A)=0, 无键闭合,转 K11K1: ACALL D12MS ; 调用 12ms延时程序 ACALL KS1 ; 再次判断是否有键闭合 JNZ K2 ; (A)≠0 ,确认有键闭合,转 K2 LJMP K11 ;(A)=0, 无键闭合,转 K11K2: MOV R2, #0FEH ;第 0 列键盘扫描字送入 R2 MOV R4, #00H ;列号计数器初值为 0K3: MOV DPTR, #0FF7CH ;选中 8255A 的 PA 口 MOV A, R2

Page 70: 第六章 MCS-51 系统扩展技术

6.7.2 键盘的工作方式 MOVX @DPTR, A ;列扫描字送入 8255A 的 PA 口 INC DPTR INC DPTR ;指向 8255A 的 PC 口 MOVX A, @DPTR ;读行状态 JB ACC.0, L1 ;第 0 行无键按下,转查第一行 MOV A, #00H ;第 0 行有键按下,该行首键号为 00H AJMP KN ;转求键号L1: JB ACC.1, L2 ;第一行无键按下,转查第二行 MOV A, #08H ;第一行有键按下,该行首键号为 08H AJMP KNL2 : JB ACC.2, L3 ;第二行、第三行依次类推 MOV A,#10H AJMP KN

Page 71: 第六章 MCS-51 系统扩展技术

6.7.2 键盘的工作方式L3: JB ACC.3,NEXT MOV A, #18HKN: ADD A, R4 ; 计算键号 PUSH ACC ; 保护 A 中键值K4: ACALL KS1 ; 再次检查键盘 JNZ K4 ;等待键盘释放 ACALL D12MS ; 调用延时 POP ACC ;取键值 MOV DPTR, #TAB ;取散转地址 RL A JMP @A+DPTR ;转向各个键处理程序TAB: AJMP KEY0 AJMP KEY1 ……

Page 72: 第六章 MCS-51 系统扩展技术

6.7.2 键盘的工作方式NEXT: INC R4 ;指向下一列 MOV A, R2 ; 判断 8 列扫描完成否 JNB ACC.7 ,K11 ; 扫描完成,转向 K11 RL A ; 扫描没有完成,扫描字左移一位 MOV R2, A ; 扫描字暂时存放于 R2 LJMP K3 ; 开始下一列扫描KS1: MOV DPTR, #0FF7CH ; 设 PA 口为输出口 MOV A, #00H MOVX @DPTR, A INC DPTR ;指向 PC 口 INC DPTR MOVX A, @DPTR;读 PC 口状态 CPL A

Page 73: 第六章 MCS-51 系统扩展技术

6.7.2 键盘的工作方式 ANL A,#0FH ; 若( A )≠ 0则有键按下 RETD12MS: MOV R7,#0CH ; 延时 12ms子程序D12: MOV R6,#0F8H ; DJNZ R6,$ DJNZ R7, D12 RETK11: MOV A,#0FFH ; 扫描无效,置无效状态字 RETIKEY0: …… RETIKEY1: …… RETI ……

Page 74: 第六章 MCS-51 系统扩展技术

6.7.2 键盘的工作方式 3 . 中断扫描方式 中断扫描方式是 CPU 平时执行其他操作,当有键按下时,

向 CPU申请中断, CPU响应中断后,转向中断服务程序即键盘扫描程序,这样即很大程度地提高了 CPU 的工作效率。独立式键盘和矩阵式键盘都可以采用这种扫描方式,在这种工作方式下,键盘扫描程序是以中断服务程序的面孔出现,内容与前述定时扫描方式的中断服务程序基本相同,这里不再阐述,只是注意中断初始化问题即可。