XXXXXX毕业设计
谢辞
在即将结束本文,完成毕业设计的时刻,我要向所有在我毕业设计阶段乃至我大学帮助过我的老师和同学致以深深的谢意,感谢他们在学习和生活上给我的帮助。.
通过本次毕业设计,我在指导老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。在设计中遇到了很多编程问题,最后在老师的辛勤指导下,在同学的热情帮助下,终于迎刃而解。同时,在老师的身上我学到很多实用的知识,在此我表示感谢!最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
还有许许多多给予我学业上鼓励和帮助的朋友,在此无法一一列举,在此也一并表示忠心地感谢!
22
XXXXXX毕业设计
附录
附录1
程序源代码
#include \#include \#include \
#define SMG_DATA P0
sbit botton1 = P1^6; sbit botton2 = P1^7; sbit botton3 = P3^4; sbit botton4 = P3^5; sbit botton5 = P3^6; sbit botton6 = P3^7;
sbit S1=P2^7;
u8 timebreak0 = 0;
u8 i = 0; //定时器计数变量
u16 dx_redtime = 14,dx_gretime = 20,nb_redtime,nb_gretime,yeltime = 5; //红绿灯时间设置
s16 count_time = 0; //时间调节量 u16 num_stop = 0,flag_stop = 0; //是否需要紧急暂停 u8 count_settime = 0; //调时键模式计数 u8 count_oneway = 0; //单向通行键模式计数 u8 breakflag = 0; //是否有异常情况的出现 u16 break_count = 0; //计数变量 u8 car_time = 0; //车流量计时 u8 car_number = 0;
void initled(); //初始化交通灯led void initnumber(); //初始化数码管 void initcross(); //初始化路口交通灯 void stop(); //紧急中断路口为红灯 void displaycount(); //显示车流量 void autsettime(); //自动调时 void oneway(); //单向通行
23
XXXXXX毕业设计
void night(); //夜间模式 void addtime(); //时间加 void cuttime(); //时间减 void settime(); //路口调时
void breakfunction();//异常情况处理
/*第一排左边第一个按键为复位按键,
第二个按键为紧急停止按键,按一次为路口红灯四方向停止通行,按两次退出该模式;
第二排左边第一个按键为显示车流量按键,按一次显示车流量,按两次退出;
第二个按键为单向通行按键,按一次为东西通行,按两次为南北通行,按三次退出; 第三个按键为夜间模式按键,按一次路口全为黄灯,按两次退出夜间模式;
第四个按键为调时按键,调节东西方向的红灯和绿灯时长,按一次为调节红灯时长,按两次为调节绿灯时长;
第五个按键为加时按键,按一下时间增加一秒; 第六个按键为减时按键,按一下时间减少一秒*/ void main() {
S1=0;
//初始化时间
nb_redtime = dx_gretime + yeltime; nb_gretime = dx_redtime - yeltime;
//设置中断 TMOD = 0X01;
TH0 = (65536 - 50000)/256; TH0 = (65536 - 50000)%6; EA = 1; EX0 = 1; EX1 = 1; IT0 = 1; IT1 = 1; ET0 = 1; TR0 = 1;
while(1) {
initcross();
i = dx_redtime; while(i > 0 ) {
24
XXXXXX毕业设计
breakfunction(); //异常情况的处理
if(breakflag) //如果有异常情况,恢复时重新启动 {
breakflag = 0; i = dx_redtime; }
//正常路口通行(东西红灯)
dx_red = 0; //东西红灯 display_2(DONG,i - 1); display_2(XI,i - 1);
if(i > yeltime + 3) //南北绿灯 {
nb_gre = 0;
display_2(NAN,i - yeltime - 1); display_2(BEI,i - yeltime - 1); }
else if(i > yeltime) //南北绿灯闪烁 {
display_2(NAN,i - yeltime - 1); display_2(BEI,i - yeltime - 1); if(timebreak0 < 10) {
nb_gre = 1; } else {
nb_gre = 0; } }
else //南北黄灯 {
nb_gre = 1; nb_yel = 0;
display_2(NAN,i - 1); display_2(BEI,i - 1); } }
initled(); i =nb_redtime; while(i > 0 ) {
25
XXXXXX毕业设计
}
}
breakfunction(); if(breakflag) {
breakflag = 0; i = nb_redtime; }
//正常路口通行 (南北红灯)
nb_red = 0; //南北红灯 display_2(NAN,i - 1); display_2(BEI,i - 1);
if(i > yeltime + 3) //东西绿灯 {
dx_gre = 0;
display_2(DONG,i - yeltime - 1); display_2(XI,i - yeltime - 1); }
else if(i > yeltime) //东西绿灯闪烁 {
display_2(DONG,i - yeltime - 1); display_2(XI,i - yeltime - 1); if(timebreak0 < 10) {
dx_gre = 1; } else {
dx_gre = 0; } }
else //东西黄灯 {
dx_gre = 1; dx_yel = 0;
display_2(DONG,i - 1); display_2(XI,i - 1); } }
initled();
26