第7章MCS-51单片机的并行IO接口及扩展_第1页
第7章MCS-51单片机的并行IO接口及扩展_第2页
第7章MCS-51单片机的并行IO接口及扩展_第3页
第7章MCS-51单片机的并行IO接口及扩展_第4页
第7章MCS-51单片机的并行IO接口及扩展_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、第第7章章 MCS-51单片机的并行单片机的并行I/O接口及扩展接口及扩展7.1 I/O接口的基本概念7.1.1 I/O接口的作用接口的作用1实现与不同外设的速度匹配实现与不同外设的速度匹配2改变数据传送方式改变数据传送方式3改变信号的性质和电平改变信号的性质和电平7.1.2 外部设备的编址外部设备的编址1外设端口的单独编址外设端口的单独编址 外设端口单独编址的优点是,它不占用存储器地址,但需要CPU指令集中有专用的I/O指令,并且也要增加和两条控制线。2外设端口和片外存储器统一编址CPU访问外部存储器的一切指令均适用于对I/O端口的访问,这就大大增强了CPU对外设端口信息的处理能力。CPU本

2、身不需要专门为I/O端口设置I/O指令。外设端口地址安排灵活,数量不受限制。 外设端口占用了部分存储器地址,所用译码电路较为复杂。7.1.3 I/O数据的数据的4种传送方式种传送方式1同步传送同步传送 同步传送又称无条件传送,类似于CPU和存储器间的数据传送。同步传送比较简单,常在以下两种情况中使用:(1)外设工作速度非常快(2)外设工作速度非常慢2异步传送异步传送 异步传送又称条件传送,也叫查询式传送。在不便使用同步传送的场合下,也可采用异步传送来解决CPU和外设间的速度匹配问题。 异步传送的优点是通用性好,硬件接线和查询程序十分简单,但CPU在查询等待中会失去时效。为了提高CPU对外设工作

3、的效率,I/O接口通常采用中断传送I/O数据的方式。3中断传送中断传送 中断传送是利用CPU本身的中断功能和I/O接口的中断功能来实现对外设I/O数据的传送 采用中断方式可使CPU和外设并行工作,CPU仅需在外设准备好后才中断主程序并进入外设中断服务程序,执行完后又返回主程序继续执行。因此,采用中断方式传送I/O数据可以大大提高CPU的工作效率。4DMA传送传送7.2 8051内部的内部的I/O端口及应用端口及应用 8051单片机有4组8位I/O口:P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口为双向三态输入输出口。8051的某些I/O口复用为总线接口,即数据总线和地址总线低8位

4、分时使用P0口,地址总线高8位使用P2口,控制总线使用P3口中的某些口线。 四个端口都包含一个锁存器,即特殊功能寄存器P0P3,一个输出驱动器和两个(P3口为3个)三态缓冲器。这种结构在数据输出时可以锁存,但对输入信号是不锁存的。 一般P1、P2、P3口的输出能驱动4个LS TTL输入,P0口的输出能驱动8个LS TTL输入。 7.2.1 I/O端口结构及其特点端口结构及其特点 1. P0口一个位的结构读锁存器内部总线写读引脚DCPQQMUX地址/数据 控制VccT1T2P0.x2. P0口的作用特点:1)用作数据总线或者地址总线低8位。此时,P0口是真正的双向口。(AD7AD0)2)用作I/

5、O。P0口用作I/O口时,是一个准双向口。此时,应接上拉电阻。3)P0内部无上拉电阻,执行输出功能时,外部必须接上拉电阻。4)若要执行输入功能,必须先输出高电平(1)才能读取该口所连接的外部数据。 2. P1口一个位的结构P1口的作用特点:1)内部具备上拉电阻,执行输出功能是,无须连接外部上拉电阻。2)若要执行输入功能,必须先输出高电平(1)才能读取该口所连接的外部数据。读锁存器内部总线写读引脚DCPQQVccT2P1.x上拉电阻*3. P2口 P2口一个位的结构P2口的作用特点:1)P2口可以输出地址总线的高8位(A15A8)或者作为通用I/O口使用。P2口作通用I/O口用时,是一个准双向口

6、。2)若要执行输入功能,必须先输出高电平(1)才能读取该口所连接的外部数据。注意:P2口已当作地址总线口使用时,由于访问外部存储器的操作不断,P2口不断送出高8位地址,故此时P2口不能再作通用I/O口使用。读锁存器内部总线写读引脚DCPQQMUX地址控制VccT2P2.x上拉电阻*4 . P3口 P3口一个位的结构读锁存器内部总线写读引脚DCPQQ选择输出功能VccT2P3.x上拉电阻*第二输入功能P3引脚兼用功能P3.0串行通讯输入(RXD)P3.1串行通讯输出(TXD)P3.2外部中断0(INT0)P3.3外部中断1(INT1)P3.4定时器0输入(T0)P3.5定时器1输入(T1)P3.

7、6外部数据存储器写选通WRP3.7外部数据存储器写选通RDP3口的第二功能7.2.2 MCS-51内部内部I/O端口的应用端口的应用 数据输出方式MOV P0,A ;累加器A中内容送P0口 ORL P0,#data ;P0data送P0口 ANL P0, A ;P0A送P0口 XRL P0, #data;P0 data送P0口 读端口数据方式 MOVA, P1 ;P1锁存器中数据送A MOV R1,P1;P1锁存器中数据送R1 MOV20H, P1;P1锁存器中数据送20H MOVR0, P1 ;P1锁存器中数据送(R0) 读引脚方式例如读P1口低四位引脚线上信号的程序为:MOV P1,#0F

8、H;P1口低四位锁存器置位 MOV A, P1;读P1口低四位引脚号送A 例7-2-1 试编出模拟图7-2-5中电路的程序。 在51系列的C语言中对四个I/O端口进行编程,必须要利用8051的C语言头文件,其中给出P0P3标号的定义。并且可以使用Pxy格式对P0P3端口的单个位进行表示,其中x是端口0、1、2或3,y是该端口的位07,例如P17指示P1.7。# include void main(void) unsigned char mybyte P0=0 xFF/*使P0成为输入*/ while(1)mybyte=P0/*从P0取得一个字节*/if(mybyte100)P1=mybyte/

9、*若该字节小于100,则将它发送到P1*/elseP2=mybyte /*若该字节大于等于100,则将它发送到P2*/ 例7-2-3 试编写8051 C语言程序,以仅将位P2.4不断地加以拨动,而不干扰P2的其余位。解:# include sbit mybit=P24 /*使用sbit数据类型对单个位进行表示*/ void main(void) while(1) mybit=1 /*开P2.4*/ mybit=1 /*关P2.4*/7.3 用用TTL芯片扩展简单的芯片扩展简单的I/O接口接口 当所需扩展的外部I/O口数量不多时,可以使用常规的逻辑电路、锁存器进行扩展。7.3.1 用用74LS3

10、77扩展扩展8位并行输出口位并行输出口图7-3-1 用74LS377扩展输出口# include#include /包含绝对地址访问库#define P5 XBYTE0 x7FFFvoid main(void) P5=0 x00; /向P5口输出数据07.3.2 用用74LS244扩展扩展8位并行输入口位并行输入口图7-3-2 用74LS244扩展并行输入口# include#include /包含绝对地址访问库#define P6 XBYTE0 x7FFF#unsigned char x /输入的数据放xvoid main(void) x=P6; /从P6口输入数据x7.4 MCS-51与可

11、编程并行与可编程并行I/O芯片芯片8255的接口的接口 8255A是Intel公司采用CHMOS工艺生产的一种高性能通用可编程输入/输出并行接口芯片,可以方便地应用在Intel系列微处理器系统中。MCS-51通过8255A可以扩展3组8位I/O端口。7.4.18255A内部结构及其引脚功能内部结构及其引脚功能1引脚信号引脚信号 图7-4-1 8255A的引脚图D7D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。(chip select):片选信号线,低电平有效时,芯片被选中。A1、A0(port address):地址线,用来选择内部端口。(read):读出信号

12、线,低电平有效时,允许数据读出。(write):写入信号线,低电平有效时,允许数据写入。RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。PA7PA0(port A):A口输入/输出信号线。PB7PB0(port B):B口输入/输出信号线。PC7PC0(port C):C口输入/输出信号线。VCC:5V电源。 GND:电源地线。 8255A的内部结构如图7-4-2所示,由三部分电路组成:与CPU的接口电路、内部控制逻辑电路和与外设连接的输入/输出接口电路。(1)与CPU的接口电路(2)内部控制逻辑电路(3)输入/输出接口电路 图7-4-2 8255A

13、的内部结构表7-4-1 8255A的端口分配及读/写功能7.4.28255A的工作方式及其初始化编程的工作方式及其初始化编程18255A的工作方式 (1)方式0:基本输入/输出方式(basic Input/Output)(2)方式1:单向选通输入/输出方式(strobe Input/Output)图7-4-3当数据输入时,C口的引脚信号定义图7-4-4端口A和端口B方式1数据输入的时序图图7-4-5当数据输出时,C口的引脚信号定义图7-4-6端口A和端口B方式1数据输出的时序图图7-4-7端口A方式2引脚信号定义(3)方式2:双向选通输入/输出方式(bi-directional bus)282

14、55A初始化编程 8255A的A、B、C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。(1)方式控制字的格式 图7-4-8 8255A工作方式控制字的格式(2)C口置位/复位控制字的格式图7-4-9 8255A C口置位/复位控制字的格式例7-4-1 设8255A的A口工作在方式0,数据输出,B口工作在方式1,数据输入,编写初始化程序(设8255A的端口地址为FF80HFF83H)。 初始化程序如下: MOVDPTR, #0FF83H ;控制寄存器端口地址为FF83HMOVA, 10000110B ;A口方式0, 数据输出, B口方式1, 数据输入MOVX

15、DPTR,A ;将控制字写入控制端在C语言中:# include#include /包含绝对地址访问库#define COM8255 XBYTE0 xFF83void main(void) COM8255=0 x86;7.4.3 8255与与MCS-51单片机的接口单片机的接口例 7-4-3 8255控制打印机。 图7-4-10是8031扩展8255与打印机接口的电路。8255的片选线为P0.7,打印机与803l采用查询方式交换数据。打印机的状态信号输入给PC7,打印机忙时BUSYl,微型打印机的数据输入采用选通控制,当STB上负跳变时数据被打入。8255采用方式0,由PC0模拟产生STB信号。向打印机输出字符串“WELCOME”的程序print.c如下:# include# include # define uchar unsigned char # define COM8255 XBYTE0 x007F /*命令口地址*/# define PA8255 XBYTE0 x007C /*口A地址*/# define PC8255 XBYTE0 x007E /*口C地址*/void toprn(uchar *p) /*打印字符串函数*/ while

温馨提示

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

评论

0/150

提交评论