XX学院课程设计
P2=0xed; P0=led_table[time/10];delay();// 秒
的十位
P2=0xdb; P0=led_table[time]; delay();//秒的个
位
} } 3.6 定时器0中断函数
定时器0中断函数如下:
void Time0int(void) interrupt 1 { EA=0;
TH0=-10000/256; TL0=-10000%6; time1s--;
if(time1s==0){//一秒中到,重新置数 time1s=100; time--;//显示时间自减
if(time==0){//显示时间减到0时切换显示时间状态
state++;//四个状态轮流切换 if(state==4) state=0; state_flag=1;//置状态切换标志位 } } EA=1;
第4章 Proteus软件仿真
4.1Proteus软件仿真
Proteus软件用于系统的仿真,编译软件采用keil UV3。程序的仿真用英国
的labcenter公司的Protens V7.13。其果如下:加电后的结果如图4-3-1。此时时间已经走过一秒,南北是红灯,东西是绿灯。
10
XX学院课程设计
图4-3-1加电后仿真
4.2 南北路灯切换时仿真
切换时,转为黄灯亮,时间为一秒钟。如图4-2-1。
图4-2-1黄灯亮时
4.3 紧急情况下的仿真
此时,全部为红灯,所用车辆禁行,时间被锁定,此时允许特殊车辆经过。如图4-3-1。
11
XX学院课程设计
图4-3-1紧急情况下的路灯显示
4.4东西紧急情况下的仿真
此时,南北为红灯,东西为绿灯,南北车辆禁行,东西可以通过。时间被锁定,此时允许东西车辆经过。如图4-4-1。
图4-4-1东西紧急情况下的路灯显示
第5章 结束语
12
XX学院课程设计
通过此次课程设计让我能够亲身参与电子产品的设计使我更加深深地体会到:现代的社会是信息的社会,很多与人们生活紧密相关的产品都是电子产品。要熟练地掌握单片机的基本知识,这样才能对试验中出现的问题进行分析解决。通过这次对交通灯系统的设计,我们掌握了设计一个实用装置电路的基本方法和基本步骤,掌握了实用装置工作的基本原理,实际解决了设计中出现的问题,增强了寻找问题,解决问题的能力。此次电子设计的成功不仅帮助我们更好地掌握书本知识,尤其重要的是增强了我们的自信,培养了我们独立思考的能力!
通过这周紧X而充实的课程设计,我学到了很多东西,让我重新认识自己,收益匪浅,并对我以后所要做的毕业设计有了一个初步的了解。做好一个课程设计或毕业设计不仅要具备扎实的书本知识并会善于应用,还要学会查阅资料,对以前学过的知识不清楚的地方还要进行复习,实在搞不明白的地方要向老师或同学请教,这样才可能做出一个比较不错的课程设计。在这里我要感谢我们的指导老师,非常感谢老师的指导和帮助。希望以后还能参加这样的课程设计。我想我会做的更好的。
参考文献
[1]余发山. 单片机原理及应用技术. 中国矿业大学,2002
[2]李朝青. 单片机原理及接口技术(修订版).:航空航天大学,1998 [3]李广弟. 单片机基础. :航空航天大学,1992
[4]李泉溪. 单片机原理与应用实例仿真. :航空航天大学,2009 [5]江世明. 基于proteus的单片机应用技术. :电子工业,2009
致 谢
本次课程设计是在X伟春老师的亲切关怀和精心指导下完成的,在此,对他的关心、指导和教诲表示衷心的感谢!
我的设计自始至终都是在X老师全面、具体的指导下进行的,X老师在论文选题方面的远见卓识以及在完成课题和论文期间富有启发性的建议是本次课程设计得以顺利完成的根本保证。他高尚的品德、严谨的学风、一丝不苟的治学态度和孜孜不倦的工作精神使我终生受益,这将为我今后的学习和工作打下坚实的基础。
感谢我的同学李娣、陈霞等人对我的关心和帮助。他们的鼓励是我坚持完成本次课程设计的动力,他们提出的宝贵建议是我成功完成设计的保证。
13
XX学院课程设计
最后,感谢评阅老师评阅本论文并提出宝贵意见!
附录Ⅰ源程序代码
#include
#define uchar unsigned char #define uint unsigned int sbit nom=P3^7; uchar code
led_table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示数码表
uchar code light_state[]={0x21,0x12,0x0c,0x12};//交通灯状态存储表 uchar code em_state[3]={0x24,0x21,0x0c};//紧急灯状态显示表 uchar light_time[][2]={{0,4},{0,1},{0,5},{0,1}};//显示时间存储表 uchar statebef,time1s=100,state=0;//存储紧急灯状态,定时基数,状态基
数
uint time;//显示时间变量
bit md_flag,state_flag=1,red;//显示时间更改状态,状态切换标志位,红绿
切换标志位
/*--------------------------------
延时函数
------------------------*/ void delay(void) {
uchar i,j; for(i=100;i>0;i--) {
for(j=100;j>0;j--); } }
/*--------------------------
读状态函数:判断是否有紧急灯状况出现
14