
单片机课程设计
题目 交通灯程序设计
系(部) 信息工程系
专业(班级) 电子信息工程
姓名
学号
指导教师
单片机原理及应用课程设计任务书
系(部): 专业: 指导教师:
| 课题名称 | 交通灯程序设计 | ||||||||
| 设计内容及要求 | (1)课题内容: 以单片机为核心,设计一个简单交通灯控制系统,用于十字路口车辆交通管理,东西、南北两个方向分别设置红、绿、黄3种通行指示灯,计时牌显示路口通行转换剩余时间,另外,在特种车辆如119、120通过路口时,系统可转为特种车辆放行,其他车辆禁止通行的状态,15s后系统恢复正常管理。 发挥部分:东西、南北两个方向通行的时间可以通过键盘设置。 (2)要求:完成该系统的硬件和软件的设计,在Proteus软件上仿真通过后,下载到单片机进行硬件验证。最后就课程设计本身提交一篇课程设计说明书。 | ||||||||
| 设计工作量 | 1、汇编或C51语言程序设计; 2、程序调试; 3、在Proteus上进行仿真后,进行下载; 4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、调试过程,参考文献、设计总结等。 | ||||||||
| 进度安排 | 起止日期(或时间量) | 设计内容(或预期目标) | 备注 | ||||||
| 第一天 | 课题介绍,答疑,收集材料,C51介绍 | ||||||||
| 第二天 | 设计方案论证,练习编写C51程序 | ||||||||
| 第三天~第六天 | 程序设计 | ||||||||
| 第六天~第八天 | 程序调试、仿真 | ||||||||
| 第九天~第十天 | 系统测试并编写设计说明书 | ||||||||
| 教研室 意见 | " 年 月 日 | 系(部)主管领导意见 | 年 月 日 | ||||||
摘 要
本次单片机课程设计选择的题目是交通灯程序设计,主要是根据本学期所学的《单片机原理和接口技术》的知识,编写交通灯的控制程序,在WAVE6000集成调试软件上进行编译,并在Proteus 7 Professional软件上进行仿真,观看结果。在经过多次的调试和电路上的修改,实现了所需要的结果(达到了设计任务书上的要求)。主要涉及的内容包括倒计时、中断等,使用芯片80C51进行程序控制。
关键词
ATC51 LED显示 交通灯
1、交通灯程序
#include //#include #define uchar unsigned char #define uint unsigned int uchar h; uint r=0; uint s; uchar code dis[]={ 0Xc0,0Xf9,0Xa4,0Xb0,0X99,0X92,0X82,0Xf8,0X80,0X90,0Xff}; void delay(uint c) { uint i,j; for(i=0;i } //interrupt 1 void t0(void) interrupt 0 using 1 { delay(2); if(INT0==0) { P1=0xdb; P0=0xff; } for(h=15;h>0;h--) { for(s=248;s>0;s--) { P0=0xff; P2=0x01; P0=dis[h/10]; delay(1); P0=0xff; P2=0x02; P0=dis[h%10]; delay(1); P0=0xff; P2=0x04; P0=dis[h/10]; delay(1); P2=0x00; P0=0xff; P2=0x08; P0=dis[h%10]; delay(1); } } } void main(void) { EA=1; EX0=1; while(1) { P1=0xeb; for(h=15;h>0;h--) { for(s=248;s>0;s--) { if(h<=3) P1=0xfb; if(s<=124) P1=0xeb; P0=0xff; P2=0x01; P0=dis[h/10]; delay(1); P0=0xff; P2=0x02; P0=dis[h%10]; delay(1); P0=0xff; P2=0x04; P0=dis[(h+3)/10]; delay(1); P2=0x00; P0=0xff; P2=0x08; P0=dis[(h+3)%10]; delay(1); } } P1=0xf3; for(h=3;h>0;h--) { delay(120); P0=0xff; P2=0x0a; P0=dis[h%10]; delay(900); } delay(248); P1=0xdd; for(h=10;h>0;h--) { for(s=248;s>0;s--) { if(h<=3) P1=0xdf; if(s<=124) P1=0xdd; P0=0xff; P2=0x01; P0=dis[(h+3)/10]; delay(1); P0=0xff; P2=0x02; P0=dis[(h+3)%10]; delay(1); P0=0xff; P2=0x04; P0=dis[h/10]; delay(1); P0=0xff; P2=0x08; P0=dis[h%10]; delay(1); } } P1=0xde; for(h=3;h>0;h--) { delay(120); P0=0xff; P2=0x0a; P0=dis[h%10]; delay(900); } delay(248); } } 2、交通灯仿真电路 3、结论与心得 本次单片机程设计收获颇丰,不仅对于WAVE6000集成调试软件和Proteus 7 Professional软件有了进一步的熟悉,使用WAVE6000集成调试软件进行了C语言的程序编写与编译,也再次的复习了本学期所学的知识。 本学期学习了《单片机原理与接口技术》这门功课,主要学习了使用汇编语言进行编写程序,利用单片机实现其功能。这次的课程设计,根据所学知识,包括LED的显示、倒计数器、中断等,进行交通灯程序的设计,对于软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,也对单片机的使用有了更深刻的了解。遗憾的是没有作出实物,只是在Proteus 7 Professional软件进行仿真,看到了所编程序所实现的功能,完全达到了课程设计的要求。也通过这次的课程设计,对使用C语言进行程序编写,在ATC51上实现功能,有了更多的了解与认识,也因为学习过C语言,所以很快就摸清了门路。整个设计过程很顺利。 通过这次的课程设计,对《单片机原理与接口技术》所学的知识有了更进一步的了解,也看到单片机的优点。收获颇丰。 4、存在的不足及建议 由于实验室机器的落后,电脑的病毒太多,导致多次劳动的成功打了水漂。实验室电脑不能连网,交流不便。 参考文献 曾屹.单片机原理与应用[M].湖南:中南大学出版社,2009年.
