基于单片机的交通灯设计.docx
- 文档编号:18475804
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:18
- 大小:175.15KB
基于单片机的交通灯设计.docx
《基于单片机的交通灯设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯设计.docx(18页珍藏版)》请在冰点文库上搜索。
基于单片机的交通灯设计
郑州航空工业管理学院
单片机课程设计说明书
2014级专业班级
题目
学号
姓名
指导教师
二О一六年十二月十五日
一、
交通灯的基本原理
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
交通灯是城市交通的重要指挥系统,与人们的日常生活密切相关。
随着经济的快速发展,城市中的车辆逐渐增多,交通拥堵和堵塞现象日趋严重,引起交通事故频发等一系列问题,因此设计一个灵活、稳定、便捷的多功能交通灯控制系统具有必要性和现实性。
本次设计的意义在于通过对具体的控制系统的设计,掌握微机控制系统设计的一般方法和处理问题的思路,特别是一些常用的技术手段。
在实践设计过程中,积累设计经验,开拓思维空间,全面提高个人的综合能力。
本系统由单片机硬/软件系统,8位8段数码管和LED灯显示系统。
和电路控制电路等组成,较好的模拟了交通路面的控制。
倒计时电路主要是由双位共阴数码管和74HC573N驱动模块组成,控制信号通过单片机的端口P1口进行信号的传输。
倒计时电路负责的是显示红绿灯持续显示的时间。
当绿灯或者红灯持续显示时,数码管显示该状态的持续时间,在黄灯闪烁显示时,起到倒计时秒数的作用。
红绿灯功能电路主要是由各色的发光二极管和74HC573N驱动模块组成,控制信号跟数码管一样都是通过P1口进行传输。
红绿灯电路负责的是各个车行道和人行道通行状态的显示。
系统经初始化可以开始自动运行,数码管有倒计时显示功能,即
1、具有直行、左转、右转、停止四个指示灯;
2、指示灯有倒计时显示功能,直行+右转20秒,左转+右转10秒,停止+右转30秒,按此规律不断循环;
3、直行和左转灯灭掉前3秒能够闪烁提示(每秒两次);
4、能够调整直行、左转、停止指示灯的时间。
二、交通灯的硬件设计
本设计单片机主要是用于控制交通灯的演示系统,故只需要单片机最小系统即可完成。
此电路由单片机、时钟电路、电源、复位电路4个组成部分组成。
下图分别为单片机原理图、交通灯系统电路图。
图1单片机系统原理图
图2交通灯系统原理图
2.1复位电路
复位方式有多种,本设计采用按键复位。
接线图如图3复位电路,
在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效。
地址锁存信号ALE也为高电平。
在设定的定时时间内必须在RST引脚产生一个由高到低的电平变化,以清内部定时器.
图3复位电路图
2.2晶振电路
选取原则:
传统做法,但能够实现所需,即最简单也最是实用。
电容选取30pF,晶振为12MHz。
图4晶振电路图
2.3电源供电电路
供电电路由主电源和备用电源组成。
主电源主要是由变压器、6A整流桥、4个二极管,2个104pf电容,二个电解电容以及7805三端稳压管组成。
这个部分为系统提供主要的供电,输出电压为5V直流。
备用电源主要是由4位的5号电池盒组成。
这个部分在主电源断电时能够几乎瞬时的为系统提供电源,输出电压也是5V直流。
该电源直接接到单片机的电源端。
图5主电源和备用电源切换功能电路
2.4原件清单
原件名称
数量
焊接位置
电源部分
USB座
1
USB
USB线
1
双排针
(2)
1
CONN1
跳帽
2
104电容0.1uF
7
C2,5,6,7,8,9,11
LED灯
1
D1
电阻2K
1
R2
最小系统部分
40针座
1
U1
STC89C52
1
晶振12MHz
1
Y1
电容20pF
2
C3,C4
复位键
1
SW_RST
电阻10K
1
R1
蜂鸣器
1
LS1+
三极管9015
9
Q1~Q9
电阻330
1
R3
键盘显示、通信部分
16针座
1
U2
MAX232
1
单排针(5)
1
UART
按键
16
KEY1~KEY16
单排针(3)
1
SWITCH1
跳帽
1
4位LED
2
DIGILED1,2
电阻4.7K
8
R14~R21
电阻330
8
R6~R13
三、交通灯的软件设计
3.1交通灯程序
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
unsignedcharcodeTab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xce};
sbitup=P3^1;
sbitdown=P3^2;
sbitset=P3^3;
sbitS8=P2^0;
sbitS7=P2^1;
sbitS6=P2^2;
sbitS5=P2^3;
sbitS4=P2^4;
sbitS3=P2^5;
sbitS2=P2^6;
sbitS1=P2^7;
ucharfenduan1=20,fenduan2=10,fenduan3=3;
uchartimes=0;
ucharsecond=0;
ucharbsecond=0;
ucharsss=0;
uchardisData[8]={7,12,1,10,11,11,6,7};
voidkeydisplay();
voiddisplay();
voidDelay()
{
unsignedchari;
for(i=0;i<255;i++);
}
voidISR_Timer0(void)interrupt1
{
TH0=0x3c;
TL0=0xb0;
times++;
if(times==10)
{
bsecond++;
times=0;
}
}
voiddisplay(uchar*point)
{
P0=Tab[*(point)];
S1=0;//开S1显示
Delay();
S1=1;//关S1显示
P0=Tab[*(point+1)];
S2=0;//开S2显示
Delay();
S2=1;//关S2显示
P0=Tab[*(point+2)];
S3=0;//开S3显示
Delay();
S3=1;//关S3显示
P0=Tab[*(point+3)];
S4=0;//开S4显示
Delay();
S4=1;//关S4显示
P0=Tab[*(point+4)];
S5=0;//开S1显示
Delay();
S5=1;//关S1显示
P0=Tab[*(point+5)];
S6=0;//开S2显示
Delay();
S6=1;//关S2显示
P0=Tab[*(point+6)];
S7=0;//开S3显示
Delay();
S7=1;//关S3显示
P0=Tab[*(point+7)];
S8=0;//开S4显示
Delay();
S8=1;//关S4显示
}
voiddelayAJ(uchara)
{
uchari;
while(a--)
{
for(i=0;i<125;i++);
{
display(disData);
}
}
}
voidkey()
{
if(set==0)
{
delayAJ(10);//消抖//消抖时间可根据实际情况设定
if(set==0)
{
sss++;
delayAJ(10);
}
while(!
set)
{
delayAJ(10);
}
}
if(sss%4==1)
{
if(up==0)
{
delayAJ(10);
if(up==0)
{
fenduan1++;
if(fenduan1==100)
fenduan1=0;
{
while(!
up)
delayAJ(10);
}
}
}
if(down==0)
{
delayAJ(10);
if(down==0)
{
fenduan1--;
if(fenduan1==-1)
fenduan1=99;
}
while(!
down)
delayAJ(10);
}
}
if(sss%4==2)
{
if(up==0)
{
delayAJ(10);
if(up==0)
{
fenduan2++;
if(fenduan2==100)
fenduan2=0;
{
while(!
up)
delayAJ(10);
}
}
}
if(down==0)
{
delayAJ(10);
if(down==0)
{
fenduan2--;
if(fenduan2==-1)
fenduan2=99;
}
while(!
down)
delayAJ(10);
}
}
if(sss%4==3)
{
if(up==0)
{
delayAJ(10);
if(up==0)
{
fenduan3++;
if(fenduan3==100)
fenduan3=0;
{
while(!
up)
delayAJ(10);
}
}
}
if(down==0)
{
delayAJ(10);
if(down==0)
{
fenduan3--;
if(fenduan3==-1)
fenduan3=99;
}
while(!
down)
delayAJ(10);
}
}
}
voidkeydisplay()
{
bsecond=0;
if(sss%4==1)
{
disData[0]=11;
disData[2]=1;
disData[3]=11;
disData[6]=fenduan1/10;
disData[7]=fenduan1%10;
}
if(sss%4==2)
{
disData[0]=7;
disData[2]=11;
disData[3]=11;
disData[6]=fenduan2/10;
disData[7]=fenduan2%10;
}
if(sss%4==3)
{
disData[0]=11;
disData[2]=11;
disData[3]=10;
disData[6]=fenduan3/10;
disData[7]=fenduan3%10;
}
}
voidxianshi()
{
second=bsecond/2;
if(second>fenduan1+fenduan2+fenduan3+1)
bsecond=0;
if(second<=fenduan1)
{
disData[0]=11;
disData[1]=12;
disData[2]=1;
disData[3]=11;
disData[6]=(fenduan1-second)/10;
disData[7]=(fenduan1-second)%10;
if((fenduan1-second<=3)&&(bsecond%2==0))
{
disData[0]=11;
disData[1]=11;
disData[2]=11;
disData[3]=11;
}
}
elseif((second>fenduan1)&&(second<=fenduan2+fenduan1))
{
disData[0]=7;
disData[1]=12;
disData[2]=11;
disData[3]=11;
disData[6]=(fenduan1+fenduan2-second+1)/10;
disData[7]=(fenduan1+fenduan2-second+1)%10;
if((fenduan1+fenduan2-second+1<=3)&&(bsecond%2==0))
{
disData[0]=11;
disData[1]=11;
disData[2]=11;
disData[3]=11;
}
}
elseif((second>fenduan2+fenduan1)&&(second<=fenduan2+fenduan1+fenduan3))
{
disData[0]=11;
disData[1]=12;
disData[2]=11;
disData[3]=10;
disData[6]=(fenduan1+fenduan2+fenduan3-second+1)/10;disData[7]=(fenduan1+fenduan2+fenduan3-second+1)%10;
if((fenduan1+fenduan2+fenduan3-second+1<=3)&&(bsecond%2==0))
{
disData[0]=11;
disData[1]=11;
disData[2]=11;
disData[3]=11;
}
}
if(second>fenduan1+fenduan2+fenduan3+1)
bsecond=0;
}
voidmain()
{
TMOD|=0x01;//T016位定时器
TH0=0x3c;
TL0=0xb0;
ET0=1;
TR0=1;
EA=1;
while
(1)
{
key();
if(sss%4==0)
xianshi();
else
keydisplay();
display(disData);
}
}
3.2程序流程图
四、课程设计总结
本次课程设计中,重新巩固了单片机理论课时,感觉到的内容很多,知识点很杂、很繁琐。
通过自己的努力也更进一步掌握了单片机的内容构造和工作原理,以及接外部电路的情况。
当然光有理论知识那只是“纸上谈兵”,还需实际动手去实践。
真正把所学的用到日常生活中,理论联系实际,做出实物模型。
这次单片机课程设计,我们设计的是简易十字路口交通灯设计,通过这次课程设计我感觉到要想做成功,必须花时间多做准备,查阅大量资料,每个过程都很繁琐,都要认真地分析每一步每一个模块要实现大的功能,然后分步进行编写调试,最后整合成在一起。
在这次课程设计中,让我感到过程决定结果,细节觉得成败。
过程很艰难,每个细节都要认真的分析。
通过本次课程设计,我们要对所做的事情有耐性,在编程的时候有困难,也可能变得不一定成功,所以要经过多次调试,分析,改正,反复去做;认真虚心求教老师和同学。
经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。
五、指导教师评语
成绩指导教师签名
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 交通灯 设计