- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录
设计任务与目的
团队组成与分工
电路设计说明
软件编程说明
测试结果与分析
设计体会与建议
参考文献
一、设计任务与目的
基本功能:利用单片机的定时器定时、按键、发光二极管和数码管等,实现十字路口的红黄绿灯自动交替点亮和熄灭,用LED数码管显示时间。(要求红黄绿灯转换间隔时间为20s,A方向红灯时间=B方向绿灯时间+黄灯缓冲时间)(60%)
2、提高部分1:设置手动和自动模式,自动模式同基本功能,手动模式可设置30s,45s和1min。(15%)
3、提高部分2:自动模式增加车流量调控功能,当车流量(用按键随意设置)多于某数值时,按某种对应关系延长红绿灯转换间隔,(15%)
4、提高部分3:设计多个路口联动的具有通信功能的电路,给出2个路口的通信验证,可采用RS232或RS485接口电路。(10%)
二、团队组成与分工
1、团队由组长,成员两人组成,共同对该课程进行设计。
2、按照我们的设想,所选设计的任务只需要用到单片机,因此只需要进行C语言编程来实现基本功能,因此我们两人共同编写程序即可。
3、从最终完成情况来说,组长占60%,成员占40%。
三、电路设计说明
1、工作原理
为实现基本功能,即十字路口的红黄绿灯自动交替点亮和熄灭,用LED数码管显示时间,因此,我组对这设计分析如下:
设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图1所示:
图1
通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:
图2
设计说明:该智能交通灯控制系统的软件设计采用的是顺序执行并反复循环的方法。智能交通灯控制系统在正常工作的情况下,每19s循环变化一次。每个循环周期在还剩6s时,正在通行路口的黄灯同时点亮并开始闪烁,以提醒路人上的行人及车辆,交通灯即将发生变化。
2、电路图
3、源程序:
#includereg52.h
sbit DUAN= P2^6;
sbit WEI= P2^7;
sbit r1=P1^0;
sbit r2=P1^1;
sbit r3=P1^2;
sbit r4=P1^3;
sbit r5=P1^4;
sbit r6=P1^5;//灯 表示红绿灯
void display();
void delay(int t);
unsigned char table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
int i,j,k,c,m,n,g,h,l,w=61,a=1;
void main()
{
l=1;
c=1;
i=1;//5
j=9;
k=20;
m=0; //黄灯
n=6;
g=1;//5 //绿灯
h=3;
TMOD=0x01;
TL0=0xB0;
TH0=0x3C; //定时一秒
EA=1;
ET0=1;
TR0=1;
while(1)
{
display();
}
}
void delay(int t)
{ int n,p;
for(n=t; n100; n++);
for(p=0; p100; p++);
} //延时
void display()
{
if(a==1) //南北红灯亮
{
r1=0;
r2=1;
r3=1;
r4=1;
WEI=1;
DUAN=0;
P0=0xFE;
DUAN=1;
WEI=0;
P0=table[i]; //数码管1
delay(0);
WEI=1;
DUAN=0;
P0=0xFD;
DUAN=1;
WEI=0;
P0=table[j];
delay(0); //数码管2 红灯19s开始倒计时
WEI=1;
DUAN=0;
文档评论(0)