单片机课件第六章_第1页
单片机课件第六章_第2页
单片机课件第六章_第3页
单片机课件第六章_第4页
单片机课件第六章_第5页
已阅读5页,还剩120页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及应用第六章 MCS51单片机的并行扩展接口 6.1 总线并行扩展 6.2 存贮器接口扩展 6.3 输入/输出并行接口扩展 6.4 D/A转换器接口扩展 6.5 A/D转换器接口扩展 6.6 显示及键盘接口扩展 6.7 微型打印机接口 单片机原理及应用第六章 MCS51单片机的并行扩展接口 MCS51系统单片机(8031、8032除外)尽管是一功能完全的单片机,但因其内部资源(RAM、ROM、I/O、A/D、D/A等)不足,在实际应用中不加以扩展直接用其基本系统的情况较少,一般情况下需扩展。6.1 并行扩展总线 一、总线并行扩展方法 MCS51可以扩展64KB的程序存贮器和64KB的

2、数据存贮器或输入/输出口。 第六章 MCS51单片机的并行扩展接口803180518751P2ALEP0PSENWRRDD0D7A0A7A8A15地址总线数据总线控制总线地址锁存器MCS51系统单片机(8031、8032除外)尽管是一功能 P0、P2口可以直接作为输入输出口使用,其更重要的用途是用来扩展总线口使用。 P0口作为地址(地址低8位)/数据(D0D7)总线口。 P2口作为地址总线口(地址高8位)。第六章 MCS51单片机的并行扩展接口803180518751P2ALEP0PSENWRRDD0D7A0A7A8A15地址总线数据总线控制总线地址锁存器 P0、P2口可以直接作为输入输出口使

3、用,其更第六章 MCS51单片机的并行扩展接口 一般用74LS373作地址锁存器,输出的地址当ALE上升以后有效,当ALE下降以后消失,因此可以用ALE的负跳变将地址打入地址锁存器,即当ALE由高变低时,将出现在P0口的地址信号低8位锁存到外部地址锁存器中(如图62所示),直到下一次ALE变高时,地址才发生变化。 用74LS373作地址锁存器D0.D7Q0.Q7锁存器三态门(a) 74LS373逻辑符号GEINOUT19 A716 A69 A35 A12 A0D0.0D0.1D0.2D0.3D0.4D0.5D0.6D0.78D7D6D5D4D3D2D1D32 1834 1433 1735 13

4、36 837 738 439 315 A512 A46 A28Q7Q6Q5Q4Q3Q2Q1QGALE+5V20GND11074LS37330803180518751(b) MCS51地址扩展电路Vcc11EN第六章 MCS51单片机的并行扩展接口 一般第六章 MCS51单片机的并行扩展接口 PSENMCS51 P2,P0 RD WR外部程序存 贮 器扩展RAM并行I/O接口串行I/O接口A/D转换D/A转换定时器计数器外部数据存贮器扩展并行I/O设 备串行I/O设 备模拟量输 入模拟量输 出扩展总线外部程序存贮器用PSEN作为读选通信号外部数据存贮器用RD和WR作为读/写选通信号 第六章 MC

5、S51单片机的并行扩展接口 P第六章 MCS51单片机的并行扩展接口二、地址译码方法 1、线选法 一般片选端(CS、CE等)低电平有效,只要连接片选信号端的引线状态为低电平,就表示选中该芯片。在确定地址时,该芯片未用到的地址线为1,用到的地址线由所访问的芯片和单元确定。线选法有可能产生地址重叠:若片选线中除和存贮芯片CS相连的以外还存在悬空的片选线,则存贮单元的地址就有重叠现象;否则,存贮单元的地址就是唯一的。 第六章 MCS51单片机的并行扩展接口二、地址译码方法 1第六章 MCS51单片机的并行扩展接口2、全地址译码法全地址译码就是将系统中未用到的全部高位地址作为译码信号的输入端,由此产生

6、的译码输出信号作为选片信号的一种译码方式。在全地址译码法中,存贮器每个存贮单元只有唯一的一个CPU地址和它一一对应,只要单片机发出这个地址就可选中该存贮单元工作,故不存在地址重叠现象。第六章 MCS51单片机的并行扩展接口2、全地址译码法全地第六章 MCS51单片机的并行扩展接口3、部分地址译码法 部分地址译码法是指单片机片选线中只有一部分参加了译码,其余部分是悬空的,在实际应用中这种使用方式不太多。当使用部分地址译码法时,无论CPU使悬空片选地址线上电平如何变化,都不会影响它对存贮单元的选址,故存贮器每个存贮单元的地址不是唯一的,必然会有一个以上的CPU地址和它对应(既地址有重叠)。 采用部

7、分地址译码法时必须把程序和数据放在基本地址范围内(即悬空片选地址线全为低电平时存贮芯片的地址范围),以避免因地址重叠引起程序运行的错误。 第六章 MCS51单片机的并行扩展接口3、部分地址译码法 第六章 MCS51单片机的并行扩展接口三、总线驱动能力及扩展方法 MCS51系列单片机,作为数据总线和低8位地址总线的P0口可驱动8个TTL电路,而如P2口等其它口只能驱动4个TTL电路。当应用系统规模过大,可能造成负载过重,致使驱动能力不够,系统不能可靠地工作时,需另增设总线驱动。 第六章 MCS51单片机的并行扩展接口三、总线驱动能力及扩第六章 MCS51单片机的并行扩展接口1、总线的驱动扩展 G

8、803180518751地址总线缓冲器控制总线83数据总线8A8A15(P2口)D0D7(P0口)PSENWRRDGDBEODBEI缓冲器ABDBCB单向驱动 74LS244双向驱动 74LS245第六章 MCS51单片机的并行扩展接口1、总线的驱动扩展 第六章 MCS51单片机的并行扩展接口地址总线和控制总线的驱动器为单向驱动器,并具有三态输出功能。驱动器有一个控制端G,以控制驱动器开通或处于高阻状态。常用的地址总线和控制总线的驱动器有74LS240(带反向输出)、74LS241和74LS244。2、地址和控制总线的驱动扩展74LS244P2.0P2.1P2.2P2.3P2.4P2.5P2.

9、6P2.7246811131517A8A9A10A11A12A13A14A151816141297531020+5V119图66(b) P2口的单向驱动扩展74LS2441G1A12Y41A22Y31A32Y21A42Y1GND图66(a) 单向驱动器74LS24412345678910VCC2G2Y12A41Y22A31Y32A21Y42A120191817161514131211第六章 MCS51单片机的并行扩展接口地址总线和控制总线的第六章 MCS51单片机的并行扩展接口3、数据总线的驱动扩展 数据总线为双向驱动器。常用的双向总线驱动器为74LS245。 1+5V74LS245P0.0P

10、0.1P0.2P0.3P0.4P0.5P0.6P0.723456789D0D1D2D3D4D5D6D71817161514131211102019图67(b) P0口的双向驱动扩展74LS245DIRA0A1A2A3A4A5A6A7GND图67(a) 双向驱动器74LS24512345678910VCCGB0B1B2B3B4B5B6B720191817161514131211GDIRPSENRDA0A7 B0B774LS245当G=0时:DIR=1时, ABDIR=0时, BA第六章 MCS51单片机的并行扩展接口3、数据总线的驱动扩第六章 MCS51单片机的并行扩展接口 6.2 MCS51存

11、贮器的扩展 对于用内部无ROM的芯片8031,8032来建立系统,则必须外部扩展程序存贮器。对于仅靠内部ROM,其ROM容量不能满足要求的情况,则可外部扩展程序存贮器。程序存贮器的作用:用于存贮程序代码或程序常数。一、程序存贮器的扩展 EPROM和E2PROM都可作单片机的外部程序存贮器,由于EPROM价格低廉,性能可靠,故应用最广泛,目前因E2PROM的价格在不断下降,读、写速度在不断增快,加上可用电擦除及掉电后信息不会丢失,编程也方便等特点,故应用也越来越多。1、常用的EPROM芯片介绍第六章 MCS51单片机的并行扩展接口 6.2 MCS EPROM是紫外线可擦除电可编程的半导体只读存贮

12、器,掉电后信息不会丢失。 EPROM中的程序一般由专门的编程器写入,由专门的擦除器擦除(擦除后EPROM阵列全为1状态),擦除时紫外线强度为12000mw/cm2,波长为l=2537 ,时间为1020min。 常用的EPROM有:2716,2732,2764,.。 EPROM电路第六章 MCS51单片机的并行扩展接口 EPROM是紫外线可擦除电可编程的半导体只读存贮器,掉第六章 MCS51单片机的并行扩展接口A0 Ai:地址输入线。2716:i=10; 27512:i=15; (2K64K)O0O7:三态数据总线。接CPU的P0.0P0.7读或编程校验时为数据输出线编程时为数据输入线维持或编程

13、禁止时呈高阻态有的芯片合用引脚CE: 片选信号输入线(接CPU地址线)PGM: 编程脉冲输入线OE: 读选通信号输入线(输出使能)(接CPU 的PSEN线)VPP: 编程电源输入线VCC: 主电源输入线GND: 线路地第六章 MCS51单片机的并行扩展接口A0 Ai:地址输第六章 MCS51单片机的并行扩展接口 E2PROM电路 E2PROM是电可擦除电可编程的半导体存贮器,掉电后信息不会丢失。编程时简单,不需要专门的编程器和擦除器。故E2PROM实际上是一种特殊的可读写存贮器。E2PROM兼有程序存贮器和数据存贮器的特点,故在单片机应用系统中既可作为程序存贮器,又可作为数据存贮器。常用的并行

14、E2PROM有:2817,2864。A0 Ai:地址输入线。2817:i=10; 2864:i=12;(2K,8K)I/O0I/O7:双向三态数据线。(P0.0P0.7)第六章 MCS51单片机的并行扩展接口 E2PROM电路第六章 MCS51单片机的并行扩展接口CE: 片选信号输入线(接CPU地址线)OE: 读选通信号输入线 (接CPU RD PSEN)WE: 写选通信号输入线 (接CPU WR)RDY/BUSY:2817的状态输出线,为“0”表示正在进行写操作,写入完毕呈高阻态VCC: 主电源+5VGND: 线路地E2PROM有读、写、维持三种操作方式。2817的写操作:当2817收到CP

15、U发来的地址、数据和写控制信号后,便启动内部电路对该地址单元进行写操作,此时RDY/ BUSY输出低电平,大约16ms以后,写操作完成,完成后RDY/BUSY呈高电平(外接上拉电阻)或高阻。2817第六章 MCS51单片机的并行扩展接口CE: 片第六章 MCS51单片机的并行扩展接口的RDY/BUSY状态线可供CPU采用中断或查询方式来控制对2817的字节写操作。 2864的写操作: Inter公司的2864采用页面写操作方式。 Inter公司的2864A内设有16B的页缓冲器,其整个存贮空间分为512页(每页16B),页面操作分“页加载”和“页存贮”两步进行。 “页加载”指在软件控制下,将一

16、页(116B)的数据写入2864内的“页缓冲器”。 “页存贮”是2864A在其内部电路控制下把页缓冲器的内容存入E2PROM单元。第六章 MCS51单片机的并行扩展接口的RDY/BUSY状第六章 MCS51单片机的并行扩展接口“某一值”由内部程序存贮器的容量决定。 PSEN是MCS51对外部程序存贮器的读选通信号输出线,仅当CPU访问外部程序存贮器时, PSEN才有效。 程序存贮器扩展的基本原理2、程序存贮器的扩展方法PC 某一值,CPU从内部存贮器中取指令PC 某一值,CPU从外部存贮器中取指令EA=1EA=0CPU总是从外部存贮器中读取指令第六章 MCS51单片机的并行扩展接口“某一值”由

17、内部程序第六章 MCS51单片机的并行扩展接口MCS51访问外部程序存贮器时序波形如下:MCS51访问外部程序存贮器时序波形第六章 MCS51单片机的并行扩展接口MCS51访问外部第六章 MCS51单片机的并行扩展接口 程序存贮器扩展的一般方法P2口ALEP0口PSEN MCS51地址锁存器 A0A7 A8A15 O0O7A8A15A0A7D0D7EA+5V10KW 常用的地址锁存器有:74LS373(三态缓冲输出的八D锁存器);8282(三态缓冲输出的八D锁存器); 74LS273(带清除端的八D锁存器)。最常用的是74LS373,当然地址锁存器芯片不同,则与单片机的连接方式不同。第六章 M

18、CS51单片机的并行扩展接口 程序存贮器扩展的一第六章 MCS51单片机的并行扩展接口 E低电平有效(一般接地)。 G(STB)为锁存信号输入端,高电平时Q0Q7=D0D7 G(STB)电平负跳变(为0)时, Q0Q7状态保持不变。 G(STB)实际连接时接单片机的ALE。 74LS373和8282都是透明的三态门八D锁存器,其工作原理为:第六章 MCS51单片机的并行扩展接口 E低 当需扩展时,单片机一般采用片内无ROM的8031芯片。 P2.0P2.i ALE 8031 EA P0 PSEN 锁 存 器 E A8An A0A7 EPROM CE D0D7 OEG8n78eg:2716 2K

19、 n=10,则为P2.0P2.2 用8031单片机,无内部ROM,EA必须接地。 只扩展一片EPROM,故CE=0当用带内部ROM的单片机芯片时, EA=1(+5V)第六章 MCS51单片机的并行扩展接口 当需扩展时,单片机一般采用片内无ROM的803第六章 MCS51单片机的并行扩展接口 P2.i+1P2.0P2.i ALE8031 EA P0 PSEN 锁 存 器 EA0A7 A8An1 EPROM(1) CE D0D7 OEG8n178A0A7 A8An2 EPROM(2) CE D0D7 OE8n27 当采用74LS273作地址锁存器时,锁存器控制端为上升沿锁存,故ALE须反相才能接到

20、74LS273的锁存器控制端。 用8031单片机,无内ROM,EA必须接地。 扩展多片EPROM,故必须用一条或多条地址线 来片选。第六章 MCS51单片机的并行扩展接口 P2.i+1A0第六章 MCS51单片机的并行扩展接口二、数据存贮器的扩展 MCS51单片机内已具有128或256B的RAM,它们可以作为工作寄存器、堆栈、软件标志和数据缓冲器使用,一般应用场合已基本满足要求,但当需要大容量RAM时(如数据采集系统),就须外部扩展RAM。1、常用的数据存贮器 最常用的RAM为半导体静态随机存取存贮器,如6116,6264,62256。E2PROM也可作外部RAM (但速度慢),但因它掉电后信

21、息不丢失,对某些要求不间断工作、对于一些关键性的实时数据不允许丢失的场合较合适,但其读/写速度稍慢(尤其是写的速度)故用其作扩展时,在硬件和软件设计都应着重考虑这一因素。第六章 MCS51单片机的并行扩展接口二、数据存贮器的扩展第六章 MCS51单片机的并行扩展接口 静态随机存取存贮器RAM ,具有速度快、使用方便和价格低廉等优点,但也具有掉电丢失数据的缺点。A0 Ai:地址输入线。6116:i=10; 6264:i=12; (2K64K)I/O0I/O7:双向三态数据线。(接CPU的P0.0P0.7)CE: 片选信号输入线(接CPU地址线)OE: 读选通信号输入线 (接CPU RD )WE:

22、 写选通信号输入线 (接CPU WR ) VCC: 主电源+5V GND: 线路地第六章 MCS51单片机的并行扩展接口 静态第六章 MCS51单片机的并行扩展接口2、数据存贮器扩展方法 MCS51 对外部数据存贮器的操作指令MOVX A,RiMOVX Ri, AMOVX A,DPTRMOVX DPTR, A只能寻址较小的外部数据存贮器空间能对64KB的外部数据存贮器空间寻址 CPU在访问外部数据存贮器时,在ALE下降为低电平后,P2口输出的地址信息保持不变,而P0口转为浮空,原来的低8位地址信息丢失,因此需要外部锁存器在ALE下降时把P0口的地址信息锁存起来。ALE返回低电平后,读信号RD或

23、写信号WR有效,而PSEN始终无效,故外部程序存贮器单元不会被选通。见下页的时序图。第六章 MCS51单片机的并行扩展接口2、数据存贮器扩展方第六章 MCS51单片机的并行扩展接口 MCS51 读外部数据存贮器时序波形第六章 MCS51单片机的并行扩展接口 MCS51 第六章 MCS51单片机的并行扩展接口 MCS51 写外部数据存贮器时序波形第六章 MCS51单片机的并行扩展接口 MCS51 第六章 MCS51单片机的并行扩展接口 MCS51 和外部数据存贮器的接口方法CPU 存贮器 RD OE WR WEP0.0P0.7 D0D7CPU 存贮器 RD OE WR WEP0.0P0.7 D0

24、D7A0A7P2. 0P2.?A8An P2.i+1CE经地址锁存A0A7经地址锁存第六章 MCS51单片机的并行扩展接口 MCS51 第六章 MCS51单片机的并行扩展接口三、存贮器扩展举例下图中,扩展一片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(

25、CE接地)由PSEN、RD、WR有效访问。第六章 MCS51单片机的并行扩展接口三、存贮器扩展举例下第六章 MCS51单片机的并行扩展接口 6.3 输入输出并行接口扩展 MCS51具有4个I/O口P0P3,但P0、P2口往往作为扩展总线使用,P3往往用其第二功能,故实际常用来作I / O口使用的就仅剩下P1口,如外接较多的I / O设备(打印机,键盘,显示器等),显然得扩展I / O接口。I/O接口扩展一般用并行扩展,常用来扩展的器件有: 可编程并行接口8255; 三态门电路,锁存器 eg:74LS377(373,273)扩展输出,74LS244(245)扩展输入; 可编程RAM / IO扩展

26、器8155;利用串行口的移位寄存器工作方式(方式0)也可以扩展I / O口,这时所扩展的I / O口不占用片外的RAM地址。第六章 MCS51单片机的并行扩展接口 6.3 输入输出第六章 MCS51单片机的并行扩展接口一、采用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.

27、1、P2.0)CS:选片信号输入线。(接CPU地址线)RESET:复位信号输入线。复位后PA,PB,PC均为 输入方式。0 1C口1 0控制器1 1B口A口0 0口号A1 A0第六章 MCS51单片机的并行扩展接口一、采用8255A扩第六章 MCS51单片机的并行扩展接口8255A逻辑框图8255A引脚图P163表6-1列出了8255A的端口寻址和操作WR=0为写PA,PB,PC口及控制口。 D0D7 PA,PB,PC,控制口RD=0为读PA,PB,PC口。 PA,PB,PC D0D7 Vcc:主电源 +5VGND:线路地 8255A的引脚图及逻辑框图如下所示: 第六章 MCS51单片机的并行

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

29、55A操作方第六章 MCS51单片机的并行扩展接口8255A方式1输入时序波形8255A方式1的输入逻辑组态(a)8255A方式1的输入逻辑组态(b)第六章 MCS51单片机的并行扩展接口8255A方式1输入第六章 MCS51单片机的并行扩展接口8255A方式1的输出逻辑组态(b)8255A方式1的输出逻辑组态(a)8255A方式1输出时序波形第六章 MCS51单片机的并行扩展接口8255A方式1的输第六章 MCS51单片机的并行扩展接口 方式2双方选通输入/输出方式A口为双向三态数据总线口,既可发送数据又可接收数据,在这种方式下,C口的P37用来作为输入/输出的控制同步信号。只有 A口允许作

30、为双向三态数据总线口使用,这时B口和PC02则可编程为方式0和方式1工作。第六章 MCS51单片机的并行扩展接口 方式2双方选通输入第六章 MCS51单片机的并行扩展接口3、8255A的控制字 方式控制字A口00方式0 01 1 1 2A口0输出 1输入D61D5D4D3D2D1D0PC口0PC74输出 1 PC74输入B口0方式0 1方式1B口0输出 1输入PC口0PC30输出 1 PC30输入0D3D2D1D0000PC.0001PC.1。111PC.70清01置1 PC口置位/复位控制字第六章 MCS51单片机的并行扩展接口3、8255A的控制第六章 MCS51单片机的并行扩展接口4、M

31、CS-51和8255A的接口方法eg: 8255 PA接一组开关,PB口接一组指示灯。以下程序是将开关状态读入PA口再从PB口输出。MCS518255A74LS373GGCSA1A0D0D7RDWRRESET88P2.7ALEP0RDWR+5VPAPBPC888I/OI/OI/O图617 8255A与MCS51的一种接口逻辑第六章 MCS51单片机的并行扩展接口4、MCS-51和8第六章 MCS51单片机的并行扩展接口C51参考程序如下:# include #include # define unchar unsigned char# define CONT 0 x90# define ADD

32、R8D XBYTE 0 x7FFF /定义8255A端口地址# define ADDR8B XBYTE 0 x7FFD# define ADDR8A XBYTE 0 x7FFCunchar iofunc(void) /8255A 输入输出控制函数unchar mid;ADDR8D = CONT; /输出控制字 mid = ADDR8A; /读A口信息 ADDR8B = mid; /输出信息到B口 return mid;void main(void)unchar b;b = iofunc( ); /调用8255A 芯片控制程序 第六章 MCS51单片机的并行扩展接口C51参考程序如下:第六章 M

33、CS51单片机的并行扩展接口 eg: 把内部RAM中30H开始的32个单元的字符输出至打印机。微 型打印机MCS518255A74LS373GGCSA1A0D0D7RDWRRESETINTRB88P2.6ALEP0RDWRINT0+5VPAPB88I/O图618 8255A与MCS51的另一种接口逻辑D0D7OBFBACKB第六章 MCS51单片机的并行扩展接口 eg: 把内部R第六章 MCS51单片机的并行扩展接口C51参考程序如下:#include #include #define unchar unsigned char#define _8255A_Control XBYTE0 xBFF

34、F/8255A控制口的地址#define _8255A_PA XBYTE0 xBFFC /8255A的PA口的地址#define _8255A_PB XBYTE0 xBFFD /8255A的PB口的地址#define _8255A_PC XBYTE0 xBFFE /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 +

35、1; /输出数据则自增1if(count = 32)EX0 = 0; /数据输出完,禁止外部中断0else_8255A_PB = textcount; /全部数据未输出完,继续输出数据 第六章 MCS51单片机的并行扩展接口C51参考程序如下:第六章 MCS51单片机的并行扩展接口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 =

36、 textcount;/从PB口输出第一个数据EA = 1; /开中断EX0 = 1; /允许外部中断0,电平触发方式while(1); 当打印机取走CPU通过8255A的PB口送来的数据后,反馈回答信号使INTRB变为高电平,经过反向器后引起外部中断0提出中断申请,CPU响应外部中断0的中断申请,并执行相应的中断服务程序INT0_ISR。在中断服务程序中再输出一个数据至微型打印机,同样会再次引起中断,直至全部数据输出完毕并设置禁止外部中断0。 第六章 MCS51单片机的并行扩展接口void main(第六章 MCS51单片机的并行扩展接口二、采用8155A扩展并行I/O接口 256B的静态R

37、AM,最快存取时间为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第六章 MCS51单片机的并行扩展接口二、采用8155A扩第六章 MCS51单片机的并行扩展接口 3、8155的命令字和状态

38、字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内部寄存器编址: 命令字寄存器、状态寄存器: 000 PA口寄存器: 001 PB口寄存器 : 010 PC口寄存器 : 011 定时器/

39、计数器低字节寄存器: 100 定时器/计数器高字节寄存器: 101第六章 MCS51单片机的并行扩展接口 3、8155的命令第六章 MCS51单片机的并行扩展接口 状态字状态字只能读不能写。TIMERINTEBBFBINTRBINTEABFAINTRAPA中断请求标志PA缓冲器满标志PA中断允许标志定时器/计数器中断请求标志。定时器/计数器溢出时置位,CPU读8155状态后清零。是一个14位的减法计数器。计数初值23FFFH。 4、8155的定时器/计数器M2M1T13T12T11T10T9T8T7T6T5T4T3T2T1T000单负方波 ,宽度为n/2(偶)或(n-1)/2个TI。01连续方

40、波 ,10单负脉冲,溢出时输出一个宽为TI的时钟周 期的负脉冲。11连续脉冲,每次溢出时输出一个宽为TI的时钟 周期的负脉冲,并自动恢复初值。第六章 MCS51单片机的并行扩展接口 状态字状态字只能读第六章 MCS51单片机的并行扩展接口RAM地址: 5、MCS-51和8155的接口方法 0111111000000000 0111111011111111 7E00H7EFFH 8155命令状态寄存器地址: 命令/状态 :0111111100000000 PA :0111111100000001 PB :0111111100000010 PC :0111111100000011 T/C低字节:0

41、111111100000100 T/C高字节:0111111100000101 eg: 图624是8155与MCS51单片机的一种接口逻辑。要求编写C51语言程序将MCS51单片机内部RAM 30H开始的32个单元内容转移到8155 RAM的80H开始的单元中。 第六章 MCS51单片机的并行扩展接口RAM地址: 5、M第六章 MCS51单片机的并行扩展接口C51参考程序如下:#include #include #define unchar unsigned charxdata unchar 8155_RAM32 _at_ 0 x7E80; /设置8155 中RAM的地址idata uncha

42、r 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); eg:图6-24中使8155用作I/O和定时器工作方式,PA口定义为基本输入方式,PB口定义为基本输出方式,定时器作为方波发生器,对输入脉冲进行24分频。第六章 MCS51单片机的并行扩展接口C51参考程序如下:第六章 MCS51单片机的并行

43、扩展接口C51参考程序如下:#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口地址#define 8155_PC XBYTE0 x7F03 /8155A的PC口地址#define 8155_Tlow XBYTE0 x7F04 /8155A定时器/计数器低字节地址#defin

44、e 8155_Thigh XBYTE0 x7F05 /8155A定时器/计数器高字节地址void main(void)8155_Tlow = 0 x18; /定时器低8位值(24分频)8155_Thigh = 0 x40; /输出连续方波 (M2M1 = 01)8155_Cmd = 0 xC2; /设定PA口为基本输入,PB口为基本输出,并启动定时器while(1); 第六章 MCS51单片机的并行扩展接口C51参考程序如下:第六章 MCS51单片机的并行扩展接口WRP2.7P0CLKED0D7Q0Q774LS377MCS51图626 MCS51与74LS377的接口电路输出设备#includ

45、e # define _ADDR8D XBYTE 0 x7FFFvoid func1(unsigned char x) /74LS377输出控制函数_ADDR8D = x;三、采用锁存器扩展并行I/O接口74LS377是一种8D触发器。1、采用锁存器扩展简单的8位输出口 用74LS377扩展并行输出口20191817161514131211Vcc Q7D7D6 Q6 Q5 D5 D4Q4CLKEQ0D0D1Q1Q2D2D3Q3GND1234567891074LS377第六章 MCS51单片机的并行扩展接口WRQ0Q774L第六章 MCS51单片机的并行扩展接口 用74LS245扩展并行输入口7

46、4LS245是一种三态输出8总线收发器/驱动器,无锁存功能。A BDIR=1时,ABDIR=0时,BA以下程序是把累加器的内容从74LS377输出,读74LS245的数据到累加器A中。#include # define _ADDR245D XBYTE0 xBFFF# define _ADDR377D XBYTE0 xBFFFunsigned char func2(unsigned char x )/ 74LS244 输入控制函数 unsigned char Da;Da = _ADDR245D;_ADDR377D=x; 第六章 MCS51单片机的并行扩展接口 用74LS245第六章 MCS51单

47、片机的并行扩展接口 采用锁存器扩展选通输入的8位并行口 采用带三态门控输出的8D锁存器74LS373作为外部扩展输入口。图中外部设备向单片机输出数据时,有一个选通信号连到74LS373的锁存端G上,在选通信号的下降沿将数据锁存,同时向单片机发出中断申请。 如:将输入设备的输入数据送入首地址为30H的内部RAM数据区。74LS373MCS51图628 MCS51与74LS373的接口电路输入设备P0RDP2.6E+Q0Q7D0D7GINT0第六章 MCS51单片机的并行扩展接口 采用锁存器扩展选通第六章 MCS51单片机的并行扩展接口C51参考程序如下:#include#define _PORT

48、_1 XBYTE0 xBFFF #define unchar unsigned charunchar idata IDA0 x20 _at_ 0 x30/置内部RAM数据地址30H,数据长度20Hunchar kk; void main (void)kk=0;IT0 = 1; /外部中断0选为边沿触发方式EA = 1; /开中断EX0 = 1; /允许外部中断0中断while(1);void service_INT0 (void) interrupt 1 using 1IDAkk = _PORT_1;kk+;if ( kk 0 x20 )kk=0; 第六章 MCS51单片机的并行扩展接口C51

49、参考程序如下:第六章 MCS51单片机的并行扩展接口四、采用串行口扩展并行I/O接口 1、采用并入串出8位移位寄存器74LS165扩展并行输入口 输入时,将外部移位寄存器的内容移入内部输入移位寄存器中,然后写入内部接收数据缓冲器。并行输入串行输出MCS516 5 4 3 14 13 12 11H G F E D C B A74LS165(1)QHQHS/ L CP GND VccSIN791 2 8 166 5 4 3 14 13 12 11H G F E D C B A74LS165(2)QHQHS/ L CP GND VccSIN791 2 8 16+5V10+5VP3.0P3.1P1.0

50、10图630 利用MCS51串行口扩展并行输入口 eg:图630中从两个8位并行口读入32字节的数据,并把数据转存到内部RAM以30H为首地址的单元中。 需读入32个字节的数据,则显然需从第一片74LS165读入16个字节的数据,从第二片74LS165读入16个字节的数据,P1.0控制置入一次,则串行口应接收到一组数据。C51参考程序如下: 第六章 MCS51单片机的并行扩展接口四、采用串行口扩展并第六章 MCS51单片机的并行扩展接口#include #defined unchar unsigned charsbit P1_0 = P10; /与74LS165的移位/锁存端(S/L)相连sb

51、it P3_0 = P30; /与74LS165的串行输出端相连sbit P3_1 = P31; /与74LS165的移位脉冲输出端idata unchar text32 _at_ 0 x30; /首地址为30H的32字节数组void main(void)unsigned char i;SCON = 0 x10; /串行口为方式0,允许接收P1_0=0; P1_0=1;/74LS165置入数据,允许74LS165移位 for(i = 0;i 16;i +)while(!RI); /等待接收完8位数据text2*i = SBUF;RI = 0; /准备下一次接收while(!RI);text2*

52、i + 1 = SBUF;while(1); 第六章 MCS51单片机的并行扩展接口#include 第六章 MCS51单片机的并行扩展接口 2、采用串入并出8位移位寄存器74LS164扩展并行输出口 输出时,将发送数据缓冲器中的内容串行地移到外部的移位寄存器中。 RxD(P3.0)为串行输出与74LS164数据输入端相连;TxD(P3.1)为移位脉冲输出,与74LS164的时钟脉冲输入端相连;由P1.0口线控制74LS164的清除端。 3 4 5 6 10 11 12 133 4 5 6 10 11 12 13MCS51QA QB QC QD QE QF QG QH74LS164(1)A、B

53、CLR CP GND Vcc1、29 8 7 1474LS164(2)+5V+5VP3.0P3.1P1.0图631利用MCS51串行口扩展并行输出口QA QB QC QD QE QF QG QHA、B1、29 8 7 14CLR CP GND Vcc串行输入并行输出第六章 MCS51单片机的并行扩展接口 2、采用串入并出8第六章 MCS51单片机的并行扩展接口 eg:图631中将内部RAM 30H、31H单元的内容输出到移位寄存器。C51参考程序如下:#include #include #defined unchar unsigned charidata unchar text2 _at_ 0

54、 x30; /设置以地址30H为首的数组void main(void)text0 = 0 x55; /数组初始化,可为任意值text1 = 0 xAA;SCON = 0 x10; /串行口为方式0,允许接收SBUF = text0; /发送第一个数据while(!TI);TI = 0;SBUF = text1; /发送第二个数据while(1); 第六章 MCS51单片机的并行扩展接口 eg第六章 MCS51单片机的并行本扩展接口 6.4 D/A转换器接口扩展 D/A是将数字量转换成模拟量的器件, D/A的输出是电压或电流信号。衡量D/A性能的主要参数是: 分辨率:即输出的模拟量的最小变化量。

55、 满刻度误差:即输入为全1时,实际输出电压与理 想值之差。 输出范围: 转换时间:从转换器的输入改变到输出稳定的时 间间隔。是否容易与CPU接口第六章 MCS51单片机的并行本扩展接口 6.4 D/A转1、D / A转换器的转换特性对n位D/A转换器,其输入是n位二进制数字输入信号Din,将Din看成小数二进制数码,则Din可表示为:设D/A转换器的基准电压为UR,则理想D/A转换器的输出电压为:则满量程输出电压值为:即满量程值比基准电压小一个最低有效位(LSB)的数码。第六章 MCS51单片机的并行扩展接口一、 R2R梯形电阻式D/A转换原理1、D / A转换器的转换特性对n位D/A转换器,

56、其输入是n即模拟输出电压Uo与二进制输入信号成正比。但电路用到的电阻规格太多,则电阻差别大,故精度不高。2、D / A转换器结构及原理单片D/A转换器的基本组成包括基准电压源、解码网络、电子开关阵列和相加运算放大器等部分,其中电阻解码网络是其核心,常用的解码网络有二进制加权电阻网络和R2R梯形电阻网络。 加权电阻网络电路模拟开关由相应位的二进制数码控制,当某位为1时,模拟开关与参考电压源接通,则流向求和点A的总电流为:第六章 MCS51单片机的并行扩展接口即模拟输出电压Uo与二进制输入信号成正比。但电路用到的电阻规 R2R梯形电阻网络电路 图中A1An各节点往右看,对地的电阻值均等于R。从左到

57、右,各路电流分配规律是IR/2, IR/22,, IR/2n,则输出电压为:即模拟输出电压Uo与二进制输入信号成正比。第六章 MCS51单片机的并行扩展接口 R2R梯形电阻网络电路 图中A1An各第六章 MCS51单片机的并行扩展接口二、 D/A芯片DAC0832的扩展1、DAC0832结构 DAC0832是8位D/A芯片,片内带数据锁存器,电流输出。该系列产品包括DAC0830、DAC0831、DAC0832,它们可以完全相互代换。它由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路组成。 D0D7:8位数据输入线 CS :片选信号 WR1 :输入锁存器写选通 WR2 :D

58、AC寄存器写选通 XFER :数据传送控制信号 ILE :数据允许锁存控制信号输入线 Iout1 :电流输出端1,其值随DAC内容线性变化 Iout2 :电流输出端2, Iout1+ Iout2 =常数 Rfb :反馈输入线,改变Rfb端外接电阻调整转换满量程精度8位数据锁存器8位DAC寄存器8位D/A转换器D0D7输入数据ILECSWR1WR2XFERLE1LE2VREFIOUT1IOUT2RfbAGNDVccDGND第六章 MCS51单片机的并行扩展接口二、 D/A芯片DA第六章 MCS51单片机的并行扩展接口 VREF :基准电压输入线,-10 +10V VCC :+5+15V AGND

59、:模拟地, DGND:数字地,2、DAC0832工作方式 DAC0832可以有三种工作方式:单缓冲方式 若应用系统中只有一路D/A转换或虽然有多路转换,但并不要求各路信号同步输出时,则采用单缓冲方式来接口。方法是:使锁存器和DAC寄存器同时接收数据。双缓冲方式 当多路D/A信号要求同步输出时,则采用双缓冲方式。方法是:分别使其输入锁存器接收数据;同时传送数据到其 DAC寄存器,以实现多路转换同步输出。第六章 MCS51单片机的并行扩展接口 VREF :第六章 MCS51单片机的并行扩展接口 直通方式 所有控制信号均有效,适宜于连续控制时。3、电流输出转换成电压输出 MCS51执行下面的程序后在

60、运放的输出端产生一个锯齿型的电压波形。4、DAC0832与MCS51的接口方法 单缓冲方式应用的接口方法CS和XFER相连。即锁存器有效的同时寄存器也有效,故一次完成转换。第六章 MCS51单片机的并行扩展接口 直通方式3、电流输第六章 MCS51单片机的并行扩展接口C51参考程序如下:#include #include #define DAC0832_ADR XBYTE0 x7FFF /DAC0832寄存器地址#define unchar unsigned char#define MAX 0 xA0; /定义锯齿波的高度unchar count = 0;void main(void)whil

温馨提示

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

评论

0/150

提交评论