第八章 心得体会
通过此次课程设计让我能够亲身参与电子产品的设计使我更加深深地体会到:现代的社会
是信息的社会,很多与人们生活紧密相关的产品都是电子产品。要熟练地掌握单片机的基本知识,这样才能对试验中出现的问题进行分析解决。通过这次对交通灯系统的设计,我掌握了设计一个实用装置电路的基本方法和基本步骤,掌握了实用装置工作的基本原理,实际解决了设计中出现的问题,增强了寻找问题,解决问题的能力。此次电子设计的成功不仅帮助我更好地掌握书本知识,尤其重要的是增强了我的自信,培养了我独立思考的能力!
通过这课程设计,我学到了很多东西,让我重新认识自己,收益匪浅,并对我以后所要做的毕业设计有了一个初步的了解。做好一个课程设计或毕业设计不仅要具备扎实的书本知识并会善于应用,还要学会查阅资料,对以前学过的知识不清楚的地方还要进行复习,实在搞不明白的地方要向老师或同学请教,这样才可能做出一个比较不错的课程设计。
23
参考文献
[1]余发山.单片机原理及应用技术.中国矿业大学.2002
[2]李朝青.单片机原理及接口技术(修订版).北京:北京航空航天大学出版社,1998 [3]李广弟.单片机基础.北京:北京航空航天大学出版社,1992
[4] 谭浩强,C语言程序设计(第二版),北京:清华大学出版社,1999.12 [5] 刘智勇,智能交通控制理论及其应用[M],北京:科学出版社,2003
[6] 马建明,信号交叉口优化设计及其微观仿真研究[D],北京:北京工业大学博士学位论文,2001.5
[7] 黄辉先,城市交通信号优化控制方法的研究[D],西安:西北工业大学博士学位论文,2000年6月
24
附录
源程序如下:
#include
//***************led指示灯引脚定义*****************// sbit dx_R=P0^2; sbit dx_Y=P0^3; sbit dx_G=P0^4; sbit nb_R=P0^7; sbit nb_Y=P0^6; sbit nb_G=P0^5; char N=25; char
tab_disp[]={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x80};//共阴极码表
/*延时子函数*/
void delay(int t ){while(t--);} /*显示子函数*/
void display(char dat) {
//初始时间是25
led_A=led_B=0; //先位灭显
P2=0XFF; //再段灭显
P2=~tab_disp[dat/10]; //赋显示的数 if(dat/10)led_A=1; delay(1000); //延时
P2=0XFF;led_A=led_B=0; //段灭显 位灭显 P2=~tab_disp[dat]; //赋显示的数 led_B=1;
delay(1000); //延时
25
}
//这个是循环显示60遍显示的函数 void deal(char m) { int t=60;
while(t--)display(m); //循环显示60遍显示的函数
}
/*主函数*/ void main(void) { char i; while(1) { N=25; //初始时间是25 dx_R=1;dx_Y=0;dx_G=0; //指示灯0是亮, nb_R=0;nb_Y=0;nb_G=1;
//指示灯0是亮, for(i=N;i>0;i--) //一秒一秒的减 { deal(i);
}
dx_R=1;dx_Y=0;dx_G=0; //指示灯0是亮, nb_R=0;nb_Y=1;nb_G=0; //指示灯0是亮, N=5;
//时间变成5
for(i=N;i>0;i--) //一秒一秒的减 { deal(i);
}
dx_R=0;dx_Y=0;dx_G=1; //指示灯0是亮, nb_R=1;nb_Y=0;nb_G=0; //指示灯0是亮, N=25;
//时间变成25 for(i=N;i>0;i--) //一秒一秒的减
{
26
是灭是灭是灭是灭是灭是灭
1 1
1 1
1 1
}
deal(i);
dx_R=0;dx_Y=1;dx_G=0; //指示灯0是亮,1是灭
nb_R=1;nb_Y=0;nb_G=0; //指示灯0是亮,1是灭 N=5;
//时间变成5
for(i=N;i>0;i--) //一秒一秒的减 { }
}
}
deal(i);
27