nullnull第五章 汇编语言程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
主讲人:董昌孝电子信息
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
学院null4 并行接口的扩展5 D/A接口的扩展 6 A/D接口的扩展 2 程序存储器的扩展1 单片机的并行扩展原理3 数据存储器的扩展第六章 单片机系统的并行扩展nullP0、P2口作为单片机的地址总线和数据总线
地址锁存原理
看扩展图P143页图6-1,时序图P144页图6-4
注意三个控制引脚的电平变化:ALE、PSEN、WR/RD
6.1.2 地址译码方法
为了实现单片机与外部存储器的连接,把单片机的地址线分为片内地址线和片选地址线两部分。
片内地址线通常直接或通过地址锁存器与相应存储器地址线相连。
片选地址线通常直接或通过地址译码器和存储器芯片的CE相连,也可以悬空不用。6.1.1 并行扩展总线null线选法—— 用某一位地址线直接连到所扩展的芯片的片选端 。null0#芯片 关于地址重叠:有一个以上CPU地址与存储单元对应。
X为无关项,即无论X取0,或取1,都不会影响对单元的确定,0#芯片中每个单元都有210个重叠地址 。当X由全“0”,变到全“1”时,0#芯片的地址范围即为6000H~7FFFH。基本地址范围:6000H~6007H。 null全地址译码法—— 片选地址线全部参加译码常用地址译码器:
2-4译码器:74LS139
3-8译码器:74LS138
4-16译码器:74LS154单元地址唯一、地址空间能充分利用,不存在地址重叠。
null部分地址译码法—— 片选线中只有一部分参与译码,其余部分是悬空,具有重叠地址 6-2 程序存储器的扩展6-2 程序存储器的扩展一、MCS-51用于扩展存储器的外部总线信号:
P0.0~0.7: 8位数据和低8位地址信号,复用总线AD0~7。
P2.0~2.7: 高8位地址信号AB8~15
ALE: 地址锁存允许控制信号
PSEN: 片外程序存储器读控制信号
RD: 片外数据存储器读控制信号
WR: 片外数据存储器写控制信号
EA: 程序存储器选择null二、扩展程序存储器电路:8031扩展
32KB EPROM
Intel 27256 常用EPROM芯片:Intel 2716(2K×8位)、2732(4KB)、2764(8KB)、27128(16KB)、27256(32KB)、27512(64KB)。null6.3 数据存储器RAM的扩展6.3.1 常用RAM芯片:
Intel 6116(2KB)、6264(8KB)、62256(32KB)。8031扩展
8KB RAM
Intel 62646.3.2 数据存储器扩展电路6.3.2 数据存储器扩展电路单片机连接 8KB EPROM 2764 和 8KB RAM 6264 各一片6-4 并行接口的扩展6-4 并行接口的扩展 单片机往往通过P0和P2口构成扩展总线,扩展EPROM、RAM或其它功能芯片,
MCS-51单片机可提供给用户使用的I/O口只有P1口和部分P3口。因此,在大部分的MCS-51单片机应用系统设计中都需要进行I/O口的扩展。null6-4-1 用74系列器件扩展并行I/O口 null6-4-2 可编程并行I/O扩展接口8255A null1.数据线
D0~7:传送计算机与8255之间的数据、控制字和状态字。
PA0~7 PB 0~7 PC0~7:传送8255与外设之间的数据和联络信息,PC0~7可用作数据线或联络线引脚定义2.地址线
CS:片选线
A1,A0:口选线,寻址 PA,PB,PC数据口和控制口。例 求8255口地址:
解: A口 (7F00H),
B口 (7F01H),
C口 (7F02H),
控制口(7F03H)3.读写控制线
RD,WR控制计算机与8255之间的信息传送和流向
4.复位线
RESET高电平复位,使内部寄存器全部清零。null(1)数据总线驱动器。
(2)并行I/O端口,A口、B口和C口。
A口:具有一个8位数据输出锁存/缓冲器和一个8位数据输入锁存器。可编程为8位输入输出或双向寄存器。
B口:具有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存)。可编程作为8位输入或输出寄存器,但不能双向输入输出。
C口:具有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存)。可分为两个4位口使用。C口除作输入、输出口使用外,还可以作为A口、B口选通方式操作时的状态控制信号。1.8255A的结构nullCS:8255A的片选引脚端;
RD:读控制端,当RD=0时,允许单片机从8255A
读取数据或状态字;
WR:写控制端,当WR=0时,允许单片机将数据或控制字写入8255A;
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)被置入输入方式。 (3)读/写控制逻辑null每个控制块接收来自读/写控制逻辑的命令和内部数据总线的控制字,并向对应口发出适当的命令。
A组控制块控制A口及C口的高4位。
B组控制块控制B口及C口的低4位。
(4)A组B组控制块null8255A有两种
控制字,即
方式控制字
和PC口位置
位/复位控制
字。 2.8255A的控制字null3.8255A操作方式
(1)方式0(基本I/O方式)
PA、PB、PC可分别被定义为方式0输入或方式0输出。
输出具有锁存功能,输入没有锁存。
适用于无条件传输数据的设备,如读一组开关状态、控制一组指示灯,不使用应答信号,CPU可以随时读出开关状态,随时把一组数据送指示灯显示。
(2)方式1(应答I/O方式)
有选通输入和选通输出两种工作方式。
A口和B口皆可独立地设置成这种工作方式,在方式1下,A口和B口通常用于传送和它们相连外设的I/O数据,C口用作A口和B口的握手联络线,以实现中断方式传送I/O数据。null 方式1输入
:设备的选通信号输入线,低电平有效,通常是外设给8255A的信号,
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示外设给8255的数据已准备好。
IBF:端口锁存器满标志输出线,高电平有效。IBF和设备相连。
INTR:中断请求信号线,高电平有效。当 、IBF、INTE都有效时,INTR就置“1” 。
INTE:8255A端口内部的
中断允许触发器。
“1”表示中断允许
(手动设置)。 null 方式1输出
:输出锁存器满状态标志输出线。 表示CPU已将数据输出到此端口。
:设备响应信号输入线。表示外设已取走数据。
INTR:中断请求信号输出线,高电平有效。当 、 和INTE都为“1”时,INTR被置“1”,发出中断请求 。null方式2仅对PA口有意义。
方式2使PA口成为8位双向三态数据总线口,既可发送数据又可接收数据。PA口方式2工作时,PB口仍可作方式0和方式1 I/O口,PC口高5位作状态控制线。
4. 8255编程规定 8255初始化编程:往控制口写入控制字,确定8255工作方式。 (3)方式2(双向选通I/O方式)null方式选择控制字:D7=1,0为输出,1为输入
C口置位/复位控制字:D7=0例:8255PA口方式0输出单片机片内RAM数据,PB口方式1输入…。 PIOS: MOV DPTR,#7F03H;控制口地址
MOV A,#86H ;写控制字
MOVX @DPTR,A ;设工作方式
MOV DPTR,#7F00H;PA数据口地址
MOV A,@R0 ;取RAM的数据
MOVX @DPTR,A ;由PA口输出
…null主程序:
MAIN:MOV 8,#30H ;RAM首址→ 1区R0
MOV 0FH,#20H ;长度→1区R7
SETB EA ;开中断
SETB EX1 ;允许外中断,电平触发方式
MOV DPTR,#7FFFH ;将8255A的PC2(即INTEB)置“1”
MOV A,#05H
MOVX @DPTR,A ;允许B口中断
MOV A,#0BCH ;写方式控制字(PB口方式1输出)
MOVX @DPTR,A
MOV DPTR,#7FFDH ;从PB口输出第一个数据打印
MOV A,30H
MOVX @DPTR,A
INC 8 ;RAM指针加1
DEC 0FH ;长度减1
…… ;执行其它任务例6-4 打印程序 8255A可采用方式1工作,CPU可采用中断方式控制打印机打印。把MCS-51内部RAM中30H开始的32个单元的字符输出打印null 外中断1服务程序:
PINT1: PUSH ACC ;现场保护(A,DPTR 等进堆栈)
PUSH DPH
PUSH DPL
PUSH PSW
MOV PSW,#8 ;当前工作寄存器区切换到1区
MOV A,@R0 ;从PB口输出下一个数据打印
MOV DPTR,#7FFDH
MOVX @DPTR,A
INC R0 ;修改指针、长度
DJNZ R7,BACK
CLR EX1 ;长度为0,关中断返回
SETB F0 ;置打印结束标志位F0
BACK: POP PSW ;现场恢复(A,DPTR等退栈)
POP DPL
POP DPH
POP ACC
RETInull8255A选通方式接口逻辑图null
6-5 D/A转换器接口实现数模转换的功能部件称为D/A转换器,衡量D/A转换器性能的主要参数有: ·分辨率,即输出的模拟量的最小变化量,n位的D/A转换器分辨率为2-n。
·满刻度误差,即输入为全1时输出电压与理想值之间的误差,一般为2-(n+1)
·输出范围;
·转换时间,指从转换器的输入改变到输出稳定的时间间隔;
·是否容易和CPU接口。
null梯形电阻式D/A转换原理:“按权展开,然后相加”
I2=Vref/2R
I1=I2/2
I0=I1/2
null根据以上的分析计算,可推理得到n位二进制数的转换表达式:
其中D为n位二进制数的和,因此, 电流和二进制数成线性关系。
运算放大器的输出电压为:
6-5-2 DAC 0832
DAC0832是美国数据公司的8位D/A,片内带数据锁存器,电流输出,输出电流稳定时间为1 us。+5V ~ +15V单电源供电,功耗为20mW。null1. DAC0832芯片及其结构0832----8位D/A0832引脚功能
IOUT2电流输出2 CS
选片
WR1
输入写
DI0~DI7
数据线
CS
WR1
AGND
DI3
DI2
DI1
DI0
VREF
RFR
DGNDVcc
ILE
WR2
XFER
DI4
DI5
DI6
DI7
IOUT2
IOUT1DAC
0832
DAC写
WR2IOUT1电流输出1
数据锁存
ILE
数据传送
XFER图 6-30(a) DAC0832的引脚分布图null输入
寄存器DAC
寄存器D/A
转换器ILECSWR1WR2XFERIOUT1IOUT2DI7~DI0RFRVREF图6-30(b) DAC0832的逻辑结构null控制线(5条)
ILE: 数据锁存允许控制信号输入线,高电平有效;
CS:片选片信号输入线,低电平有效;
WR1:数据锁存器写选通输入线,负脉冲有效 ;
WR2:DAC寄存器写选通输入线,负脉冲有效;
XFER:数据传输控制信号输入线,低电平有效;
输出线(3条)
·IOUT1: 电流输出线,当DAC寄存器为全1时IOUT1最大;
·IOUT2:电流输出线,其值和IOUT1值之和为一常数;
· Rfb: 反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度; 2. DAC 0832工作方式2. DAC 0832工作方式直通方式:适宜连续反馈控制线路中; 使所有控制信号均有效(CS、WR1、WR2、ILE、XFER) 单缓冲器方式:适宜一路模拟量输出,几路模拟量非同步输出,控制使两个寄存器同时有效。 双缓冲器方式:适宜多个DAC0832同时输出; 输入寄存器和DAC寄存器分配有各自的地址,可分别选通用同时输出多路模拟信号。 null3. 电流输出转换成电压输出
使用运算放大器,可以将DAC0832的电流输出线性地转换成电压输出。根据运放和DAC0832的连接方法,运放的输出可以分为单极型和双极型两种。 null1.DAC作为单极性电压输出
Vout=-B×Vref/256
B=b7*2^7+b6*2^6 +…+b0*2^0null2.DAC作为双极性电压输出
列方程:
I1+I2+I3=0
I1=Va/R,I2=Vout/2R,I3=Vref/2R
Va=-B×Vref/256
解得: Vout=(B-128)*Vref/128null一路模拟量输出,单缓冲方式4. DAC0832与MCS-51的接口方法null例6-5:D/A转换程序,用DAC 0832输出0~5V锯齿波,电路为直通方式。设VREF= - 5V,DAC 0832地址为7FFFH,脉冲周期要求为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:… ;延时子程序+5V0Vnull例:D/A转换程序,用DAC 0832输出-1~-5V方波,电路为直通方式。设VREF= 5V,DAC 0832地址为7FFFH。解:
ORG 1000H
START: MOV DPTR,#7FFFH
LOOP: MOV A, #33H
MOVX @ DPTR,A ;置上限电平
ACALL DELAY ;形成方波顶宽
MOV A,#0FFH
MOVX @ DPTR, A ;置下限电平
ACALL DELAY ;形成方波底宽
SJMP LOOP ;循环
DELAY: …
-1V-5Vnull6.6 A/D转换器及接口扩展
A/D转换器是将模拟量转换成数字量的器件。模拟量可是电压、电流等电信号,也可是声、光、压力和温度等随时间连续变化的非电物理量。
非电物理量可通过合适的传感器等转换成电信号,模拟量只有转换成数字量才能被计算机采集、分析和计算处理。
A/D转换方法:
电压频率式:精度高 价格低,但转换速度不高
积分式:抗干扰能力好,转换速度低
逐次逼近式:转换速度较快
并行转换:
串行转换:逐次逼近转换原理逐次逼近转换原理控制电路先使“N位寄存器”中最高位置1,其余位清零,根据“N位寄存器”中内容使D/A转换网络产生一个比较电压Vs,并将其与输入的模拟电压Vx比较,若Vx > Vs,则“N位寄存器”中最高位“1”保留,否则置“0”,然后依次对N-1,N-2,…,重复上述比较过程,可使“N位寄存器”中得到与模拟量Vx相对应的数字量。
衡量A/D性能的主要参数是:
·分辨率,即输出的数字量最低位变化一位所对应的输入模拟量的变化值;
·满刻度误差,即输出全1时输入电压与理想输入量之差;
·转换速率;
·转换精度;
·是否可方便地和CPU接口。null6-6-2 ADC0809
ADC 0809/0808为8路输入通道、8位逐次逼近式A/D转换器,可分时转换8路模拟信号。一.结构
一个8位逐次逼近式A/D转换器、8路模拟转换开关、3-8地址锁存译码器和三态输出数据锁存器。null1. ADC0809的引脚功能
·1N0~1N7:8路模拟量输入通道;
·D7~D0:8位三态数据输出线;
·A、B、C:通道选择输入线;
·ALE:通道锁存控制信号输入线 ;
·START:启动转换控制信号输入线;
·CLK:转换时钟输入线,CLK的典型值为640KHz,超过该频率时,转换精度会下降;
·EOC:转换结束信号输出线,高电平有效;
·OE:输出允许控制信号输出线,OE为高电平时把转换结果送数据线D7~D0,OE为低电平时D7~D0为浮空态;null ADC0809时钟信号的确定
ADC0809时钟信号由8031的ALE信号提供,8031的ALE引脚通常是每个机器周期出现两次,故它的频率是单片机时钟频率的1/6。若8031的主频是6MHz,则ALE信号频率是1MHz,若使ALE上信号二分频后接ADC0809的CLK端,则可获得500KHz的A/D转换脉冲
2.MCS-51单片机与ADC0809的接口方法 (1)启动A/D转换
满足以下条件:
①在START端需产生一个正脉冲,上升沿复位ADC0809,下降沿启动A/D转换。
②在启动A/D转换之前,需在ALE端产生一个正跳变,将地址锁存起来,使得在A/D转换期间,比较器内部输入始终是选中的模拟通道输入信号。
③在A/D转换结束之前,在START端和ALE端不能再次出现正脉冲信号null三种启动方式对应三种硬件连接方法
1)ADDA,ADDB,ADDC分别接地址锁存器提供地址的低3位,指向IN7通道的相应程序指令为:
MOV DPTR,#0EFF7H;指向D/A转换器和模拟通道IN7地址
MOVX @DPTR,A ;启动A/D转换,A中可以是任意值 null 2)ADDA,ADDB,ADDC分别接数据线中的低3位,则指向IN7通道的相应程序指令为:
MOV DPH,#0E0H ;送D/A转换器端口地址
MOV A,#07H ;IN7地址送A
MOVX @DPTR,A ;送地址并启动A/D转换null 3)ADDA,ADDB,ADDC分别接高8位地址中的低3位,则指向IN7通道的相应程序指令为:
MOV DPTR, #0E700H
MOVX @DPTR, Anull (2)确认A/D转换完成
1)无条件传送方式 转换时间是转换器的一项已知和固定的技术指标。例如:ADC0809转换时间为128us,可在A/D转换启动后,调用一个延时足够长的子程序,规定时间到,转换也肯定已经完成。
2)查询方式 ADC0809的EOC端高电平,表明A/D转换完成,查询测试EOC的状态,即可确知转换是否完成。需注意ADC0809从复位到EOC变低约需10时间,查询时应首先确定EOC已变低,再变高,才
说明
关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书
A/D转换完成。
3)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。null例6-6 如图a电路中,对IN0~IN7上模拟电压巡回采集一遍数字量, 并送入内部RAM以50H为始址的输入缓冲区的有关程序如下:
ORG 0000H
SJMP MA1N
ORG 0013H
LJMP P1NT1
MA1N: MOV 10H,#50H ;数据区首址送工作寄存器区2 R0
MOV 12H,#0 ;1N0地址送工作寄存器区2 R2
MOV 17H, #8 ;模拟量路数送工作寄存器区2 R7
MOV IE, #84 ;CPU开中断,开外部中断1
SETB IT1 ;为负边沿触发
MOV SP, #50H ;设置堆栈指针
MOV DPTR,#0EFF8H ;启动1N0 A/D转换
MOVX @DPTR, A
……null P1NT1:PUSH … ;保护现场略
SETB RS1 ;切换到工作寄存器区2
CLR RS0
MOV 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,R2
MOVX @DPTR,A
SJMP OUT