8单片机交通灯远程控制系统设计和制作.ppt

上传人:赵** 文档编号:63569525 上传时间:2022-11-25 格式:PPT 页数:45 大小:2.53MB
返回 下载 相关 举报
8单片机交通灯远程控制系统设计和制作.ppt_第1页
第1页 / 共45页
8单片机交通灯远程控制系统设计和制作.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《8单片机交通灯远程控制系统设计和制作.ppt》由会员分享,可在线阅读,更多相关《8单片机交通灯远程控制系统设计和制作.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、o项目项目8 单片机交通灯远程控制系统设单片机交通灯远程控制系统设计和制作计和制作 o任务任务8.1 认识串行通信接口认识串行通信接口o任务任务8.2单片机交通灯远程控制系统的设计与仿真单片机交通灯远程控制系统的设计与仿真下一页o任务任务8.1 认识串行通信接口认识串行通信接口oAT89S51单片机有单片机有4个并行个并行I/O接口,数据在通过并口进行接口,数据在通过并口进行传输时,数据的各位是同时进行传送。如果数据位数很多,或传输时,数据的各位是同时进行传送。如果数据位数很多,或者传输距离很远的话,所采用的硬件连接线就非常多,也非常者传输距离很远的话,所采用的硬件连接线就非常多,也非常复杂,

2、这时候就要采用串行通信。在串行通信接口电路中,只复杂,这时候就要采用串行通信。在串行通信接口电路中,只采用一根发送线,一根接收线,能够很方便完成任意两机间的采用一根发送线,一根接收线,能够很方便完成任意两机间的通信,而且也能够完成多机之间的通信以及单片机和上位计算通信,而且也能够完成多机之间的通信以及单片机和上位计算机之间或其他智能设备之间的通信。机之间或其他智能设备之间的通信。o8.1.1 串行通信基础知识串行通信基础知识o8.1.2 MCS-51单片机串行口单片机串行口o8.1.3 串行通信的电平转换串行通信的电平转换o8.1.4 串行口应用串行口应用上一页 下一页返回o8.1.1 串行通

3、信基础知识o串行通信按照传输数据时所用的时钟控制方式可分为异步通信和同步通信。o一、异步通信o在异步通信方式中,传送的数据以一个字(即字符)为基本单位,在每一个字符的传送过程中都要插入一些识别信息位和校验信息位,构成一帧字符信息,或称为字符格式。传输时低位在前,高位在后,数据一帧一帧地传送。上一页 下一页返回o异步通信中,一帧字符信息由四个部分组成:起始位、数据位、奇偶校验位和停止位,如右图所示。o起始位:按照串行通信协议的规定,在发送端发送字符时,首先送出一个起始位,一般为低电平,将线路置成逻辑“0”状态,通知接收端应准备接收一个新的字符。字符的起始位被用作同步接收端的时钟,以保证后续的接收

4、过程能正确进行。o数据位:数据位紧跟在起始位后,可以是5位(D0D4)、6位、7位或8位(D0D7),通常使用7位或8位数据位。在数据位传送时,总是按数据位的高位在后、低位在前的方式进行传送。o奇偶校验位:在数据位后,是一个奇偶校验位,用于校验串行传送的正确性。在数据串行传送的过程中,一旦发生奇偶错,即设置奇偶校验位标志,CPU可以读出此标志,进行相应的纠错处理。不需要奇偶校验时,这一位可省去或改为其他的控制位。上一页 下一页返回o停止位:位于字符帧的最后,它表示一个字符的传送结束,一般为高电平(逻辑“1”)。停止位可以1位、1.5位或2位。接收端接收到停止位后,知道一个字符已传送结束。同时为

5、接收下一个字符做准备。因此,异步通信的一帧可由10位、10.5位或11位构成。o有时为了使收发双方都有一定的操作间隙,可以在传送的两个字符之间插入若干空闲位,空闲位同停止位一样也是高电平。在异步通信中,两相邻的字符帧之间需不需要空闲位可以由用户来决定。o二、同步通信o在同步通信方式中,在每个数据块传送开始时,先用同步字符(SYN)来指示数据块传送的开始,并由发送时钟和接收时钟来使收发双方保持严格同步,接收端在检测到规定的同步字符后,即开始顺序接收同步字符后的连续数据,直至通信告一段落。上一页 下一页返回o三、波特率o异步通信的一个重要指标是波特率,也即每秒传送的二进制数码的位数,单位是bit/

6、s,即位/秒,也可以写作bps。o四、串行通信的方向o串行通信中,通信双方的数据传输是按照一定的方式进行的,常用的方式有三种:单向(单工)、半双向(半双工)和全双向(全双工)。o单工方式:通信的双方只允许一方的数据传输到另一方。o半双工方式:通信的双方中的每一方既可发送数据又可以接受数据,但这两种功能不能同时实现。上一页 下一页返回(a)单工 (b)半双工 (c)双工 o8.1.2 AT89S51单片机串行口单片机串行口 oAT89S5有一个可编程全双工的串行通信接口,具有通用异步接收和发送器UART(Universal Asynchronous Receiver/Transmitter)的全

7、部功能,能同时进行数据的发送和接收,也可作为同步移位寄存器使用。o一、AT89S51单片机串行口的结构oAT89S51的串行口主要由两个独立的串行口数据缓冲器SBUF(一个发送缓冲寄存器,一个接收缓冲寄存器),串行口控制寄存器、输入移位寄存器及若干控制门电路组成。基本结构如图所示。上一页 下一页返回o在AT89S51单片机中,和串行口的设置和控制相关的特殊功能寄存器有二个:SCON和PCON,控制着串行口的工作发式以及波特率,定时器T1作为波特率发生器。AT89S51的串行口属于可编程接口。o二、串行口控制寄存器SCONo特殊功能寄存器SCON包含串行口的方式选择位,接收发送控制位以及串行口的

8、状态标志,串行口控制字格式如下所示。上一页 下一页返回oSM0、SM1:是串行口的方式选择位,如下表所示。上一页 下一页返回oSM2:多机通信控制位。在方式0下,SM2应为0。在方式1下,如果SM2=0,则只有收到有效的停止位时才会激活RI。在方式2和方式3下,如置SM2=1,则只有在收到的第9位数据(RB8)为1时,RI被激活(RI=1,申请中断,要求CPU取走数据);若SM2=0,表示数据接收状态,无论RB8=1还是0,都把接收到的数据送入接收缓冲器,并产生中断请求。oREN:允许串行接收位。由软件置位以允许接收。由软件清“0”来禁止接收。oTB8:在方式2和3里发送的第九位数据。需要时由

9、软件置位或复位。oRB8:在方式2和3里,是接收到的第九位数据。在方式1时,如SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。oTI:发送中断标志。由硬件在方式0串行发送第八位结束时置位,或在其他方式串行发送停止位的开始时置位。必须由软件清0。oRI:接收中断标志。由硬件在方式0接收到第8位结束时置位,或在其他方式接收到停止位的中间时置位,必须由软件清0。上一页 下一页返回o三、电源及波特率选择寄存器PCONoPCON是AT89S51为电源控制而设置的特殊功能寄存器,其格式如下:上一页 下一页返回oPCON中与串行口相关的只有SMOD,为波特率倍增位。在方式1、2、3时,串行通信的

10、波特率与SMOD有关。当SMOD=1时,波特率乘以2,。系统在复位时SMOD=0。o四、AT89S51单片机串行口的工作方式o1.方式0o方式0时,串行口工作于同步移位寄存器方式,此时串行口相当于一个并入串出或串入并出的移位寄存器。数据从RXD(P3.0)输入或输出(低位在先,高位在后),TXD(P3.1)输出同步移位时钟,方式0的波特率固定为fosc/12。当执行指令“MOV SBUF,A”或语句“SBUF=0 x8F;”时,8位数据自动开始传送。传送完毕后,TI被置1。接收时,必须先使REN=1、RI=0,当8位数据接收完后,RI会置1,此时可由“MOV A,SBUF”,将数据读入累加器。

11、若要再次发送或接收数据,必须用软件将TI或RI清零。方式0时SM1和SM0为00,此时SM2必须为0。这种方式常用于单片机外围接口电路的扩展。上一页 下一页返回o2.方式1o方式1时,串行口工作于异步通信方式,数据帧格式为8位数据,1个起始位、1个停止位共10位。其传输波特率是可变的,和T1的溢出率以及SMOD有关。发送数据时,数据从TXD输出,当数据送入SBUF后立即自动开始发送。发送完一帧数据后,自动将TI置1。接收数据时,需要将REN置1,允许接收,串行口一旦检测到RXD从1变到0时,就确认是起始位,开始接收一帧数据。当RI=0且停止位为1或SM2=0时,停止位进入到RB8,将RI置1,

12、否则信息将丢失。因此在方式1接收时,应该先用软件将RI或SM2清零。o方式2和方式3的差别仅仅在于波特率不一样,方式2的波特率是固定的,波特率为2SMOD/64(fosc);方式3的波特率是可变的,波特率2SMOD/32(T1的溢出率)。上一页 下一页返回o串行口工作方式2或方式3时,则被定义为9位的异步通信接口。传送一帧信息为11位,其中1位起始位,8位数据位(从低位至高位),1位是附加的可程控为1或0的第9位数据,1位停止位。o五、AT89S51串行口的波特率o下面分别讨论串行口4种方式的波特率o方式0,方式0的波特率为fosc/12,固定不变。o方式2,波特率为o方式1和方式3,波特率为

13、 oT1溢出率指的是定时器T1每秒溢出的次数。当T1作波特率发生器时,通常工作在方式2,此时应禁止T1中断从而避免溢出o产生不必要的中断。假设初值为X,则溢出周期为 ,o则溢出率为 。上一页 下一页返回o8.1.3 串行通信的电平转换o单片机的典型的应用领域就是用于工业现场的测控系统。一般用单片机进行现场信息的检测处理,然后把检测到的数据通过串行通信的方式送给其他单片机或上位计算机。工业现场常见的标准接口有RS-232C接口、RS-422接口、RS-485接口以及20mA电流环等。在设计通信接口时要综合考虑选择何种标准接口、传输介质、电平转换问题。电平转换是由于单片机的串行口的信号电平为TTL

14、类型,和标准RS-232C、RS-485接口的电平特性不同,因此需要进行电平转换。上一页 下一页返回o一、RS-232C串行接口oRS-232C接口是使用最早、应用最广泛的一种异步通信总线标准。是美国电子工业协会(EIA)1962年公布,1969年最后修订而成的。它是目前PC与通信工业中应用最广泛的一种串行接口。它适合用于传输速率在020kb/s范围内的信号,最大传输距离为15m。如果需要更远的距离,可以加调制解调器。o因为串口RS-232C的电气标准不是TTL的+5V(逻辑1)和地(逻辑0),而是负逻辑,即逻辑“1”:-3-12V;逻辑“0”:+3+12V。所以AT89S51单片机引脚在和R

15、S-232C接口连接的时候,不能直接连,必须先进行电平转换。通常采用电平转换芯片MAX232就可以实现RS-232C/TTL电平之间电平的双向转换。转换电路如图所示。上一页 下一页返回上一页 下一页返回o8.1.3.2 RS-485接口oRS-232C串行接口在使用过程中有不少缺点:接口的信号电平较高,容易损坏接口电路芯片;与TTL电平不兼容,必须经过电平转换电路才能与TTL电路相连接;传输距离有限;传输的效率不高;抗噪能力较弱。o为解决这些缺点,后来相继出现了一些其他的接口,例如RS-485,其特点如下:o1.RS-485的电气特性:以两线间的电压差为+2V+6V表示逻辑“1”;以两线间的电

16、压差为-2V-6V表示逻辑“0”,接口信号电平比RS-232C降低了,不容易损坏接口电路的芯片。RS-485接口电平与TTL电平兼容,可方便地与TTL电路连接。o2.RS-485的数据传输速度较快,最高可达10Mbps。传输距离可达1.2km。o3.工作于半双工方式,抗噪能力较好。上一页 下一页返回o4.RS-485接口允许同时连接32个收发器,具有多站能力。o5.RS-485接口一般采用屏蔽双绞线传输,因为半双工网络只需2根线。RS-485连接器采用DB-9的9芯插头座。o单片机串行口和RS-485接口的电平转换只需要一片MAX485芯片就可以了。MAX485接口芯片是Maxim公司的一种R

17、S485芯片。采用单一电源+5 V工作,额定电流为300 A,采用半双工通讯方式。它可以将TTL电平转换为RS485电平。下图为单片机与RS-485接口的转换电路。上一页 下一页返回上一页 下一页返回o8.1.4 串行口应用o串行口通信除了必要的硬件电路之外,还包括应用软件。通信软件的编写不仅与通信接口电路的组成有关,而且和通信双方的通信协议也有着密切的关系。因此,要根据具体应用的条件与要求进行串行通信程序的编制。下面举例说明51单片机串行口不同方式下的编程。o一、方式0的应用o串行口方式0为移位寄存器输入输出方式,74LS164是串入并出的8位移位寄存器,可以用来扩展并口。数据从RXD串行输

18、出,TXD输出移位脉冲(注意这2个引脚的使用,和其它工作方式不同)。当一个数据写入串行口发送缓冲器时(SBUF),串行口即将8位数据以fosc/12的固定波特率从RXD引脚输出,低位在先。发完8位数据置“1”中断标志位TI。本例题扩展一片74LS164实现扩展一个并口,外接一个LED数码管,编程使其轮流显示09十个数字,原理图如图所示。上一页 下一页返回上一页 下一页返回o对应的C51源程序如下:o#includeotypedef unsigned char u8;otypedef unsigned int u16;ou8 code Numbercode=0 xc0,0 xF9,0 xA4,0

19、 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;o/*延时函数*/ovoid Delay()oo u16 j,k;o for(j=600;j0;j-)o for(k=255;k0;k-);o上一页 下一页返回o/*主函数*/ovoid main()oo u8 i=0;o SCON=0;o while(1)o o SBUF=Numbercodei;o while(TI=0);/等待发送结束o TI=0;o Delay();o i+;o if(i=10)i=0;o o上一页 下一页返回o本题对应的汇编源程序为:oORG 0000HoMOV R0,#00HoMOV

20、DPTR,#TABoMOV SCON,#00HoLOOP:MOV A,R0oMOVC A,A+DPTRoMOV SBUF,AoWAIT:JBC TI,YANSHIoSJMP WAIToYANSHI:ACALL DELYoINC R0oCJNE R0,#0AH,LOOPoMOV R0,#00H上一页 下一页返回oSJMP LOOPoDELY:MOV R5,#08HoL1:MOV R6,#00HoL2:MOV R7,#00Ho DJNZ R7,$o DJNZ R6,L2o DJNZ R5,L1o REToTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H

21、,90H上一页 下一页返回o二、方式2的应用o例如:采用查询方式编写带奇偶校验的数据块发送和接收程序,若接收有错,将用户标志位F0置1。要求串行口工作于方式2,波特率为fosc/32,发送数据块存放在首址为TDATA的存储区内,字节数为n。接收缓冲区首址为RDATA。o发送参考程序如下:o ORG 0100Ho TDATA EQU 40Ho n EQU 10HoSTART:MOV SCON,#80H ;设定串口工作方式2o MOV PCON,#80H ;设置波特率加倍o MOV R0,#TDATA ;指向数据区首址o MOV R7,#n ;设定传送字节数上一页 下一页返回oTX:ACALL T

22、XSUB ;调一帧传送子程序o INC R0 ;为下一次取数作准备o DJNZ R7,TX ;判断是否传送结束,未完继续o SJMP$oTXSUB:MOV A,R0 ;开始传送数据o MOV C,PSW.0 ;置奇偶校验位到TB8o MOV TB8,Co MOV SBUF,A ;启动数据传送oTX1:JBC TI,TX2 ;查询是否传完o SJMP TX1oTX2:CLR TI ;结束清TI,为下一次作准备o RET oEND上一页 下一页返回o接收参考程序如下:o ORG 0100Ho RDATA EQU 40Ho n EQU 10HoSTART:MOV SCON,#90H ;方式2接收o

23、MOV PCON,#80H ;波特率加倍o MOV R1,#RDATA;数据块首址o MOV R7,#noRX:ACALL RXSUB;调接收子程序o INC R1;准备下一个数o DJNZ R7,RXo SJMP$上一页 下一页返回oRXSUB:JNB RI,$;查询等待o CLR RI ;清零,为下次接收作准备o MOV A,SBUF;启动接收o JNB PSW.0,RX1;P=0,转RX1o JNB RB8,RERR ;P=1,RB8=0,转出错处理o SJMP RX2oRX1:JB RB8,RERR;P=0,RB8=1,转出错处理oRX2:MOV R1,A;保存数据 o REToRER

24、R:SETB F0o RET上一页 下一页返回o任务任务8.2 单片机交通灯远程控制系统的设计与仿真单片机交通灯远程控制系统的设计与仿真o本任务中,设计一交通灯远程控制系统。控制要求如下:由PC机作为主控上位机,与下位机单片机进行串行通信,可进行紧急情况时的远程控制。单片机控制信号灯的正常或紧急情况下的显示。显示的时序图所示,循环显示。上一页 下一页返回o上位机PC和下位机单片机之间的通信协议为:有紧急情况时,主机发送命令字0 x11,从机收到0 x11后回复0 x22给主机,此时A、B双向均为红灯。解除紧急情况时,主机发送命令字0 x66,从机收到0 x66后回复0 x77给主机,此时A、B

25、方向回复正常显示。o8.2.1 硬件电路设计硬件电路设计o8.2.2虚拟串口驱动软件及串口调试软件的使用虚拟串口驱动软件及串口调试软件的使用o8.2.3 程序设计程序设计o8.2.4 综合仿真调试综合仿真调试 上一页 下一页返回o8.2.1 硬件电路设计硬件电路设计上一页 下一页返回o本电路中,用到了交通灯模型,可以非常逼真地显示交通信号,双向12个灯由P0.0P0.5来控制,实物电路中,PC用DB-9标准接口通过MAX232和单片机的串行口连接,MAX232的TIN和R1OUT分别接单片机的TXD和RXD。为了能够在没有串口的情况下仿真调试,电路中用了串口组件COMPIM。当由CPU或UAR

26、T软件生成的数字信号出现在PC物理COM接口时,它能缓冲所接收的数据,并将它们以数字信号的形式发送给PROTEUS仿真电路。如果没有物理COM,可使用虚拟串口,下面介绍虚拟串口的相关知识。COMPIM的设置如下图所示。上一页 下一页返回上一页 下一页返回o8.2.1 虚拟串口驱动软件及串口调试软件的使用虚拟串口驱动软件及串口调试软件的使用oVirtual Serial Port DriverV6.9(VSPD)就是一款虚拟串口驱动软件,安装并运行后,在下图所示的界面中的First port中选择COM3,在Second port中选择COM4,然后单击右侧的“Add pair”按钮,在左边的V

27、irtual Ports中立即会出现COM3/COM4,并且可以看到有蓝色的虚线将二者连接了起来。上一页 下一页返回o并可以在设备管理器中看到这两个虚拟串口。如下图所示。上一页 下一页返回o串口调试小助手1.3是一款经典的串口调试软件,无需安装,可直接运行。其界面如下图所示。这里端口选COM3波特率选9600,数据帧格式的设置应和COMPIM的设置相同。勾选“十六进制发送”和 “十六进制显示”。这样设置完之后,就可以在计算机上用串口小助手,利用虚拟串口COM3和COM4,仿真调试计算机和单片机的串行通信。上一页 下一页返回o8.2.3 程序设计程序设计o本项目对应的C51参考源程序为:o#in

28、cludeotypedef unsigned char u8;o/串口中断函数ovoid serial()interrupt 4oou8 i;oEA=0;oif(RI=1)ooRI=0;oif(SBUF=0 x11)上一页 下一页返回oSBUF=0 x22;owhile(!TI);oTI=0;oi=P0;oP0=0 x24;owhile(SBUF!=0 x66)oowhile(!RI);oRI=0;ooSBUF=0 x77;owhile(!TI);oTI=0;oP0=i;oEA=1;o上一页 下一页返回oelseooEA=1;oooo/延时0.5s函数ovoid Delay0_5s()oou8

29、 i;ofor(i=0;i10;i+)ooTH0=0 x3C;oTL0=0 xB0;oTR0=1;owhile(!TF0);oTF0=0;ooo/延时0.5128s函数ovoid Delay_ts(u8 t)oou8 i;ofor(i=0;it;i+)oDelay0_5s();oovoid main(void)oou8 k;oTMOD=0 x21;上一页 下一页返回oTH1=0 xFD;oTL1=0XFD;oTR0=1;oTR1=1;oSCON=0 x50;oPCON=0 x00;oEA=1;oES=1;owhile(1)ooP0=0 x21;oDelay_ts(20);ofor(k=0;k3

30、;k+)ooP0=0 x20;oDelay0_5s();oP0=0 x21;oDelay0_5s();ooP0=0 x22;oDelay_ts(4);oP0=0 x0C;oDelay_ts(30);ofor(k=0;k3;k+)ooP0=0 x04;oDelay0_5s();oP0=0 x0C;上一页 下一页返回oDelay0_5s();ooP0=0 x14;oDelay_ts(4);ooo8.2.4 综合仿真调试o在PROTEUS中运行仿真调试,可以看到A、B两个方向的红绿灯按事先定好的时序显示。此时,打开串口小助手1.3,在发送栏输入“11”,点“手动发送”按钮,则能收到单片机回应的“22”显示在接收区。同时,双向的红灯都亮起。直到在发送栏输入“66”,则收到单片机回应的“77”,同时,红绿灯的显示恢复正常。如下图所示。上一页 下一页返回上一页 下一页返回o本项目小结:本项目小结:围绕远程交通控制系统的设计,讲述了串行通信的相关知识以及89S51单片机的串行口,以及虚拟串口软件和串口调试软件的用法。上一页返回

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁