第五章 MCS-51系统扩展技术内容提要,
§ 5-1 MCS-51单片机最小系统
§ 5-2 存储器的扩展
§ 5-4 可编程并行接口芯片 8255A
§ 5-6 常用通道配置与接口技术
§ 5-7 D / A转换
§ 5-3 并行 I / O端口的扩展方法
§ 5-5 可编程并行接口芯片 8155
§ 5-8 A / D转换单片机内资源少,容量小,在进行较复杂过程的控制时,它自身的功能远远不能满足需要 。 为此,应扩展其功能 。
MCS-51单片机的扩展性能较强,根据需要,
可扩展:
ROM,RAM;
定时 / 计数器;
并行 I / O口,串行口;
中断系统扩展等 。
§ 5-1 MCS-51单片机最小系统一,8051/8751硬件最小系统对于片内有 ROM型单片机,其自身可以构成最小系统该系统的资源如下:
4KB ROM,256B RAM;
五源中断系统;
两个十六位加一定时 / 计数器;
一个全双工串行 UART;
四个并行 I / O口 。
二,8031硬件最小系统
8031单片机片内无 ROM,若要正常工作,必需外配 ROM。
外接 ROM后,P3口,P2口,P0口均被占用只剩下 P1口作 I / O
口用,其它功能不变。
图中,/E—— 三态门控制端
G —— 低电平锁存三总线的概念,
地址总线 ——AB,P0口提供( A7 ~ A0);
P2口提供( A15 ~ A8),共 16位。
数据总线 ——DB,P0口提供( D7 ~ D0),共 8位。
控制总线 ——CB,ALE,,,,等。EA PSEN WR RD
§ 5-2 存储器的扩展一、三总线的连接
1,数据线的连接
P0口的八位线承担此任,此时不用外接上拉电阻 。
2,地址线的连接
P0口承担地址低八位线,A0 ~ A7;
P2口承担地址高八位线 。 A8 ~ A15。
注意,P0口线地址 / 数据分时复用,需用地址锁存器
74LS373锁存地址。
A10 ~ A8
A7 ~ A0
D7 ~ D0
CB
3,控制线的连接对存储器来讲控制线无非是:芯片的 选通 控制,读写 控制 。
单片机与外部器件数据交换要遵循两个重要原则,
一是,地址唯一性,一个单元一个地址 。
二是,同一时刻,CPU只能访问一个地址,即只能与一个单元交换数据 。
不交换时,外部器件处于锁闭状态,对总线呈浮空状态 。
读 / 写,CPU向外部设备发出的读 /写控制命令 。
EPROM,/OE /PSEN
SRAM,/WE /WR
/OE /RD
选通,CPU与器件交换数据或信息,需先发出选通信号
/CE或 /CS,以便选中芯片 。
二,存储器地址编码
SRAM6116:,16”——2K× 8b = 2KB 21× 210 = 211
即 6116有 11根地址线 。
地址空间,A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
最低地址,0 0 0 0 0 0 0 0 0 0 0 0000H
最高地址,1 1 1 1 1 1 1 1 1 1 1 07FFH
MCS-51单片机寻址范围,64KB 26× 210 = 216即 16位地址线地址空间,A15A14A13A12A11A10A9A8A7······A 0 单片机
× × × × × A10A9A8A7······A0 6116
25 = 32 2KB
上式中:,×,表示 0或 1。
即单片机地址空间中包含有 32个 2KB。某片 6116占据的是哪
2KB不能确定 ——地址浮动。
只有限定 A15······A 11的取值才能确定 6116在系统中的地址范围 。 如,P2.6 = 0,选中 6116的 /CS线 。 设 P2.7 P2.5 P2.4 P2.3
假定全为 1
则,6116地址范围是 B800H ~ BFFFH。
同理,P27 P25 P24 P23假定全为 0
则,6116地址范围是 0000H ~ 07FFH;
再设 P27选中 6116 ( 设 P26 P25 P24 P23全为 1)
则:地址范围是 7800H ~ 7FFFH
23 = 8 8KB
可见:存储器芯片在系统中地址分布由两个因素决定:
一是,芯片本身的地址线 ( 与容量有关 )
二是,芯片选通信号的获得方式 。
扩展存储器时,总是让单片机低位地址与存储器芯片地址线相接;而让单片机剩余的高位地址线 ( 在 P2口 ) 常作为片选信号线 。
这种方法对 SRAM,EPROM,扩展 I / O芯片,外设同样适用 。
P25 = 0时,选中 2764;,64” 8K× 8b = 23× 210 = 213
A15 A14 A13 A12 A11 ············A0
若取 P27 P26均为 1;
则 2764在本系统内地址范围,C000H ~ DFFFH
可以 。 此时 6116,D800H ~ DFFFH
2764,C000H ~ DB00H
若 6116与 2764都用 A13
( P25)选中可否
6116与 2764在 0800H ~
DFFFH范围内地址重叠,这是不是违反交换原则呢?
不会!因为,6116是 SRAM,2764是 EPROM。除地址和选通信号外,还有读 /写控制信号起作用。
RAM —— /WE /WR
/OE /RD
ROM —— /OE /PSEN
可用来区分二器件小结,1) CPU与外设数据交换的原则是什么?
2)决定存储器芯片在系统中地址范围的两个因素是什么?
布置作业,P220 5.2
§ 5-3 并口的扩展方法并口扩展常用三种方法:
1、利用 TTL,CMOS集成电路来扩展
2、利用单片机串口扩展
3、利用可编程并行接口芯片来扩展一、利用 TTL,CMOS集成电路来扩展
1、用锁存器扩展简单的 8位输出口
8031
P2.7
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
/WR
74LS377
/E
D7 Q7
D6 Q6
D5 Q5
D4 Q4
D3 Q3
D2 Q2
D1 Q1
D0 Q0
/CP
输出设备
D7
D6
D5
D4
D3
D2
D1
D0
74LS377为 8D锁存器,八入八出,一时钟 CP,一锁存允许 /E。
/E = 0时,CP 的上升沿,输入数据并锁存。
MOV DPTR,#7FFFH ;指向 74LS377
MOV A,#data ;取输出的数据
MOVX @DPTR,A ;通过 74LS377送出数据
P2.7接 /E,所以,74LS377的口地址为 7FFFH。
P0口是数据总线口,作 I / O口用时只能分时使用,为此,输出数据时需要锁存 。
2、用锁存器扩展简单的八位输入口外设与单片机在传输数据速度上存在着一定的差异,为了保证数据能被单片机正确地接收,应采取以下电路:
输入设备
STB
IN7
IN6
IN5
IN4
IN3
IN2
IN1
IN0
8031
P2.6
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
0INT
RD
74LS373
G
Q7 D7
Q6 D6
Q5 D5
Q4 D4
Q3 D3
Q2 D2
Q1 D1
Q0 D0
E
1?
在 STB的下降沿,将数据锁存入 74LS373
/E控制着 74LS373的输出,由 P2.6和 /RD相或控制,所以,74LS373的口地址为 BFFFH。
例、设将上图 74LS373中数据送入 8031片内数据存储器中首地址为 50H的数据区。写出相应中断系统初始化及中断服务程序。
中断系统初始化程序:
PINT,SETB IT0 ; /INT0选为下降沿触发方式
SETB EA ; CPU开中断
MOV R0,#50H ;置数据区首址
SETB EX0 ; /INT0中断允许中断服务程序:
ORG 0003H
PINT0,AJMP INT0
ORG 1000H
INT0,MOV DPTR,#0BFFFH ;指向 74LS373扩展输入口
MOVX A,@DPTR ;8031读入数据
MOV @R0,A ;输入数据送数据区
INC R0
RETI
3、用三态门扩展 8位输入并行口
74LS244是 8位三态门,当 /1G,/2G均为低电平时,允许输入数据;否则,为高阻态。
输入设备
IN7
IN6
IN5
IN4
IN3
IN2
IN1
IN0
8031
P2.6
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
RD 1? G2
74LS244
1Y1 1A1
1Y2 1A2
1Y3 1A3
1Y4 1A4
2Y1 2A1
2Y2 2A2
2Y3 2A3
2Y4 2A4
G1
G2
二、用串行口扩展并行 I / O 接口如果串口别无他用,则可让其工作于方式 0,来扩展一个或多个
8位并行 I / O口
1、用 74LS165扩展并行 I / O口
8031
P3.0
P3.1
P1.0
H G F E D C B A
QH SIN
/QH 74LS165( 1)
S/L M CP
H G F E D C B A
QH SIN
/QH 74LS165( 2)
S/L M CP
D0 ……….,D7 D0 ……….,D7
74LS165是 8位并入、串出移位寄存器。
其中,CP为移位脉冲输入端;
S / L为移位 / 装入端,以 P1.0控制。
两片 74LS165的首尾相连,即 QH与 SIN相连。
例、从上图两个八位并行口读入 20H组(每组两个字节)字节数据,并把它们转存到内部 RAM(首址为 30H)的数据区中。
解:以 PSW中的用 F0位来标志接收一组数中的前 8位与后 8位,
74LS165( 1)并行口输入数据时,置 F0为 1;
74LS165( 2)并行口输入数据时,置 F0为 0;
P1.0高、低变化一次,就控制并行数据装入一次,即串行口应接收到 2个 8位数据(一组)。
串口工作在方式 0,波特率为 fosc / 12 = 1Mb/s。
MOV R7,#20H ;读入字节数组
MOV R0,#30H ;内部 RAM数据区首址
SETB F0 ;假定 74LS165( 1)先读入
RCV0,CLR P1.0 ; 165装入数据
SETB P1.0 ;允许 165串行移位
RCV1,MOV SCON,#00010000B ;串行口设定
STP,JNB RI,STP ;等待接收完一个八位数
CLR RI不胜数 ;清 RI标志,以备下次接收
MOV A,SBUF ;串口接收数据
8031
P3.0
P3.1
P1.0
A B C D E F G H
AB
74LS164( 1)
/CR CP
A B C D E F G H
AB
74LS164( 2)
/CR CP
D7 ……….,D0 D7 ……….,D0
2、用 74LS164扩展并行输出口
74LS164是 8位串入、并出移位寄存器,其中,CP为移位脉冲输入端; /CR为清除端。
上图接法中,由于移位寄存器无并行输出控制,在串行输入过程中,其输出状态会不断变化,故在某些使用场合下,在
74LS164的输出端应加接输出三态门控制,以便保证串行输入结束后再输出并行数据。
小结:为什么要扩展并行 I / O口?
扩展并行 I / O口常用的三种方法是什么?
用 TTL芯片扩展的特点是什么?
用串口扩展时,串口应工作在方式几?
§ 5-4 可编程并行接口芯片 8255A
一,8255A的结构和操作方式
1,8255A的组成及引脚引脚图,
组成,
P2.7
P0
8031
ALE
/RD
/WR
RST
/EA
74LS373
1D ~ 8D
2Q
1Q
G /OC
/CS
8255A
PA0~PA7
A1
A0
PC7
PC0
D0 ~D7
/RD
/WR
RESET
微型打印机
DB0~DB7
BUSY
/STB
8
8
8
分三部分:
总线接口部分;内部逻辑部分 ; 外设接口部分
( 1) 总线接口部分
/CS —— 片选线
A1,A0 —— 端口选择线 ( 选片内四个端口寄存器 )
/RD —— 读信号线
/WR —— 写信号线
( 2) 内部逻辑部分
PA
PC7 ~ PC4
PB
PC3 ~ PC0
输入
A组控制电路控制 8255A工作方式二者合一成为端口控制寄存器。
B组控制电路
( 3) 外设接口部分可由编程决定三个端口的功能输入 输出 其它
A口 8位锁存 / 缓冲 8位锁存 双向
B口 8位锁存 / 缓冲 8位缓冲
C口 8位锁存 / 缓冲 8位缓冲 可分成两组分别作 A
口,B口的选通联络线
2,8255A的端口操作
A1 A0 选中
0 0 PA口
0 1 PB口
1 0 PC口
1 1 控制寄存器二,8255A的工作方式及方式选择
1,8255A的工作方式
( 1) 方式 0—— 基本输入 /输出方式
A口,B口,C口均有此方式,无选通,
是单片机与外部设备之间的直接数据通道 。
( 2) 方式 1—— 选通输入 /输出方式仅 PA口,PB口有此方式,
PC口中若干位作联络信号线,联络信号的组合情况见 P164 图 5-18。
各联络信号线的意义,
/STB —— 输入选通信号,外设发来 。
IBF —— 输入缓冲器满信号,发给外设 ( 通知外设数据未被取走,暂不能接收新数据 )
INTR —— 中断请求信号,外部设备发给单片机
INTE —— 中断允许信号
/OBF—— 输出缓冲器满信号,发给外设 ( 单片机将数据已送到指定口,外部设备可以取走 )
/ACK —— 外设响应信号,由外部设备发来(数据已送到外部设备)
( 3) 方式 3—— 双向方式仅 PA口有此方式 。 PC3 ~ PC7作联络线 此时,
PB口可以是方式 0;也可以是方式 1( PC0 ~
PC1作联络线 ) 。
2,8255A的方式控制字用编程方法向 8255A的控制口写控制字,可决定它的工作 方式 。
有两个控制字:
( 1)方式选择控制字
1 D6 D5 D4 D3 D2 D1 D0
,1”——方式控制标志位
D6,D5——决定 A组的工作方式,0 0 —— 方式 0
0 1 —— 方式 1
1 × —— 方式 2
D4 —— A口的传输方向,1—— 入,0 —— 出 。
D3 —— PC7 ~ PC4的传输方向,1—— 入,0 —— 出 。
D2 —— 决定 B组的工作方式,0—— 方式 0,1—— 方式 1。
D1 —— B口的传输方向,1—— 入,0 —— 出 。
D0 —— PC3 ~ PC0传输方向,1 —— 入,0 —— 出。
( 2) PC口置位 /复位控制字
0 D6 D5 D4 D3 D2 D1 D0
“0”—— 标志位 。
D6,D5 —— 不使用位 。
D3,D2,D1—— 位选择位,000 ~ 111 分别对应 PC7 ~ PC0。
D0 —— 位状态位,1 —— 置位,0 —— 复位。
三,8031和 8255A的连接及应用单片机 8255A
A0 A0
A1 A1
A15 ~ A2中任一线 /CS
P0 D7 ~ D0
/RD /RD
/WR /WR
RST RESET
应用上图中,地址线连接采用线选法 。
8255A的地址分布:
A15 A14 A13···A 8 A7···A 1 A0
0 0 0 ··· 0 0··· 0 0 0000H
· · 0 1 0001H
· · 1 0 0002H
· · 1 1 0003H
或 0 1 1 ··· 1 1 ··· 0 0 7FFCH—PA
· · 0 1 7FFDH—PB
· · 1 0 7FFEH—PC
· · 1 1 7FFFH—控制例,设单片机 8031与微型打印机之间的数据传送采用查询方式 。 要求将存放在 8031单片机内 RAM中以 30H为首地址的 64
个连续单元中的内容打印输出,试编程 。
P2.7
P0
8031
ALE
/RD
/WR
RST
/EA
74LS373
1D ~ 8D
2Q
1Q
G /OC
/CS
8255A
PA0~PA7
A1
A0
PC7
PC0
D0 ~D7
/RD
/WR
RESET
微型打印机
DB0~DB7
BUSY
/STB
8
8
8
解,因为 PC0连接 BUSY,所以,PC3 ~ PC0为输入又因 PC7连接 /DATA STROBE,所以 PC7 ~ PC4为输出,
STROBE —— 表示重复的意思。
/DATA STROBE —— 数据选通信号。作用是通知打印机,
8255A要给它传数。
PA口输出,PB口未用。
故 8255A的控制字可设为,1 0 0 0 0 0 0 1B = 81H
PA口地址,7FFCH
PB口地址,7FFDH
PC口地址,7FFEH
控制口,7FFFH
ORG1000H
PRINT,MOV DPTR,#7FFFH ;控制口地址
MOV A,#81H ;控制字
MOVX @DPTR,A ;写入控制字
MOV R1,#30H ;数据指针
MOV R2,#40H ; 64个数
NEXT,MOV DPTR,#7FFEH ; PC口地址
MOV A,#80H ;使 PC7为高电平
MOVX @DPTR,A ;输出 /DATASTR OBE为;高电平 ;无效,不准备送数
WAIT,MOVX A,@DPTR ;查询打印机状态
JB ACC.0,WAIT ;若 PC0即 BUSY= 1忙,则等待
MOV DPTR,#7FFCH ;若 BUSY = 0空闲,则指向 PA口
MOV A,@R1 ;输出数据
MOVX @DPTR,A
MOV DPTR,#7FFEH库 ;指向 PC口
MOV A,#00H ; 8255A输出 /DATASTR OBE信号;通知打印机,给它传数 。
MOVX @DPTR,A
ACALL PDELAY ;调延时子程序,以形成一个宽度;定时值的负脉冲为
INC R1
DJNZ R2,NEXT ;判断打印输出完成否?
SJMP $
·
·
·
PDELAY,( 延时程序略 )
END
小结,1,8255A有几个并行 I/ O口? 几种工作方式?
2、工作方式控制字、置位 /复位控制字是如何定义的?
§ 5-5 可编程并行接口芯片 8155
包括,256B静态 RAM;
2 个 8位和 1个 6位可编程并行 I/ O口;
1个 14位定时器 ( 减 1计数 ) ;
1个 8位地址锁存器;
一些控制逻辑电路等。
一,引脚
AD0 ~ AD7 —— 地址 /数据线 。
传送地址,数据,命令,状态等 。
ALE —— 地址锁存 ( 输入 )
IO / /M—— IO口 /RAM选择; 0:选内 RAM; 1:选内 IO口
/CE —— 片选线
/RD,/WR —— 读,写控制
PA7 ~ PA0 —— A口输入 /输出线
PB7 ~ PB0 —— B口输入 /输出线
PC5 ~ PC0 —— C口输入 /输出线
TIMERIN —— 定时器输入 ( 输入定时器所需时钟 )
TIMEROUT —— 定时器输出(输出所产生的方波脉冲)
二,8155的 RAM和 I / O口地址编码包括:内 RAM—— 256B对应 256个地址命令 /状态寄存器地址 ——1个地址
PA口地址 —— 1个地址
PB口地址 —— 1个地址
PC口地址 —— 1个地址定时器低 8位地址 —— 1个地址定时器高 8位地址 —— 1个地址由 AD7 ~ AD0
及 IO / /M决定。
三,8155的工作方式与基本操作有三种基本操作,
1,作单片机片外 256B数据存储器
IO / /M = 0,与其它数据存储器统一编址 。 用 MOVX访问 。
2,作扩展 I/ O口使用
IO / /M = 1,PA口,PB口,PC口,可通过编程决定如何使用 。
命令寄存器 ( 命令控制字 ) —— I / O口工作方式状态标志寄存器 —— PA口,PB口状态标志。
I / O口工作方式有四种:
A口,B口 基本 I / O口,C口输入;
A口,B口 基本 I / O口,C口输出;
A口选通 I / O,B口基本 I/ O,C口作联络线;
A口,B口选通 I / O,C口作联络线 。
状态标志寄存器:
BF —— 缓冲器满标志;
INTR —— 端口中断请求标志;
INTE —— 端口中断允许标志;
TIMER —— 定时器中断请求 。
命令寄存器,只写不读状态标志寄存器,只读不写 二者使用同一地址
3,作定时器扩展使用可以通过编程决定输出 4种信号,即有四种工作台方式
( P172 图 5-27)
单方波; 连续方波;
单脉冲; 连续脉冲 。
由两个 8位寄存器,决定 14位定时器计数常数及四种工作方式 。
由命令寄存器的最高两位对定时器进行四种控制。
T7 T6 T5 T4 T3 T2 T1 T0
(a) 定时器格式
T7 T6 T5 T4 T3 T2 T1 T0
D7 D7 D7 D7 D7 D7 D7 D7
减 1计数器低 8位减 1计数器低 6位定时器方式编辑位
D7 D7 D7 D7 D7 D7 D7 D7
M2 M1 方式 定时器输出波形
0 0 单波形
0 1 连续波形
1 0 单脉冲
1 1 连续脉冲
(b)定时器方式及输出波形四,单片机与 8155的接口及操作软件图 5-28 ( P173)
如图连线后地址分布是:内 RAM地址 7E00H ~ 7EFFH
I / O口地址:
命令状态口 7F00H
PA 口 7F01H
PB 口 7F02H
PC 口 7F03H
定时器低 8位 7F04H
定时器高 8位 7F05H
操作软件:
MOV DPTR,#RAM或 I / O口地址
MOV A,#欲写内容或命令字
MOV @DPTR,A
§ 5-6 常用通道配置及接口基础一,按键,键盘及其接口
1,按键操作存在的问题 —— 键抖动图硬件消除抖动 —— P180图 5-37,RS触发器构成单稳电路软件去抖 —— 延时 10ms左右。
2,按键分类
( 1) 独立式按键单片机一条 I/ O口线对应一个按键 。
( 2) 键盘一般指矩阵式键盘 。
若干 I / O口线作行线;若干 I / O口线作列线,在每个行列交点设置按键组成。 图 5-42 P185
3,按键监测方法
( 1) 监测有无键按下 ( 中断方式或查询方式 )
( 2) 按键的识别 ( 哪一个键被按下 )
扫描法 —— 有键按下时,读入行或列值,
则为 0值的行列交点的键便是 。
线反转法院 ——第一步,行线输出全 0,列线输入;
第二步,列线输出全 0,行线输入;
输入的行值、列值均为 0的相应键便是。
二,七段 LED显示器及接口
1,字形码表的产生,P192 表 5-11
2,显示方式
1) 静态显示
2) 动态显示 ( 利用人眼的视觉暂留效应 )
3,接口方法
1) 与单片机直接相接:取字形码表中的码值来显示 。
2)通过硬件七段译码器相接:单片机利用口线输出十六进制数来显示。
小结,8155有哪些功能? 有几个并行 I / O口?
如何去除按键抖动?按键查询有几种方法?
布置作业,P220 5-11
§ 5-7 D / A转换一,D / A转换的作用图二,D / A转换的重要指标分辨率的定义,最小输出电压与最大输出电压所对应的数字量之比 。
如 10位 D / A转换器:
分辨率 = 1/( 210- 1) = 1/1023 = 0.001
反映了 D / A转换的灵敏度 。
三,D / A转换器 DAC0830 ~ 0832
·8位分辨率
·具有两个输入数据寄存器 ( 8位 ) ;可单缓冲,双缓冲或直接输入,实现多通道 D / A同步转换输出 。
·须外接参考电压源
·为电流输出型 D / A转换器
1,DAC 0832内部结构
P205 图 5-58
有 20个引脚。
2,与 8031单片机接口及操作软件
( 1) 单缓冲方式
P206 图 5-60
有 20个引脚 。
DI0 ~ DI7 —— 数据输入线
ILE —— 数据允许锁存
/CS —— 输入寄存器选择
/WR1 —— 输入寄存器的写选通
/WR2 —— DAC寄存器的写选通
/XREF —— 数据传送信号
Vref —— 基准电源输入
Rfb —— 反信号输入 ( 内有反馈电阻 )
Iout1,Iout2 —— 电流输出
Vcc,AGND,DGND —— 电源、地完成一次 D / A转换:
MOV DPTR,#7FFFH ; DAC 0832口地址
MOV A,#DATA ;欲转换的数字量
MOVX @DPTR,A ;转换
( 2) 双缓冲器同步方式电路:图 5-61
图中,P2.5 选中 DAC 0832(1)
P2.6 选中 DAC 0832(2) 输入锁存器
P2.7 控制两芯片 /XREF同步转换
3,应用例,利用单片机及 DAC 0832产生阶梯波,DAC 0832采用单缓冲方式,定时 1ms,增幅 10,10ms一循环 。
解,START,MOV A,#00H
MOV DPTR,#7FFFH ;转换器地址
MOV R1,#0AH ; 10个台阶( 10ms)
1ms
0
v
t
LOOP,MOVX @DPTR,A ;送欲转换数字量
CALL DL1 ;延时 1ms
DJNZ R1,NEXT ; 10个台阶未完继续增幅
SJMP START
NEXT,ADD A,#10
JMP LOOP
DL1,MOV 20H,#249
DLL,NOP
NOP
DJNZ 20H,DLL
RET
如此,还可产生锯齿波,三角波等。
§ 5-8 A / D转换一、常用 A / D转换器的转换原理
1,逐次逼近式 图 5-66
2、双积分式 图 5-67
分辨率的定义,输出数字量变化一个相邻数码所需要输入模拟电压的变化量 。 用公式表示为:
满刻度电压 /2n ( n为位数)
二,ADC 0808 / 0809
8路 8位 A / D转换器
·采用逐次逼近式 A/ D转换原理 ( 时钟,10 ~ 1280KHz)
·模拟输入有 8个通道(任一通道模拟都可以转换为一个 8
位数字量输出)
1,ADC 0809内部结构及引脚
( 图 5-72 )
图中 SAR是逐次逼近寄存器;引脚 ( 有 28条 ),
IN0 ~ IN7 —— 8路模拟量输入通道的输入口;
2-1 ~ 2-8 —— 8位数字量输出口;
START —— 启动输入口 启动转换
ALE —— 通道地址锁存
EOC —— 转换结束输出信号
OE —— 输出允许
CLK —— 时钟端
ADDA,ADDB,ADDC —— 8路模拟开关的 3位地址选择端
REF( +),REF( -) —— 参电压输入端
Vcc,GND —— 电源、地。
2,ADC 0809 与 8031单片机接口设计有查询方式,中断方式,等待延时方式 。
片内无时钟,由单片机的 ALE( fosc/6) 经二分频后接入 。
若 fosc = 6MHz,则接入时钟为 500KHz,
满足,10 ~ 1280KHz的要求 。
图 5-75
P2.7( 片选 ) 地址码 输入通道
C B A
7FF8H 0 × × × ··· × 0 0 0 IN0
· ·
· ·
· ·
7FFFH 0 ×× × ··· × 1 1 1 IN7
例,对通道 IN0,采样一次,转换,并将转换结果存到数据存储区 。
解,MAIN,MOV R1,#data ;存数地址
MOV DPTR,#7FF8H ; P2.7 = 0,指向 IN0
MOVX @DPTR,A ;不论 A中为何内容都启动转换
MOV R6,#0AH ;软件延时
DLAY,NOP
NOP
NOP
NOP
NOP
DJNZ R6,DLAY
MOVX A,@DPTR ;读转换结果
MOV @R1,A ;存储数据
A / D转换接口的设计
1,硬件连线 (图 P218 5-75)
图中,ALE = START = /( /WR+P2.7)
OE = /( /RD+P2.7)
通道地址,P27 P26 ··· P20 P07 ··· P0.3 P0.2 P0.1 P0.0
A15 A14 ··· A8 A7 ··· A3 A2 A1 A0
7FFBH 0 × ··· × × ··· × 0 0 0
· ·
· ·
· ·
7FFFH 0 × ··· × × ··· × 1 1 1
2、软件设计方法
( 1) 延时等待方式分别 8路模拟信号轮流采样一次,并依次把结果转存到数据存储区的采 样转换程序如下 ( 设数据区首地址 30H;
采样采用循环程序,R7作计数器 ),
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN,MOV R1,#30H
MOV DPTR,#7FF8H
MOV R7,#08H
LOOP,MOVX @DPTR,A
MOV R6,#0FH
DLAY,NOP
NOP
NOP
NOP
DJNZ R6,DLAY
MOVX A,@DPTR
MOV @R1,A
INC DPTR
INC R1
DJNZ R7,LOOP
RET
(2) 中断方式合上 K1,启动转换后,经 tEOC时间,EOC输出负脉冲波形,表示某通道转换已结束,单片机可以取走数据 。 让八个通道轮流转换一遍 。
ORG 0000H
AJMP MAIN2
ORG 0013H
AJMP INTR1
ORG 0300H
MAIN2,MOV R1,#30H
SETB IT1 ;下降沿触发 /INT1中断
SETB EX1 ;允许 /INT1中断
SETB EA ;开中断
MOV R7,#08H ;待转换的通道个数,即循环次数
MOV DPTR,#7FF8H;指向通道 0
MOV @DPTR,A ;启动首次转换
WAIT,CJNE R7,#00H,$ ;等待中断
CLR EX1 ; 8个通道转换完成,结束
SJMP $
ORG 0500H
INTR1,MOVX A,@DPTR ;读取转换结果
MOV @R1,A ;存数
INC DPTR ;通道号加 1
INC R1
DEC R7
MOVX @DPTR,A ;启动下一次转换
RETI
END
( 3) 查询方式启动转换后,经 tOEC时间后,转换结束,EOC输出负脉冲 。
所以,启动转换后,延时 tEOC时间,检查 EOC电平,若为 0说明仍在转换中,若为高电平说明转换结束,书中只针对 IN0通道模似量转换一次而编程 。
ADC 0801 ~ 0804转换芯片与 ADC 0809芯片的区别是:
ADC 0801 ~ 0804是单通道模拟信号。
P00 DB0 REF+
P01 DB1 REF-
P02 DB2
· · ·
· · ·
· · ·
P07 DB7
P27 /CS VIN+
/WR /WR VIN-
/RD /RD
/INT1 INTR
8031 ADC0801
上图中,模拟通道地址是,7FFFH。
编程同 ADC 0809,只是仅有一个通道。
小结,DAC 0832的作用是什么? 分辨率是多少位?
ADC0809的作用是什么?有几个模拟通道?
布置作业,P220 5-10
END