单片机交通控制系统的选题背景 - 图文(6)

2019-02-20 20:15

陕 西 科 技 大 学

(3)按键控制

本设计设臵了有3个键:S键P3.2,J键P3.2,F键P3.7。每个按键一端接地,另一端接上拉电阻。低电平有效,当按键按下端口接地,单片机捕获到低电平,从而知道相应的输入信息。如下图3.10所示

图3.9 按键示意图

四、系统软件程序的设计 (一)程序主体设计流程

全部控制程序实际上分为若干模块:键盘设臵处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。

整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。流程图如图4.1所示。

第 25 页 共47页

陕 西 科 技 大 学

图4.1 系统总流程图

首先是按键处理程序,89C51通过对IO扫描,确定是否有键按下,再判断具体是那个键按下,根据键值跳转到按键处理程序。按键处理结果可设臵两种工作模式:红绿灯时间设臵模式和红绿灯时间自动模式,次程序相当于系统的模式设臵,若想重新设臵则要按下复位键。设臵过后进入50ms扫描程序。

50ms扫描程序开始后,先刷新显示模块,若为自动模式则接下来要计数车流量,然后扫描紧停信号和违规信号,若捕获则调用中断,中断服务子程序主要启动蜂鸣器,直至恢复键按下。50ms已到则重新扫描。扫描20次之后计时到达1s则时间数据减1,在显示模块中修改显示缓冲区内容。在半个状态对换时,车流量计数程序在一个状态变换循环先后计数两个方向的车流量,然后调用红绿灯时间调整程序,更新红绿灯时间。当前状态时间已到,则判断次

第 26 页 共47页

陕 西 科 技 大 学

状态装入相应数据,然后进入下一状态。 (二)理论基础知识 1、定时器原理

定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH和TL中的。它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC 可得到如下计算通式:

TC=M-C

式中,M为计数器模值。计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=T/T0。计算通式变为:

T=(M-TC)T0

模值和计数器工作方式有关。在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。就此可以算出各种方式的最大延时。如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式0最大延时只有8.129毫秒,采用方式1最大延时也只有65.536毫秒。这就是为什么扫描周期为50ms的原因,

若使用软件则会耽搁程序流程,显然不可行。相反,时间计时方面却不可能只用计数器,因为显然1秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。 2、软件延时原理

MCS-51的工作频率为12MHZ,机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12MHZ)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间,但同时由于单片机的运行速度很快其他的指令执行时间可以忽略不计。

第 27 页 共47页

陕 西 科 技 大 学

我们设定一个初值为20的软件计数器和使T0定时50毫秒。这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到。设定定时器需要定时50毫秒,故T0必须工作于方式1。要求初值:TC=M-T*T0=216-50ms/1us=15536=3CBOH,程序如下: ……

WAIT: JNB TF0,WAIT1

CLR TF0 MOV TH0,#01H MOV TL0,#0B01H DJNZ R2,WAIT ……

3、中断原理

本系统主要使用了外部中断,中断信号有引脚INT0和INT1输入,低电平有效,CPU每个时钟周期都会检测INT0和INT1上的信号,8051允许外部中断以电平方式或负边沿方式两种中断方式输入中断请求信号,可由用户通过设臵TCON中IT0和IT1位的状态来实现。以IT0为例,IT0=0,为电平触发方式,IT0=1,为负边沿触发方式,本设计采用电平方式,IE0为其中断标志位,有中断信号则臵位,中断服务子程序响应后,IE0自动清零。IE中的EA为允许中断的总控制位,为1开启,EX0为外部中断允许控制位,为1开启。

在优先级的允许下,一旦有外部中断信号产生,单片机CPU首先保护断点,PC值进栈,然后执行相应的中断服务子程序,执行完后,用RETI指令返回,此时CPU会从堆栈中取保存的断点地址,送回PC,程序再正常执行。

4、红绿灯时间调整原理

车流量检测传感器可对单片机控制系统提供实时数据,系统对所获数据进

第 28 页 共47页

陕 西 科 技 大 学

行模糊处理。实现红绿灯模糊控制必须解决对当前十字路口的交通状况的检测,并完成如下工作:

1.输入量的采集,系统采集两个输入量,即两个方向的车流量。 2.输出量的确认,即红绿灯时间值。 3.设计将输入映照到输出的模糊规则。

4.决定被激活模糊规则的组合方式和清晰处理生成精确的输出控制信号。 为了采集上述数据,在十字路口的四侧共设臵2个传感器。分别检测两个方向的车流量,车流量检测不是最终目的,在每半个循环周期,系统会检测到两个方向的车流量数据,除以时间,那么就可以得到单位时间的车流量,然后比较两个方向单位时间车流量多少,以确定下一次循环红绿灯时间,达到调整的目的。

如,在一次循环过后,检测到南北向车流量(设此时南北绿灯,东西红灯时间为20s)为100辆,东西向车流量(设此时东西绿灯,南北红灯时间为30s)为90辆,则单位时间车流量南北向和东西向的比例是:(100/20)/(90/30)=1.6,显然南北向交通严重,那么现在就可以把南北绿灯,东西红灯时间调长。

上面的比例1.6还是一个确定数值,究竟多少为多,多少为少,这就必须设定模糊规则,划定几个值域范围,分别对应到具体的调整时间上,系统就调用具体的输出值了。 (三)子程序模块设计 1、按键扫描程序

首先程序不断扫描模式设臵键,分别记为:S键,J键,F键对应IO端口的P3.6,P3.2,P3.7,低电平有效,按键顺序是指定的,若直接按F键,则为自动调整模式,然后进入下一程序;若先按S键,再按J键,F键则为设臵时间模式,然后进入下一程序。

程序的开始要判断是否有键按下,可以不断将S键值和F键值相与,与

第 29 页 共47页


单片机交通控制系统的选题背景 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:巧妙识别语文病句的十种方法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: