基于单片机的交通灯设计说明书文档格式.docx
《基于单片机的交通灯设计说明书文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯设计说明书文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
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线
双排针
(2)
CONN1
跳帽
2
104电容0.1uF
7
C2,5,6,7,8,9,11
LED灯
D1
电阻2K
R2
最小系统部分
40针座
U1
STC89C52
晶振12MHz
Y1
电容20pF
C3,C4
复位键
SW_RST
电阻10K
R1
蜂鸣器
LS1+
三极管9015
9
Q1~Q9
电阻330
R3
键盘显示、通信部分
16针座
U2
MAX232
单排针(5)
UART
按键
16
KEY1~KEY16
单排针(3)
SWITCH1
4位LED
DIGILED1,2
电阻4.7K
8
R14~R21
R6~R13
三、交通灯的软件设计
3.1交通灯程序
#include<
reg51.h>
#include<
intrins.h>
#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显示
S2=1;
//关S2显示
P0=Tab[*(point+2)];
S3=0;
//开S3显示
S3=1;
//关S3显示
P0=Tab[*(point+3)];
S4=0;
//开S4显示
S4=1;
//关S4显示
P0=Tab[*(point+4)];
S5=0;
S5=1;
P0=Tab[*(point+5)];
S6=0;
S6=1;
P0=Tab[*(point+6)];
S7=0;
S7=1;
P0=Tab[*(point+7)];
S8=0;
S8=1;
voiddelayAJ(uchara)
uchari;
while(a--)
{
125;
{
display(disData);
}
voidkey()
if(set==0)
delayAJ(10);
//消抖//消抖时间可根据实际情况设定
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;
{
up)
}
}
if(down==0)
fenduan1--;
if(fenduan1==-1)
fenduan1=99;
while(!
down)
if(sss%4==2)
fenduan2++;
if(fenduan2==100)
fenduan2=0;
fenduan2--;
if(fenduan2==-1)
fenduan2=99;
if(sss%4==3)
fenduan3++;
if(fenduan3==100)
fenduan3=0;
fenduan3--;
if(fenduan3==-1)
fenduan3=99;
voidkeydisplay()
bsecond=0;
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[6]=fenduan2/10;
disData[7]=fenduan2%10;
if(sss%4==3)
disData[3]=10;
disData[6]=fenduan3/10;
disData[7]=fenduan3%10;
voidxianshi()
second=bsecond/2;
if(second>
fenduan1+fenduan2+fenduan3+1)
if(second<
=fenduan1)
disData[1]=12;
disData[6]=(fenduan1-second)/10;
disData[7]=(fenduan1-second)%10;
if((fenduan1-second<
=3)&
&
(bsecond%2==0))
disData[1]=11;
elseif((second>
fenduan1)&
(second<
=fenduan2+fenduan1))
disData[6]=(fenduan1+fenduan2-second+1)/10;
disData[7]=(fenduan1+fenduan2-second+1)%10;
if((fenduan1+fenduan2-second+1<
fenduan2+fenduan1)&
=fenduan2+fenduan1+fenduan3))
disData[6]=(fenduan1+fenduan2+fenduan3-second+1)/10;
disData[7]=(fenduan1+fenduan2+fenduan3-second+1)%10;
if((fenduan1+fenduan2+fenduan3-second+1<
if(second>
voidmain()
TMOD|=0x01;
//T016位定时器
ET0=1;
TR0=1;
EA=1;
while
(1)
key();
if(sss%4==0)
xianshi();
else
keydisplay();
display(disData);
}
3.2程序流程图
四、课程设计总结
本次课程设计中,重新巩固了单片机理论课时,感觉到的内容很多,知识点很杂、很繁琐。
通过自己的努力也更进一步掌握了单片机的内容构造和工作原理,以及接外部电路的情况。
当然光有理论知识那只是“纸上谈兵”,还需实际动手去实践。
真正把所学的用到日常生活中,理论联系实际,做出实物模型。
这次单片机课程设计,我们设计的是简易十字路口交通灯设计,通过这次课程设计我感觉到要想做成功,必须花时间多做准备,查阅大量资料,每个过程都很繁琐,都要认真地分析每一步每一个模块要实现大的功能,然后分步进行编写调试,最后整合成在一起。
在这次课程设计中,让我感到过程决定结果,细节觉得成败。
过程很艰难,每个细节都要认真的分析。
通过本次课程设计,我们要对所做的事情有耐性,在编程的时候有困难,也可能变得不一定成功,所以要经过多次调试,分析,改正,反复去做;
认真虚心求教老师和同学。
经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。
五、指导教师评语
成绩指导教师签名