《单片机原理与C51程序设计基础教程9.ppt》由会员分享,可在线阅读,更多相关《单片机原理与C51程序设计基础教程9.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程重点内容:重点内容:l串行通信方式简介串行通信方式简介l串口结构介绍串口结构介绍lMCS-51MCS-51串口工作方式串口工作方式l串行通信接口标准串行通信接口标准RS-232RS-232l串口应用实例串口应用实例l本章小结本章小结第第第第9 9 9 9章章章章 串行通信接口串行通信接口串行通信接口串行通信接口单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程一、串行通信方式一、串行通信方式一、串行通信方式一、串行通信方式简介简介简介简介1 1 1 1、串行通信分类、串行通信分类、串行通信分类、串行通信分
2、类按照数据的同步方式,串行通信可以分为同步通信和异步通信两大类。1.异步通信在异步通信中,数据通常以字符为单位组成数据帧进行传送。发送端和接收端由各自的时钟来控制发送和接收。在异步通信中,帧格式一般是由起始位、数据位、校验位、停止位组成,详细介绍如下:(1)起始位:是字符的开始,起始位用“0”以表示数据发送的开始。(2)数据位:紧跟起始位之后,他由58位数据组成,低位在前高位在后。(3)奇偶校验位:位于数据位之后,用于保证串行通信的可靠性。(4)停止位:该位是字符的最后一位,用“1”表示,用于向接收端表示一个字符已经发送完毕。在发送数据完毕后发送端信号变成空闲位,为高电平。在数据的发送过程中,
3、两帧数据之间可以有空闲位也可以没有空闲位,可以有一个也可以有多个空闲位。异步通信不需要时钟同步,所需连接设备简单,其缺点是每传送一个字符都包括了起始位、校验位和停止位,故而传送效率比较低。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程一、串行通信方式一、串行通信方式一、串行通信方式一、串行通信方式简介简介简介简介1 1 1 1、串行通信分类、串行通信分类、串行通信分类、串行通信分类2.同步通信 在同步通信方式中一次传送一个数据包,包括同步字符、数据字符和校验字符。其中同步字符位于帧头,用于确认数据字符传送的开始;数据字符位于同步字符后面,数据字符的长度由通信双方决定;校
4、验字符位于数据帧结构的末尾,用于接收端进行数据传送过程中的正确性检验。其中同步字符可以采用统一标准,也可以由通信双方自己确定。例如,在单同步字符帧结构中,同步字符通常采用ASCII码中的SYN(即16H)。同步通信的数据传输速率较高,但是要求发送时钟和接收时钟严格同步,发送端通常把时钟脉冲同时传送到接收端。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程一、串行通信方式一、串行通信方式一、串行通信方式一、串行通信方式简介简介简介简介2 2 2 2、数据的传输模式、数据的传输模式、数据的传输模式、数据的传输模式在串行通信中数据是在两个站点上进行传送,按照数据传输的方向性,串
5、行通信可以分为单工、半双工和全双工。1.单工单工就是在通信双方的两个站点中,只能有端发送一端接收,发送端只能进行数据的发送而不能接收、接收端只能进行接收而不能进行发送。数据的流向只是单方向的。2.半双工在半双工通信中,两个通信站点之间只有一个通信回路,数据或者由站点1发送到站点2,或者由站点2发送到站点1。两个站点之间通信只需要一条通信线。3.全双工在全双工的通信方式中,两个站点之间有两个独立的通信回路,可以同时进行发送和接收数据。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程一、串行通信方式一、串行通信方式一、串行通信方式一、串行通信方式简介简介简介简介3 3 3 3
6、、波特率、波特率、波特率、波特率波特率是串行通信的重要指标,用于表示数据传输的速度,波特率定义为每秒钟传送的二进制位的比特数。在异步通信中,发送一位数据的时间叫作位周期,用T表示。位周期和波特率互为倒数,比如在波特率为9600的通信中,位周期为1/9600即0.000104s。波特率还和系统的时钟频率有关,串行口的工作频率通常为时钟频率的12分频、16分频或者64分频。国际上还规定了一个标准波特率系列,其常见波特率为600、1200、1800、2400、4800、9600、19200、38400、5600和115200等。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程二
7、二二二 串行通信方式串行通信方式串行通信方式串行通信方式简介简介简介简介1 1 1 1、51515151单片机串行口的硬件结构单片机串行口的硬件结构单片机串行口的硬件结构单片机串行口的硬件结构1.串行口结构51单片机串行口结构如图9.1所示。5l 单片机通过引脚RXD(P3.0)串行数据接收端和引脚TXD(P3.l)串行数据发送端与外界进行通信。由图可知,它主要由两个数据缓冲寄存器器SBUF和一个输入移位寄存器组成,其内部还有一个串行控制寄存器SCON和一个波特率发生器(由T1或内部时钟及分频器组成)。在进行通信时,外界的串行数据是通过对引脚RXD(P3.0)输入的。输入数据先逐位进入输入移位
8、寄存器,再送入接收SBUF。在此采用了双缓冲结构,这是为了避免在接收到第二帧数据之前,CPU未及时响应接收器的前一帧中断请求把前一帧数据读走,而造成两帧数据重叠的错误。对于发送器,因为发送时CPU是主动的,不会产生写重叠问题,一般不需要双缓冲器结构,以保持最大传送速率,因此,仅用了SBUF一个缓冲器。图中,TI和RI为发送和接受的中断标志,无论哪个为“1”,只要中断允许,都会引起中断。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程二二二二 串行通信方式串行通信方式串行通信方式串行通信方式简介简介简介简介1 1 1 1、51515151单片机串行口的硬件结构单片机串行口的
9、硬件结构单片机串行口的硬件结构单片机串行口的硬件结构单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程二二二二 串行通信方式串行通信方式串行通信方式串行通信方式简介简介简介简介1 1 1 1、51515151单片机串行口的硬件结构单片机串行口的硬件结构单片机串行口的硬件结构单片机串行口的硬件结构2.工作原理设有两个单片机串行通信,甲机为发送,乙机为接收,为说明发送和接受过程,以图9.2为例说明。串行通信中,甲机CPU向SBUF写入数据(MOV SBUF,A),就启动了发送过程,A中的并行数据送入了SBUF,在发送控制器的控制下,按设定的波特率,每来一个移位时钟,数据移出一位
10、,由低位到高位一位一位移位发送到电缆线上,移出的数据位通过电缆线直达乙机,乙机按设定的波特率,每来一个移位时钟移入移位,由低位到高位一位一位移入到SBUF;一个移出,一个移进,显然,如果两边的移位速度一致,甲移出的正好被乙移进,就能完成数据的正确传递;如果不一致,必然会造成数据位的丢失。因此,两边的波特率必须一致。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程二二二二 串行通信方式串行通信方式串行通信方式串行通信方式简介简介简介简介1 1 1 1、51515151单片机串行口的硬件结构单片机串行口的硬件结构单片机串行口的硬件结构单片机串行口的硬件结构 当甲机一帧数据发送
11、完毕(或称发送缓冲器空),硬件置 位发送中断标志位(SCON.1),该位可作为查询标志;如果设置允许中断,将引起中断,甲的CPU方可再发送下一帧数据。接收到的乙方,需预先设置位REN(SCON.4)即允许接收,对方的数据按设定的波特率由低位到高位顺序进入乙的移位寄存器;当一帧数据到齐(接收缓冲器满),硬件自动置位接收中断标志RI(SCON.0),该位可以做为查询标志;如设置为允许中断,将引起接收中断,乙的CPU方可通过读SBUF(MOV A,SBUF),将这帧数据读入,从而完成一帧数据的传送。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程二二二二 串行通信方式串行通信方
12、式串行通信方式串行通信方式简介简介简介简介1 1 1 1、51515151单片机串行口的硬件结构单片机串行口的硬件结构单片机串行口的硬件结构单片机串行口的硬件结构由上面的介绍可以得出下面两点结论:(1)查询方式发送的过程:发送一个数据查询TI发送下一个数据(先发后查);查询方式接收的过程:查询RI读入一个数据查询RI读下一个数据(先查后收)。以上过程将体现在编程中。(2)无论是单片机之间还是单片机和PC之间,串行通信双发的波特率必须相同。3.波特率的设定在串行通信中,收发双方对发送和接收数据的速率(即波特率)要有一定的约定,51单片机的波特率发生器的时钟来源有两种:一是来自于系统时钟的分频钟,
13、由于系统时钟的频率是固定的,所以此种方式的波特率是固定的;另一种是由定时器T1提供,波特率由T1工作于定时方式2(8位自动重载方式)。波特率是否提高一倍由PCON的SMOD值确定,SMOD=1时波特率加倍。串行口的工作方式中,方式0和方式2采用固定波特率,方式1和方式2采用可变波特率,这些内容将在介绍串口工作方式的时候详细介绍。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程二二二二 串行通信方式串行通信方式串行通信方式串行通信方式简介简介简介简介2 2 2 2、数据缓冲寄存器数据缓冲寄存器数据缓冲寄存器数据缓冲寄存器SBUFSBUFSBUFSBUFSBUF 数据缓冲寄存
14、器是一个可以直接寻址的串行口专用寄存器,如图9.3所示,接收与发送缓冲寄存器(SBUF)占用同一个地址99H,其名称也同样为SBUF。CPU与SBUF操作,一方面修改发送寄存器,同时启动数据串行发送;读SBUF操作,就是读接收寄存器,完成数据的接受。从图中可看出,接收缓冲器前还加上一级输入移位寄存器,51系列单片机的这种结构目的在于接收数据时避免发生数据帧重叠现象,以避免出错,这种结构称为双缓冲器结构。而发送数据时就不需要这样的结构,因为发送时,CPU是主动的,不会出现这种现象。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程二二二二 串行通信方式串行通信方式串行通信方式
15、串行通信方式简介简介简介简介3 3 3 3、串行口控制寄存器串行口控制寄存器串行口控制寄存器串行口控制寄存器SCONSCONSCONSCON串行口控制寄存器SCON用于存放串行口的控制和状态信息,其单元地址为98H,为地址为98H9FH,具有位寻址功能。SCON每一位的定义见表9-1。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程二二二二 串行通信方式串行通信方式串行通信方式串行通信方式简介简介简介简介3 3 3 3、串行口控制寄存器串行口控制寄存器串行口控制寄存器串行口控制寄存器SCONSCONSCONSCON第6、7位是串行口工作方式选择位,串行口共有四个工作方式,
16、各位的状态对应的工作方式见表9-2。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程二二二二 串行通信方式串行通信方式串行通信方式串行通信方式简介简介简介简介4 4 4 4、特殊功能寄存器特殊功能寄存器特殊功能寄存器特殊功能寄存器PCONPCONPCONPCON串行口借用了电源控制寄存器PCON的D7位SMOD作为串行口波特率系数控制位(见表9-3),PCON不可位寻址,直接地址为87H。当SMOD被置为1,且串口工作在模式1、3时,波特率提高1倍波特率加倍。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程三三三三 MCS-51MCS-51MCS-5
17、1MCS-51串口工串口工串口工串口工作方式作方式作方式作方式1 1 1 1、方式方式0 0方式0是同步移位寄存器输入/输出方式,常用做串行I/O扩展,具有固定的波特率:fosc/12。同步发送或接收,由TXD提供移位脉冲,RXD用做数据输入/输出通道。发送或接收的是8位数据,低位在先,高位在后。首先从写SBUF寄存器开始,启动发送操作。TXD输出移位脉冲,RXD同步串行发送SBUF中的数据。每个机器周期TXD发送一个移位脉冲,每个移位脉冲RXD发送一位数据。发送完8位数据后自动置位TI,请求中断。在RI=0的条件下,置REN=1后,启动一帧数据的接收,由TXD 输出移位脉冲,由RXD接收串行
18、数据到SBUF中。每个机器周期TXD发送一个移位脉冲,每个移位脉冲期间RXD接收一位数据,接收一帧数据结束后自动置位RI=1,请求中断。在继续接收下一帧之前,要将上一帧数据取走。该方式多用于接口的扩展,也可以用于短距离的单片机的通信。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程三三三三 MCS-51MCS-51MCS-51MCS-51串口工串口工串口工串口工作方式作方式作方式作方式2 2 2 2、方式方式1 1 方式1是10位异步通信方式,1位起始位(0),8位数据位,1位停止位(1);可变波特率,由T1的溢出率决定。执行一条以SBUF为目的的寄存器指令后,数据送往发
19、送缓冲器SBUF,SBUF中的数据从TXD端向外发送,在发送数据前先发一位起始位,然后紧跟8位数据位,再发一位停止位,发送完一帧数据后置位T1=1,请求中断。当置位REN时,串行口采样RXD引脚。当采样到1至0的跳变时,确认串行数据帧的起始位,开始接收一帧数据,直到停止位到来时,把停止位送入RB8中,置位RI=1,请求中断,通知CPU从SBUF中取走接收到的数据。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程三三三三 MCS-51MCS-51MCS-51MCS-51串口工串口工串口工串口工作方式作方式作方式作方式3 3 3 3、方式方式2 2和方式和方式3 3 方式2和
20、方式3具有多机通信功能,两种方式除了波特率设置不同外,其余完全相同。帧结构为11位,包括1位起始位0,8位数据位,1位校验位TB8/RB8和1位停止位;在方式2中,波特率固定为fosc/64或fosc/32,由PCON寄存器中的SMOD位选择。SMOD=1时,波特率为fosc/32;SMOD=0时,波特率为fosc/64。在方式3中,波特率取决于T1的溢出率。发送数据前,由指令设置TB8(例如作为奇偶校验位或地址/数据标志位),将要发送的数据写入SBUF后启动发送操作。内部逻辑会把TB8装入发送移位寄存器的第9位位置,随8位的数据之后发送出去,发送结束后置位TI。多机通信中,发送时用TB8作地
21、址/数据标识,TB8=1时为地址帧,TB8=0时为数据帧。当置位REN位时,启动接收操作。数据送入移位寄存器,收到的第9位数据RB8,对所接收的数据视SM2和RB8的状态决定是否使RI置1,请求中断。当SM2=0时,不论RB8为何状态,均置位RI,接收数据。当SM2=1时,为多机通信方式,接收到的RB8为地址/数据标识位。当RB8=1时,接收到数据为地址帧,置位RI,接收数据;当RB8=0时,收到数据为数据帧。若SM2=1,RI不置位,丢弃此帧,若SM2=0,则SBUF接收发送来的数据。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程三三三三 MCS-51MCS-51MC
22、S-51MCS-51串口工串口工串口工串口工作方式作方式作方式作方式4 4 4 4、各方式下波特率的计算各方式下波特率的计算当T1作为串行口的波特率发生器时,串行口方式1或方式3的波物率由下式确定:波特率=2SMOD(T1溢出率)/32由于方式2具有自动装载的功能,一般T1选择方式2,此时波特率的计算公式为:波特率=2SMODfosc/3212(28-TH1)单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程四四四四 串行通信接口串行通信接口串行通信接口串行通信接口标准标准标准标准RS-232RS-232RS-232RS-2321 1 1 1、RS-232CRS-232C标
23、准标准9.4.1RS-232C标准由于RS-232C早期不是专为计算机通信设计的,因此分别出现了25针和9针的D型连接器,但是因为目前微机都是采用9针的D型连接器,所以这里只介绍9针D型连接器。9针D型连接器的信号及引脚如图9.4所示。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程四四四四 串行通信接口串行通信接口串行通信接口串行通信接口标准标准标准标准RS-232RS-232RS-232RS-2321 1 1 1、RS-232CRS-232C标准标准1.RS-232C信号对于9针D型连接器,RS-232C可以通过它传送数据(TXD和RXD),也可以对双方的互传起协调作
24、用,即握手信号。因此9根信号分为两类。(1)基本的数据传送引脚TXD(Transmitted Data)数据发送引脚。串行数据从该引脚发出。RXD(Received Data)数据接收引脚。串行数据由此输入。GND(Ground)信号地线。在串行通信中,最简单的通信只需连接这3根线。在微机与微机之间,微机与单片机之间,单片机与单片机之间,多采用这种连接方式。(2)握手信号串口通信中主要的握手信号主要有以下5种,这些握手信号主要是用于和Modem连接时。RTS(Request to Send)请求发送信号,输出信号。CTS(Clear to Send)清除传送,是对RTS的响应信号,输入信号。D
25、CD(Data Carrier Detection)数据载波检测,输入信号。DSR(Data Set Ready)数据通信准备就绪,输入信号。DTR(Data terminal Ready)数据终端就绪,输出信号,表明计算机已经做好接收准备。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程四四四四 串行通信接口串行通信接口串行通信接口串行通信接口标准标准标准标准RS-232RS-232RS-232RS-2321 1 1 1、RS-232CRS-232C标准标准2.电器特性美国电子工业协会(EIA)公布的一种异步通信标准,采用的是EIA电平。其规定如下:(1)在TXD和RX
26、D上逻辑1(MARK)=-3-15V;逻辑0(SPACE)=+3+15V。(2)在RTS,CTS,DSR,DTR,DCD等控制线上信号有效(接通,ON状态,正电压)=+3+15V;信号无效(断开,OFF状态,负电压)=-3-15V。介于-3V和+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平为315V。(3)RS-232C的EIA电平和TTL电平转换显然,RS-232的EIA标准是根据电压的正负来表示逻辑状态的,与TTL以高、低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA电平与TTL电平之间进行电平
27、变换。目前广泛地使用集成电路转换器件,如MC1488、SN75150芯片,可完成TTL电平到EIA电平的转换,而MC1489、SN75154芯片可实现EIA电平到TTL电平的转换,但它们可以需要12V两种电源,使用不方便,而美国MAXIM公司的MAX32芯片可完成TTL和RS-232电平的转换,且只需5V电源,因此获得广泛应用。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程四四四四 串行通信接口串行通信接口串行通信接口串行通信接口标准标准标准标准RS-232RS-232RS-232RS-2321 1 1 1、RS-232CRS-232C标准标准 3.电平变换电路由于单片
28、机采用的是TTL电平,而串行通信是采用的EIA电平,这样就需要一个电路来使得两电平互转。新型电平转换芯片MAX232,可以实现TTL电平与RS-232电平双向转换。MAX232内部有电压倍增电路和转换电路,仅需外接5个电容和+5V电源即可工作。图9.5所示为MAX232的引脚图和连接图。由图可知,一个MAX232芯片可连接两个对收/发线。MAX232把通信接口的TXD和RXD端TTL电平(05V)转换成RS-232的电平(-10+10V),送到传输线上,也可以把传输线上RS-232的+10-10V电平转换为05V的TTL电平送通信接口TXD和RXD。单片机原理与单片机原理与C51语言程序设计基
29、础教程语言程序设计基础教程四四四四 串行通信接口串行通信接口串行通信接口串行通信接口标准标准标准标准RS-232RS-232RS-232RS-2322 2 2 2、单片机串行通信的连接单片机串行通信的连接由于单片机的串行口不提供握手信号,因此通常采用直接数据传送方式,如果需要握手信号,可有P1口编程产生所需的信号。1.单片机(甲机)和单片机(乙机)的连接甲机的发送端TXD接乙机的接收端RXD,两机的地线相连即可完成单工通信连接,当启动甲机的发送程序和启动乙机的接收程序时,就能完成甲机发送而乙机接收的串行通信。如果甲机和乙机的发送与接收都交叉连接,地线相连,就可以完成甲机和乙机的双工通信。2.单
30、片机和主机(PC)连接单片机和PC的串行通信接口电路如图9.6所示在PC内接有PC16550(和8250兼容)串行接口、EIA-TTL的电平转换器和RS-232C连接器,除鼠标占用一个串行口以外,还留有两个串行口给用户,这就是COM1(3F8H3FFH)和COM2(地址2F8H2FFH)。通过这两个口,可以连接Modem和电话线进入互联网,也可以通过连接其他的串行通信设备,如单片机、仿真机等。由于单片机的串行发送和接收线TXD和RXD是TTL电平,而PC的COM1或COM2的RS-232连接器(D型9针插座)是EIA电平,因此单片机需要加接MAX232芯片,通过串行电缆线和PC相连接。单片机原
31、理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程四四四四 串行通信接口串行通信接口串行通信接口串行通信接口标准标准标准标准RS-232RS-232RS-232RS-2322 2 2 2、单片机串行通信的连接单片机串行通信的连接单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程五五五五 串口应用实例串口应用实例串口应用实例串口应用实例当串行通信的硬件接好后,要编制串行通信程序。串行通信的编程要点归纳如下:(1)定好波特率:串行口的波特率有两种方式,分别是固定波特率和可变波特率。当使用可变波特率时,应先计算T1 的计数初值,并对T1进行初始化;如使用固定波特率(方
32、式0、方式2),则此波特率可省略。(2)填写控制字,即对SCON寄存器设定工作方式,如果是接收程序或双工通信程序,需要置REM=1(允许接收),同时也将TI,RI进行清零。(3)串行通信可采用两种方式:查询方式和中断方式,TI和RI是一帧发送完否或一帧数据到齐否的标志,可以用于查询;如果设置允许中断,可引起中断。下面分别介绍2种方式的发送和接受过程:查询方式发送程序:(先发后查)发送一个数据查询TI 发送下一个数据查询方式接收程序:(先查后收)查询RI读入一个数据查询RI读下一个数据中断方式发送程序:发送一个数据等待中断,在中断中再发送下一个数据。中断方式接收程序:等待中断,在中断中再接收一个
33、数据。两种方式中,当发送或接收数据后都要注意清TI或RI。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程五五五五 串口应用实例串口应用实例串口应用实例串口应用实例1 1、查询方式、查询方式对可变波特率的方式1和方式3查询方式的发送流程图如图9.7(a)所示,接收流程图如图9.7(b)所示。【例9-1】在单片机内部数据存贮器20H3FH单元中共有32个数据,要求采用方式 1 串行发送到另一单片机中,要求传送速率为1200波特,设fosc12MHZ。解答参考教材单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程五五五五 串口应用实例串口应用实例串口应用实
34、例串口应用实例2 2、中断法、中断法中断法对T1和SCON的初始化同查询法,不同的是要置位EA(中断总开关),置位ES(允许串行中断),中断方式的发送和接收的流程如图8-10(a)和(b)所示。单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程五五五五 串口应用实例串口应用实例串口应用实例串口应用实例2 2、中断法、中断法【例9-2】将例9-1用中断方式编程实现。中断方式的初始化部分同查询方式,具体程序清单如下:中断方式发送程序:#includeTrs interrupt 4TI=0;p+;/指向下一个单元SBUF=*p;/发送数据 main()unsingned char
35、 i;char*p;TMOD=0 x20;/定时器T1工作于方式2TH1=0 xe6;TL1=0 xe6;/定时器T1时间常数TR1=1;/启动定时器T1SCON=0 x40;/串行口工作于方式1p=0 x20;SBUF=*p;/发送数据for(i=0;i32;);单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程五五五五 串口应用实例串口应用实例串口应用实例串口应用实例2 2、中断法、中断法中断方式接收程序:#includeTrs interrupt 4 RI=0;*p=SBUF;/接收数据 p+;/指向下一个存储单元 main()unsingned char i;cha
36、r*p;TMOD=0 x20;/定时器T1工作于方式2TH1=0 xe6;TL1=0 xe6;/定时器T1时间常数TR1=1;/启动定时器T1SCON=0 x50;/允许接收p=0 x20;for(i=0;i32;);/等待中断单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程五五五五 串口应用实例串口应用实例串口应用实例串口应用实例2 2、中断法、中断法中断方式接收程序:#includeTrs interrupt 4 RI=0;*p=SBUF;/接收数据 p+;/指向下一个存储单元 main()unsingned char i;char*p;TMOD=0 x20;/定时器
37、T1工作于方式2TH1=0 xe6;TL1=0 xe6;/定时器T1时间常数TR1=1;/启动定时器T1SCON=0 x50;/允许接收p=0 x20;for(i=0;i32;);/等待中断单片机原理与单片机原理与C51语言程序设计基础教程语言程序设计基础教程六六六六 本章小结本章小结本章小结本章小结 本章主要介绍了单片机的串行口,首先详细介绍了串行通信的基础知识,如分类和传输模式,接着介绍了单片机的串口结构,分别介绍了数据缓冲寄存器,串行口控制寄存器和特殊功能寄存器,然后介绍了串行口的4种工作方式以及波特率计算,最后通过实例来介绍串行口的编程。通过本章的学习,读者应该掌握以下几个知识点:1.了解串行通信的基本概念、分类和有哪些传输模式。2.掌握单片机串口结构和工作方式,重点掌握串行口控制寄存器。3.掌握串行通信的连线和应用编程,能够用两种方式进行编程。