




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、通信与信息工程学院专业综合课程设计班 级:电科1101班姓 名:程兰学 号:1107060103指导教师:葛国库 设计时间:2015.1.5-2015.1.9成 绩:评 语:通信与信息工程学院二一五年专业综合课程设计报告1 项目名称及负责内容 十字路口交通灯的控制电路 我主要负责软件程序的设计,流程图的设计及主要参数的计算。 二设计基本要求及步骤十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。2.1设计目的 本设计是专业课程综合训练,可以通过理论学习,资料查阅,软、硬件设计,系统调试等环节,巩固和提高所学的知识和应用水平
2、。学会提出问题,观察和分析问题,得到最终的科学方法。培养严谨的工作作风,务实的工作态度。为今后的毕业设计,及从事单片机控制系统的设计与维护奠定坚实的基础。2.2基本要求本系统需要采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器,实现以下功能:1. 初始值为0,接着东西绿灯亮,南北红灯亮,东西方向通车。2. 延时26s,东西路口绿灯熄灭,黄灯闪烁3次。3. 黄灯闪烁后,东西路口红灯亮同时南北路口绿灯亮,南北方向开始通车。4. 延时26s,南北方向绿灯灭,黄灯闪烁3次,然后又切换成东西方向通车,如此重复。2.3设计步骤 1.利用Proteus 7.5 SP3仿真软件按下列要求
3、绘制仿真实例 2.按照基本要求编制程序实现相应功能。 1)利用定时器产生秒信号,控制十字路口红绿黄灯交替点亮和熄灭 2)采用LED数码管显示交通灯剩余时间 3)系统工作符合一般交通灯控制要求三设计方案3.1 方案选择 1)用数字电子技术来实现交通灯控制 2)用单片机技术来实现交通灯控制 在刚刚选择了这个题目时,我犹豫过到底要用单片机知识还是用数字电子技术知识来做,因为单片机我学的不扎实,要自己写程序的话在一周之内根本不可能,拿到题目的下午我就去图书馆查找了一些相关的资料,回来宿舍上网也找了一些关于交通灯的论文,看过之后,我和组员商量发现如果用数电知识来做的话,网上搜到的电路图相当复杂,光看懂电
4、路图就得不少时间。其中还有不少芯片需要查找看其功能。但用c语言我仍然挺难完成程序的撰写。看了许多网上的程序和书上的程序及请教同学,我们先一起商量把程序分为了四部分:初始化、中断程序、显示程序、主程序及消抖等其他部分。最后,我们还是决定用单片机。3.2 参数计算1. 设单片机工作在主频为12MHZ下,由于一个机器周期等于12个振荡脉冲周期,所以机器周期(延时)为1us.2.定时器工作在T0 方式1定时50ms,初值=3CH为高8位的值。低8位的值为B0H。3.内部振荡器的频率主要取决于晶振的频率。一般在1.212MHZ之间,电容值在530PF之间选择,电容的大小对振荡频率有微小的影响,可起频率微
5、调的作用。4.仿真图中RP1为电阻排,又称上拉电阻,大约为1KW.作用:实现电平转换;直接驱动大负载。图中R17/R18可以实现线与。仿真图中与六个二极管相连的电阻R9/R10/R11/R12/R13/R14的作用是限制电流的大小,保护电路。取值为300W.5. 在复位电路中,电阻和电容值的选取因使RST端的高电平维持2个机器周期以上才能完成复位。6. 程序中W的值指的是次数,表示1s内定时50ms需要20次。7. 数码管采用共阳极接法,当阴极端加载高电平时,对应段的发光二极管就导通点亮,加载低电平时则不亮。8. 程序中延时函数选用参变量Z。四软件设计 4.1.程序流程图 运行过程SN:绿灯(
6、26),EW:红灯是否到6秒SN:黄灯亮,EW:红灯Count10?SN:黄灯灭,EW:红灯是否到0秒NYYNNEW:绿灯(26),SN:红灯是否到6秒EW:黄灯亮,SN:红灯Count10?EW:黄灯灭,EW:红灯是否到0秒YYYNNNLED显示缓冲区 DISPYLED显示程序Display获取当前通行剩余时间送h、lE/S/W/N状态送P0口位选码送P3口倒计时个/十位送P1口调用Delay延时i+;j+四位显示完?YN返回主程序T0中断定时计数初值50ms计数(count)加1判断1S(count=20?)到否count清0Time_SN-;Time_EW-恢复现场中断返回NY主程序开始
7、设置中断工作方式、触发方式、初始化是否有中断运行过程执行中断YN中断结束,退出中断,返回4.2 程序源代码include /52头文件#include /初始化头文件#define uint unsigned int /宏定义#define uchar unsigned charuchar shi1,ge1,shi2,ge2,s1,s2,k,hh,ll,yy;uint w;code uchar table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/共阳极数码管sbit nbh=P10;sbit nby=P11;sbit nbl=P12
8、;sbit dxh=P13;sbit dxy=P14;sbit dxl=P15;sbit Switch_add=P36;sbit Switch_sub=P37;void delay(uint z)/延时函数 振荡频率为12MHZ,延时1usuint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void init()TMOD=1;/T0方式1定时TH0=(65536-50000)/256;/装T0初值,定时50msTL0=(65536-50000)%256;EA=1;/开中断ET0=1;/允许T0申请中断TR0=1;/启动T0hh=26;yy=6;ll=hh-yy;EX
9、0=1; /开中断0IT0=1; /外部中断0下降沿有效 s1=0;/南北时间为0s s2=0;/东西时间为0s shi1=s1/10; /南北十位时间 ge1=s1%10;/南北个位时间 shi2=s2/10;/东西十位时间ge2=s2%10;/东西个位时间 P2=0x11;P0=tableshi1;delay(5);/P2.0=1,接数码管1,显示南北的十位时间 P2=0x22;P0=tablege1;delay(5);/P2.1=1,接数码管2,显示南北的个位时间 P2=0x44;P0=tableshi2;delay(5);/P2.2=1,接数码管3,显示东西的十位时间 P2=0x88;
10、P0=tablege2;delay(5);/P2.3=1,接数码管4,显示东西的个位时间void dxlnbh()/东西绿,南北红 s1=hh;/南北红时间 s2=ll;/东西绿时间k=ll; P1=0xde;/东西绿南北红while(k)if(w=20) /每一秒变化一次s1-;/南北时间减一s2-;/东西时间减一shi1=s1/10;/南北十位时间ge1=s1%10;/南北个位时间shi2=s2/10;/东西十位时间ge2=s2%10;/东西十位时间w=0;k-;P2=0x11;P0=tableshi1;delay(5);/P2.0=1,接数码管1,显示南北的十位时间P2=0x22;P0=
11、tablege1;delay(5);/P2.1=1,接数码管2,显示南北的个位时间P2=0x44;P0=tableshi2;delay(5);/P2.2=1,接数码管3,显示东西的十位时间P2=0x88;P0=tablege2;delay(5);/P2.3=1,接数码管4,显示东西的个位时间void dxynbh()/东西黄闪6S南北红6SP1=0xee;/东西黄南北红 k=yy;while(k) if(w=20) if(s2=0)s2=6;/东西时间为0时,重置时间为6ss1-;/南北时间减一s2-;/东西时间减一shi1=s1/10;/南北的十位时间ge1=s1%10;/南北个位时间shi
12、2=s2/10;/东西十位时间ge2=s2%10; /东西个位时间w=0;k-; if (k%2) P1=0xfe;/南北红 ,南北黄灭 else P1=0xee;/南北红 ,东西黄P2=0x11;P0=tableshi1;delay(5);P2=0x22;P0=tablege1;delay(5);P2=0x44;P0=tableshi2;delay(5);P2=0x88;P0=tablege2;delay(5);void dxhnbl()/东西红,南北绿 s1=ll; s2=hh; k=ll; P1=0xf3; /东西红,南北绿 while(k)if(w=20)s1-;s2-;shi1=s1
13、/10;ge1=s1%10;shi2=s2/10;ge2=s2%10;w=0;k-;P2=0x11;P0=tableshi1;delay(5);P2=0x22;P0=tablege1;delay(5);P2=0x44;P0=tableshi2;delay(5);P2=0x88;P0=tablege2;delay(5);void dxhnby()/南北黄闪6S东西红6SP1=0xf5;k=yy;while(k)if(w=20) if(s1=0)s1=6;s1-;s2-;shi1=s1/10;ge1=s1%10;shi2=s2/10;ge2=s2%10; w=0;k-; if(k%2) P1=0x
14、f7; /东西红 ,南北黄灭 else P1=0xf5; /东西红, 南北黄亮P2=0x11;P0=tableshi1;delay(5);P2=0x22;P0=tablege1;delay(5);P2=0x44;P0=tableshi2;delay(5);P2=0x88;P0=tablege2;delay(5);/*按键扫描程序*/void key(void) /*红灯时间增*/ if(Switch_add=0) delay(5); /按键消抖 if(Switch_add=0) hh+; ll=hh-yy; if(hh90) hh=90; while(Switch_add=0); /*红灯时间减*/ if(Switch_sub=0) delay(5); /按键消抖 if(Switch_sub=0) hh-; ll=hh-yy; if(hh20) hh=20; while(Switch_sub=0); void main() init();while(1)dxlnbh();/东西绿,南北红dxynbh();/东西黄,南北红dxhnbl(); /东西红,南北绿dxhnby();/东西红,南北黄 voi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论