基于AT89C51单片机的交通灯课程设计报告
- 格式:doc
- 大小:22.00 KB
- 文档页数:5
单片机原理及应用课程设计任务书
系(部):电子与通信工程系
课题名称 交通灯程序设计
设计内容及要求 (1)课题内容:
以单片机为核心,设计一个简单交通灯控制系统,用于十字路口车辆交通管理,东西、南
北两个方向分别设置红、绿、黄3种通行指示灯,计时牌显示路口通行转换剩余时间,另外,
在特种车辆如119、120通过路口时,系统可转为特种车辆放行,其他车辆禁止通行的状态,
15s后系统恢复正常管理。
发挥部分:东西、南北两个方向通行的时间可以通过键盘设置。
(2)要求:完成该系统的硬件和软件的设计,在Proteus软件上仿真通过后,下载到单片机
进行硬件验证。最后就课程设计本身提交一篇课程设计说明书。
设计工作量 1、汇编或C51语言程序设计;
2、程序调试;
3、在Proteus上进行仿真后,进行下载;
4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、调
试过程,参考文献、设计总结等。
进度安排 起止日期(或时间量) 设计内容(或预期目标) 备注
第一天 课题介绍,答疑,收集材料,C51介绍
第二天 设计方案论证,练习编写C51程序
第三天~第六天 程序设计
第六天~第八天 程序调试、仿真
第九天~第十天 系统测试并编写设计说明书
交通灯程序设计
摘 要
本次单片机课程设计选择的题目是交通灯程序设计,主要是根据本学期所学的《单片机原
理和接口技术》的知识,编写交通灯的控制程序,在WAVE6000集成调试软件上进行编译,
并在Proteus 7 Professional软件上进行仿真,观看结果。在经过多次的调试和电路上的修改,
实现了所需要的结果(达到了设计任务书上的要求)。主要涉及的内容包括倒计时、中断等,
使用芯片80C51进行程序控制。
关键词
AT89C51 LED显示 交通灯
目 录
1、交通灯程序 6
2、交通灯仿真电路 9
3、结论与心得 10
4、存在的不足及建议 10
参考文献 10
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语言进行程序编写,在AT89C51
上实现功能,有了更多的了解与认识,也因为学习过C语言,所以很快就摸清了门路。整
个设计过程很顺利。
通过这次的课程设计,对《单片机原理与接口技术》所学的知识有了更进一步的了解,也
看到单片机的优点。收获颇丰。
4、存在的不足及建议
由于实验室机器的落后,电脑的病毒太多,导致多次劳动的成功打了水漂。实验室电脑不
能连网,交流不便。
参考文献
曾屹.单片机原理与应用[M].湖南:中南大学出版社,2009年.