【《基于STM32单片机的交通控制系统设计》11000字(论文)】_第1页
已阅读1页,还剩28页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

②复位电路电容在引脚上部有些地方是要接高电平,电阻在下接地。图3-3复位电路图因为采集到的信号为毫伏级不便于处理,因此要对其进行放大处理。(仪表前级放大电路INA128如图3-4所示)。图3-4INA128仪表前级放大电路高频放大滤波电路不仅可以对外围的信号噪声进行放大的同时还可以能够有效抑制一些外围噪声的信号,如果要考虑不受到放大电路的相互之间的干扰和实际工作所处的环境,需要在信号放大之后再另外加一个低通滤波器,滤除其他的外部噪声声音。因此本次设计采用巴特沃兹低通滤波器如图3-5所示。图3-5巴特沃兹低通滤波器滤波脉动电路设计是尽可能多地减小直流输入电压成分中的输出交流电压成分,滤波集成电路处理如图3-6所示。图3-6滤波电路处理3.4显示系统3.4.1LED显示LED利用发光二极管来显示不同颜色的信号灯,如图3-7所示。图3-7LED灯3.4.2数码管显示数码管发光器件是一种全新的半导体,数码管可以利用线性发光数码控制的元器件,其中一个的基本设计通常被人们认为是一个可以用于发光管的数码控制的二极管。数码管可以根据公共阴极的两段数据来进行阴极划分分别为普通版的七段光电发光发射数码管和普通八段光电发光发射数码管,这个数码管相当于之前老板的数码管多一个共阴极数码管和二极管单元连接电路;共阳极光电发光数码管的主要用途是种发光技术并且泛指所有的共阳极数码管和二极管的公共极和阳极都必须可以连接到一起而不是随便组合在一起来就可以形成公共阳极(com)的共阳极数码管,共阳极光电数码管实际上的应用中通常都会被我们处理时应将公共极和com之间都可以连接起来到+5v。图3-8数码管显示3.5信号显示驱动电路三极管电流放大器的作用元件是通过小功率电流来控制大功率电流的晶体三极管,它是一种全新的电流驱动元件。图3-9三极管电路图 因为集电区和发射基区之间连接的被简称为PN集,因为集电区的集中放电基区地域与发射基区之间所连接的简称为PN集。所以我们在设计中经常性的看到使用三极管的输入电流转换成放大控制,通过将输入电阻电流转换转化为直流电压差来进行电流放大。三极管元件是一种能对电流发射信号进行放大的电路元件,它一般具有三个极,分别被人们称为集成的电极电流c,基极电流b,发射极e。它被依次划分分别为NPN和NP两种。我们现在只能简单地就以一个NPN三极电导管的两个共发射极管和放大输出电路来作为一个例子来说明三极电导管的共发放大输出电路。图3-10三极管放大电路原理图下面的针对部件设计进行性能分析只针对一个NPN型碳化硅三极晶体管。如上述操作流程就如图3-10所示,我们称为集中电子基极b的点到集中电子发射极e的两个发射电流分别叫做称作称为集中基发射极e的两个电流分为a和b或ib;将从称为集中基的发电子基极e的b和c两个发射电流到基极到集中电子发射极e的两个发射电流分别称为集中基的发电子基极e的两个电流分为a和b和ic。3.6键盘输入电路在用数字单片机技术进行数字键盘语音信号输入处理时,涉及一个重要的操作步骤,即如何消除键盘上的抖动。这里的震荡性抖动指的是机械震荡。键盘上的关键部位无按压,是电平失调的正常情况。所以当我们在按键的时候,我们不能通过注意来避免它。这种水平脉冲性的时钟抖动通常只会发生在10~200毫秒之间,这种非常稳定的小型电机水平脉冲性时钟抖动及其持续时间对于普通的电机人们来说不会过得太快,但是对于电平脉冲性的时钟抖动频率仅仅为几毫微秒这个等级的小型单片硅电机来说却是很缓慢。硬件处理减少系统抖动就是通过利用集成电路硬件中的某个组成部分进行处理减少抖动。软件所需要我们做的不是尽量减少键盘抖动,而是我们要尽量避免软件减少键盘抖动某个部分上的时间,然后在软件处理它的整个过程中,键盘抖动才能始终保持稳定。因此我们可以选择直接使用这个软件包来减少音频抖动。其中需要实现的简单办法之一就是首先需要搜寻系统密钥。当检测仪器内部出现较大静电或超高压或其他低稳压电平时,立即停止反应按有关规定暂时反应延迟10~200毫秒,以此更便于及时避免较大震荡(其中最常见的一种经典震荡数值为20毫秒)。在每次读取延时之后,再次从一个新的i/o端口中重新开始读取一个延时的数值。如果此次的最大时间函数值大于是则此次应该最大函数的值是1,即如果低电平持续时间函数小于10~200毫秒,则可以认为此次是干扰信号。当系统读取数据值为0时,表示系统按下锁定键并开始调用执行相应的数据处理程序。硬件集成电路如下图图3-11所示。图3-11键盘控制电路3.7蜂鸣器电路设计蜂鸣器是具有提示和报警的功能,本设计中,蜂鸣器在其中起到的作用属于提示功能,如果在红灯的情况下,如果检测到有车流入或者人行道路上有行人通过。那么蜂鸣器就会发出滴的一声带动语音播报系统,这样语音播报就会发出禁止通行的这样的一个命令。通过图3-13和图3-14来分析蜂鸣器,蜂鸣器长脚是正极,短脚是负极。蜂鸣器的主要周期工作方式原理之一应该就是一种采用机器输出信号端口端来进行信号驱动的工作方式,本文的设计方案中的一个就是蜂鸣器的周期工作频率宽度应该必须是200mhz,所以机器输出一个周期宽度应该必须是500μs,所以一个输出周期内的一个高电平和一个低电平固定时间内的宽度都宽率应该必须是为250μs,那么机器输出的一个周期就宽度必须是10。。图3-12蜂鸣器元器件直流电源不需要驱动交流信号,将驱动电平输入到drivesport中,通过三倍频放大电流就可以听到夏天的声音。这很简单。介绍了由1/2负载的第二波信号驱动的两种总线驱动方法。它们由PWM输出端口直接启动。另一个是直接的PWM输出端口,通过I/O序列的旋转平面产生夏季驱动波,直接控制PWM输出,并将PWM输出本身结合起来形成一定的广播。通过定义PWM端口输出,可以定义空间比例和空间比例。当手势产生自己想要的频率波形时,当PWM输出有效时,PWM输出可以产生频率波。图3-13蜂鸣器电路图3.8语音播报电路基于STM32交通控制系统本设计中语音播报功能主要具体体现在在等待红绿灯情况下,如果是红灯语音就会播报禁止通行,请勿通行等语音。要是绿灯的话,语音就会播放可以通行。这其中也是用到了语音合成功能,将红灯或者绿灯显示出来,人流情况反馈到语音系统中,由串口通信与语音合成模块进行通信,传输到语音播报中,内容就通过语音的形势播放出来。本设计的语音播报模块是WT588,WT588D的具体内容,语音播报电路图如图3-14所示。软件设置:一线串口控制模式。控制输入端口的引脚定义:p03为DATA的一个输入端引脚,由MCU向WT588D进行端口控制。p00~p02可以直接把它作为一个滑动按键。图3-14语音播报电路3.9定时器电路本设计的定时器的功能主要是定时红灯时间几秒和绿灯时间几秒,主要用于固定配时,通常是两位数,最长显示99,可以同步显示红灯,绿灯,黄灯时间。这个时间倒计时让驾驶员从通过和禁止两者之间选择一个,这让驾驶员和行人都有选择机会,他们普遍喜欢选择有倒计时的显示方式。这次我们所需要使用的仪器是一个TIM1和一个TIM8高级自动定时器,是16位同时运行可以自动进行一个向上或者甚至是向下的自动计数高级定时器,其中功能如图3-15所示。定时器中让驾驶员和人们有效的通行,对交通出行到了极大的作用。图3-15定时器电路图3.10GPRS通信电路GPRS有通信波特率,接入网关,移动终端口等功能,这次设计中的GPRS通信主要是测量车辆在红灯禁止通行情况下,车辆距离人行横道的距离,以防止发生车祸。如果是正常距离,就不会发出信息,少于6米距离的话,通信电路发出信息,最后语音播报电路提示驾驶员,保持安全距离,防止发生交通事故。具体通信电路的电路图如3-16所示。图3-16通信电路电路图4系统软件程序的设计4.1程序主体设计全部抖动控制程序实际上可细分为若干功能模块:抖动键盘状态设置抖动处理程序,状态红绿灯抖动控制处理程序,LED状态显示处理程序,消失或抖动状态延时处理程序,第二,对延迟调试状态的判断和编辑,对紧急停止位置或非法停车状态的判断和处理,停止控制业务的编辑程序,信号自动系数和信号信号自动适合过程,整个软件分为两部分,密钥管理器和50ms扫描仪。流程图如图4-1所示。定义状态数组设置字型码和字位码,完成显示宏定义初始化外部中断定义状态数组设置字型码和字位码,完成显示宏定义初始化外部中断 I/O初始化I/O初始化返回while(1)函数进入while(1)循环定义字位码函数返回while(1)函数进入while(1)循环定义字位码函数定义共阴极字型编码表定义共阴极字型编码表进入主函数main()进入主函数main()调用显示控制函数statusdis()调用显示控制函数statusdis()定义函数变量并初始化定义函数变量并初始化定时器0初始化定时器0初始化调用dissmg()函数调用dissmg()函数图4-1系统总的流程图4.2子程序模块设计本次设计的远程控制主要是通过STM32系统调用远程中断的命令来实现远程控制。独立控制键盘的识别方法我设计的是通过利用一个单片极上的i/o输出口的按状态来判断按键位置是否被程序控制。通常意义上说开关按键的其中一端已经接地,另一端就可以连接到接地的那个i/o端口。在应用程序运行开始时,i/o输入口已经自动变成高级。正常使用下,当按键没有被手动按动时,输入输出两个端口就会自动保护高层。当按下一个键时,输入输出端口和地面的短路会让输入输出这两个端口处于低电平状态。通过下拉电阻,我们可以使单片机的下拉电阻中的i/o输入输出两个端口一直保持在高水平状态下。INT0INT1INT0INT1保护现场保护现场保护现场保护现场红灯全亮维持10S红灯全亮维持10S方程式控制显示方程式控制显示恢复现场恢复现场恢复现场恢复现场中断返回中断返回中断返回中断返回图4-2中断子程序中断处理程序主要是控制4个数码管输入的文字数据处理程序及各个中断状态下的数字信号中断处理程序组成的。该中断过程的具体工作原理流程基本框图结构如图4-3所示。定义1s定时中断入口定义1s定时中断入口启动定时器中断启动定时器中断设置字型码和学位码,设置字型码和学位码,完成数码管计时初始化定时器0初始化定时器0关闭定时器关闭定时器计数变量自加1计数变量自加1图4-3定时中断流程图定时中断服务程序在系统中的函数如下:voidint_t0()interrupt1using1{TR0=0;time++;tc++;if(tc>=3){tc=0;} if(time==100){waittime--;}elseif(time==200){waittime--;sec--;time=0;shu0=sec%10;shu1=sec/10;}TH0=0xee;TL0=0x00;if(tc==0){smdis=md[shu0];weishuang0=0;weishuang1=1;weishuang2=1;}elseif(tc==1){smdis=md[shu1];weishuang0=1;weishuang1=0;weishuang2=1;}elseif(tc==2){smdis=md[shu2];weishuang0=1;weishuang1=1;weishuang2=0;} //if(tc>=3){tc=0;}TR0=1;}4.3其他部分模块程序4.3.1按键程序按键在程序中一直进行的是行列扫描,当有按键按下的时候,单片机通过对IO高低电平进行判断,从而判断出是那个按键然后执行按键对应的功能,我们在按键中设置了交通状态阈值加键、减键,按键程序如下所示。if(GPIO_KEY!=0x0f){delayus(1000);if(GPIO_KEY!=0x0f)GPIO_KEY=0X0F;switch(GPIO_KEY){case(0X07):KeyValue=0;break;case(0X0b):KeyValue=1;break;case(0X0d):KeyValue=2;break;case(0X0e):KeyValue=3;break;}GPIO_KEY=0XF0;switch(GPIO_KEY){case(0X70);KeyValue=KeyValue;break;case(0Xb0):KeyValue=KeyValue+4;break;case(0Xd0):KeyValue=KeyValue+8;break;case(0Xe0): KeyValue=KeyValue+12;break;}while((a<50)&&(GPIO_KEY!=0xf0)) {delayus(1000);a++;}}returnKey[KeyValue];}按键流程图如4-4所示:南北,东西换方向开始南北,东西换方向开始南北亮绿灯,东西亮红灯系统初始化南北亮绿灯,东西亮红灯系统初始化NY调用程序按键NY调用程序按键扫描键盘扫描键盘显示程序显示程序显示程序显示程序南北绿灯,东西红灯,绿灯变红灯扫描键盘南北绿灯,东西红灯,绿灯变红灯扫描键盘NY南北可行,东西禁行调用程序按键 NY南北可行,东西禁行调用程序按键图4-4按键流程图4.3.2通信程序单片机把处理过后的交通控制状态,在细分为高八位和低八位两种数据。把高八位和低八位两种数据分别储存到所要利用协议发送的数组里面,然后我们根据程序中的标记位来进行判断是否接收到了上位机要求发送数据的命令,如果接收到了上位机要发送数据的命令。通信程序如下所示。if(RX_GPRS_State==1){if((RX_GPRS_BUF[0]==0x01)&&(RX_GPRS_BUF[1]==0x03)){GPRS_SEND_BUF[7]=CRC_Check(GPRS_SEND_BUF,7);GPRS_SEND_BUF[8]=CRC_Check(GPRS_SEND_BUF,7)>>8;USART3_Send_GPRS(GPRS_SEND_BUF,9);}RX_GPRS_State=0;memset(RX_GPRS_BUF,0,20);}4.3.3蜂鸣器报警程序报警函数程序如下所示。在蜂鸣器报警程序中要根据三极管的极性来合理设置引脚口的状态是1还是0,这样就能控制蜂鸣器的状态。当设置初始为0时,蜂鸣器响,之后延时,那么蜂鸣器发出的警报就会持续一段时间。延时报警完将其状态再次编成1,便能让其停止报警。voidbeeps(){beep=0;delay_ms(10);beep=1;}蜂鸣器流程图如图4-5所示关中断关中断保护现场保护现场设置定时器初值设置定时器初值小于50次/分钟小于50次/分钟YYNNY大于200次/分钟Y大于200次/分钟NN计数器加1计数器加1蜂鸣器发提示音蜂鸣器发提示音恢复现场恢复现场返回返回图4-5蜂鸣器流程图4.3.4定时器程序通过一个16位的寄存器,来设置z1,z0,z23个定时器。通过内部定时器来控制时间,计算周期,定时器程序如下。voidint_t0()interrupt1using1{TR0=0;time++;tc++;if(tc>=3){tc=0;} if(time==100){waittime--;}elseif(time==200){waittime--;sec--;time=0;shu0=sec%10;shu1=sec/10;}4.3.5语音播报程序voidSend_threelines(u8addr){u8i; if(VBUSY==1) { VCS=0; for(i=0;i<8;i++) { VSCL=0; if(addr&0x01) { VSDA=1; } else VSDA=0; addr>>=1; VSCL=1; } VCS=1; }}语音播报流程图如图4-6所示。开始开始没人初始化没人初始化结束判断是否有人,如果有人结束判断是否有人,如果有人语音播报语音播报图4-6语音播报流程图4.4系统通信协议设计4.4.1通信协议实现原理我们要通过STM32单片机的串口来判断串口是否需要数据的接收,其次我们通过状态来判断数据有没有被接收完成。如果接收完数据,那么我们就计算校验码,然后通过STM32单片机判断接收到的数据包是否符合CRC校验的规则,如果符合批准,那么就可以把接收的数据利用红外线或者GPRS无线通信模块发送给上位管理系统。通信流程图如图4-7所示。N开始是否接收完数据N开始是否接收完数据NY数据包是否符合crc校验规则NY数据包是否符合crc校验规则Y计算校验码Y计算校验码确定数据管理包给上位机确定数据管理包给上位机Y数据包发给上位机Y数据包发给上位机N分析功能码N分析功能码按功能处理数据按功能处理数据结束处理结束处理图4-7通信流程图4.4.2通信协议的简介Modbus通信协议是单片机设计必须使用的通信协议,我们的初衷是在解决不同的程序设计和逻辑控制器之间的串行通信。协议通常是多个协议形式开始运行的,这样可以让新的模块机能够与是一个的主机通信。通过这个网络协议,控制器就可以能够直接实现通信的网络功能,其他通信设备与这个控制器之间可以利用网络协议进行相互通信。如果我们需要一个四位字节的编码数据被转换成一个ascii位编码的传输形式,然后再分别进行传输高4位和低4位,这模式就是传输ascii码的模式,而asrtu模式则以十六位二进制四位字符的编码形式进行传输。如表4-1所示。表4-1RTU模式的数据帧格式AddressFunctionDataCheck8-Bits8-BitsNx8-Bits16-Bits5系统调试5.1焊接调试准备好本设计所需要的元器件和电烙铁,对比自己画的原理图,第一电路板的焊接。我们要将插排焊接上去,第二要焊接单片机最小系统的晶振和复位电路。确定好液晶显示屏位置,将上拉电阻焊接上去,第三通过导线连接显示屏。后面分别焊接按键模块,电源电路。第四用导线将各个模块按照电路图连接起来,确保没有出现短路现象。STM32单片机用烧录器将编译好的软件烧录进去,第五插入插排上。开启5V直流电源,按下按钮查看LCD是否正常。正常标记后,指示电路是否正常。查看其他传感器是否正常工作,以及输出是否存在。5.2功能调试单片机焊接测试没问题后,进行功能调试,测试软件是否正确。我们要先给单片机重新上电,这是液晶屏第一进行初始化操作,液晶屏上应该出现“INIT”,这一步没问题后,接测试交灯控制系统功能。如图5-1所示。图5-1实物显示图在本次设计中,因为一些原因没有加上液晶显示屏,我通过语音和数码管来代替了液晶显示这一功能,显示屏上显示的内容,进其转化为语音播报,这样一来功能会有所下降,不过是另一种形式显示出来。结束语我所设计的基于STM32的交通控制系统,主要使用了STM32单片机芯片。利用这个STM32以及它的外围接口电路来组成了整个硬件电路,靠着自己编写程序代码这样来实现自己需要的功能。毕业设计的思路和步骤就是凭借AD21软件在其中画的元器件和原理图然后。然后买元器件和STM32芯片进行焊接,其次是通过Keil5软件进行编写程序,然后通过以前实训上课用的烧录机将程序传输到芯片上,这样可以使整个硬件和自己的想法可以实现。在本次毕业设计中我认为最重要的部分是程序的编写,因为程序的完成才能让实物运行起来,如果程序不能编写好,那么毕业设计就不可能完成,所以程序是重中之重。在编写程序的过程中也遇到了很多困难,比如程序的编写错误和各种小错误,不过在多次的失败的教训中慢慢的成长起来,慢慢的程序问题就全部解决了。显示控制电路的开发设计首先利用lcd显示技术完成,系统各应用模块的硬件功能独立,配置合理。即使单片机各个硬件模块的功能能够独立、直接地运行,用户也可以直接运行。硬件测试可以通过等单片机接口进行,为不同硬件类型系统用户的实际计算机硬件选型和实际测试使用提供了

温馨提示

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

评论

0/150

提交评论