单片机的串行口及其应用课件.ppt

上传人:小飞机 文档编号:1552677 上传时间:2022-12-04 格式:PPT 页数:76 大小:1.60MB
返回 下载 相关 举报
单片机的串行口及其应用课件.ppt_第1页
第1页 / 共76页
单片机的串行口及其应用课件.ppt_第2页
第2页 / 共76页
单片机的串行口及其应用课件.ppt_第3页
第3页 / 共76页
单片机的串行口及其应用课件.ppt_第4页
第4页 / 共76页
单片机的串行口及其应用课件.ppt_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《单片机的串行口及其应用课件.ppt》由会员分享,可在线阅读,更多相关《单片机的串行口及其应用课件.ppt(76页珍藏版)》请在三一办公上搜索。

1、,2022/12/4,1,项目6 单片机的串行口及其应用,串行口的结构 串行口控制寄存器 单片机串行口的设计方法,本章主要内容:,本章目录,6.1 任务1 认识串行通信与串行口6.2 任务2 单片机的双机通信6.3 任务3 单片机与PC串行通信6.4 任务4 远程控制交通灯的设计,2022/12/4,3,6.1 任务1 认识串行通信与串行口,6.1.1 串行通信的概念,通信的基本方式分为并行通信和串行通信两种。,并行通信是构成数据信息的各位同时进行传送的通信方式。例如8位数据或16位数据并行传送。优点是传输速度快。缺点是需要多条传输线,当距离较远、位数又多时,导致通信线路复杂且成本高。,串行通

2、信是数据一位接一位地顺序传送。特点是通信线路简单,只要一对传输线就可以实现通信(如电话线),从而大大地降低了成本,特别适用于远距离通信。缺点是传送速度慢。,串行通信可分为异步传送和同步传送两种基本方式。,1. 串行通信的分类,(1)异步通信,异步传送的特点是数据在线路上的传送不连续,在传送时,数据是以字符为单位组成字符帧进行传送的。 在异步通信中,接收端是依靠字符帧(Character Frame)格式来判断发送端是何时开始发送,何时结束发送的。字符帧格式是异步通信的一个重要指标,是CPU与外设之间事先的约定。字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位4个部分组成。,图6-2串行异

3、步传送的字符格帧式,在串行通信中,两相邻字符帧之间,可以没有空闲位,也可以有若干空闲位,这由用户来决定。图6-2(a)为无空闲位的字符帧,图6-2(b)表示有3个空闲位的字符帧格式。,(2)同步通信,同步通信是一种连续串行传送数据的通信方式,1次通信只传输一帧信息,即1次传送1组数据。这里的信息帧和异步通信的字符帧不同,通常有若干个数据字符,如图6-3所示。图6-3(a)为单同步字符帧结构,图6-3(b)为双同步字符帧结构,图6-3 同步通信的字符帧格式,2. 串行通信的制式,在串行通信中数据是在两个站之间进行传送的,按照数据传送方向,串行通信可分为单工、半双工和全双工三种制式。,(1)单工制

4、式:在这种制式下,通信线的一端接发送器,另一端接接收器,数据只能按照一个固定的方向传送。(2)半双工制式:数据可实现双向传送,但不能同时进行。(3)全双工制式:全双工通信系统的每端都有发送器和接收器,可以同时发送和接收。,3. 串行通信的接口电路,串行接口电路的种类和型号很多。 能够完成异步通信的硬件电路称为UART,即通用异步接收器 /发送器; 能够完成同步通信的硬件电路称为USRT; 既能够完成异步又能同步通信的硬件电路称为USART.从本质上说,所有的串行接口电路都是以并行数据形式与CPU接口,以串行数据形式与外部逻辑接口。它们的基本功能都是从外部逻辑接收串行数据,转换成并行数据后传送给

5、CPU,或从CPU接收并行数据,转换成串行数据后输出到外部逻辑。,6.1.2 串行通信的接口,异步串行通信接口标准主要有三类: RS-232C接口 RS-449、RS-422和RS-485接口 20mA电流环,1. RS-232C接口,(1)RS-232C信息格式标准,(2)RS-232C总线规定及其电平转换器,RS-232C采用的是负逻辑,即: 逻辑“0”:+5V+15V 逻辑“1”:-5V-15V因此,RS-232C不能和TTL电平直接相连,使用时必须进行电平转换。常用的电平转换集成电路是传输线驱动器MC1488和传输线接收器MC1489。,图6-6 接收器和发送器电平转换集成电路,(3)

6、RS-232C总线规定,RS-232C标准总线为25根,采用标准的DB-25或DB-9的D形插头座。目前计算机上只保留有两个DB-9插头,即COM1和COM2两个串行接口。,图6-8 RS-232C引脚图,表6-1 DB-9连接器各引脚各引脚定义,在最简单的全双工系统中,仅用发送数据、接收数据和信号地三根线即可,对于MCS-51单片机,利用其RXD(串行数据接收端)线、TXD(串行数据发送端)线和一根地线,就可以构成符合RS-232C接口标准的全双工通信口。,在远距离通信时,一般要加MODEM(调制解调器),当计算机与MODEM 连接时,只要将编号相同的引脚连接起来即可 。,图6-9 RS-2

7、32-C(DB9)与调制解调器的连接图,在距离较近(小于15m)的情况下进行通信时,不需要使用MODEM,两个计算机的RS-232-C接口可以直接互连。,图6-10 两个RS-232C(DB9)终端设备的连接图,2. RS-449、RS-422A、RS-485标准接口,RS-449标准除了与RS-232C兼容外,在提高传输速率,增加传输距离,改善电气性能等方面有了很大改进。,(1)RS-449标准接口,RS-449在很多方面可以代替RS-232C使用。RS-449与RS-232C的主要差别在于信号在导线上的传输方法不同:RS-232C是利用传输信号与公共地的电压差,RS-449是利用信号导线之

8、间的信号电压差,在1219.2 m的24-AWG双铰线上进行数字通信。 RS-449规定了两种接口标准连接器,一种为37脚,一种为9脚。 RS-449可以不使用调制解调器,它比RS-232C传输速率高,通信距离长,且由于RS-449系统用平衡信号差传输高速信号,所以噪声低,又可以多点或者使用公共线通信,故RS-449通信电缆可与多个设备并联。,(2)RS-422A接口,RS-422A输出驱动器为双端平衡驱动器,如图6-11所示。如果其中一条线为逻辑“1”状态,另一条线就为逻辑“0”,比采用单端不平衡驱动对电压的放大倍数大一倍。RS-422A传输速率(90Kbps)时,传输距离可达1200米。,

9、图6-11 RS-422A接口,(2)RS-485接口,RS-485的信号传输采用两线间的电压来表示逻辑1和逻辑0,如图6-12所示。由于发送方需要两根传输线,接收方也需要两根传输线。传输线采用差动信道,所以它的干扰抑制性极好,又因为它的阻抗低,无接地问题,所以传输距离可达1200米,传输速率可达1Mbps。,图6-12 RS-485接口,6.1.3 单片机串行口的结构与控制寄存器,MCS-5l单片机的串行口主要由两个独立的数据缓冲器SBUF、一个输入移位寄存器PCON(9位)、一个串行控制寄存器SCON和一个波特率发生器T1等组成。其结构见图6-13。,图6-13 串行口结构框图,1. 串行

10、口数据缓冲器SBUF,SBUF是两个在物理上独立的接收、发送寄存器,是可以直接寻址的专用寄存器。一个用于存放接收到的数据,另一个用于存放欲发送的数据,可同时发送和接收数据。 两个缓冲器共用一个地址99H,通过对SBUF的读、写指令来区别是对接收缓冲器还是发送缓冲器进行操作。 CPU在写SBUF时,就是修改发送缓冲器;读SBUF,就是读接收缓冲器的内容。 接收或发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0)、TXD(P3.1)来实现的,因此可以同时发送、接收数据,其工作方式为全双工制式。 串口的接收/发送端具有缓冲的功能,由SBUF特殊功能寄存器实现该功能。接收缓冲器是双缓冲的

11、,发送缓冲器为单缓冲。,2. 串行口控制寄存器SCON,该专用寄存器的主要功能是选择串行口的工作方式、接收和发送控制以及串行口的状态标志指示等,可以位寻址,字节地址为98H。收发双方都有对SCON的编程,单片机复位时,SCON的所有位全为0。SCON的各位含义如图6-14所示。,(1)SM0、SM1(SCON.7、SCON.6),串行口的工作方式选择位。其定义如表6-2所示。,表6-2串行方式的定义,(2)SM2多机通信控制位,用于方式2和方式3中。在方式2和方式3处于接收时,若SM2=1,且接收到的第9位数据RB8为0时,则不激活RI;若SM2=1,且RB8=1时,则置RI=1;若SM2=0

12、,不论接收到第9位RB8为0还是为1,TI、RI都以正常方式被激活。在方式1处于接收时,若SM2=1,则只有当收到有效的停止位后,RI才置1。在方式0中,SM2应为0。(3)REN允许串行接收控制位。由软件置位或清零。REN=1时,允许接收;REN=0时,禁止接收。(4)TB8发送数据的第9位。在方式2和方式3中,由软件置位或复位,一般用做奇偶校验位。在多机通信中,可作为区别地址帧或数据帧的标识位,一般约定地址帧时TB8为1,数据帧时TB8为0。,(5)RB8接收数据的第9位。功能同TB8。(6)TI发送中断标志位。在方式0中,发送完8位数据后,由硬件置位;在其它方式中,在发送停止位之初由硬件

13、置位。因此TI是发送完一帧数据的标志,可以用指令来查询是否发送结束。TI=1时,也可向CPU申请中断,响应中断后必须由软件清除TI。(7)RI接收中断标志位。在方式0中,接收完8位数据后,由硬件置位;在其它方式中,在接收停止位时由硬件置位。因此RI是接收完一帧数据的标志,也可以通过指令来查询是否接收完一帧数据。RI=1时,也可向CPU申请中断,响应中断后也必须由软件清除RI。,3. 电源和波特率控制寄存器PCON,PCON是一个特殊功能寄存器,其字节地址为87H,只能进行字节寻址,不能按位寻址。其格式如下图6-15所示。,PCON的最高位D7位作为SMOD,是串行口波特率的选择位。在工作方式1

14、、2、3时,串行通信的波特率与SMOD有关。当SMOD=1时,波特率加倍,当SMOD=0时,波特率不变。系统复位后,SMOD位为0。其他各位用于电源管理 。,6.1.4 单片机串行口的工作方式,MCS-51的串行口有4种工作方式,通过SCON中的SM1、SM0位来决定 。,1方式0,在方式0下,串行口作同步移位寄存器用,以8位数据为一帧。 无起始位和停止位。 其波特率固定为fosc/12。 串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口,外接移位寄存器实现数据并行输入或输出。,2方式1,当SM0=0、SM1=1时,串行口被定义为方式1

15、。在方式1下,串行口为波特率可调的10位通用异步接口UART,发送或接收的一帧信息,包括1位起始位0,8位数据位和1位停止位1。,图6-18 方式1下10位数据帧格式,3方式2,当SM0=1、SM1=0时,串行口被定义为方式2。 方式2下,串行口为11位通用异步接口UART,这种方式可接收或发送11位数据,传送波特率与PCON的最高位SMOD有关。 发送或接收的一帧数据包括1位起始位0,8位数据位,1位可编程位(D8)和1位停止位1,共11位。 第9个数据位即D8位可以通过软件来控制它。,图6-19 方式2下11位数据帧格式,4方式3,方式3为波特率可变的11位UART通信方式,除了波特率以外

16、,方式3和方式2完全相同。,串行口工作于方式2和方式3时,与方式1不同之处是,进入RB8的是第9位数据,而不是停止位。接收到的停止位的值与SBUF、RB8或RI是无关的。这一个特点可用于多机通信。,注意:,6.1.5 串行口的波特率,串行口通过编程可以有4种工作方式,其中,方式0和方式2的波特率是固定的,方式1和方式3的波特率可变,由定时器1的溢出率决定 。,1方式0和方式2,在方式0中,波特率为时钟频率的1/12,即 ,固定不变。 在方式2中,波特率取决于PCON中的SMOD值, 当SMOD=0时,波特率为 ; 当SMOD=1时,波特率为 , 即波特率,2方式1和方式3,在方式1和方式3下,

17、波特率由定时器T1的溢出率和SMOD共同决定。即:,波特率,表6-3 定时器T1产生的常用波特率,6.2 任务2 单片机的双机通信,采用两台AT89C51单片机甲和乙进行双机串行通信设计。单片机甲的按键K1产生控制码,通过串行口TXD端将控制码以方式1的方式发送至单片机乙的RXD端,乙机再利用该控制码分别实现LED1闪烁、LED2闪烁、LED1和LED2同时闪烁、关闭所有LED功能。通过本任务的学习,使读者掌握MCS-51系列单片机串行通信的基本原理及控制方法、波特率设计等串行口应用知识。,6.2.1 硬件电路与软件程序设计,1. 硬件电路设计,根据单片机双机通信距离、抗干扰性等要求,可以选择

18、直接TTL电平传输、RS-232-C、RS-422A等串行接口方法。本设计采用标准RS-232接口芯片MAX232进行通信,硬件电路如图6-20所示。,图6-20 单片机串行口双机通信硬件电路,2. 程序设计,程序设计时,首先需要进行串口初始化,主要任务是设置定时器1,串口控制和中断控制等。本任务中,两片单片机的串口均工作在方式1下,所以甲机程序中设置SCON=0X40,乙机程序中设SCON=0X50,两者都设为方式1,但乙机还将REN位设为1以允许接收。需要说明的是,本例甲机不接收数据,因此两机的SCON都设成0X50也不影响运行结果;程序中设TH1=TL1=0XFD(即253),PCON=

19、0X00(PCON的最高位SMOD=0,波特率不倍增);本例中两单片机均使用查询方式,甲机通过循环查询TI标志判断是否发送完毕,乙机通过查询RI判断是否接收到数据。每一次收发前都需要通过程序将TI和RI清零。,甲机程序代码:,#include #define uchar unsigned char#define uint unsigned intsbit LED1 = P00; sbit LED2 = P03;sbit K1 = P10; / 延时void DelayMS ( uint ms )uchar i;while(ms-) for ( i=0; 120; i+ );/ 向串口发送字符v

20、oid Putc_to_SerialPort(uchar c)SBUF = c;while (TI = 0);TI = 0;,/主程序void main()uchar Operation_No=0;SCON = 0 x40; / 串口模式 1TMOD = 0 x20; / T1 工作模式 2PCON = 0 x00; / 波特率不倍增TH1 = 0 xfd;TL1 = 0 xfd;TI = 0;TR1 = 1; / 启动T1while (1)if ( K1 = 0 ) / 按下 K1 时选择操作代码 0,1,2,3 while ( K1 = 0 ); Operation_No=(Operati

21、on_No+1)%4;,switch ( Operation_No ) / 根据操作代码发送 A/B/C 或停止发送 case 0: LED1 = LED2 = 1; break; case 1: Putc_to_SerialPort(A); LED1 = LED1; LED2 = 1; break; case 2: Putc_to_SerialPort(B); LED2 = LED2; LED1 = 1; break; case 3: Putc_to_SerialPort(C); LED1 = LED1; LED2 = LED1; break; DelayMS ( 100 ); ,乙机程序代

22、码:,#include#define uchar unsigned char#define uint unsigned intsbit LED1 = P00; sbit LED2 = P03;/ 延时void DelayMS ( uint ms )uchar i;while ( ms- ) for ( i=0; i120; i+ );,/ 主程序void main ()SCON = 0 x50; /串口模式 1,允许接收TMOD = 0 x20; /T1 工作模式 2PCON = 0 x00; /波特率不倍增TH1 = 0 xfd; /波特率 9600 TL1 = 0 xfd;RI = 0;T

23、R1 = 1;LED1 = LED2 = 1;while(1)if ( RI ) / 如收到则 LED 闪烁 RI=0;,switch(SBUF) /根据所收到的不同命令字符完成不同动作 case A: LED1 = LED1; LED2 = 1; / LED1 闪烁 break; case B: LED2 = LED2; LED1 = 1; / LED2 闪烁 break; case C: LED1 = LED1; LED2 = LED1; / 双闪烁 else LED1 = LED2 =1; / 关闭 LED DelayMS ( 100 ); ,6.2.2 调试与仿真运行,图6-21 单片

24、机串行口双机通信仿真图,6.3 任务3 单片机与PC串行通信,6.3.1 任务与计划,(1)单片机接收PC机发来的数字串,并逐个显示在数码管上,为了显示接收到的数据,在单片机的P0口连接数码管。(2)当按下单片机系统的按键时,会有一串中文字符由单片机串口发送给PC机,并显示在接收窗口。,6.3.2 硬件电路与软件程序设计,1. 硬件电路设计,图6-22 单片机与PC之间串行通信硬件电路,2. 程序设计,(1)PC机控制程序PC主机的通信程序可以采用Turbo C、VC、VB、Delphi等高级语言编写,也可以直接借助于现有的“串口调试助手”应用软件完成,用户要由PC机向单片机发送数据,只要把波

25、特率参数设置好就行了,无须自己编程。(2)单片机串口通信程序使用Keil软件建立“receive”工程项目,建立源程序文件“receive.c”,输入如下源程序:,#include #define uchar unsigned char#define uint unsigned intuchar Receive_Buffer101; / 接收缓冲uchar Buf_Index = 0; / 缓存空间/数码管编码uchar code Dsy_code = 0 x3F, 0 x06, 0 x5B, 0 x4F, 0 x66, 0 x6D, 0 x7D, 0 x07, 0 x7F, 0 x6F, 0

26、 x00 ;/ 延时void Delay ( uint x )uchar i;while ( -x ) for ( i = 0; i 120; i+ );,void main( ) /主函数uchar i;P0 = 0 x00;Receive_Buffer0 = -1;SCON = 0 x50; /串口模式1,允许接收TMOD = 0 x20; /T1方式2PCON = 0 x00;TH1 = TL1 = 0 xFD; /波特率=9600 EA = 1;EX0 = 1;IT0 = 1; /允许外部中断0,下降沿触发ES = 1; /允许串口中断IP = 0 x01; /外部中断0为高优先级TR

27、1 = 1; /启动定时器while(1)for ( i = 0; i 100; i+ )if ( Receive_Bufferi =-1 ) break; /有-1结束显示P0 = Dsy_code Receive_Buffer i ;Delay(200);Delay(200);,/接收中断函数 void Serial_INT( ) interrupt 4uchar c;if ( RI = 0) return;ES = 0; /关闭串口中断RI = 0; /清除接收标志位c = SBUF; /读字符if (c = 0 /允许串口中断,/外部中断0 void EX_INT0( ) interr

28、upt 0uchar *s = “单片机发送的字符串!rn”;uchar i = 0;while ( si != 0)SBUF = si;while (TI = 0);TI = 0;i+;,6.3.3 调试与仿真运行,图6-23 单片机与PC通信仿真图,图6-24 串口调试助手,6.4 任务4 远程控制交通灯的设计,6.4.1 任务要求,设计并实现单片机交通灯控制系统,实现以下三种情况下的交通灯控制。(1)正常情况下双方向轮流点亮,交通灯的状态如表6-4所示。(2)特殊情况时A道运行。(3)有紧急车辆通行时,A B道均为红灯。紧急情况优先级高于特殊情况。,表6-4 交通灯显示状态,本任务实现用

29、PC作为控制主机、单片机控制信号灯为从机的远程控制系统。主、从机双方除了要有统一的数据格式、波特率外,还要约定一些握手应答信号,即通信协议,如表6-5所示。,表6-5 交通灯控制系统PC与单片机通信协议,6.4.2 电路及元器件,表6-6 交通灯控制端口线分配及控制状态,表6-7交通灯控制电路元器件清单,6.4.3 程序设计,1. 程序设计流程图,图6-27 正常情况程序流程,图6-28 中断情况下交通状态流程,图6-29 通信程序流程,2. 源程序,#include #define uchar unsigned char #define uint unsigned int uchar led

30、=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F; uchar DispX=0 x04,0 x0c,0 x04,0 x0c,0 x14,0 x20,0 x21,0 x20,0 x21,0 x22; void AFangXing(void); /函数声明 void ShanShuo(uchar *PTR); void JingGao(uchar *PTR); void BFangXing(void);,void delay_5ms(void) /5ms定时 uchar i; for(i=0;i5;i+) /T0方式1,定时1

31、毫秒,循环5次即实现5毫秒定时 TH0=0 xfc; TL0=0 x18; TR0=1; / T/C0开始工作 while(!TF0); TF0=0; ,void int_0() interrupt 0 uint i,x,y,l,m; EA=0; /关中断 i=P1; l=TH1;m=TL1; EA=1;P1=0 x24; for(x=10;x0;x-) for(y=100;y0;y-) P2=0 x01; P0=ledx%10; delay_5ms(); P2=0 x02; P0=ledx/10; /紧急情况倒计时 delay_5ms(); EA=0;P1=i;TH1=l;TL1=m;EA=

32、1; ,void int_1() interrupt 2 /特殊情况中断uint i,l,m,x,y;EA=0; /关中断i=P1;l=TH1;m=TL1;EA=1;P1=0 x21;for(x=10;x0;x-) for(y=100;y0;y-) P2=0 x01;P0=ledx%10;delay_5ms();P2=0 x02;P0=ledx/10; /特殊情况倒计时delay_5ms(); EA=0;P1=i;TH1=l;TL1=m;EA=1;,void main () /主函数uchar *PTR= /外部中断0的中断请求信号为边沿触发,IT1=1; /外部中断1的中断请求信号为边沿触发

33、while(1) AFangXing();/A 道绿灯, B道红灯(计时55秒) ShanShuo(PTR); /A绿灯闪烁 4次(2秒) , B道红灯 ShanShuo(+PTR); ShanShuo(+PTR); ShanShuo(+PTR); JingGao(+PTR); /A 道黄灯(2秒), B道红灯 BFangXing();/B 道绿灯, A道红灯(计时55秒) ShanShuo(+PTR);/B绿灯闪烁 4次(2秒) , A道红灯 ShanShuo(+PTR); ShanShuo(+PTR); ShanShuo(+PTR); JingGao(+PTR);/B 道黄灯(2秒), A

34、道红灯 PTR= /重新给PTR指针赋值,开始新的一轮 ,void AFangXing(void) /A向通行函数uchar i,j;P1=0 x0c; /A 道绿灯 B道红灯for(i=55;i0;i-) for(j=50;j0;j-) P2=0 x01;P0=ledi%10;/显示A方向秒个位delay_5ms();P2=0 x02;P0=ledi/10;/显示A方向秒十位delay_5ms();P2=0 x04;P0=led(i)%10;/显示B方向秒个位delay_5ms();P2=0 x08;P0=led(i)/10;/显示B方向秒十位delay_5ms(); ,void ShanS

35、huo(uchar *PTR) /绿灯闪烁函数uchar i,j;for(i=1;i0;i-) P1=*PTR;for(j=25;j0;j-) P2=0 x01;P0=ledi%10;/显示A方向秒个位delay_5ms();P2=0 x02;P0=ledi/10;/显示A方向秒十位delay_5ms();P2=0 x04;P0=ledi%10;/显示B方向个位delay_5ms();P2=0 x08;P0=ledi/10;/显示B方向十位delay_5ms();,void JingGao(uchar *PTR) /黄灯警告函数uchar i,j;P1=*PTR; for(i=2;i0;i-)

36、 for(j=50;j0;j-) P2=0 x01;P0=ledi%10;/显示A方向秒个位delay_5ms();P2=0 x02;P0=ledi/10;/显示A方向秒十位delay_5ms();P2=0 x04;P0=ledi%10;/显示B方向个位delay_5ms();P2=0 x08;P0=ledi/10;/显示B方向十位delay_5ms(); ,void BFangXing(void) /B向通行函数 uchar i,j; P1=0 x21; /A 道红灯 B道绿灯 for(i=55;i0;i-) for(j=50;j0;j-) P2=0 x01; P0=led(i)%10;/显

37、示A方向秒个位 delay_5ms();P2=0 x02; P0=led(i)/10;/显示A方向秒十位 delay_5ms();P2=0 x04; P0=ledi%10;/显示B方向个位 delay_5ms(); P2=0 x08; P0=ledi/10;/显示B方向秒十位 delay_5ms(); ,void serial() interrupt 4 / PC机控制程序 uchar i ; EA=0; if(RI=1) RI=0; if(SBUF=0 x01) SBUF=0 x01; while(!TI); TI=0; i=P1 ; P1=0 x24; while(SBUF!=0 x02)

38、 while(!RI); RI=0; ,SBUF=0 x02;while(!TI);TI=0;P1=i;EA=1; else EA=1; ,6.4.4 PROTEUS仿真运行,(1)Proteus仿真系统和串口调试软件同时安装在一台PC上,PC有两个物理串口,两者分别占用一个端口,然后使用交叉串口线连接两个端口,并将两个串行端口的属性参数设置一致。(2)采用虚拟串口,使用虚拟串口驱动软件Virtual Serial Port Driver(VSPD)。虚拟两个串行端口,如COM2、COM3,并虚拟配对连接。将COM3分配给COMPIM,COM2分配给“串口调试助手”,运行同一台PC屮的“串口调

39、试助手”软件和Proteus的单片机的仿真系统,即可实现两者之间的通信,与物理连接方式一样。,6.4.5 任务小结,交通灯控制中用到定时计数器、外部中断INT0、INT1、 LED动态显示和串行通信的知识。因此该设计是单片机的综合应用。单片机和PC串行通信时,在硬件设计上,需要熟悉端口电平转换芯片的使用,在软件设计上,要掌握串行通信协议编程,端口的参数设置要一致。 单片机异步通信的程序设计通常采用两种方法:查询法和中断法。本设计任务采用的是中断法,但在进入串口中断函数后又使用了查询方法。,总结与思考,本项目结合单片机的双机通信、单片机与PC串行通信、简易交通灯的设计等任务,主要介绍了串行通信通信协议、单片机串行口结构与编程以及RS232C串行通信总线标准和接口设计。重点介绍了系列单片机串行口结构,该串口是一个全双工的异步串行通信I/O口,有四种工作方式:方式0、1、2、3。其波特率和帧格式可以编程设定。数据帧格式有10位、11位。方式0和方式2的传送波特率是固定的,方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。最终完成远程控制交通灯的设计。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号