单片机原理与应用_第1页
单片机原理与应用_第2页
单片机原理与应用_第3页
单片机原理与应用_第4页
单片机原理与应用_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、 单片机原理与应用第5章 MCS-51系列单片机的并行、串行输入/输出接口本章要点:80C51的并行接口80C51的串行接口第5章 MCS-51系列单片机的并行、串行输入/输出接口5.1 MCS-51系列单片机的并行接口 组成4个8位并行的输入/输出接口,可以与外界进行信息交换。这4个并行接口分别称为PO、P1、P2和P3,其中P0为三态双向口,Pl、P2、P3为准双向口。因为Pl、P2、P3用于输入时,必须先将该口锁存器置“1”,然后才能接受输入信号。由于单片机引脚有限,这4个并行端口一般都是一脚多用。第5章 MCS-51系列单片机的并行、串行输入/输出接口 P0包括1个输出锁存器,2个三态

2、缓冲器,1个输出驱动电路和1个输出控制电路。输出驱动电路由一对FET(场效应管)组成,其工作状态受输出控制电路的控制。控制电路包括:1个与门、一个反相器和1路模拟转换开关(MUX)。5.1.1 P0口第5章 MCS-51系列单片机的并行、串行输入/输出接口1.地址数据总线的接口P0口的工作方式由片内控制信号进行转换。当控制信号为“l”时, P0口为地址数据总线工作状态,如图5-1所示。若此时地址数据信号为“1”,则场效应管TO导通,Tl截止,把引脚拉高输出高电平;反之,则T0截止,Tl导通,输出为低电平。在访问外存储器时,P0口作为双向三态地址数据总线,它分时输出低8位地址和传送数据信息,低8

3、位地址来源于RO、R1、PCL、DPL等寄存器。由于P0口是地址数据复用口,其输出的低8位地址要片外锁存,常用的办法是低8位地址与ALE信号配合予以实现。5.1.1 P0口第5章 MCS-51系列单片机的并行、串行输入/输出接口2.通用I0接口在不访问片外存储器时,CPU使控制信号为“0”,将多路开关MUX接到P0口锁存器的Q端。此时P0口作为IO端口进行工作。P0口作为IO端口,可按位设置它们为输入或输出位。若置某些位为输出位,由于控制信号使场效应管TO截止,因而它们的输出是漏极开路式的。如果想使某些位为输入位,则应先向这些位写入“1”,向锁存器写“1”,它使场效应管Tl截止,这样该位处于悬

4、浮状态,可以作为高阻输入。5.1.1 P0口第5章 MCS-51系列单片机的并行、串行输入/输出接口5.1.2 Pl口 Pl口每位的原理图如图所示,该口与PO口不同,它只有一种通用IO接口工作方式,并且内部接有上拉电阻,而不是场效应管。第5章 MCS-51系列单片机的并行、串行输入/输出接口5.1.3 P2口 P2口与P0口类似,也有两种工作方式:地址数据分时复用总线和通用IO接口。但它与PO口也有不同的地方,其输出端上接的不是场效应管,而是接了一个上拉电阻,因此,P2口也为准双向口,其原理图如图所示。第5章 MCS-51系列单片机的并行、串行输入/输出接口5.1.4 P3口 P3口除了用作一

5、般IO接口外,它还具有第二功能,其电路如图5-4所示第5章 MCS-51系列单片机的并行、串行输入/输出接口 P3口的第二功能引脚第二功能标记第二功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDINT0INT1T0T1WRRD串行输入口串行输出口外部中断0输入外部中断1输入定时/计数器0外部输入定时/计数器1外部输入外部数据存储器写选通外部数据存储器读选通5.1.4 P3口第5章 MCS-51系列单片机的并行、串行输入/输出接口5.1.5 80C51 P0P3口的使用特点P0口:一种功能通用I/O口和地址数据分时复用总线。P1口:只有一种功能通用I/O口。P2口

6、:通用I/O口和地址总线高八位。P3口:一种功能通用I/O口和第二功能状态。第5章 MCS-51系列单片机的并行、串行输入/输出接口5.1.6 80C51单片机的并口应用实例 例1:51单片机控制LED灯的电路,当KEY键按一下时LED亮,再按一下时LED灭,依次类推。(连接如下图所示)第5章 MCS-51系列单片机的并行、串行输入/输出接口程序如下:MAIN: MOV SP , #60HLOOP: MOV A , P0ORL A , #10H ; P0.4=1MOV P0 , A ; 准备读P0口的P0.4ANL A , #10H ;JC LOOP ; 没有按下返回CALL DELAY ;

7、调用延时程序, 去键盘抖动,再判断键是否按下MOV A , P0ORL A , #10H ; P0.4=1MOV P0 , A ; 准备读P0口的P0.4MOV A,P0ANL A , #10H ;JC LOOP ; 没有按下返回MOV A , P0MOV R0 , AMOV A , #0FHSUBB A , R0 ; 对P0.0-P0.3 求反ANL A , #0FHMOV P0 , A ; 通过P0口输出使D1-D4LED亮或者灭CALL DELAYJMP LOOPDELAY: MOV R7 , #00FHN1: MOV R6 , #0F0HN2: NOPDJNZ R6 , N2DJNZ

8、R7 , N1RET第5章 MCS-51系列单片机的并行、串行输入/输出接口DPTR数据指针bit 片内RAM(包括部分特殊功能寄存器)中的直接寻址位A 累加器BB寄存器C 进位标志位,是布尔处理机中的累加器,也称之为累加位间址寄存器的前缀标志/位地址的前缀标志,表示对该位操作数取反()某寄存器或某单元的内容()由寻址的单元中的内容箭头左边的内容被箭头右边的内容所取代5.1.6 80C51单片机的常用符号说明第5章 MCS-51系列单片机的并行、串行输入/输出接口5.2 80C51的串行通信接口 80C51单片机内有一个全双工串行I/O接口,用此串行接口可以连接移位寄存器、串行打印机、CRT终

9、端等,也可用此接口组成多机系统或简单的计算机网络。 为了便于理解80C51串行接口的用法,本节先介绍一下串口通讯的一般知识,然后再讨论80C51单片机的串行接口。第5章 MCS-51系列单片机的并行、串行输入/输出接口5.2.1 串行通信的概念第5章 MCS-51系列单片机的并行、串行输入/输出接口1.串行通信 一个信息的各位数据被逐位顺序传送的通信方式成为串行通信。串行通信可通过串行接口来实现。它的通信速度慢,但需要的传输线较少,适于长距离的通信。5.2.1 串行通信的概念第5章 MCS-51系列单片机的并行、串行输入/输出接口2.串行通信的方向(1)单工所谓单工,就是只能向一个方向传送信息

10、,而不能进行与此相反方向的传送。(2)半双工半双工通讯允许两个方向传输数据,但不能同时传输,只能交替进行,因为它使用一对通讯线路。(3)全双工全双工通讯允许两个方向同时传送数据。5.2.1 串行通信的概念第5章 MCS-51系列单片机的并行、串行输入/输出接口3.串行通信的速率 串行通讯是一位一位地传送数据。串行口每秒钟发送或接收数据的位数称为波特率。若发送接收一位数据需要时间为t,则波特率为1t。4. 异步通信/同步通信 同步问题是串行通讯的一个重要问题。为了使收发信息准确,收发端的动作必须在同一时间进行,否则就不能正确传输信息。串行通信又有异步通信和同步通信两种方式。5.2.1 串行通信的

11、概念第5章 MCS-51系列单片机的并行、串行输入/输出接口(1)异步通信 异步通信是在每个字符代码前面增加一位起始位(0),在接收端收到起始位之后,立即启动内部时钟,按规定的速率接收一个字符的代码,在代码之后跟一个或多个停止位(1),表示一个字符代码的结束。如字符R的ASCII码为0100l0l,用异步通信方式发送时,其波形如图5-9所示。5.2.1 串行通信的概念第5章 MCS-51系列单片机的并行、串行输入/输出接口(2)同步通信 发送端按一定的时间间隔发送信号,接收端也按同样速率接收信号,收发两端使用同一时钟信号同步进行工作。采用同步方式传送,字符与字符之间不再留有空隔,也不用停顿,可

12、以连续进行收发,故速度较快。这种方式适用于大批量数据传送。5.2.1 串行通信的概念第5章 MCS-51系列单片机的并行、串行输入/输出接口 80C51单片机串行IO口是可提供同步或异步两种通信方式的全双工串行接口。它由下面几个特殊功能寄存器组成,即发送数据寄存器(SBUF)、接收数据寄存器(SBUF)、串行口控制寄存器(SCON)和电源控制寄存器(PCON)等。5.2.2 80C51单片机串行接口的结构第5章 MCS-51系列单片机的并行、串行输入/输出接口5.2.2 80C51单片机串行接口的结构第5章 MCS-51系列单片机的并行、串行输入/输出接口1串行发送接收寄存器(SBUF) 串行

13、发送寄存器与接收寄存器实际上是两个独立的寄存器,但它们共用一个名字SBUF和地址。发送时,将欲发送的数据写入SBUF,数据便存入发送寄存器,同时启动发送器开始工作。 接收工作则要用软件方法使串行控制寄存器(SCON)的REN位置1才能启动。5.2.2 80C51单片机串行接口的结构第5章 MCS-51系列单片机的并行、串行输入/输出接口2串行口控制寄存器(SCON) 串行控制寄存器SCON是选择串行口工作方式及控制串行口工作的寄存器。在启动串行口之前,应先用软件将控制命令写入SCON,串行口才能按选中的方式进行工作。串行控制寄存器SCON各位的定义见下表。D7D6D5D4D3D2D1D0SM0

14、SM1SM2RENTB8RB8TIRI5.2.2 80C51单片机串行接口的结构第5章 MCS-51系列单片机的并行、串行输入/输出接口(1)SM0、SMl:串行口工作方式选择位这两位用于选择串行口的工作方式。8051有4种工作方式,见下表。SM0SM1功能说明00 方式0为移位寄存器方式,波特率为 fosc /1201 方式1为8位UART,波特率可变10 方式2为9位UART,波特率为fosc/64或波特率为fosc/3211 方式3为9位UART,波特率可变5.2.2 80C51单片机串行接口的结构第5章 MCS-51系列单片机的并行、串行输入/输出接口(2)REN:允许串行接收控制位(

15、3)TB8:发送第9位数据(4)RB8:接收的第9位数据(5)TI:发送中断标志(6)RI:接收中断标志(7)SM2:多机通讯控制位5.2.2 80C51单片机串行接口的结构第5章 MCS-51系列单片机的并行、串行输入/输出接口3.电源控制寄存器PC0N 电源控制寄存器PC0N主要是为CM0S芯片实现某些功能而设。对HM0S芯片,只有其最高位D7有意义。 PC0N的D7位为波特率选择位SMOD。在方式1、2、3中,若SMOD=1,则波特率加倍;SMOD=0,波特率不加倍,PC0N寄存器不能按位寻址,SMOD的设置需用字节进行操作。5.2.2 80C51单片机串行接口的结构第5章 MCS-51

16、系列单片机的并行、串行输入/输出接口 1方式0方式0为移位寄存器方式,通过外接CM0S或TTL移位寄存器实现串行、并行转换。该工作方式用于扩展I0接口。在这种方式下,传送的数据为8位,数据只能从RxD端输入输出。TxD端用于输出移位同步时钟信号,其波特率固定为振荡频率的112,即每个机器周期传送一位数据。方式0可以认为是同步工作方式。5.2.3 80C51单片机串行接口的工作方式第5章 MCS-51系列单片机的并行、串行输入/输出接口(1)方式0输出 5.2.3 80C51单片机串行接口的工作方式第5章 MCS-51系列单片机的并行、串行输入/输出接口(2)方式0输入 5.2.3 80C51单

17、片机串行接口的工作方式第5章 MCS-51系列单片机的并行、串行输入/输出接口2方式l 方式l为波特率可变的8位异步通讯方式,可与标准的UART设备相接。这种方式传送一帧信息为l0位,其中一位为起始位,8位数据位(先低位后高位),一位停止位。至于波特率的选择,下面将会详细的介绍。5.2.3 80C51单片机串行接口的工作方式第5章 MCS-51系列单片机的并行、串行输入/输出接口(1)方式l输出(2)方式l输入5.2.3 80C51单片机串行接口的工作方式第5章 MCS-51系列单片机的并行、串行输入/输出接口2方式l3方式2 方式2为波特率固定的9位异步通讯方式,其波特率为振荡频率的132或

18、164。它适用于多机通讯系统。(1)方式2输出(2)方式2输入4方式3方式3为波特率可变的9位异步通讯方式,除波特率有所区别外,与方式2完全相同5.2.3 80C51单片机串行接口的工作方式第5章 MCS-51系列单片机的并行、串行输入/输出接口5.2.4多机通信1.多机通信原理 单片机的多机通信是指由两台以上单片机组成的网络结构,各单片机之间通过串行通信方式共同实现对某一过程的最终控制。80C51单片机串行口的方式2和3具有多机通信功能,主要表现在SCON寄存器中的SM2位上,其工作原理如图所示。第5章 MCS-51系列单片机的并行、串行输入/输出接口2. 多机通信系统设计(1)MCS-51

19、多机通信系统硬件 以典型的主从式多机系统(1个主机多个从机)为例,阐述多机通信的程序设计。通信接口采用标准的RS-485通信接口。每个从机在网络中的具有唯一的站号。系统结构如图所示。5.2.4多机通信第5章 MCS-51系列单片机的并行、串行输入/输出接口(2)系统软件设计 设多机通信系统主从机晶振为6MHz,波特率为2400,均以方式3进行多机串行通信。每次通信时主机先发送对应的从机地址,然后发一个字节数据。主机软件设计:初始化程序INIT: MOVTMOD,#20HMOVTH1,#0F9H ;设置波特率为2400MOVTL1,#0F9HMOVSCON,#0F0H ;串行口为方式3,SM2=

20、1,允许接收SETBTR1 ;启动定时器RET5.2.4多机通信第5章 MCS-51系列单片机的并行、串行输入/输出接口通信子程序COM:SETBTB8 ;地址标志MOVSBUF, #ADDR1 ;发送要通信的从机地址LOOP: JNB TI, LOOP ;等待地址发完CLR TICLR TB8 ;数据标志MOV A, R0 ;取要发送的数据MOV SBUF, A ;发数据LOOP1: JNB TI,LOOP1 ;等待数据发完CLR TIRET第5章 MCS-51系列单片机的并行、串行输入/输出接口(2)系统软件设计 从机软件设计初始化程序INIT: MOVTMOD,#20HMOVTH1,#0

21、F9H ;设置波特率为2400MOVTL1,#0F9HMOVSCON,#0F0H ;设置串行口为方式3,SM2=1,允许接收ANLPCON,#7FHSETBTR1SETBES ;允许串行口中断SETBEAWAIT: SJMPWAIT ;听号第5章 MCS-51系列单片机的并行、串行输入/输出接口(2)系统软件设计 串口中断服务通信程序 当接收到地址帧“呼号”且地址帧与本机地址相符时,要置SM2为0以便准备接收数据帧,同时需要将本机地址发回作为应答,建立与主机的联络。编程如下:SIO:CLR RIPUSH PSW ;现场保护PUSHACC MOV A,SBUF ;接收串行数据 XRLA,#ADDR ;判断是否与本机地址相符JNZ BACK ;不相符则返回CLRSM2 ;相符则SM2为0且发回本机地址CLR ES ;关串口中断,避免中断嵌套MOVA, SBUF ;接收数据WAIT:JNBRI,WAIT CLR

温馨提示

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

评论

0/150

提交评论