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

下载本文档

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

文档简介

1、第第5 5章章 80C5180C51单片机的单片机的I/OI/O口口 5.1 80C515.1 80C51单片机并行单片机并行I/OI/O口口思考与练习思考与练习 5.2 80C515.2 80C51单片机的串行通信接口单片机的串行通信接口一一、 并行并行I/OI/O口的功能结构口的功能结构二、产生接口控制信号的指令二、产生接口控制信号的指令 5.1 80C515.1 80C51单片机并行单片机并行I/OI/O口口 80C5180C51单片机有4个8位并行I/O口,共占了32根I/O引脚。单片机扩展时,这些I/O引脚又作为扩展又作为扩展总线总线用。 P P0 0口作为地址/数据总线,分时输出低

2、8 位地址和传送8位数据; P P2 2口作为高8位地址总线; P P3 3口也具有第二功能。一一、并行并行I/OI/O口的功能结构口的功能结构每一个口都包含: 一个锁存器一个锁存器 一个输出驱动器一个输出驱动器 两个两个(P3口为3个)输入缓冲器输入缓冲器 各口的结构有些差异,下面分别介绍。一一、并行并行I/OI/O口的功能结构口的功能结构1 1、接口结构、接口结构P1口一位的结构如下图所示:一一、并行并行I/OI/O口的功能结构口的功能结构(一)(一)P P1 1口口1 1、接口结构、接口结构 锁存器起输出锁存作用,8位锁存器组成特殊功能寄存器P1; 场效应管和上拉电阻组成输出驱动器,以增

3、大负载能力; 三态门1和三态门2分别用于控制输入引脚和锁存器的状态。一一、并行并行I/OI/O口的功能结构口的功能结构(一)(一)P P1 1口口2 2、接口功能、接口功能 P1口只有一种功能通用输入输出接口,有以下三种工作方式三种工作方式:输出输出、输入输入和端端口操作口操作。(1 1)输出方式)输出方式: 单片机执行执行MOV PMOV P1 1, #data, #data指令时,数据data经内部总线送入锁存器锁存,经输出驱动器送到引脚。一一、并行并行I/OI/O口的功能结构口的功能结构(一)(一)P P1 1口口2 2、接口功能、接口功能(2 2)输入方式)输入方式 单片机执行执行MO

4、V A,PMOV A,P1 1指令指令时,控制器发出读引脚信号,打开三态门1,引脚上的状态经三态门进入内部总线,并送入A中。 由图可见,要使P1引脚上的高/低电平均可输入,必须使输出驱动器处于截止状态,所以要将要将P P1 1作为作为输入口时,应先向口锁存器写输入口时,应先向口锁存器写“1”1”。因此P1口为为准双向口准双向口。一一、并行并行I/OI/O口的功能结构口的功能结构(一)(一)P P1 1口口2 2、接口功能、接口功能(3 3)端口操作)端口操作 单片机中设置了一类直接对端口进行操作的指令,如 INC P1 ANL P1 , A ORL P1 , #data 一一、并行并行I/OI

5、/O口的功能结构口的功能结构(一)(一)P P1 1口口 执行这些指令时,先是读锁存器信号有效,打开三态门2,将锁存器的内容读出,按指令要求修改后再写入锁存器中,称为“读读修改修改写写”指令。2 2、接口功能、接口功能(3 3)端口操作)端口操作一一、并行并行I/OI/O口的功能结构口的功能结构(一)(一)P P1 1口口3 3、接口驱动能力、接口驱动能力 P1口输出时能驱动3个LSTTL负载(输出电流要小于300A)一一、并行并行I/OI/O口的功能结构口的功能结构(一)(一)P P1 1口口 P2口一位结构如下图所示,与P1相比,多了一个多路开关MUX,因此P2具有双重功能双重功能:通用通

6、用I/OI/O口和高高8 8位地址总线位地址总线口。1 1、接口结构、接口结构一一、并行并行I/OI/O口的功能结构口的功能结构(二)(二)P P2 2口口(1 1)地址总线)地址总线 单片机扩展时,“控制”信号使 MUX 打向右边,内部的地址线经反相器与输出驱动器相连,于是内部内部“地址地址”信号可以由信号可以由P P2 2口引脚输口引脚输出。出。2 2、接口功能、接口功能一一、并行并行I/OI/O口的功能结构口的功能结构(二)(二)P P2 2口口(2 2)通用)通用I/OI/O接口接口 作为通用I/O口时,“控制”信号使MUX 打向左边,这时P2口电路结构与P1口相同,其功能和用法亦与与

7、P P1 1口相同口相同。2、接口功能一一、并行并行I/OI/O口的功能结构口的功能结构(二)(二)P P2 2口口 如果单片机无需扩展程序存储器,只需扩展少量外部RAM(256字节)时,可用Ri间址,这时P2口仍可作为通用I/O口。2 2、接口功能、接口功能(2)通用I/O接口 P2口输出时能驱动4个LSTTL负载。一一、并行并行I/OI/O口的功能结构口的功能结构(二)(二)P P2 2口口 P3口一位的结构如下图所示,与P1口相比多了一个与非门和一个输入缓冲器,所以它除了可作为一般一般I/OI/O口口外,还具有第二功能第二功能。1 1、接口结构、接口结构一一、并行并行I/OI/O口的功能

8、结构口的功能结构(三)(三)P P3 3口口(1 1)通用)通用I/OI/O接口接口 作为通用I/O接口时,“第二功能输出”线为“1”,接口的电路结构与P1口相同,所以功能和用法均与与P P1 1相同相同。2 2、接口功能、接口功能一一、并行并行I/OI/O口的功能结构口的功能结构(三)(三)P P3 3口口(2 2)第二功能)第二功能 2 2、接口功能、接口功能 当P3作为第二功能使用时,各位定义如下:各位定义如下:P3.0 RXD(串行输入通道)P3.1 TXD(串行输出通道)P3.2 INT0(外中断0输入端)P3.3 INT1(外中断1输入端)一一、并行并行I/OI/O口的功能结构口的

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

10、地址/ /数据总线数据总线口。一一、并行并行I/OI/O口的功能结构口的功能结构(四)(四)P P0 0口口(四)(四)P P0 0口口2 2、接口功能、接口功能(1 1)地址)地址/ /数据总线数据总线 一、并行I/O口的功能结构 这时“控制”信号为1,MUX向上,地址/数据信号反相后经多路开关送到下一个场效应管的栅极。 若地址/数据信号为1,则下一个场效应管截止上一个场效应管导通,引脚为高电平; 若地址/数据信号为0,则下一个场效应管导通上一个场效应管截止,引脚为低电平。 即地址/数据信号可顺利的到达引脚。2 2、接口功能、接口功能(2 2)通用)通用I/OI/O接口接口 此时“控制”信号

11、为“0”,MUX向下,输出驱动器处于开漏状态,故需外接上拉电需外接上拉电阻阻,此时电路结构与P1相同,也是一个准双准双向向口。当要作为输入时输入时,必须先向口锁存器先向口锁存器写写“1”1”。P0口输出时能驱动8个LSTTL负载。一一、并行并行I/OI/O口的功能结构口的功能结构(四)(四)P P0 0口口 作为I/O口应用的一个实例,下面介绍80C31单片机的最小应用系统如下图所示:80C31一一、并行并行I/OI/O口的功能结构口的功能结构一一、并行并行I/OI/O口的功能结构口的功能结构 80C51指令系统中能与接口打交道的指令指令大体可分两类分两类:1 1、一般的输入/输出指令2 2、

12、“读修改写”指令二、产生接口控制信号的指令二、产生接口控制信号的指令、一般的输入输出指令、一般的输入输出指令 输入指令执行时,内部产生“读引脚”信号,直接从口线读入,亦称亦称“读引脚读引脚”指令指令。见下面实例:MOV A,P1 相当于输入指令,其它口也可(总线口不能用)MOV R1,P1 可以将P1输入的数据直接送到片内RAM的某单元。MOVX A,Ri 可从扩展的RAM或I/O口输入,高位地址由P2提 供,Ri只提供低位地址。本指令产生本指令产生RDRD信号信号。 二、产生接口控制信号的指令二、产生接口控制信号的指令、一般的输入输出指令、一般的输入输出指令MOV P1 , AMOV P1

13、, RiMOVX Ri,AMOVX DPTR,AMOV P3,P1 直接从一个口输入,又向另一个口输出, 这是较为特殊的一种用法。MOVX A ,DPTR 作用同上一条指令。不过DPH由P2传送,DPL由P0传送。本指令产生 信号。 这四种相当于输出指令,与相应的“输入”指令对应,后两条指令产生后两条指令产生 信信号。号。二、产生接口控制信号的指令二、产生接口控制信号的指令RDWR、“读修改写读修改写”指令指令 指令执行时内部产生“读锁存器”信号,亦称读锁存器指亦称读锁存器指令令。它们并不是直接从口线读出,只是从接口锁存器读出,经修改后再写入锁存器,故又称为又称为“读修改写读修改写”指令指令。

14、例如:ANL P1, A ;逻辑与ORL P2, A ;逻辑或XRL P3, A ;逻辑异或JBC P1.1 ,LOOP ;如某位为,跳转并清零该位CPL P3.0 ;对接口某位求反二、产生接口控制信号的指令二、产生接口控制信号的指令、“读修改写读修改写”指令指令INC P2 ;接口锁存器加DEC P1 ;接口锁存器内容减DJNZ P3,LOOP ;减后不为零则跳转还有三条虽不明显,但也属此列:MOV P1.1,C ;将进位位送接口的某位CLR P1.1 ;清零接口的某一位SETB P1.1 ;置位接口的某一位二、产生接口控制信号的指令二、产生接口控制信号的指令 5.2 80C515.2 80

15、C51单片机的串行通信接口单片机的串行通信接口一、一、 串行通信的基本概念串行通信的基本概念 三、三、 80C5180C51单片机串行口的应用单片机串行口的应用 二、二、 80C5180C51单片机的串行通信接口单片机的串行通信接口计算机通信有两种基本方式:计算机通信有两种基本方式: 并行通信和串行通信并行通信:并行通信:数据的各位同时进行传送, 如图(a)所示。串行通信:串行通信:数据的各位是一位位按顺序传送, 如图(b)所示。一、串行通信的基本概念一、串行通信的基本概念计算机通信有两种基本方式:一、串行通信的基本概念一、串行通信的基本概念1 1、串行通信中数据传送方式、串行通信中数据传送方

16、式1)异步异步传送方式(或称字符同步字符同步方式) 传送一个字符时,用一个起始位(低电平0)表示字符的开始,接着从低到高依次传送数据位(58位,可插入奇偶校验位),最后是停止位(高电平1,可1或1.5或2位)表示字符的结束,构成一帧信息,如下图所示。一、串行通信的基本概念一、串行通信的基本概念1 1、串行通信中数据传送方式、串行通信中数据传送方式 异步通信中,双方必须约好字符格式字符格式和波特率波特率。 波特率表示每秒钟传送二进制代码的位数(包括起始位和停止位)一、串行通信的基本概念一、串行通信的基本概念2)同步同步传送方式(或称数据块同步数据块同步方式) 在数据块前加上同步字符同步字符,数据

17、间没有间隔,以一个基本的单位时间传送一个数据, 如下图所示。传送速率高,但硬件设备复杂。1 1、串行通信中数据传送方式、串行通信中数据传送方式一、串行通信的基本概念一、串行通信的基本概念同步通信的数据格式同步字符1同步字符2数据块CRC字符#1CRC字符#2开始终了1 1、串行通信中数据传送方式、串行通信中数据传送方式一、串行通信的基本概念一、串行通信的基本概念2 2、串行通信中数据传送方向、串行通信中数据传送方向1)单工单工通信:只允许向一个方向传送数据。2)半双工半双工通信:允许双向传送数据,但某一 时刻只能往某一个方向传送。3)全双工全双工通信:允许向两个方向同时进行数据 传送。一、串行

18、通信的基本概念一、串行通信的基本概念2 2、串行通信中数据传送方向、串行通信中数据传送方向如下图所示:一、串行通信的基本概念一、串行通信的基本概念1 1、功能特点、功能特点1)为全双工全双工串行口,用P3.0和P3.1作为接收数据线RXD和发送数据线TXD。 2)具有缓冲接收缓冲接收功能即在接收到的前一个字节未被CPU读走之前,就可以逐位接收下一个字节数据,直到下一个字节全部收齐为止,若前一个字节仍未取走,才被下一个字节取代。 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口 发送缓冲器发送缓冲器和接收缓冲器接收缓冲器共用一个地址,但它们是独立的物理空间。1 1、 功能特点

19、功能特点3)可用程序控制程序控制 内部有专用寄存器SCONSCON(98H)和PCONPCON(87H)用于控制串行通信,包括方式的选择、接收控制、多机通信控制、波特率是否加倍等;定时器T1可作为串行口的波特率发生器,可改变串行口通信的定时。 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口1 1、功能特点、功能特点4)有四种工作方式四种工作方式能适应不同用途(1 1)方式)方式0 0 为移位寄存器移位寄存器I/OI/O方式方式,数据从RXD端串行输入或输出,以8位为一帧,按先低位后高位先低位后高位依次传送;同步信号从TXD端输出,波特率固定波特率固定为fosc/12。 二

20、、二、80C5180C51单片机的串行通信接口单片机的串行通信接口1 1、功能特点、功能特点(2 2)方式)方式1 1 为8 8位的异步通信接口位的异步通信接口,传送一帧信息为10位,其中,1位起始位(0),8位数据位(低位在前),1位停止位(1)。 这时定时器T T1 1作为波特率发生器作为波特率发生器(T1应关中断)。 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口4)有四种工作方式四种工作方式能适应不同用途(2 2)方式)方式1 1 (续)(续) 波特率= (T1的溢出率)/ n 所以波特率=( 2SMOD/32) (T1的溢出率)=)1(,16)0(,32SMOD

21、SMODn其中1 1、功能特点、功能特点(T T1 1的溢出率的溢出率T T1 1定时时间的倒数)定时时间的倒数) 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口4)有四种工作方式四种工作方式能适应不同用途1 1、功能特点、功能特点 T1的溢出率溢出率,即T1每秒钟溢出的次数,如果T1定时为TxfxTTTnoscnc212112111的溢出率则xfnosc212 式中Tc为机器周期,n为计数器T1的位数,x为时间常数初值的补码。 下表列出了常用波特率与T1参数的关系 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口(2 2)方式)方式1 1 (续)(续

22、)4)有四种工作方式四种工作方式能适应不同用途 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口波特率fosc(MHZ)SMOD 定时器T1C/T方式定时器初值62.5K12102FFH19.2K11.059102FDH9.6K11.059002FDH4.8K11.059002FAH2.4K11.059002F4H1.2K11.059002E8H137.5K11.0590021DH110600272H11012001FEEBH1 1、功能特点、功能特点(3 3)方式)方式2 2 为9 9位的异步通信接口位的异步通信接口,传送一帧信息为11位,其中1位起始位(0)、1位停止位

23、(1)、9位数据位(8位再加上1位附加的可编程为0或1的第九位数据位在RB8或TB8)。oscSMODf)642(波特率该方式特别适用于该方式特别适用于多机通信多机通信。 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口4)有四种工作方式四种工作方式能适应不同用途1 1、功能特点、功能特点(4 4)方式)方式3 3与方式2类似,唯一的区别是方式3的波特率可变波特率可变。的溢出率波特率1)322(TSMOD 该方式也适用于多机通信。(波特率(波特率的的计算公式计算公式同方式同方式1 1 ) 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口4)有四种工作方式

24、四种工作方式能适应不同用途2 2、结构原理、结构原理1 1)串行口的发送和接收电路)串行口的发送和接收电路 发送电路包括SBUF(发送)、零检测器和发送控制器。 发送发送过程可通过通过MOV SBUF, AMOV SBUF, A指令指令发出。 接收电路包括SBUF(接收)、接收移位寄存器和接收控制器等。 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口1 1)串行口的发送和接收电路)串行口的发送和接收电路80C512 2、结构原理、结构原理 接收接收过程基于采样脉冲(RXC16)对RXD线的监视,当“1到

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

26、接收电路 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口2 2、结构原理、结构原理2 2)专用寄存器)专用寄存器PCONPCON和波特率和波特率 PCONPCON的最高位是串行口波特率系数控制位SMOD,当SMOD=1时,使波特率加倍。SMODGF1GF0PDIDL1,波特率加倍1,进入待机方式1,进入掉电方式通用标志位0通用标志位1 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口 2 2、结构原理、结构原理3 3)串行口的控制寄存器)串行口的控制寄存器SCONSCONSM0SM1SM2RENTB8RB8TIRISCONSCON格式如下: D7 D6

27、 D5 D4 D3 D2 D1 D0接收中断标志发送中断标志方式2,3时,接收数据的第9位方式2,3,发送数据的第9位接收允许位多机通信控制位方式选择位 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口3 3)串行口的控制寄存器)串行口的控制寄存器SCONSCONSMSM0 0,SM,SM1 1工作方式选择位,详见下表:SM0SM1方式功能波特率000同步移位寄存器fosc/1201110位异步收发可变10211位异步收发fosc/64或fosc/3211311位异步收发可变 2 2、结构原理、结构原理 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口S

28、MSM2 2、TBTB8 8、RBRB8 8的用法说明:的用法说明:在方式0,SM2应为0,TB8和RB8不用。在方式1,TB8不用。 如果如果SMSM2 2=0=0,当收到8位数据后,又收到停止位,则不论该停止位为0或为1,都进入RB8,8位数据进入SBUF,且置位RI; 如果如果SMSM2 2=1=1,则只有收到有效的停止位(为有效的停止位(为1 1)才进入RB8,8位数据才进入SBUF,并激活RI,否则将丢失已收到的一帧数据。 2 2、结构原理、结构原理3 3)串行口的控制寄存器)串行口的控制寄存器SCONSCON 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口在方

29、式2和方式3,TB8是要发送的第9位数据,可用软件置 “1”或“0”,RB8是接收到的第9位数据。 当SMSM2 2=0=0时,9位数据收齐后,不论第9位数据为0或1,都会把收到的数据装入SBUF和RB8,置位RI; 当SMSM2 2=1=1时,收到的第第9 9位数据必须为位数据必须为1 1,才把收到的数据装入SBUF和RB8,并置位RI,否则将丢失已收到的一帧信息,也不置位RI。2 2、结构原理、结构原理3 3)串行口的控制寄存器)串行口的控制寄存器SCONSCON 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口SMSM2 2、TBTB8 8、RBRB8 8的用法说明:

30、的用法说明: 利用这一特点,可实现主、从多机通信,方法是: 平时,从机将SM2置“1”,当主机要发送一个数据给几个从机之一时,它先发一个目标从机的地址字节(地址字节第地址字节第9 9位为位为1 1,数据字节第,数据字节第9 9位为位为0 0),它可以中断所有从机,每台从机都接收该地址字节,并判断主机是否要寻址本机?若是,则清“0” SM2位,准备接收数据字节;而未被寻址的从机仍保持SM2=1,不理睬主机发出的数据字节。 2 2、结构原理、结构原理3 3)串行口的控制寄存器)串行口的控制寄存器SCONSCON 二、二、80C5180C51单片机的串行通信接口单片机的串行通信接口三、三、80C51

31、80C51单片机串行口的应用单片机串行口的应用1 1、串行口在方式、串行口在方式0 0下的应用下的应用例1:用80C51串行口外接CD4049扩展8位并行输出口,如图所示;8位并行输出口的各位都接一个共阴极发光二极管,要求发光二极管从左到右以一定延时轮流显示,且不断循环。80C51 设数据串行发送采用查询方式,显示的延时依靠调用延时子程序DELAY来实现: ORG 2000H MOV SCON, #00H ;串行口方式初始化 MOV A, #80H ;最左一位发光管先亮 CLR P1.0 ;关闭并行输出1 1、串行口在方式、串行口在方式0 0下的应用下的应用三、三、80C5180C51单片机串

32、行口的应用单片机串行口的应用 设数据串行发送采用查询方式,显示的延时依靠调用延时子程序DELAY来实现:START:MOV SBUF, A ;开始串行输出 LOOP:JNB TI, LOOP ;查询TI SETB P1.0 ;启动并行输出 ACALL DELAY ;显示延时一段时间 CLR TI ;清发送中断标志 RR A ;准备右移一位显示 CLR P1.0 ;关闭并行输出 SJMP START ;再一次串行输出 1 1、串行口在方式、串行口在方式0 0下的应用下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用2 2、串行口在其它方式下的应用、串行口在其它方式下的应用例

33、2:设有甲、乙两台单片机,编出两台单片机间实现如下串行通讯功能的程序:甲机发送甲机发送:将首址为ADDRT的128个字节的数据 块顺序向乙机发送;乙机接收乙机接收:将接收的128个字节的数据块,顺序存放在以首址为ADDRR的数据缓冲区中。三、三、80C5180C51单片机串行口的应用单片机串行口的应用解解:编制该类程序的要点是: 选定正确的控制字控制字,以保证接口功能的初始化; 选择合适的波特率波特率,这主要是选择定时器1的方式和时间常数的确定; 在串行中断服务程序中要设置清除中断标志的指设置清除中断标志的指令令,否则将产生另一个中断。2 2、串行口在其它方式下的应用、串行口在其它方式下的应用

34、三、三、80C5180C51单片机串行口的应用单片机串行口的应用甲甲机发送程序流程图如下:串行口初始化定时器1初始化送400bit/s的时间常数启动定时器1开中断置初值取首址数据启动串行发送等待中断清中断标志数据块发送完?修改指针取发送数据启动串行发送中断返回关串行口中断主程序:发送数据中断服务程序:YN2 2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用甲甲机发送程序清单如下: ORG 0000H LJMP MAINT ;跳至主程序入口 ORG 0023H LJMP INTSE1 ;转至串行中断服务程序MAINT:MOV

35、SCON,#01000000B ;置串行口工作方式 MOV TMOD,#20H ;定时器1为定时方式2 MOV TH1,#0D9H ;产生400波特率的时常数 MOV TL1,#0D9H 2 2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用2 2、串行口在其它方式下的应用、串行口在其它方式下的应用甲甲机发送程序清单如下:(续1) SETB TCON.6 ;启动定时器1 SETB EA ;CPU开中断 SETB ES ;串行口开中断 MOV DPTR,ADDRT ;数据区首址DPTR MOV R0,#00H ;传送字节数初值

36、MOVX A,DPTR ;取第一个发送字节 MOV SBUF,A ;启动串行口发送 SJMP $ ;等待中断三、三、80C5180C51单片机串行口的应用单片机串行口的应用甲甲机发送程序清单如下:中断服务程序:INTSE1:CLR SCON.1 ;清中断标志 CJNE R0, #7FH, LOOP ;判别128个字节都发送完? CLR ES ;发送完毕,禁止串行口中断 SJMP ENDT ;转中断返回 LOOP: INC R0 ;修改字节数指针 INC DPTR ;修改地址指针 MOVX A, DPTR ;取发送数据 MOV SBUF , A ;启动串行口 ENDT: RETI ;中断返回2

37、2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用(续2)乙机接收程序流程图如下:串行口初始化定时器1初始化送400bit/s的时间常数启动定时器1开中断置初值等待中断主程序:禁止串行中断中断服务程序:清中断标志取接收数据数据送相应缓冲区修改指针数据接收完?中断返回YN2 2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用乙乙机接收程序清单如下: ORG 0000H LJMP MAINR ; 转主程序 ORG 0023H LJMP INTSE2 ;转串行口中断

38、服务程序MAINR: MOV SCON,#01010000B ; 串口接收,工作方式1 MOV TMOD,#20H ; 定时器1为定时方式2 MOV TH1,#0D9H ;产生400波特率的时常数 MOV TL1,#0D9H 2 2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用2 2、串行口在其它方式下的应用、串行口在其它方式下的应用 乙乙机接收程序清单如下:机接收程序清单如下: (续1) SETB TCON.6 ;启动定时器1 SETB EA ;CPU 开中断 SETB ES ;串行口开中 MOV DPTR,ADDRR ;

39、数据缓冲区首址DPTR MOV R0,#00H ;置传送字节数初值 SJMP $ ;等待中断三、三、80C5180C51单片机串行口的应用单片机串行口的应用乙乙机接收程序清单如下: (续2)中断服务程序:INTSE2: CPL SCON.0 ; 清中断标志 MOV A,SBUF ; 取接收的数据 MOVX DPTR,A ; 接收的数据缓冲区 CJNE R0,#7FH,LOOP ; 128个字节接收完没有? CLR ET1 ; 接收完毕则关T1及关串行口中断 CLR ES SJMP SEND LOOP: INC R0 ; 修改计数指针 INC DPTR ; 修改地址指针 SEND: RETI ;

40、 中断返回2 2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用例例3 3设多机单工通讯如图所示。通讯程序应实现如下功能:主主机:先向从机发送一帧地址信息,然后再向从机发送10个数据信息。从从机:接收主机发来的地址信息,并与本机的地址号相比较,若不符合,仍保持SM2=1不变;若相符,则使SM2清零,准备接收后续数据信息,直至接收完10个数据信息。2 2、口在其它方式下的应用、口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用80C51主主机程序流程如下:初始化设置指针开中断置TB8=1,发送地

41、址信息等待中断主程序主程序清发送中断标志清TB8位准备发送后续数据信息启动发送修改指针判全部数据发送完否关串行口中断中断返回NY串行口中断服务程序串行口中断服务程序2 2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用从从机程序流程如下:设置指针开中断等待中断初始化SM2=1主程序主程序2 2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用与本机地址相比较是否相符合从从机程序流程如下:串行口中断服务程序串行口中断服务程序清接收中断标志RI从串行口取数据判RB8

42、位=1?清SM2位中断返回取数据送缓冲区判数据是否全部接收完毕?修改指针置SM2=1YNNYYN2 2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用程序清单如下:主主机: ORG 0000H LJMP MAINT ; 主程序入口地址 ORG 0023H LJMP INTSE1 ; 串行口中断入口地址 MAINT: MOV PCON,#80H ; 波特率加倍 MOV SCON,#80H ; 串行口方式2 MOV DPTR,#DAADT ; 置数据地址指针 MOV R0,#00H ; 置发送数据字节初值 MOV R2,#ADAD

43、1 ; 从机地址号R2 SETB EA ; CPU开中断2 2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用程序清单如下: 主机主程序 (续) SETB ES ; 串行口开中断 SETB TR8 ; 置位TB8,作为地址帧标识 MOV A,R2 ; 发送地址帧信息 MOV SBUF,A SJMP $ ; 等待中断2 2、串行口在其它方式下的应用、串行口在其它方式下的应用三、三、80C5180C51单片机串行口的应用单片机串行口的应用主机串行口中断服务程序: INTSE1: CLR TI ;清发中断标志 CLR TB8 ;清TB8,准备发送数据帧 MOVX A,DPTR ;发送一个数据字节 MOV SBUF,A INC DPTR ;修改指针 INC R0 CJNE R0,#0AH,LOP ;判数据字节是否发完 CLR ES ; 发送完则关串行口中断 LOP: RETI ; 中断返回2

温馨提示

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

评论

0/150

提交评论