第5章 80C51单片机中的输入输出口_第1页
第5章 80C51单片机中的输入输出口_第2页
第5章 80C51单片机中的输入输出口_第3页
第5章 80C51单片机中的输入输出口_第4页
第5章 80C51单片机中的输入输出口_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

第5章80C51单片机的I/O口§5.180C51单片机并行I/O口思考与练习§5.280C51单片机的串行通信接口一、并行I/O口的功能结构二、产生接口控制信号的指令§5.180C51单片机并行I/O口

80C51单片机有4个8位并行I/O口,共占了32根I/O引脚。单片机扩展时,这些I/O引脚又作为扩展总线用。

P0口作为地址/数据总线,分时输出低8位地址和传送8位数据;

P2口作为高8位地址总线;

P3口也具有第二功能。一、并行I/O口的功能结构每一个口都包含:

一个锁存器

一个输出驱动器

两个(P3口为3个)输入缓冲器各口的结构有些差异,下面分别介绍。一、并行I/O口的功能结构1、接口结构P1口一位的结构如下图所示:一、并行I/O口的功能结构(一)P1口1、接口结构锁存器起输出锁存作用,8位锁存器组成特殊功能寄存器P1;场效应管和上拉电阻组成输出驱动器,以增大负载能力;三态门1和三态门2分别用于控制输入引脚和锁存器的状态。一、并行I/O口的功能结构(一)P1口2、接口功能

P1口只有一种功能——通用输入输出接口,有以下三种工作方式:输出、输入和端口操作。(1)输出方式:单片机执行MOVP1,#data指令时,数据data经内部总线送入锁存器锁存,经输出驱动器送到引脚。一、并行I/O口的功能结构(一)P1口2、接口功能(2)输入方式单片机执行MOVA,P1指令时,控制器发出读引脚信号,打开三态门1,引脚上的状态经三态门进入内部总线,并送入A中。由图可见,要使P1引脚上的高/低电平均可输入,必须使输出驱动器处于截止状态,所以要将P1作为输入口时,应先向口锁存器写“1”。因此P1口为准双向口。一、并行I/O口的功能结构(一)P1口2、接口功能(3)端口操作单片机中设置了一类直接对端口进行操作的指令,如INCP1

ANLP1,AORLP1,#data一、并行I/O口的功能结构(一)P1口执行这些指令时,先是读锁存器信号有效,打开三态门2,将锁存器的内容读出,按指令要求修改后再写入锁存器中,称为“读——修改——写”指令。2、接口功能(3)端口操作一、并行I/O口的功能结构(一)P1口3、接口驱动能力

P1口输出时能驱动3个LSTTL负载(输出电流要小于300μA)一、并行I/O口的功能结构(一)P1口

P2口一位结构如下图所示,与P1相比,多了一个多路开关MUX,因此P2具有双重功能:通用I/O口和高8位地址总线口。1、接口结构一、并行I/O口的功能结构(二)P2口(1)地址总线单片机扩展时,“控制”信号使MUX打向右边,内部的地址线经反相器与输出驱动器相连,于是内部“地址”信号可以由P2口引脚输出。2、接口功能一、并行I/O口的功能结构(二)P2口(2)通用I/O接口作为通用I/O口时,“控制”信号使MUX打向左边,这时P2口电路结构与P1口相同,其功能和用法亦与P1口相同。2、接口功能一、并行I/O口的功能结构(二)P2口

如果单片机无需扩展程序存储器,只需扩展少量外部RAM(≤256字节)时,可用@Ri间址,这时P2口仍可作为通用I/O口。2、接口功能(2)通用I/O接口P2口输出时能驱动4个LSTTL负载。一、并行I/O口的功能结构(二)P2口

P3口一位的结构如下图所示,与P1口相比多了一个与非门和一个输入缓冲器,所以它除了可作为一般I/O口外,还具有第二功能。1、接口结构一、并行I/O口的功能结构(三)P3口(1)通用I/O接口作为通用I/O接口时,“第二功能输出”线为“1”,接口的电路结构与P1口相同,所以功能和用法均与P1相同。2、接口功能一、并行I/O口的功能结构(三)P3口(2)第二功能

2、接口功能当P3作为第二功能使用时,各位定义如下:P3.0RXD(串行输入通道)P3.1TXD(串行输出通道)P3.2INT0(外中断0输入端)P3.3INT1(外中断1输入端)一、并行I/O口的功能结构(三)P3口这些信号有输出也有输入,为使第二功能信号能顺畅地输入或输出,该口锁存器的状态必须为“1”。P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存贮器写选通)P3.7RD(外部数据存贮器读选通)2、接口功能P3口输出时能驱动4个LSTTL负载。一、并行I/O口的功能结构(三)P3口1、接口结构P0口一位的结构如下,输出驱动电路由一对场效应管组成,其工作状态由输出控制电路控制。P0口可作通用I/O,也可作地址/数据总线口。一、并行I/O口的功能结构(四)P0口(四)P0口2、接口功能(1)地址/数据总线

一、并行I/O口的功能结构这时“控制”信号为1,MUX向上,地址/数据信号反相后经多路开关送到下一个场效应管的栅极。若地址/数据信号为1,则下一个场效应管截止上一个场效应管导通,引脚为高电平;若地址/数据信号为0,则下一个场效应管导通上一个场效应管截止,引脚为低电平。即地址/数据信号可顺利的到达引脚。2、接口功能(2)通用I/O接口此时“控制”信号为“0”,MUX向下,输出驱动器处于开漏状态,故需外接上拉电阻,此时电路结构与P1相同,也是一个准双向口。当要作为输入时,必须先向口锁存器写“1”。P0口输出时能驱动8个LSTTL负载。一、并行I/O口的功能结构(四)P0口作为I/O口应用的一个实例,下面介绍80C31单片机的最小应用系统如下图所示:80C31一、并行I/O口的功能结构一、并行I/O口的功能结构80C51指令系统中能与接口打交道的指令大体可分两类:1、一般的输入/输出指令2、“读-修改-写”指令二、产生接口控制信号的指令1、一般的输入输出指令输入指令执行时,内部产生“读引脚”信号,直接从口线读入,亦称“读引脚”指令。见下面实例:MOVA,P1相当于输入指令,其它口也可(总线口不能用)MOV@R1,P1可以将P1输入的数据直接送到片内RAM的某单元。MOVXA,@Ri可从扩展的RAM或I/O口输入,高位地址由P2提供,@Ri只提供低8位地址。本指令产生RD信号。二、产生接口控制信号的指令1、一般的输入输出指令MOVP1,AMOVP1,@RiMOVX@Ri,AMOVX@DPTR,AMOVP3,P1直接从一个口输入,又向另一个口输出,这是较为特殊的一种用法。MOVXA,@DPTR作用同上一条指令。不过DPH由P2传送,DPL由P0传送。本指令产生信号。这四种相当于输出指令,与相应的“输入”指令对应,后两条指令产生信号。二、产生接口控制信号的指令2、“读-修改-写”指令指令执行时内部产生“读锁存器”信号,亦称读锁存器指令。它们并不是直接从口线读出,只是从接口锁存器读出,经修改后再写入锁存器,故又称为“读-修改-写”指令。例如:ANLP1,A;逻辑与ORLP2,A;逻辑或XRLP3,A;逻辑异或JBCP1.1,LOOP;如某位为1,跳转并清零该位CPLP3.0;对接口某位求反二、产生接口控制信号的指令2、“读-修改-写”指令INCP2;接口锁存器加1DECP1;接口锁存器内容减1DJNZP3,LOOP;减1后不为零则跳转还有三条虽不明显,但也属此列:MOVP1.1,C;将进位位送接口的某位CLRP1.1;清零接口的某一位SETBP1.1;置位接口的某一位二、产生接口控制信号的指令§5.280C51单片机的串行通信接口一、串行通信的基本概念三、80C51单片机串行口的应用二、80C51单片机的串行通信接口计算机通信有两种基本方式:——并行通信和串行通信并行通信:数据的各位同时进行传送,如图(a)所示。串行通信:数据的各位是一位位按顺序传送,如图(b)所示。一、串行通信的基本概念计算机通信有两种基本方式:一、串行通信的基本概念1、串行通信中数据传送方式1)异步传送方式(或称字符同步方式)

传送一个字符时,用一个起始位(低电平0)表示字符的开始,接着从低到高依次传送数据位(5~8位,可插入奇偶校验位),最后是停止位(高电平1,可1或1.5或2位)表示字符的结束,构成一帧信息,如下图所示。一、串行通信的基本概念1、串行通信中数据传送方式

异步通信中,双方必须约好字符格式和波特率。波特率——表示每秒钟传送二进制代码的位数(包括起始位和停止位)一、串行通信的基本概念2)同步传送方式(或称数据块同步方式)在数据块前加上同步字符,数据间没有间隔,以一个基本的单位时间传送一个数据,如下图所示。传送速率高,但硬件设备复杂。1、串行通信中数据传送方式一、串行通信的基本概念同步通信的数据格式同步字符1同步字符2数据块CRC字符#1CRC字符#2开始终了1、串行通信中数据传送方式≈≈一、串行通信的基本概念2、串行通信中数据传送方向1)单工通信:只允许向一个方向传送数据。2)半双工通信:允许双向传送数据,但某一时刻只能往某一个方向传送。3)全双工通信:允许向两个方向同时进行数据传送。一、串行通信的基本概念2、串行通信中数据传送方向如下图所示:一、串行通信的基本概念1、功能特点1)为全双工串行口,用P3.0和P3.1作为接收数据线RXD和发送数据线TXD。2)具有缓冲接收功能即在接收到的前一个字节未被CPU读走之前,就可以逐位接收下一个字节数据,直到下一个字节全部收齐为止,若前一个字节仍未取走,才被下一个字节取代。二、80C51单片机的串行通信接口发送缓冲器和接收缓冲器共用一个地址,但它们是独立的物理空间。1、功能特点3)可用程序控制内部有专用寄存器SCON(98H)和PCON(87H)用于控制串行通信,包括方式的选择、接收控制、多机通信控制、波特率是否加倍等;定时器T1可作为串行口的波特率发生器,可改变串行口通信的定时。二、80C51单片机的串行通信接口1、功能特点4)有四种工作方式能适应不同用途(1)方式0

为移位寄存器I/O方式,数据从RXD端串行输入或输出,以8位为一帧,按先低位后高位依次传送;同步信号从TXD端输出,波特率固定为fosc/12。二、80C51单片机的串行通信接口1、功能特点(2)方式1为8位的异步通信接口,传送一帧信息为10位,其中,1位起始位(0),8位数据位(低位在前),1位停止位(1)。这时定时器T1作为波特率发生器(T1应关中断)。二、80C51单片机的串行通信接口4)有四种工作方式能适应不同用途(2)方式1(续)波特率=(T1的溢出率)/n所以波特率=(2SMOD/32)·(T1的溢出率)==)1(,16)0(,32SMODSMODn其中1、功能特点(T1的溢出率——T1定时时间的倒数)二、80C51单片机的串行通信接口4)有四种工作方式能适应不同用途1、功能特点T1的溢出率,即T1每秒钟溢出的次数,如果T1定时为T式中Tc为机器周期,n为计数器T1的位数,x为时间常数初值的补码。下表列出了常用波特率与T1参数的关系二、80C51单片机的串行通信接口(2)方式1(续)4)有四种工作方式能适应不同用途二、80C51单片机的串行通信接口波特率fosc(MHZ)SMOD定时器T1C/T方式定时器初值62.5K12102FFH19.2K11.059102FDH9.6K11.059002FDH4.8K11.059002FAH2.4K11.059002F4H1.2K11.059002E8H137.5K11.0590021DH110600272H11012001FEEBH1、功能特点(3)方式2为9位的异步通信接口,传送一帧信息为11位,其中1位起始位(0)、1位停止位(1)、9位数据位(8位再加上1位附加的可编程为0或1的第九位数据位—在RB8或TB8)。该方式特别适用于多机通信。二、80C51单片机的串行通信接口4)有四种工作方式能适应不同用途1、功能特点(4)方式3与方式2类似,唯一的区别是方式3的波特率可变。

该方式也适用于多机通信。(波特率的计算公式同方式1

)二、80C51单片机的串行通信接口4)有四种工作方式能适应不同用途2、结构原理1)串行口的发送和接收电路发送电路包括SBUF(发送)、零检测器和发送控制器。

发送过程可通过MOVSBUF,A指令发出。接收电路包括SBUF(接收)、接收移位寄存器和接收控制器等。二、80C51单片机的串行通信接口二、80C51单片机的串行通信接口1)串行口的发送和接收电路80C512、结构原理

接收过程基于采样脉冲(RXC×16)对RXD线的监视,当“1到0跳变检测器”连续9次采样到低电平,确认出现起始位,此后接收器从下一个数据位开始改为对第7、8、9三个脉冲采样RXD线,按三中取二原则决定所检测的值是“0”还是“1”,如下图所示:2、结构原理1)串行口的发送和接收电路二、80C51单片机的串行通信接口接收电路连续接收到一帧字符后自动置“1”RI,并向CPU发中断请求信号。CPU响应中断后,执行指令MOVA,SBUF把接收到的字符读入A中。2、结构原理1)串行口的发送和接收电路二、80C51单片机的串行通信接口2、结构原理2)专用寄存器PCON和波特率

PCON的最高位是串行口波特率系数控制位SMOD,当SMOD=1时,使波特率加倍。SMODGF1GF0PDIDL1,波特率加倍1,进入待机方式1,进入掉电方式通用标志位0通用标志位1二、80C51单片机的串行通信接口2、结构原理3)串行口的控制寄存器SCONSM0SM1SM2RENTB8RB8TIRISCON格式如下:D7D6D5D4D3D2D1D0接收中断标志发送中断标志方式2,3时,接收数据的第9位方式2,3,发送数据的第9位接收允许位多机通信控制位方式选择位二、80C51单片机的串行通信接口3)串行口的控制寄存器SCONSM0,SM1工作方式选择位,详见下表:SM0SM1方式功能波特率000同步移位寄存器fosc/1201110位异步收发可变10211位异步收发fosc/64或fosc/3211311位异步收发可变2、结构原理二、80C51单片机的串行通信接口SM2、TB8、RB8的用法说明:①在方式0,SM2应为0,TB8和RB8不用。②在方式1,TB8不用。

如果SM2=0,当收到8位数据后,又收到停止位,则不论该停止位为0或为1,都进入RB8,8位数据进入SBUF,且置位RI;

如果SM2=1,则只有收到有效的停止位(为1)才进入RB8,8位数据才进入SBUF,并激活RI,否则将丢失已收到的一帧数据。2、结构原理3)串行口的控制寄存器SCON二、80C51单片机的串行通信接口③在方式2和方式3,TB8是要发送的第9位数据,可用软件置“1”或“0”,RB8是接收到的第9位数据。当SM2=0时,9位数据收齐后,不论第9位数据为0或1,都会把收到的数据装入SBUF和RB8,置位RI;当SM2=1时,收到的第9位数据必须为1,才把收到的数据装入SBUF和RB8,并置位RI,否则将丢失已收到的一帧信息,也不置位RI。2、结构原理3)串行口的控制寄存器SCON二、80C51单片机的串行通信接口SM2、TB8、RB8的用法说明:利用这一特点,可实现主、从多机通信,方法是:

平时,从机将SM2置“1”,当主机要发送一个数据给几个从机之一时,它先发一个目标从机的地址字节(地址字节第9位为1,数据字节第9位为0),它可以中断所有从机,每台从机都接收该地址字节,并判断主机是否要寻址本机?若是,则清“0”SM2位,准备接收数据字节;而未被寻址的从机仍保持SM2=1,不理睬主机发出的数据字节。2、结构原理3)串行口的控制寄存器SCON二、80C51单片机的串行通信接口三、80C51单片机串行口的应用1、串行口在方式0下的应用例1:用80C51串行口外接CD4049扩展8位并行输出口,如图所示;8位并行输出口的各位都接一个共阴极发光二极管,要求发光二极管从左到右以一定延时轮流显示,且不断循环。80C51设数据串行发送采用查询方式,显示的延时依靠调用延时子程序DELAY来实现:ORG2000HMOVSCON,#00H;串行口方式0初始化MOVA,#80H;最左一位发光管先亮CLRP1.0;关闭并行输出1、串行口在方式0下的应用三、80C51单片机串行口的应用设数据串行发送采用查询方式,显示的延时依靠调用延时子程序DELAY来实现:START:MOVSBUF,A;开始串行输出LOOP:JNBTI,LOOP;查询TISETBP1.0;启动并行输出ACALLDELAY;显示延时一段时间CLRTI;清发送中断标志RRA;准备右移一位显示CLRP1.0;关闭并行输出SJMPSTART;再一次串行输出1、串行口在方式0下的应用三、80C51单片机串行口的应用2、串行口在其它方式下的应用例2:设有甲、乙两台单片机,编出两台单片机间实现如下串行通讯功能的程序:甲机发送:将首址为ADDRT的128个字节的数据块顺序向乙机发送;乙机接收:将接收的128个字节的数据块,顺序存放在以首址为ADDRR的数据缓冲区中。三、80C51单片机串行口的应用解:编制该类程序的要点是:选定正确的控制字,以保证接口功能的初始化;选择合适的波特率,这主要是选择定时器1的方式和时间常数的确定;在串行中断服务程序中要设置清除中断标志的指令,否则将产生另一个中断。2、串行口在其它方式下的应用三、80C51单片机串行口的应用甲机发送程序流程图如下:串行口初始化定时器1初始化送400bit/s的时间常数启动定时器1开中断置初值取首址数据启动串行发送等待中断清中断标志数据块发送完?修改指针取发送数据启动串行发送中断返回关串行口中断主程序:发送数据中断服务程序:YN2、串行口在其它方式下的应用三、80C51单片机串行口的应用甲机发送程序清单如下:ORG0000HLJMPMAINT;跳至主程序入口ORG0023HLJMPINTSE1;转至串行中断服务程序MAINT:MOVSCON,#01000000B;置串行口工作方式MOVTMOD,#20H;定时器1为定时方式2MOVTH1,#0D9H;产生400波特率的时常数MOVTL1,#0D9H

2、串行口在其它方式下的应用三、80C51单片机串行口的应用2、串行口在其它方式下的应用甲机发送程序清单如下:(续1)SETBTCON.6;启动定时器1SETBEA;CPU开中断SETBES;串行口开中断MOVDPTR,ADDRT;数据区首址→DPTRMOVR0,#00H;传送字节数初值MOVXA,@DPTR;取第一个发送字节MOVSBUF,A;启动串行口发送SJMP$;等待中断三、80C51单片机串行口的应用甲机发送程序清单如下:中断服务程序:INTSE1:CLRSCON.1;清中断标志CJNER0,#7FH,LOOP;判别128个字节都发送完?CLRES;发送完毕,禁止串行口中断SJMPENDT;转中断返回LOOP:INCR0;修改字节数指针INCDPTR;修改地址指针MOVXA,@DPTR;取发送数据MOVSBUF,A;启动串行口ENDT:RETI;中断返回2、串行口在其它方式下的应用三、80C51单片机串行口的应用(续2)乙机接收程序流程图如下:串行口初始化定时器1初始化送400bit/s的时间常数启动定时器1开中断置初值等待中断主程序:禁止串行中断中断服务程序:清中断标志取接收数据数据送相应缓冲区修改指针数据接收完?中断返回YN2、串行口在其它方式下的应用三、80C51单片机串行口的应用乙机接收程序清单如下:ORG0000HLJMPMAINR;转主程序ORG0023HLJMPINTSE2;转串行口中断服务程序MAINR:MOVSCON,#01010000B;串口接收,工作方式1MOVTMOD,#20H;定时器1为定时方式2MOVTH1,#0D9H;产生400波特率的时常数MOVTL1,#0D9H

2、串行口在其它方式下的应用三、80C51单片机串行口的应用2、串行口在其它方式下的应用乙机接收程序清单如下:(续1)SETBTCON.6;启动定时器1SETBEA;CPU开中断SETBES;串行口开中MOVDPTR,ADDRR;数据缓冲区首址→DPTRMOVR0,#00H;置传送字节数初值SJMP$;等待中断三、80C51单片机串行口的应用乙机接收程序清单如下:(续2)中断服务程序:INTSE2:CPLSCON.0;清中断标志MOVA,SBUF;取接收的数据MOVX@DPTR,A;接收的数据→缓冲区CJNER0,#7FH,LOOP;128个字节接收完没有?CLRET1;接收完毕则关T1及关串行口中断CLRESSJMPSENDLOOP:INCR0;修改计数指针INCDPTR;修改地址指针SEND:RETI;中断返回2、串行口在其它方式下的应用三、80C51单片机串行口的应用例3.设多机单工通讯如图所示。通讯程序应实现如下功能:主机:先向从机发送一帧地址信息,然后再向从机发送10个数据信息。从机:接收主机发来的地址信息,并与本机的地址号相比较,若不符合,仍保持SM2=1不变;若相符,则使SM2清零,准备接收后续数据信息,直至接收完10个数据信息。2、口在其它方式下的应用三、80C51单片机串行口的应用80C51主机程序流程如下:初始化设置指针开中断置TB8=1,发送地址信息等待中断主程序清发送中断标志清TB8位准备发送后续数据信息启动发送修改指针判全部数据发送完否关串行口中断中断返回NY串行口中断服务程序2、串行口在其它方式下的应用三、80C51单片机串行口的应用从机程序流程如下:设置指针开中断等待中断初始化SM2=1主程序2、串行口在其它方式下的应用三、80C51单片机串行口的应用与本机地址相比较是否相符合从机程序流程如下:串行口中断服务程序清接收中断标志RI从串行口取数据判RB8位=1?清SM2位中断返回取数据送缓冲区判数据是否全部接收完毕?修改指针置SM2=1YNNYYN2、串行口在其它方式下的应用三、80C51单片机串行口的应用程序清单如下:主机:

ORG0000HLJMPMAINT;主程序入口地址ORG0023HLJMPINTSE1;串行口中断入口地址MAINT:MOVPCON,#80H;波特率加倍MOVSCON,#80H;串行口方式2MOVDPTR,#DAADT;置数据地址指针MOVR0,#00H;置发送数据字节初值MOVR2,#ADAD1;从机地址号→R2SETBEA;CPU开中断2、串行口在其它方式下的应用三、80C51单片机串行口的应用程序清单如下:主机主程序(续)SETBES;串行口开中断SETBTR8;置位TB8,作为地址帧标识MOVA,R2;发送地址帧信息MOVSBUF,ASJMP$;等待中断2、串行口在其它方式下的应用三、80C51单片机串行口的应用主机串行口中断服务程序:INTSE1:CLRTI;清发中断标志CLRTB8;清TB8,准备发送数据帧MOVXA,@DPTR;发送一个数据字节MOVSBUF,AINCDPTR;修改指针INCR0CJNER0,#0AH,LOP;判数据字节是否发完CLRES;发送完则关串行口中断LOP:RETI;中断返回2、串行口在其它方式下的应用三、80C51单片机串行口的应用从机:ORG0000HLJMPMAINR;从机主程序入口地址ORG0023HLJMPINTSE2;串行口中断入口地址MAINR:MOVPCON,#80H;波特率加倍MOVSCON,#0B0H;串行口方式2,接收状态MO

温馨提示

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

评论

0/150

提交评论