Operation_Type=2; break; case 2:
if(++Time_Count!=10) return; Time_Count=0;
YELLOW_A=~YELLOW_A;GREEN_A=0;//东西向黄灯开始闪烁,绿灯关闭 if(++Flash_Count!=10) return; //黄灯闪烁5次 Flash_Count=0; Operation_Type=3; break; case 3:
RED_A=1;YELLOW_A=0;GREEN_A=0;
RED_B=0;YELLOW_B=0;GREEN_B=1;//东西向红灯与南北向绿灯亮 5s if(++Time_Count!=100) return; //5s( 100*50ms) Time_Count=0;
Operation_Type=4; break; case 4:
if(++Time_Count!=10) return; Time_Count=0;
YELLOW_B=~YELLOW_B;GREEN_A=0;//南北向黄灯开始闪烁,绿灯关闭 if(++Flash_Count!=10) return; //黄灯闪烁5次 Flash_Count=0; Operation_Type=1; break; } }
//主程序 void main() {
TMOD=0x01; //T0 方式 1 IE=0x82; TR0=1; while(1); }
八、调试与运行
按照总原理图开始接线,在完成电路原理图以及编写程序后,开始用proteus软件开始仿真。整体运行后,电路显示结果与目标设想的一致,因此led模拟交通灯设计任务取得成功。
九、设计总结
通过一个星期的交通灯课程设计,我对单片机相关知识有了更深的了解,特别对protues软件画电路图及仿真的过程,我几乎是从零开始学习并使用的。这
5
次设计过程中,遇到了很多棘手的问题,很多东西,动起手来束手无策,大多都只得先通过查阅资料或者参考别人做类似课题,才能自己动手设计画图,编程调试。过程中还错误不少,就这个程序吧,我写了改,改了写,花了很长时间。还有就是protues软件仿真原来及整个过程,虽然并不太难,但是我是花了挺多时间才真正弄明白的。
这次的课程设计让我明白,在以后的学习中,应更注重知识的应用,更注重实质的掌握,自己也开始对单片机产生了浓厚的兴趣。
十、设计资料及参考文献
1、张毅刚.单片机原理及应用-C51编程+Proteus仿真.高等教育出版社,2012.11(2015.5重印)。
2、郭天祥.新概念51单片机C语言教.电子工业出版社,2009.1 3、阎石.数字电子技术基础教程. 清华大学出版社,2007.8
6