预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共88页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

单片机的扩展设计8.1外部程序存储器扩展BACKBACKBACKBACKBACKBACK8.1.3外部程序存储器的容量扩展P2.7~P2.5【小结】: 1,单片机的P0、P2口作为地址数据总线; 2,P0口为数据、地址复用总线,所以必须加入八位锁存器74LS373来锁存P0口的低八位地址。 3,外接ROM是靠Psen信号来打开数据三态门,使ROM中的指令通过P0口送入单片机内部。 4,存储器的容量M与其地址线条数n的关系:M=2n 5,当使用两片ROM扩展时,可以使用一个反向器实现容量的扩展,通过ROM芯片的/CE端实现。 6,当使用2片以上的ROM芯片扩展时,就要使用译码器实现存储容量的扩展,译码器的输入与高位地址相连接,输出端分别与各ROM芯片的/CE连接(如前图所示)。 7,当外接ROM的高八位地址线与P2口高八位线没有完全用足时,要注意外存储的地址重叠问题。8.2外部数据存储器的扩展工作方式BACKBACK8.2.2访问外部数据存储器的时序设外部RAM2000H单元中有一个数x,且DPTR中已存有该数地址2000H.则CPU执行外部ROM中的指令: MOVX A,@DPTR ;将外RAM的X送A8.2.3多片外部数据存储器的扩展8.3I/O接口扩展设计及应用A口(一):内部结构:由四部分组成。 1,A口,B口和C口: A口:8位数据输出缓冲/锁存,输入缓冲/锁存的I/O端口。 B,C口:8位数据输出缓冲/锁存,输入缓冲的I/O端口。 2,A组控制器,B组控制器 接收CPU发送的控制字并确定8255的工作模式,其中A组控制器控制A口和C口的高4位;B组控制器控制B口和C口的低4位。 3,数据缓冲器: 双向8位,用于传送CPU与8255之间的数据和控制字。 4,读写控制器: 接收CPU送来的读(/RD),写(/WR)和片选(/CS)等信号,用于对8255的读写控制。(二)引脚功能:40脚DIP封装。 1,数据总线D7~D0,与内部数据缓冲器连接,用来传送CPU与8255之间的数据字、控制字。 2,控制总线: RESET:复位线,高电平有效; /CS:片选信号,低电平有效; /RD,/WR读写命令线:低电平有效; A0,A1:地址输入线,用于选中A口,B口,C口和控制寄存器。 3,并行I/O总线(24条): PA7~PA0:双向I/O总线,可由控制字设定为输入、输出或输入输出双向方式; PB7~PB0:双向I/O总线,可由控制字设定为输入或输出方式; PC7~PC0:双向I/O总线,可以设定为传送I/O数据(模式0)或控制/状态信息(模式1,2); 4,电源线: Vcc和GND.未选中2,8255A的工作方式及设置BACKBACKBACK模式1下C口各位定义如下:BACKBACKBACK/RD /WR P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 ALE 89C51BACK8.3.2可编程RAM及并行I/O接口芯片8155HBACKBACKBACKBACK8155的I/O部分有7个可编程程序寄存器,如图所示。单片机要访问这些寄存器必须使CE=0、IO/M=1。其命令寄存器(只写)、状态寄存器(只读),合用一个地址,所以8155安排了6个端口,由AD2~AD0三位编码确定,3,8155H的编程设置及工作方式PAINTRA8155H的工作方式(2)I/O方式BACK(3)计数器/定时器方式M1M28155H中的计数/定时器与MCS-51单片机内部计数/定时器的比较4,8155H与MCS-51系列单片机的连接8.3.3使用普通TTL芯片扩展并行I/O接口BACK8.4A/D、D/A的接口设计T型电阻网络构成的D/A转换器: T型网络如下图所示:Iout=I3+I2+I1+I0R2,DAC0832芯片介绍BACKBACKMCS-51单片机与DAC0832芯片的连接:BACKVoutBACK8.4.2A/D转换器的原理及应用BACK0特点及常用型号:ADC0809的内部逻辑结构图BACKBACK【例】:试编程对IN0-IN7上的模拟电压采集并送到内部RAM30H开始的单元,设ADC地址为0F0H。 ORG 0100H CINT1: MOV R0,#0F0H ;中断服务程序 MOVXA,@R0 ;读入ADC数据 MOV @R1,A ;存入转换的数据 INC R1 ;修改数据区指针R1 INC R2 ;修改通道代码寄存器R2 MOV A,R2 ;通道代码送累加器A MOVX@R0,A ;送下一个通道代码并启动ADC DJNZ R4,LOOP ;若未采集完转LOOP CLR EX1 ;采集完时,关中断 LOOP: RETI ;