第6章 单片机的并行扩展接口2015_第1页
第6章 单片机的并行扩展接口2015_第2页
第6章 单片机的并行扩展接口2015_第3页
第6章 单片机的并行扩展接口2015_第4页
第6章 单片机的并行扩展接口2015_第5页
已阅读5页,还剩142页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章第六章 MCS 51单片机的并行扩展接口单片机的并行扩展接口 l 6.1 总线并行扩展总线并行扩展l 6.2 存贮器接口扩展存贮器接口扩展 l 6.3 输入输入/输出并行接口扩展输出并行接口扩展 l 6.4 D/A转换器接口扩展转换器接口扩展 l 6.5 A/D转换器接口扩展转换器接口扩展 l 6.6 显示及键盘接口扩展显示及键盘接口扩展 l 6.7 微型打印机接口微型打印机接口 MCS 51系统单片机系统单片机(8031、8032除外)尽管是一除外)尽管是一功能完全的单片机,但因其功能完全的单片机,但因其内部资源(内部资源(RAM、ROM、I/O、A/D、D/A等)等)不足不足,在实际

2、应用中不加以扩展,在实际应用中不加以扩展直接用其基本系统的情况较少,直接用其基本系统的情况较少,一般情况下一般情况下需扩展需扩展。6.1 6.1 并行扩展总线并行扩展总线 一、总线并行扩展方法一、总线并行扩展方法 MCS 51可以扩展可以扩展64KB的程序存贮器的程序存贮器和和64KB的数据存贮器的数据存贮器或或输入输入/输输出口出口。 803180518751P2ALEP0PSENWRRDD0D7A0A7A8A15地址总线地址总线数据总线数据总线控制总线控制总线地址地址锁存器锁存器P0口作为地址口作为地址(地址低(地址低8位)位)/数据(数据(D0D7)总总线口。线口。 P2口作为地址总线口

3、作为地址总线口口(地址高(地址高8位)位)。803180518751P2ALEP0PSENWRRDD0D7A0A7A8A15地址总线地址总线数据总线数据总线控制总线控制总线地址地址锁存器锁存器lG为为锁存信号输入端锁存信号输入端,高电平高电平时,时,锁存器输出电平锁存器输出电平保持保持和输入一致和输入一致,即,即Q0Q7=D0D7, G负跳变负跳变时将时将D0D7锁锁存于存于Q0Q7。lE 为为Q0Q7的的三态门允许输出控制输入端三态门允许输出控制输入端,E接地接地,则,则Q0Q7总是允许输出总是允许输出。图图6-2 用用74LS373作地址锁存器作地址锁存器D0.D7Q0.Q7锁存器锁存器三

4、态门三态门(a) 74LS373逻辑符号逻辑符号GEINOUT19 A716 A69 A35 A12 A0D0.0D0.1D0.2D0.3D0.4D0.5D0.6D0.78D7D6D5D4D3D2D1D32 1834 1433 1735 1336 837 738 439 315 A512 A46 A28Q7Q6Q5Q4Q3Q2Q1QGALE+5V20GND11074LS37330803180518751(b) MCS 51地址扩展电路地址扩展电路Vcc11EN PSENMCS51 P2,P0 RD WR外部程序外部程序存存 贮贮 器器扩展RAM并行I/O接口A/D转换D/A转换定时器计数器外部

5、数据存贮器扩展外部数据存贮器扩展并行I/O设 备模拟量输 入模拟量输 出扩展总线扩展总线外部外部程序程序存贮器用存贮器用PSEN作为作为读读选通信号选通信号外部外部数据数据存贮器用存贮器用RD和和WR作为作为读读/写写选通信号选通信号 二、地址译码方法二、地址译码方法 1) 线选法线选法 一般一般片选端片选端(CS、CE等)等)低电平低电平有效,只要连接片有效,只要连接片选信号端的引线状态为选信号端的引线状态为低电平低电平,就,就表示选中该芯片表示选中该芯片。在在确定地址确定地址时,时,该芯片未用到的地址线该芯片未用到的地址线为为1,用到的地址用到的地址线线由由所访问的芯片和单所访问的芯片和单

6、元确定元确定。线选法线选法有可能产生地址有可能产生地址重叠重叠:若片选线中:若片选线中除和存贮除和存贮芯片芯片CS相连的以外还存在相连的以外还存在悬空的片选线悬空的片选线,则,则存贮单元存贮单元的地址就有重叠现象的地址就有重叠现象;否则,;否则,存贮单元的地址就是唯一的。存贮单元的地址就是唯一的。 1)地址空间确定步骤:地址空间确定步骤:(1)片选线片选线为低电平,该芯片为低电平,该芯片未用到的地址线未用到的地址线为为“1”1”;(2)该芯片中用到的地址线分别用全)该芯片中用到的地址线分别用全“0”和全和全“1”时,时,两次计算两次计算16为地址。为地址。2) 全地址译码法全地址译码法全地址译

7、码就是将系统中全地址译码就是将系统中未用到的全部高位地址未用到的全部高位地址作作为为译码信号的输入端译码信号的输入端,由此产生的,由此产生的译码输出信号译码输出信号作为作为选选片信号片信号的一种译码方式。的一种译码方式。在全地址在全地址译码法中,存译码法中,存贮器每个存贮贮器每个存贮单元单元只有唯一只有唯一的一个的一个CPU地地址和它一一对址和它一一对应应,只要单片,只要单片机发出这个机发出这个地址就可选中该存贮单元工作,故地址就可选中该存贮单元工作,故不存在不存在地址重叠地址重叠现象。现象。3) 部分地址译码法部分地址译码法 部分地址译码法是指单片机片选线中部分地址译码法是指单片机片选线中只

8、有一部分参只有一部分参加了译码,其余部分是悬空的加了译码,其余部分是悬空的,在实际应用中这种使,在实际应用中这种使用方式不太多。当使用部分地址译码法时,无论用方式不太多。当使用部分地址译码法时,无论CPU使悬空片选地址线上电平如何变化,都不会影响它对使悬空片选地址线上电平如何变化,都不会影响它对存贮单元的选址,故存贮器每个存贮单元的地址不是存贮单元的选址,故存贮器每个存贮单元的地址不是唯一的,必然会有一个以上的唯一的,必然会有一个以上的CPU地址和它对应(既地址和它对应(既地址有重叠)。地址有重叠)。 采用部分地址译码法时必须把程序和数据采用部分地址译码法时必须把程序和数据放在基本放在基本地址

9、范围内地址范围内(即(即悬空片选地址线全为悬空片选地址线全为低电平低电平时存贮芯时存贮芯片的地址范围),以避免因地址重叠引起程序运行的片的地址范围),以避免因地址重叠引起程序运行的错误。错误。 三、总线驱动能力及扩展方法三、总线驱动能力及扩展方法 MCS 51系列单片机,作为数据总线和低系列单片机,作为数据总线和低8位地址位地址总线的总线的P0口可驱动口可驱动8个个TTL电路电路,而如,而如P2口等其它口只口等其它口只能驱动能驱动4个个TTL电路电路。当应用。当应用系统规模过大系统规模过大,可能,可能造成造成负载过重负载过重,致使驱动能力不够致使驱动能力不够,系统不能可靠地工作时,系统不能可靠

10、地工作时,需另增设总线驱动需另增设总线驱动。 1) 1) 总线的驱动扩展总线的驱动扩展 G803180518751地址总线地址总线缓冲器缓冲器控制总线控制总线83数据总线数据总线8A8A15(P2口)口)D0D7(P0口)口)PSENWRRDGDBEODBEI缓冲器缓冲器ABDBCB单向驱动单向驱动 74LS244双向驱动双向驱动 74LS245地址总线和控制总线的驱动器为地址总线和控制总线的驱动器为单向驱动器单向驱动器,并具,并具有三态输出功能。驱动器有一个控制端有三态输出功能。驱动器有一个控制端G,以,以控制驱动控制驱动器开通或处于高阻状态器开通或处于高阻状态。常用的常用的地址总线和控制总

11、线地址总线和控制总线的驱动器有的驱动器有74LS240(带反向输出)、(带反向输出)、74LS241和和74LS244。2) 2) 地址和控制总线的驱动扩展地址和控制总线的驱动扩展74LS244P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7246811131517A8A9A10A11A12A13A14A151816141297531020+5V119图图6 6(b) P2口的单向驱动扩展口的单向驱动扩展74LS2441G1A12Y41A22Y31A32Y21A42Y1GND图图6 6(a) 单向驱动器单向驱动器74LS24412345678910VCC2G1Y12A41Y22

12、A31Y32A21Y42A1201918171615141312113) 3) 数据总线的驱动扩展数据总线的驱动扩展 数据总线为数据总线为双向驱动器双向驱动器。常用的双向总线驱动器。常用的双向总线驱动器为为74LS24574LS245。 1+5V74LS245P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.723456789D0D1D2D3D4D5D6D71817161514131211102019图67(b) P0口的双向驱动扩展74LS245DIRA0A1A2A3A4A5A6A7GND图67(a) 双向驱动器74LS24512345678910VCCGB0B1B2B3B4B5

13、B6B720191817161514131211GDIRPSENRDA0A7 B0B774LS245当G=0时:DIR=1时, ABDIR=0时, BA 6.2 MCS6.2 MCS 5151存贮器的扩展存贮器的扩展 l 对于用对于用内部无内部无ROM的芯片的芯片8031,8032来建立系统,来建立系统,则则必须外部扩展必须外部扩展程序存贮器程序存贮器。l 对于仅靠内部对于仅靠内部ROM,其,其ROM容量不能满足要求容量不能满足要求的的情况,则情况,则可外部扩展程序存贮器可外部扩展程序存贮器。l 程序存贮器的程序存贮器的作用作用:用于存贮程序代码或程序常数用于存贮程序代码或程序常数。l EPR

14、OM是是紫外线可擦除电可编程紫外线可擦除电可编程的半导体只读存的半导体只读存贮器,掉电后信息不会丢失。贮器,掉电后信息不会丢失。 EPROM中的程序一般由中的程序一般由专门的专门的编程器写入编程器写入,由专门的擦除器擦除。,由专门的擦除器擦除。l 常用的常用的EPROM有:有:2716,2732,2764,.。 EPROM电路电路一、程序存贮器的扩展一、程序存贮器的扩展1、常用的、常用的EPROM芯片介绍芯片介绍A0 Ai:地址输入地址输入线。线。2716:i=10; 27512:i=15; (2K64K)O0O7:三态:三态数据总线数据总线。接接CPU的的P0.0P0.7CE: 片选片选信号

15、输入线(信号输入线(接接CPU地址线地址线)PGM: 编程脉冲输入线编程脉冲输入线OE: 读选通信号读选通信号输入线输入线(输出使能输出使能)(接接CPU 的的PSEN线线)VPP: 编程电源输入线编程电源输入线VCC: 主电源输入线主电源输入线GND: 线路地线路地 E2PROM电路电路l E2PROM是是电可擦除电可编程电可擦除电可编程的半导体存贮器,掉的半导体存贮器,掉电后信息不会丢失。编程时简单,不需要专门的编程器电后信息不会丢失。编程时简单,不需要专门的编程器和擦除器。和擦除器。l 常用的并行常用的并行E2PROM有:有:2817,2864。A0 Ai:地址输入线。:地址输入线。28

16、17:i=10; 2864:i=12;(;(2K,8K)I/O0I/O7:双向三态数据线。(:双向三态数据线。(P0.0P0.7)CE: 片选信号片选信号输入线(输入线(接接CPU地址线地址线)OE: 读选通信号输入线读选通信号输入线 (接接CPU RD PSEN)WE: 写选通信号输入线写选通信号输入线 (接接CPU WR)RDY/BUSY:2817的状态输出线,为的状态输出线,为“0”表示正在表示正在进行写操作,写入完毕呈高阻态进行写操作,写入完毕呈高阻态VCC: 主电源主电源+5VGND: 线路地线路地E2PROM有读、写、维持三种操作方式。有读、写、维持三种操作方式。“某一值某一值”由

17、内部程序由内部程序存贮器的容量存贮器的容量决定。决定。 PSEN是是MCS51对对外部程序存贮器外部程序存贮器的的读选通信号读选通信号输出线,仅当输出线,仅当CPU访问外部程序存贮器时,访问外部程序存贮器时, PSEN才有才有效效。 程序存贮器扩展的基本原理程序存贮器扩展的基本原理2 2、程序存贮器的扩展方法、程序存贮器的扩展方法PC 某一值某一值,CPU从从内部内部存贮器存贮器中取中取指令指令PC 某一值某一值,CPU从从外部外部存贮器存贮器中取中取指令指令EA=1EA=0 CPU总是总是从从外部存贮器外部存贮器中读取指令中读取指令MCS51访问外部程序存贮器时序波形如下:访问外部程序存贮器

18、时序波形如下:MCS51访问外部程序存贮器时序波形 程序存贮器扩展的一般方法程序存贮器扩展的一般方法P2口口ALEP0口口PSEN MCS51地址锁存器地址锁存器 A0A7 A8A15 O0O7A8A15A0A7D0D7EA+5V10KW W 当需扩展时,单片机一般采用片内无一般采用片内无ROM的的8031芯片芯片。 P2.0P2.i ALE 8031 EA P0 PSEN 锁 存 器 E A8An A0A7 EPROM CE D0D7 OEG8n78eg:2716 2K n=10,则为P2.0P2.2 用8031单片机,无内部ROM,EA必须接地。 只扩展一片EPROM,故CE=0当用带内部

19、当用带内部ROMROM的的单片机芯片时单片机芯片时, EA=1(+5V) P2.i+1P2.0P2.i ALE8031 EA P0 PSEN 锁 存 器 EA0A7 A8An1 EPROM(1) CE D0D7 OEG8n178A0A7 A8An2 EPROM(2) CE D0D7 OE8n27 当采用74LS273作地址锁存器时,锁存器控制端为上升沿锁存上升沿锁存,故ALE须反相才能接到74LS273的锁存器控制端。 用8031单片机,无内ROM,EA必须接地。 扩展多片EPROM,故必须用一条或多条地址一条或多条地址线线 来片选来片选。二、数据存贮器的二、数据存贮器的扩展扩展 MCS 51

20、单片机内已具有单片机内已具有128或或256B的的RAM,它们,它们可以作为可以作为工作寄存器工作寄存器、堆栈堆栈、软件标志软件标志和和数据缓冲器数据缓冲器使使用,一般应用场合已基本满足要求,但当需要大容量用,一般应用场合已基本满足要求,但当需要大容量RAM时(如数据采集系统),就须外部扩展时(如数据采集系统),就须外部扩展RAM。1) 常用的数据存贮器常用的数据存贮器 最常用的最常用的RAM为半导体为半导体静态随机存取存贮器静态随机存取存贮器,如,如6116,6264,62256。 静态随机存取存贮器静态随机存取存贮器RAM ,具有,具有速度快、使用方速度快、使用方便和价格低廉便和价格低廉等

21、等优点优点,但也具有,但也具有掉电丢失数据的缺点掉电丢失数据的缺点。A0 Ai:地址输入线地址输入线。6116:i=10; 6264:i=12; (2K64K)I/O0I/O7:双向三态数据线双向三态数据线。(接。(接CPU的的P0.0P0.7)CE: 片选片选信号输入线(信号输入线(接接CPU地址线地址线)OE: 读选通信号读选通信号输入线输入线 (接接CPU RD )WE: 写选通信号写选通信号输入线输入线 (接接CPU WR ) VCC: 主电源主电源+5V GND: 线路地线路地2) 数据存贮器扩展方法数据存贮器扩展方法 MCS51 对外部数据存贮器的操作指令对外部数据存贮器的操作指令

22、MOVX A,RiMOVX Ri, AMOVX A,DPTRMOVX DPTR, A只能寻址较小的外部数据存贮器空间能对64KB的外部数据存贮器空间寻址 MCS51 读外部数据存贮器读外部数据存贮器时序波形时序波形 MCS51 写外部数据存贮器写外部数据存贮器时序波形时序波形 MCS51 和外部数据存贮器的接口和外部数据存贮器的接口方法方法CPU 存贮器 RD OE WR WEP0.0P0.7 D0D7CPU 存贮器 RD OE WR WEP0.0P0.7 D0D7A0A7P2. 0P2.?A8An P2.i+1CE经地址锁存A0A7经地址锁存三、存贮器三、存贮器扩展举例扩展举例下图中,扩展一

23、片27256(32K), 一片62256(32K)P2.7 P2.0P26 ALE EA P0 PSENRD WR 7ALS373 E GNDA0A7 A8A14 27256(ROM) CE O0O7 OEG878A0A7 A8A14 CE 62256(RAM) O0O7 OE WE8788031RAM的地址为:07FFFH(P2.7为片选信号, P2.7 =0)ROM的地址为:07FFFH(CE接地)由PSEN、RD、WR有效访问。例题例题1:并行扩展:并行扩展4片片2KX8数据存储数据存储器芯片,使用线选法器芯片,使用线选法P2.3,P2.4,P2.5,P2.6做其片选做其片选,并画出连接

24、电路并画出连接电路P2.7为为1时,分别指出时,分别指出4片存储器芯片片存储器芯片的地址范围。的地址范围。答案:P2.3做其做其片选片选芯片地址范围芯片地址范围:0F000H0F7FFH;P2.4做其做其片选片选芯片地址范围芯片地址范围:0E800H0EFFFH;P2.5做其做其片选片选芯片地址范围芯片地址范围:0D800H0DFFFH;P2.6做其做其片选片选芯片地址范围芯片地址范围:0B800H0BFFFH。例题例题2:若使用:若使用74138译码输出做片选,并行扩译码输出做片选,并行扩展展2片片2KX8数据存储器芯片,数据存储器芯片,Y0,Y2分别分别接接存储器存储器芯片芯片1、2的的C

25、E端。端。P2.3,P2.4,P2.5接接A,B,C,G1接接VCC,P2.7接接G2A,P2.6接接G2B。试画出其连接电路,并指出。试画出其连接电路,并指出2片存储器片存储器芯片的芯片的地址范围地址范围。答案:Y0做其做其片选片选芯片地址范围芯片地址范围:0000H07FFH;Y2做其做其片选片选芯片地址范围芯片地址范围:1000H17FFH。 6.3 输入输出并行接口扩展输入输出并行接口扩展 MCS51具有4个I/O口P0P3,但P0、P2口往往作为扩展总线使用,P3往往用其第二功能,故实际常用来作I / O口使用的就仅剩下P1口,如外接较多的I / O设备(打印机,键盘,显示器等),显

26、然得扩展I / O接口。I/O接口扩展一般用并行扩展,常用来扩展的器件有: 可编程并行接口8255; 可编程RAM / IO扩展器8155;一、采用一、采用8255A扩展并行扩展并行I/O接口接口1) 8255A的结构的结构8255A是Intel公司的一种通用的可编程的并行接口电路,它具有三个8位并行口PA,PB,PC。 D0D7:双向三态数据总线 PA,PB,PC:三个8位I / O口 RD:读选通信号输入线 WR:写选通信号输入线 A1A0:端口地址输入线,用于选择内部端口寄存器 (一般接CPU P0经地址锁存后的P0.1、P0.0或P2.1、P2.0) CS:选片信号输入线。(接CPU地

27、址线) RESET:复位信号输入线。复位后PA,PB,PC均为 输入方式。0 1C口1 0控制器1 1B口A口0 0口号A1 A08255A逻辑框图8255A引脚图P154 表6-1列出了8255A的端口寻址和操作WR=0为写写PA,PB,PC口及控制口。 D0D7 PA,PB,PC,控制口RD=0为读读PA,PB,PC口。 PA,PB,PC D0D7 Vcc:主电源 +5VGND:线路地 8255A的引脚图及逻辑框图如下所示: 2) 8255A的控制字的控制字 方式控制字方式控制字A口00方式0 01 1 1 2A口0输出 1输入D61D5D4D3D2D1D0PC口0PC74输出 1 PC7

28、4输入B口0方式0 1方式1B口0输出 1输入PC口0PC30输出 1 PC30输入0D3D2D1D0000PC.0001PC.1。111PC.70清01置1 PC口置位口置位/复位控制字复位控制字例题例题1:若要使:若要使8255A的的PA口为方式口为方式0输入,输入,PB口为口为方方式式1输出输出,则,则8255A的的方式控制字方式控制字为多少?为多少?例题例题2:若要使:若要使8255A的的PC口的口的第第4位位置置1,则,则8255A的的PC口位置位口位置位/复位控制字复位控制字为多少?为多少?答案:答案:1 00 1 X 1 0 X B答案:答案:0 XXX 100 1 B3)825

29、5A操作方式操作方式 8255A有三种工作方式:方式有三种工作方式:方式0,方式,方式1,方式,方式2 方式方式0基本输入/输出工作方式这种方式不需要任何选通信号不需要任何选通信号,A口,B口,C口中任何一个端口都可以设定为输入或输出。作为输出口时,输出数据被锁存。作为输入口时,输入数据不锁存。适应于无条件无条件传输数据的设备。选通输入/输出方式A口,B口可由编程设定为输入口或输出口, C口的大部分口的大部分位用来作为输入位用来作为输入/输出的控制和同步信号输出的控制和同步信号。 A口和B口的输入数据或输出数据都被锁存都被锁存。 方式方式18255A方式1的输入、输出逻辑组态及输入时序波形如下

30、:8255A方式1输入时序波形8255A方式1的输入输入逻辑组态(a)8255A方式1的输入逻辑组态(b)8255A方式1的输出逻辑组态(b)8255A方式1的输出逻辑组态(a)8255A方式1输出时序波形 方式2双方选通输入/输出方式A口为双向三态数据总线口,既可发送数据又可接收数据,在这种方式下,C口的P37用来作为输入/输出的控制同步信号。只有只有 A口允许口允许作为双向三态数据总线口使用,这时B口和PC02则可编程为方式0和方式1工作。(通过改变8255A的端口选择信号线A0A1与单片机P0或P2的接法,或8255A的片选信号与单片机P2的接法、或8255A的工作方式,PA和PB输入输

31、出方式来出题)4) MCS-51和和8255A的接口方法的接口方法8QD78255AD08P2.7CSA1A0P0RDWR8051ALE74LS373GGRDWR81D8D7Q例题1 单片机的P0.7、P0.6分别连到锁存器74LS373的输入端8D、7D(图中没标明),74LS373的输出端8Q、7Q分别连到8255A的A1、A0引脚,若单片机P0口其它位都为低电平,P2口其它位都为高电平。写出A口、B口、C口和控制寄存器的地址 ;试根据连接图编写程序使A口为方式0输出,B口为方式0输出,C口为输入。 答案:A口地址为7F00H、B口地址为7F40H、C口地址为7F80H、控制字寄存器的地址

32、为7FC0H。汇编程序:MOV DPTR,#7FC0HMOV A,#89HMOVX DPTR,AC51程序:#define COM8255 XBYTE0 x7fc0COM8255=0 x89;例题2 单片机与8255A的连接图如下所示,单片机的P0.1、P0.0分别连到锁存器74LS373的输入端2D、1D(图中没标明),74LS373的输出端2Q、1Q分别连到8255A的A1、A0引脚,若单片机P0口其它位都为低电平,P2口其它位都为高电平。 写出A口、B口、C口和控制寄存器的地址 ; 试编写程序使A口为方式1输入,B口为方式1输入,C口为输出。2QD78255AD08P2.4CSA1A0P

33、0RDWR8051ALE74LS373GGRDWR81D8D1Q答案:A口地址为EF00H、B口地址为EF01H、C口地址为EF02H、控制字寄存器的地址为EF03H。汇编程序:MOV DPTR,#EF03H MOV A,#B6H MOVX DPTR,AC51程序:#define COM8255 XBYTE0 xef03COM8255=0 xb6;例题3 8051单片机与8255A的连接图如下所示,单片机的P0.1、P0.0分别连到锁存器74LS373的输入端2D、1D(图中没标明),74LS373的输出端2Q、1Q分别连到8255A的A1、A0引脚,若单片机P0口其它位都为低电平,P2口其它

34、位都为高电平。 写出A口、B口、C口和控制寄存器的地址 ; 试编写程序使A口为方式1输入,B口为方式0输出,C口为输入。2QD78255AD08P2.6CSA1A0P0RDWR8051ALE74LS373GGRDWR81D8D1Q 答案:A口地址为BF00H、B口地址为BF01H、C口地址为BF02H、控制寄存器的地址为BF03H。汇编程序:MOV DPTR,#BF03H MOV A,#B9H MOVX DPTR,AC51程序:#define COM8255 XBYTE0 xbf03COM8255=0 xb9;4) MCS-51和和8255A的接口方法的接口方法eg: 8255 PA接一组开关

35、接一组开关,PB口口接一组接一组指示灯指示灯。以下程序是将开关状态读入PA口再从PB口输出。MCS 518255A74LS373GGCSA1A0D0D7RDWRRESET88P2.7ALEP0RDWR+5VPAPBPC888I/OI/OI/O图617 8255A与MCS51的一种接口逻辑C51参考程序如下:参考程序如下:# include #include # define uchar unsigned char# define CONT 0 x90# define ADDR8D XBYTE 0 x7FFF /定义8255A端口地址# define ADDR8B XBYTE 0 x7FFD#

36、define ADDR8A XBYTE 0 x7FFCunchar iofunc(void) /8255A 输入输出控制函数 unchar mid;ADDR8D = CONT; /输出控制字 mid = ADDR8A; /读A口信息 ADDR8B = mid; /输出信息到B口 return mid;void main(void)uchar b;b = iofunc( ); /调用8255A 芯片控制程序 eg: 把内部RAM中30H开始的32个单元的字符输出至打印机。微 型打印机MCS 518255A74LS373GGCSA1A0D0D7RDWRRESETINTRB88P2.6ALEP0RD

37、WRINT0+5VPAPB88I/O图618 8255A与MCS51的另一种接口逻辑D0D7OBFBACKBC51参考程序如下:参考程序如下:#include #include #define unchar unsigned char#define _8255A_Control XBYTE0 xBFFF/8255A控制控制口的地址口的地址#define _8255A_PA XBYTE0 xBFFC /8255A的的PA口口的地址的地址#define _8255A_PB XBYTE0 xBFFD /8255A的的PB口的地址口的地址#define _8255A_PC XBYTE0 xBFFE /

38、8255A的的PC口的地址口的地址idata unchar text32 _at_ 0 x30; /定义从地址定义从地址30H开始开始的的32个单元的字符数组个单元的字符数组idata unchar count = 0; /text数组索引数组索引void INT0_ISR(void) interrupt 0 using 1 /外部中断外部中断0中中断服务函数断服务函数count = count + 1; /输出数据则自增输出数据则自增1if(count = 32)EX0 = 0; /数据输出完,禁止外部中断数据输出完,禁止外部中断0else_8255A_PB = textcount; /全部

39、数据未输出完,继续输出全部数据未输出完,继续输出数据数据 void main(void)unchar i;for(i = 0;i 32;i +)texti = i + 0 x30; /text数组初始化数组初始化_8255A_Control = 0 x05; /置置PC2=1(即即INTEB置置1)_8255A_Control = 0 xBC;/设置设置PB口为方式口为方式1输出输出_8255A_PB = textcount;/从从PB口输出第一个数据口输出第一个数据EA = 1; /开中断开中断EX0 = 1; /允许外部中断允许外部中断0,电平触发方式,电平触发方式while(1); 当打

40、印机取走当打印机取走CPUCPU通过通过8255A8255A的的PBPB口送来的数据后,口送来的数据后,反馈回答信号使反馈回答信号使INTRBINTRB变为高电平,经过反向器后引起变为高电平,经过反向器后引起外部中断外部中断0 0提出中断申请,提出中断申请,CPUCPU响应外部中断响应外部中断0 0的中断申的中断申请,并执行相应的中断服务程序请,并执行相应的中断服务程序INT0_ISRINT0_ISR。在中断服。在中断服务程序中再输出一个数据至微型打印机,同样会再次务程序中再输出一个数据至微型打印机,同样会再次引起中断,直至全部数据输出完毕并设置禁止外部中引起中断,直至全部数据输出完毕并设置禁

41、止外部中断断0 0。 二、采用二、采用8155A扩展并行扩展并行I/O接口接口 256B的静态RAM,最快存取时间为400ns 两个可编程的8位并行I/O口(PA、PB) 一个可编程的6位并行I/O口(PC) 一个可编程的14位减法计数器8155的的片内资片内资源源 1) 8155结构结构 AD0AD7 :地址/数据总线 IO/M :高电平选择I/O口,低电平选择RAM CE :片选信号 ALE :地址允许锁存信号输入线 RD :读选通信号输入线 WR :写选通信号输入线 TI :计数器的计数脉冲输入线 TO :计数器的输出信号线 RESET PA0PA7、PB0PB7、PC0PC5 3) 8

42、155的命令字和状态字的命令字和状态字TM2TM1IEBIEAPC2PC1PBPA00空操作,不影响定时器/计数器工作01立即停止定时器/计数器计数10待定时器/计数器溢出时停止计数11启动定时器/计数器计数0禁止中断,1允许中断00PA、PB为基本I/O,PC为输入口11PA、PB为基本I/O,PC为输出口01PA为选通I/O,PB为基本I/O, PC02为控制线,PC35输出10PA、PB为选通I/O,PC为控制线0输入口,输入口,1输出口输出口 命令字命令字命令字只能写不能读命令字只能写不能读。2) 8155内部寄存器内部寄存器8155内部寄存器编址内部寄存器编址: 命令字寄存器、状态寄

43、存器: 000 PA口寄存器: 001 PB口寄存器 : 010 PC口寄存器 : 011 定时器/计数器低字节寄存器: 100 定时器/计数器高字节寄存器: 101 状态字状态字状态字只能读不能写状态字只能读不能写。 TIMER INTEBBFBINTRBINTEABFAINTRAPA中断请求标志PA缓冲器满标志PA中断允许标志定时器/计数器中断请求标志。定时器/计数器溢出时置位,CPU读读8155状态后清零状态后清零。是一个14位的减法计数器。计数初值23FFFH。 4) 8155的定时器的定时器/计数器计数器M2 M1 T13T12 T11 T10 T9 T8 T7 T6 T5 T4 T

44、3 T2 T1 T000单负方波 ,宽度为n/2(偶)或(n-1)/2个TI。01连续方波 ,10单负脉冲,溢出时输出一个宽为输出一个宽为TI的时钟周的时钟周 期的负脉冲期的负脉冲。11连续脉冲,每次溢出时输出一个宽为TI的时钟 周期的负脉冲,并自动恢复初值。)()(212212nnnn或,高电平或低电平RAM地址: 5) MCS-51和和8155的接口方法的接口方法 0111111000000000 0111111011111111 7E00H7EFFH 8155命令状态寄存器地址: 命令/状态 :0111111100000000 PA :0111111100000001 PB :01111

45、11100000010 PC :0111111100000011 T/C低字节:0111111100000100 T/C高字节:0111111100000101egeg: : 图图6 6 2424是是81558155与与MCSMCS 5151单片机的一种接口逻辑。单片机的一种接口逻辑。要求编写要求编写C51C51语言程序将语言程序将MCSMCS 5151单片机内部单片机内部RAM 30HRAM 30H开开始的始的3232个个单元单元内容内容转移转移到到8155 RAM8155 RAM的的80H80H开始开始的的单元单元中。中。 #include #include #define unchar

46、unsigned charxdata unchar 8155_RAM32 _at_ 0 x7E80; /设置8155 中RAM的地址idata unchar text32 _at_ 0 x30; /单片机内部RAM数据数组void main(void)unchar i;for(i = 0;i 32;i +)texti = i + 0 x30; /初始化text数组for(i = 0;i 32;i +)8155_RAMi = texti; /将text中的字符传送到8155A指定的RAM中while(1); egeg: :图图6-246-24中使中使81558155用作用作I/OI/O和定时器工

47、作方式,和定时器工作方式,PAPA口口定义为基本定义为基本输入输入方式,方式,PBPB口定义为基本口定义为基本输出输出方式,定时器方式,定时器作为方波发生器,对输入脉冲进行作为方波发生器,对输入脉冲进行2424分频。分频。#include #include #define 8155_Cmd XBYTE0 x7F00 /8155A命令字寄存器地址#define 8155_State XBYTE0 x7F00 /8155A状态字寄存器地址#define 8155_PA XBYTE0 x7F01 /8155A的PA口地址#define 8155_PB XBYTE0 x7F02 /8155A的PB口地

48、址#define 8155_PC XBYTE0 x7F03 /8155A的PC口地址#define 8155_Tlow XBYTE0 x7F04 /8155A定时器/计数器低字节地址#define 8155_Thigh XBYTE0 x7F05 /8155A定时器/计数器高字节地址void main(void)8155_Tlow = 0 x18; /定时器低8位值(24分频)8155_Thigh = 0 x40; /输出连续方波 (M2M1 = 01)while(1); 8155_Cmd = 0 xC2; /设定PA口为基本输入,PB口为基本输出,并启动定时器 6.4 D/A转换器接口扩展转换

49、器接口扩展 D/A是将数字量转换成模拟量的器件, D/A的输出是电压或电流信号。衡量D/A性能的主要参数是:分辨率分辨率:即输出的模拟量的最小变化量。 满刻度误差满刻度误差:即输入为全1时,实际输出电压与理 想值之差。 输出范围输出范围: 转换时间转换时间:从转换器的输入改变到输出稳定的时 间间隔。是否容易与是否容易与CPU接口接口1) D / A转换器的转换特性转换器的转换特性对n位D/A转换器,其输入是n位二进制数字输入信号Din,将Din看成小数二进制数码,则Din可表示为:1212222ninnDdddL设D/A转换器的基准电压为UR,则理想理想D/A转换器的输出电压转换器的输出电压为

50、:1212(222)noRinRnUU DUdddL则满量程输出电压值为:nRRnRniiRFUUUUU221121即满量程值比基准电压小一个最低有效位(LSB)的数码。一、一、 R2R梯形电阻式梯形电阻式D/A转换原理转换原理即模拟输出电压Uo与二进制输入信号成正比与二进制输入信号成正比。但电路用到的电阻规格太多电阻规格太多,则电阻差别大,故精度不高。2) D / A转换器结构及原理转换器结构及原理单片D/A转换器的基本组成包括基准电压源、解码网络、电子开关阵列和相加运算放大器等部分,其中电阻解码网络是其核心,常用的解码网络有二进制加权电加权电阻网络阻网络和R2R梯形电阻网络梯形电阻网络。

51、加权电阻网络电路加权电阻网络电路模拟开关由相应位的二进制数码控制,当某位为1时,模拟开关与参考电压源接通,则流向求和点A的总电流为:niiiRiniiRodRUdRUI11122211122niRooiiU RUI RdR R2R梯形电阻网络电路 图中A1An各节点往右看,对地的电阻值对地的电阻值均等于R。从左到右,各路电流分配规律是IR/2, IR/22,, IR/2n,则输出电压为: niiiRnnRoodRRUdddRRURIU112211112)222(即模拟输出电压Uo与二进制输入信号成正比与二进制输入信号成正比。二、二、 D/A芯片芯片DAC0832的扩展的扩展1) DAC0832

52、结构结构 DAC0832是8位D/A芯片,片内带数据锁存器,电流输出。该系列产品包括DAC0830、DAC0831、DAC0832,它们可以完全相互代换。它由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路组成。 D0D7:8位数据输入线 CS :片选信号 WR1 :输入锁存器写选通 WR2 :DAC寄存器写选通 XFER :数据传送控制信号 ILE :数据允许锁存控制信号输入线 Iout1 :电流输出端1,其值随DAC内容线性变化 Iout2 :电流输出端2, Iout1+ Iout2 =常数 Rfb :反馈输入线,改变Rfb端外接电阻调整转换满量程精度8位数据锁存器8位D

53、AC寄存器8位D/A转换器D0D7输入数据ILECSWR1WR2XFERLE1LE2VREFIOUT1IOUT2RfbAGNDVccDGND VREF :基准电压输入线,-10 +10V VCC :+5+15V AGND:模拟地, DGND:数字地,2) DAC0832工作方式工作方式 DAC0832可以有三种工作方式: 单缓冲方式单缓冲方式 若应用系统中只有一路一路D/A转换或虽然有多路转换,但并不要求各路信号同步输出时,则采用单缓冲方式来接口。方法是:使锁存器和DAC寄存器同时接收数据。 双缓冲方式双缓冲方式 当多路多路D/A信号要求同步输出时,则采用双缓冲方式。方法是:分别使其输入锁存器

54、接收数据;同时传送数据到其 DAC寄存器,以实现多路转换同步输出。 直通方式直通方式 所有控制信号均有效,适宜于连续控制时。3) 电流输出转换成电压输出电流输出转换成电压输出fboutoutRIU1 MCS51执行下面的程序后在运放的输出端产生一个锯齿型的电压波形。4) DAC0832与与MCS51的接口方法的接口方法 单缓冲方式应用的接口方法单缓冲方式应用的接口方法CS和和XFER相连相连。即锁存器有效的同时寄存器锁存器有效的同时寄存器也有效也有效,故一次完成转换。#include #include #define DAC0832_ADR XBYTE0 x7FFF /DAC0832寄存器地址

55、#define unchar unsigned char#define MAX 0 xA0; /定义锯齿波的高度unchar count = 0;void main(void)while(1) DAC0832_ADR = count;count +;if( count MAX ) count = 0; 双缓冲方式应用的接口方法双缓冲方式应用的接口方法 先将数据写入锁存器 CS有效; 同时选中各路寄存器(XFER有效),输出模拟量。CSXFERWR1WR211129RfbIOUT1IOUT2VOUT1+MCS 51P0P2.5P2.7WR P2.68D0D7CSXFERWR1WR2DGND+5V

56、11129RfbIOUT1IOUT2VOUT2+D0D7VccILEDGNDILEVcc0832(1)0832(2)#include #include #define unchar unsigned char#define _DAC0832_1 XBYTE0 xDFFF /0832(1)数据锁存器地址#define _DAC0832_2 XBYTE0 xBFFF /0832(2)数据锁存器地址#define _DAC0832_SYN XBYTE0 x7FFF /两片共同的寄存器的地址const unchar data1 = 0 x55;/准备输出数据const unchar data2 = 0

57、 xAA;void main(void)_DAC0832_1 = data1; /数据送入0832(1)的数据锁存器_DAC0832_2 = data2; /数据送入0832(2)的数据锁存器_DAC0832_SYN = 0; /同时启动两路D/A转换同步输出while(1); 三、三、D/A芯片芯片AD7520的扩展的扩展 低功耗的电流输出的10位、D/A器件,其片内无锁存器。1) AD7520结构结构 D0D09 :数字量输入线 RFE :反馈信号输入线 Iout1 :电流输出端1,其值随DAC内容线性变化 Iout2 :电流输出端2, Iout1+ Iout2 =常数 VREF :基准电

58、压输入线,-10+10V VCC :电源+5+15V GND :线路地,2) MCS51与与AD7520的接口方法的接口方法因其片内无锁存器,故不能直接和单片机的数据总线相连。常通过具有锁存功能的I/O或扩展I/O与之相连。或者数据总线通过数据锁存器与之相连。MCS 51MSBAD7520LSB+28P2.6WRP0P2.7CPDECLKD07Q0737774(1)QDCP82Q274(2)12+VOUT图640 AD7520与MCS51的双缓冲接口方法 74LS74(1)的口地址为0BFFFH,74LS74(2)和74LS377的口地址均为7FFFH。数据须分两次输出,在将高两位数据输出到7

59、4LS74(1)后,将低8位数据送到74LS377的同时,把已送到74LS74(1)的内容送到74LS74(2)上,因此10位数据是同时到达AD7520的数据输入端的。 #include #include #define unchar unsigned char#define 74LS74_1 XBYTE0 xBFFF /74LS(1)的地址#define AD7520 XBYTE0 x7FFF /74LS(2) 和AD7520的地址const unchar data1 = 0 x55;/准备低2位数据const unchar data2 = 0 xAA;/准备高8位数据void main(v

60、oid)74LS74_1 = data1; /低2位数据送入74LS(1)AD7520 = data2; /数据同时到达AD7520 while(1); 6.5 A/D转换器接口的扩展转换器接口的扩展 电信号非电信号 传感器电信号A / D是将模拟量转换成数字量的器件。模拟量模拟量只有转换成数字量才能被计算机采集,分析和计算。电信号电信号非电信号非电信号传感器A / DMCS51D / A模拟量输出模拟量输出数字量输出数字量输出衡量A / D性能的主要参数是: 分辨率分辨率: 即输出的数字量变化一个相邻的值所对应的输 入模拟量的变化值。 满刻度误差满刻度误差:即输出全1时输入电压与理想输入量值之差。 转换速率转换速率: 完成一次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论