1、单片机原理及应用,第六章 单片机 系统扩展技术,1 单片机的并行扩展原理 2 存储器的扩展 3 并行接口的扩展 4 D/A接口的扩展 5 A/D接口的扩展,第六章 单片机系统扩展技术,6.1.1 并行扩展总线P0、P2口作为单片机的地址总线和数据总线地址锁存原理看时序图 注意三个控制引脚的电平变化:ALE、PSEN、WR/RD,第六章 单片机系统扩展技术,单片机的片外三总线结构,第六章 单片机系统扩展技术,读片外EPROM时序波形,第六章 单片机系统扩展技术,读片外RAM/IO口时序波形,第六章 单片机系统扩展技术,写片外RAM/IO口时序波形,第六章 单片机系统扩展技术,6.1.2 地址译码
2、方法 为了实现单片机与外部存储器的连接,把单片机的地址线分为片内地址线和片选地址线两部分。片内地址线通常直接或通过地址锁存器与相应存储器地址线相连。片选地址线通常直接或通过地址译码器和存储器芯片的CE相连,也可以悬空不用,第六章 单片机系统扩展技术,线选法 用某一位地址线直接连到所扩展的芯片的片选端 。,第六章 单片机系统扩展技术,关于地址重叠:有一个以上地址与存储单元对应。X为无关项,即无论X取0,或取1,都不会影响对单元的确定,0#芯片中每个单元都有210个重叠地址 。当X由全“0”,变到全“1”时,0#芯片的地址范围即为6000H7FFFH。基本地址范围:6000H6007H。,第六章
3、单片机系统扩展技术,全地址译码法 片选地址线全部参加译码地址空间能充分利用。常用地址译码器:2-4译码器:74LS1393-8译码器:74LS1384-16译码器:74LS154,第六章 单片机系统扩展技术,部分地址译码法片选线中只有一部分参与译码,其余部分悬空,具有重叠地址,第六章 单片机系统扩展技术,6-2 存储器的扩展 一、MCS-51用于扩展存储器的外部总线信号: P0.00.7: 8位数据和低8位地址信号,复用总线AD07。 P2.02.7: 高8位地址信号AB815 ALE: 地址锁存允许控制信号 PSEN: 片外程序存储器读控制信号 RD: 片外数据存储器读控制信号 WR: 片外
4、数据存储器写控制信号 EA: 程序存储器选择,第六章 单片机系统扩展技术,二、扩展程序存储器电路: 常用EPROM芯片:Intel 2716(2K8位)、2732(4KB)、2764(8KB)、27128(16KB)、27256(32KB)、27512(64KB)。,8031扩展 32KB EPROM Intel 27256地址?,第六章 单片机系统扩展技术,三. 扩展数据存储器电路: 常用RAM芯片: Intel 6116(2KB)、6264(8KB)、62256(32KB)。,8031扩展 8KB RAM Intel 6264地址?,第六章 单片机系统扩展技术,四. 程序与数据存储器扩展电
5、路 单片机连接 8KB EPROM 2764 和 8KB RAM 6264 各一片,第六章 单片机系统扩展技术,6-4 并行接口的扩展单片机往往通过P0和P2口构成扩展总线,扩展EPROM、RAM或其它功能芯片, 大多数情况下,MCS-51单片机可提供给用户使用的I/O口只有P1口和部分P3口。因此,在大部分的MCS-51单片机应用系统设计中都需要进行I/O口的扩展。,第六章 单片机系统扩展技术,6-4-1 用74系列器件扩展并行I/O口,第六章 单片机系统扩展技术,6-4-2 可编程并行I/O扩展接口8255A,第六章 单片机系统扩展技术,引脚定义 1.数据线 D07:传送计算机与8255之
6、间的数据、控制字和状态字。 PA07 PB 07 PC07:传送8255与外设之间的数据和联络信息,PC07可用作数据线或联络线 2.地址线 CS:片选线 A1,A0:口选线,寻址 PA,PB,PC数据口和控制口 3.读写控制线 RD,WR控制计算机与8255之间的信息传送和流向 4.复位线 RESET高电平复位,使内部寄存器全部清零。,例 求8255口地址: 解: A口 (7F00H),B口 (7F01H),C口 (7F02H),控制口(7F03H),第六章 单片机系统扩展技术,18255A的结构 (1)数据总线驱动器。 (2)并行I/O端口,A口、B口和C口。A口:具有一个8位数据输出锁存
7、/缓冲器和一个8位数据输入锁存器。可编程为8位输入输出或双向寄存器。B口:具有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存)。可编程作为8位输入或输出寄存器,但不能双向输入输出。C口:具有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存)。可分为两个4位口使用。C口除作输入、输出口使用外,还可以作为A口、B口选通方式操作时的状态控制信号。,第六章 单片机系统扩展技术,(3)读/写控制逻辑。 CS:8255A的片选引脚端; RD:读控制端,当RD=0时,允许单片机从8255A 读取数据或状态字; WR:写控制端,当WR=0时,允许单片机将数据或控制字写入8255A;
8、A0、A1:口地址选择。通过A0、A1可选中8255A的四个寄存器。口 地址选择如下: A1、A0 寄存器 0 0 寄存器A(A口) 0 1 寄存器B(B口) 1 0 寄存器C(C口) 1 1 控制寄存器(控制口) RESET:复位控制端。当RESET=1时,8255复位。复位状态是:控制寄存器被清除,所有接口(A、B、C)被置入输入方式。,第六章 单片机系统扩展技术,(4)A组B组控制块。 每个控制块接收来自读/写控制逻辑的命令和内 部数据总线的控制字,并向对应口发出适当的 命令。 A组控制块控制A口及C口的高4位。 B组控制块控制B口及C口的低4位。,第六章 单片机系统扩展技术,2. 82
9、55A的控制字8255A有两种控制字,即方式控制字PC口位置位/复位控制字,第六章 单片机系统扩展技术,38255A操作方式 (1)方式0(基本I/O方式) PA、PB、PC可分别被定义为方式0输入或方式0输出。 输出具有锁存功能,输入没有锁存。 适用于无条件传输数据的设备,如读一组开关状态、控制一组指示灯,不使用应答信号,CPU可以随时读出开关状态,随时把一组数据送指示灯显示。,第六章 单片机系统扩展技术,(2)方式1(应答I/O方式) 有选通输入和选通输出两种工作方式。A口和B口皆可独立地设置成这种工作方式,在方式1下,A口和B口通常用于传送和它们相连外设的I/O数据,C口用作A口和B口的
10、握手联络线,以实现中断方式传送I/O数据。,第六章 单片机系统扩展技术,方式1输入 STB: 设备的选通信号输入线,低电平有效,通常是外设给8255A的信号,表示外设给8255的数据已准备好。 IBF: 端口锁存器满标志输出线,高电平有效。IBF和设备相连。 INTR:中断请求信号线,高电平有效。当 STB 、IBF、INTE都为“1”时, INTR就置“1” 。 INTE:8255A端口内部的中断允许触发器。 “1”表示中断允许(人工设置)。,第六章 单片机系统扩展技术,方式1输出 OBF :输出锁存器满状态标志输出线。 表示CPU已将数据输出到此端口。ACK :设备响应信号输入线。表示外设
11、已取走数据。 INTR:中断请求信号输出线,高电平有效。当OBF、ACK 和INTE都为“1”时,INTR被置“1”,发出中断请求 。,第六章 单片机系统扩展技术,(3)方式2(双向选通I/O方式)方式2仅对PA口有意义。方式2使PA口成为8位双向三态数据总线口,既可发送数据又可接收数据。PA口方式2工作时,PB口仍可作方式0和方式1 I/O口,PC口高5位作状态控制线。,第六章 单片机系统扩展技术,4. 8255编程规定 8255初始化编程:往控制口写入控制字,确定8255工作方式。方式选择控制字:D7=1C口置位/复位控制字:D7=0,例:8255PA口方式0输出单片机片内RAM数据,PB
12、口方式1输入。 PIOS: MOV DPTR,#7F03H;控制口地址MOV A,#86H ;写控制字MOVX DPTR,A ;设工作方式MOV DPTR,#7F00H ;PA数据口地址MOV A,R0 ;取RAM的数据MOVX DPTR,A ;由PA口输出,第六章 单片机系统扩展技术,例6-4 打印程序 8255A可采用方式1工作,CPU可采用中断方式控制打印机打印。把MCS-51内部RAM中30H开始的32个单元的字符输出打印 主程序: MAIN:MOV 8,#30H ;RAM首址 1区R0MOV 0FH,#20H ;长度1区R7SETB EA ;开中断 SETB EX1 ;允许外中断,电
13、平触发方式MOV DPTR,#7FFFH ;将8255A的PC2(即INTEB)置“1”MOV A,05H MOVX DPTR,A ;允许B口中断MOV A,#0BCH ;写方式控制字(PB口方式1输出)MOVX DPTR,AMOV DPTR,#7FFDH ;从PB口输出第一个数据打印MOV A,30HMOVX DPTR,AINC 8 ;RAM指针加1DEC 0FH ;长度减1 。 ;执行其它任务,第六章 单片机系统扩展技术,外中断1服务程序:PINT1: PUSH ACC ;现场保护(A,DPTR 等进堆栈)PUSH DPHPUSH DPLPUSH PSW MOV PSW,#8 ;当前工作寄
14、存器区切换到1区MOV A,R0 ;从PB口输出下一个数据打印MOV DPTR,#7FFDHMOVX DPTR,AINC R0 ;修改指针、长度DJNZ R7,BACKCLR EX1 ;长度为0,关中断返回SETB F0 ;置打印结束标志位F0 BACK:POP PSW ;现场恢复(A,DPTR等退栈)POP DPLPOP DPHPOP ACCRETI,第六章 单片机系统扩展技术,8255A选通I/O方式接口逻辑,第六章 单片机系统扩展技术,6-5 D/A转换器接口 实现数模转换的功能部件称为D/A转换器,衡量D/A转换器性能的主要参数有: 分辨率,即输出的模拟量的最小变化量,n位的D/A转换
15、器分辨率为2-n。 满刻度误差,即输入为全1时输出电压与理想值之间的误差,一般为2-(n+1) 输出范围; 转换时间,指从转换器的输入改变到输出稳定的时间间隔; 是否容易和CPU接口。,第六章 单片机系统扩展技术,梯形电阻式D/A转换原理:“按权展开,然后相加”I2Vref/2RI1I2/2I0I1/2,第六章 单片机系统扩展技术,根据以上的分析计算,可推理得到n位二进制数的转换表达式:,其中D为n位二进制数的和,因此, 电流和二进制数成线性关系。运算放大器的输出电压为:,第六章 单片机系统扩展技术,6-5-2 DAC 0832DAC0832是美国数据公司的8位D/A,片内带数据锁存器,电流输
16、出,输出电流稳定时间为1 us。+5V +15V单电源供电,功耗为20mW。,第六章 单片机系统扩展技术,DAC 0832的内部结构 控制线(5条) ILE: 数据锁存允许控制信号输入线,高电平有效; CS:片选片信号输入线,低电平有效; WR1:数据锁存器写选通输入线,负脉冲有效 ; WR2:DAC寄存器写选通输入线,负脉冲有效; XFER:数据传输控制信号输入线,低电平有效;,第六章 单片机系统扩展技术,输出线(3条) IOUT1: 电流输出线,当DAC寄存器为全1时IOUT1最大; IOUT2:电流输出线,其值和IOUT1值之和为一常数;Rfb: 反馈信号输入线,改变Rfb端外接电阻值可
17、调整转换满量程精度;,第六章 单片机系统扩展技术,DAC 0832工作方式,直通方式:适宜连续反馈控制线路中; 使所有控制信号均有效(CS、WR1、WR2、ILE、XFER) 单缓冲器方式:适宜一路模拟量输出,几路模拟量非同步输出, 控制使两个寄存器同时有效。 双缓冲器方式:适宜多个DAC0832同时输出; 输入寄存器和DAC寄存器分配有各自的地址,可分别选通用同时输出多路模拟信号。,第六章 单片机系统扩展技术,电流输出转换成电压输出使用运算放大器,可以将DAC0832的电流输出线性地转换成电压输出。根据运放和DAC0832的连接方法,运放的输出可以分为单极型和双极型两种。,第六章 单片机系统
18、扩展技术,1.DAC作为单极性电压输出VoutBVref/256Bb7*27+b6*26 +b0*20,第六章 单片机系统扩展技术,2.DAC作为双极性电压输出 列方程: I1+I2+I3=0 I1=Va/R,I2=Vout/2R,I3=Vref/2R VaBVref/256 解得: Vout=(B128)*Vref/128,第六章 单片机系统扩展技术,一路模拟量输出,单缓冲方式,第六章 单片机系统扩展技术,例:D/A转换程序,用DAC 0832输出05V锯齿波,电路为直通方式。设VREF= - 5V,DAC 0832地址为7FFFH,脉冲周期要求为100ms。,+5V,0V,DACS:MOV
19、 DPTR,#7FFFH;0832 I/O地址MOV A,#0 ;开始输出0V DACL:MOVX DPTR,A ;输出模拟量INC A ;升压ACALL DELAY ;延时100ms/256AJMP DACL ;连续输出 DELAY: ;延时子程序,第六章 单片机系统扩展技术,例:D/A转换程序,用DAC 0832输出-1-5V方波,电路为直通方式。设VREF= 5V,DAC 0832地址为7FFFH。,-1V,-5V,解:ORG 1000H START: MOV DPTR,#7FFFHLOOP: MOV A, #33HMOVX DPTR,A ;置上限电平ACALL DELAY ;形成方波顶
20、宽MOV A,#0FFHMOVX DPTR, A ;置下限电平ACALL DELAY ;形成方波底宽SJMP LOOP ;循环 DELAY: ,第六章 单片机系统扩展技术,A/D转换器 A/D转换器是将模拟量转换成数字量的器件。模拟量可是电压、电流等电信号,也可是声、光、压力和温度等随时间连续变化的非电物理量。 非电物理量可通过合适的传感器等转换成电信号,模拟量只有转换成数字量才能被计算机采集、分析和计算处理。,第六章 单片机系统扩展技术,A/D转换方法 电压频率式:精度高 价格低,但转换速度不高 积分式:抗干扰能力好,转换速度低 逐次逼近式:转换速度较快 并行转换: 串行转换:,第六章 单片
21、机系统扩展技术,逐次逼近转换原理控制电路先使“N位寄存器”中最高位置1,其余位清零,根据“N位寄存器”中内容使D/A转换网络产生一个比较电压Vs,并将其与输入的模拟电压Vx比较,若Vx Vs,则“N位寄存器”中最高位“1”保留,否则置“0”,然后依次对N-1,N-2,重复上述比较过程,可使“N位寄存器”中得到与模拟量Vx相对应的数字量。,第六章 单片机系统扩展技术,6.6 A/D接口的扩展 衡量A/D性能的主要参数是: 分辨率,即输出的数字量最低位变化一位所对应的输入模拟量的变化值; 满刻度误差,即输出全1时输入电压与理想输入量之差; 转换速率; 转换精度; 是否可方便地和CPU接口。,第六章
22、 单片机系统扩展技术,6-6-2 ADC0809 ADC 0809/0808为8路输入通道、8位逐次逼近式A/D转换器,可分时转换8路模拟信号。 一结构一个8位逐次逼近式A/D转换器、8路模拟转换开关、3-8地址锁存译码器和三态输出数据锁存器。,第六章 单片机系统扩展技术,ADC0809的引脚功能 1N01N7:8路模拟量输入通道; D7D0:8位三态数据输出线;A、B、C:通道选择输入线;ALE:通道锁存控制信号输入线 ; START:启动转换控制信号输入线; CLK:转换时钟输入线,CLK的典型值为640KHz,超过该频率时,转换精度会下降; EOC:转换结束信号输出线,高电平有效; OE
23、:输出允许控制信号输出线,OE为高电平时把转换结果送数据线D7D0,OE为低电平时D7D0为浮空态;,第六章 单片机系统扩展技术,ADC0809时钟信号的确定ADC0809时钟信号由8031的ALE信号提供,8031的ALE引脚通常是每个机器周期出现两次,故它的频率是单片机时钟频率的1/6。若8031的主频是6MHz,则ALE信号频率是1MHz,若使ALE上信号二分频后接ADC0809的CLK端,则可获得500KHz的A/D转换脉冲,第六章 单片机系统扩展技术,(1)启动A/D转换 满足以下条件: 在START端需产生一个正脉冲,上升沿复位ADC0809,下降沿启动A/D转换。 在启动A/D转
24、换之前,需在ALE端产生一个正跳变,将地址锁存起来,使得在A/D转换期间,比较器内部输入始终是选中的模拟通道输入信号。 在A/D转换结束之前,在START端和ALE端不能再次出现正脉冲信号。,第六章 单片机系统扩展技术,启动A/D转换时序图,第六章 单片机系统扩展技术,(1)启动A/D转换,三种启动方式对应三种硬件连接方法 1)ADDA,ADDB,ADDC分别接地址锁存器提供地址的低3位,指向IN7通道的相应程序指令为:MOV DPTR,#0EFF7H;指向D/A转换器和模拟通道IN7地址MOVX DPTR,A ;启动A/D转换,A中可以是任意值,第六章 单片机系统扩展技术,2)ADDA,AD
25、DB,ADDC分别接数据线中的低3位,则指向IN7通道的相应程序指令为:MOV DPH,#0E0H ;送D/A转换器端口地址MOV A,#07H ;IN7地址送AMOVX DPTR,A ;送地址并启动A/D转换,第六章 单片机系统扩展技术,3)ADDA,ADDB,ADDC分别接高8位地址中的低3位,则指向IN7通道的相应程序指令为:MOV DPTR, #0E700HMOVX DPTR, A,第六章 单片机系统扩展技术,(2)确认A/D转换完成 1)无条件传送方式 转换时间是转换器的一项已知和固定的技术指标。例如:ADC0809转换时间为128us,可在A/D转换启动后,调用一个延时足够长的子程
26、序,规定时间到,转换也肯定已经完成。 2)查询方式 ADC0809的EOC端高电平,表明A/D转换完成,查询测试EOC的状态,即可确知转换是否完成。需注意ADC0809从复位到EOC变低约需10时间,查询时应首先确定EOC已变低,再变高,才说明A/D转换完成。 3)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。,第六章 单片机系统扩展技术,例6-6 如图a电路中,对IN0IN7上模拟电压巡回采集一遍数字量, 并送入内部RAM以50H为始址的输入缓冲区的有关程序如下:ORG 0000HSJMP MA1NORG 0013HLJMP P1NT1 MA1N: M
27、OV 10H,#50H ;数据区首址送工作寄存器区2 R0MOV 12H,#0 ;1N0地址送工作寄存器区2 R2MOV 17H, #8 ;模拟量路数送工作寄存器区2 R7MOV IE, #84 ;CPU开中断,开外部中断1SETB IT1 ;为负边沿触发MOV SP, #50H ;设置堆栈指针MOV DPTR,#0EFF8H ;启动1N0 A/D转换MOVX DPTR, A。,第六章 单片机系统扩展技术,P1NT1: PUSH 。 ;保护现场略SETB RS1 ;切换到工作寄存器区2CLR RS0MOV DPH,#0EFH ;读A/D转换值MOVX A,DPTR MOV R0,A ;存A/D转换值 DJNZ R7,OUT1 ;CLR EX1 ;采集完8路,关中断。OUT: POP 。 ;恢复现场略RETI ;中断返回 OUT1: INC R0 ;指向输入数据区下一地址INC R2 ;指向下一路模拟通道MOV DPH,#0EFH ;启动下一路模拟通道A/D转换MOV DPL,R2MOVX DPTR,ASJMP OUT,