77范文网 - 专业文章范例文档资料分享平台

基于单片机的多种路口交通灯控制器的设计与实现 - 图文(4)

来源:网络收集 时间:2019-03-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

单片机电路主要完成的任务是控制红绿灯的规律转换,数码管倒计时的显示和中断延时控制。系统整体框图如图2-11所示:

输入接口 繁忙处理电电源电路 单片机控制电路 软件控制电路显示电路 复位电路

图2-11 系统结构图

2.3.1设置模块设计

本设计中,可以设置时间,由时间来控制交通灯亮和灭的状态。设置时间要进行进一步分析,在该程序段的基础上,合理的设置时间。

2.3.2显示模块设计

本设计要用数码管和二极管灯显示,其中数码管显示倒计时情况,二极管显示红绿灯的闪烁情况。 1)倒计时显示

该系统要求完成倒计时的功能。因只需显示数字,所以完全采用数码管显示,路口分别采用一个二位阴极数码管即可。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。数码管引脚如图2-12所示,显示8时,向数码管引脚接的单片机接口送入7FH,如图2-13所示:

14

图2-12 数码管引脚图 2-13数码管显示8

表2-8 数码管共阴字形码 显示字符 段符号dp,g ,e,d,c,b,a 0 1 2 3 4 00111111 00000110 01011011 01001111 01100110 3FH 06H 5BH 4FH 66H 5 6 7 8 9 共阴代码 显示字符 段符号dp,g f,e,d,c,b,a 01101101 01111101 00000111 01111111 01101111 6DH 7DH 07H 7FH 6FH 共阴代码 2)状态灯显示

该系统要求完成状态灯显示的功能。求于简单,把各个路口的红灯和黄灯设成直行和左拐两个通行方式所共有,也就是说,一个路口只需四个状态灯,一个直行通行的绿灯,一个左拐通行的绿灯,一个共有的红灯,一个共有的黄灯。发光二极管因其驱动电压低、功耗小、寿命长、可靠性高等优点广泛应用于显示电路中。 发光二极管具有单向导电性,红色和黄色一般开启电压在2V左右,绿色开启电压一般为2.2V,正向电流越大,发光越强。使用时,应特别注意不要超过最大功耗、最大正向电流和反向击穿电压等极限参数。 本设计显示模块调用的部分主要程序如下:

void

Display(void) {

Delay(2); Time_Show_LED2=0; Time_Show_LED2=1;

}

15

char h,l; P0=table[h];

h=Time_CA/10; l=Time_CA;

DB_LED2=1; Delay(2); DB_LED2=0;

P0=table[l];

CA_LED2=1; Delay(2); CA_LED2=0;

P0=table[h];

DB_LED1=1; Delay(2); DB_LED1=0; h= CA1/10; l= CA1; P0=table[l]; Time_Show_LED1=1; Delay(2);

P0=table[h];

CA_LED1=1; Delay(2); CA_LED1=0;

h=Time_DB/10; l=Time_DB; P0=table[l];

Time_Show_LED1=0;

P0=table[h]; }

2.3.3复位模块设计

单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。

2.3.4紧急处理模块设计

紧急情况处理时,我们采用扩展I/O 口方法,在外部中断P32口上扩展三个中断口,分别连接三个按钮。该方案的优点是:使用灵活,并且可提供较多I/O口,节省了AT89C51的中断口资源。

本设计中紧急处理模块调用的部分主要程序如下:

void

{

EX0=0; //关中断

EXINT0(void)interrupt 0 using 1

if(CA1>=100)

{

CA1=99; DB1=79; } }

if(Reduces_Button==0)

16

if(Add_Button==0) //时间加 { CA1+=5; DB1+=5;

//时间减 { CA1-=5; DB1-=5;

if(CA1<=40) {

CA1=40;

//测试按键是否按下,按下为繁忙状态 {

CA1=45;

DB1=30;

CAL1=14; DBL1=14;

Special_LED=0;//关特殊信号灯 Busy_LED=1;//开繁忙信号灯

DB1=20; }

}

}

if(Special_Btton==0)

//测试按键是否按下,按下为特殊状态 {

CA1=75;

if(Nomor_Button==0)

//测试按键是否按下,按下为正常状态 { CA1=60; DB1=40;

CAL1=19; DBL1=19;

Busy_LED=0;//关繁忙信号灯 Special_LED =0;//关特殊信号灯

DB1=55;

CAL1=19; DBL1=19;

Busy_LED=0;//关繁忙信号灯

Special_LED =1;//开特殊信号灯 }

} if(Busy_Btton==0)

EX0=1;//开中断

}

2.4模块实现

本设计由四个模块组成。下面是各模块的实现情况。

2.4.1 设置模块的实现

本设计中我们设置时间长度,由此设置时间长度来调整灯亮和灭的时间长度。利用定时器中断设置, TH0=TH1,(65536-50000)/256,即每0.05秒中断一次。每到第20次中断即过了20*0.05秒=1秒时,使时间的计数值减1,便实现了倒计时的功能。黄灯闪烁同样可以利用定时器中断。每到第10次中断即过了10*0.05秒=0.5秒时,使黄灯标志位反置,即可让黄灯1秒闪烁一次。

17

40S 5S 60S 5S

AC道 红灯亮 黄灯亮 绿灯亮 黄灯亮 BD道 绿灯亮 黄灯亮 红灯亮 黄灯亮

2.4.2 显示模块的实现

本设计中显示模块实现要以数码管和发光二极管实现。

1)以下是发光二极管红灯亮时的图,此时车辆禁止通行。

图2-14 发光二极管红灯亮时的图

2)以下是发光二极管绿灯亮时的图,此时车辆允许通行。

图2-15 发二极管绿灯亮时的图

3)以下是发光二极管黄灯闪烁时的图,此时提醒人们状态灯即将要切换。

图2-16 发光二极管黄灯亮时的图

4)以下是人行道状态指示灯,绿灯亮时允许行人通过。

18

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的多种路口交通灯控制器的设计与实现 - 图文(4)在线全文阅读。

基于单片机的多种路口交通灯控制器的设计与实现 - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/521386.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: