还剩5页未读,继续阅读
文本内容:
交通灯管理电路设计.___懂得放手的人找到轻松,懂得遗忘的人找到自由,懂得关怀的人找到幸福!女人的聪明在于能欣赏男人的聪明生活是灯,工作是油,若要灯亮,就要加油!相爱时,飞到天边都觉得踏实,因为有你的牵挂;分手后,坐在家里都觉得失重,因为没有了方向本文由车牌定位贡献doc文档可能在WAP端浏览体验不佳建议您优先选择___,或下载源文件到本机查看东北石油大学课课题院程目系程设计单片机原理及应用课程设计交通灯管理电路设计电子科学学院__07-5班马深慧07090___0505专业班级学生姓名学生学号指导教师2011年3月18日东北石油大学课程设计任务书课程题目单片机原理及应用课程设计交通灯管理电路设计__07-5姓名马深慧学号07090___0505专业班级
一、设计目的训练学生综合运用己学课程的基本知识,__进行单片机应用技术__工作,掌握单片机程序设计、调试,应用电路设计、分析及调试检测
二、设计要求
1.应用MCS-51单片机设计交通灯管理电路;
2.该系统要求显示50s倒计时时间,当计到需交换红绿灯前10s,路口均显示黄灯;
3.硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路设计的单元电路必须有工作原理,器件的作用,分析和计算过程;
4.软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;
5.原理图设计根据所确定的设计电路,利用Protel等有关工具软件绘制电路原理图、PCB板图、提供元器件清单
三、参考资料
[1]单片微型计算机与接口技术,李群芳、黄建编著,电子工业出版社;
[2]单片机原理及应用,__刚编著,高等教育出版社;
[3]51系列单片机及C51程序设计,王建校,杨建国等编著,科学出版社;
[4]单片机原理及接口技术,李朝青编著,北京____大学出版社;完成期限指导教师专业负责人—2011年3月13日目录
1.系统设计
1.系统设计……
11.1设计思路……………………………………………………
42.硬件电路设计
2.硬件电路设计……
102.1设计原理分析………………………………
163.软件设计
3.软件设计……
173.1数码管显示子程序……
173.1LED红绿灯显示模块程序:……
184.总结
4.总结……
215.____
5.____……
226.附录
6.附录……
226.1附录1程序清单……
226.2附录2电路设计总图……
291.系统设计12完全采用数码管显示这种方案只显示有限的符号和数码字符,无法胜任题目要求方案二完全采用点阵式LED显示这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形方案三采用数码管与点阵LED(点阵式和8段式LED)相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息这种方案既满足系统功能要求,又减少了系统实现的复杂度权衡利弊,第三种方案可互补一二方案的优缺,决定采用方案三以实现系统的显示功能整个设计以AT__S52单片机为核心,由数码管显示,数码管显示LED复位电路组成硬件模块入图所示:AT__S52单片机数码管显示LED数码管晶振电路显示复位电路3……东西红灯黄灯绿灯黄灯……道亮亮亮亮南北绿灯黄灯红灯黄灯……道亮亮亮亮上表说明
(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行时间为40秒
(2)黄灯10秒,警示车辆和行人红、绿灯的状态即将切换
(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行时间为40秒
(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行4其引DIP封装的脚图如下主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符功能特性描述:5At__s52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容片上Flash允许程序存储器在系统可编程,亦适于常规编程器在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT__S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案AT__S52具有以下标准功能8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路另外,AT__S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止8位微控制器8K字节在系统可编程FlashAT__S52P0口P0口是一个8位漏极开路的双向I/O口作为输出口,每位能驱动8个TTL逻辑电平对P0端口写“1”时,引脚用作高阻抗输入当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用在这种模式下:P0具有内部上拉电阻6在flash编程时,口也用来接收指令字节;P0在程序校验时,输出指令字节程序校验时,需要外部上拉电阻P1口P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平P1端口写“1”时,对内部上拉电阻把端口拉高,此时可以作为输入口使用作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流IIL此外,P
1.0和P
1.2分别作定时器/计数器2的外部计数输入(P
1.0/T2)和时器/计数器2的触发输入(P
1.1/T2EX),具体如下表所示在flash编程和校验时,P1口接收低8位地址字节引脚号第二功能P
1.0T2(定时器/计数器T2的外部计数输入),时钟输出P
1.1T2EX(定时器/计数器T2的捕捉/重载触发__和方向控制)P
1.5MOSI(在系统编程用)P
1.6MISO(在系统编程用)P
1.7SCK(在系统编程用)P2口P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平P2端口写“1”时,对内部上拉电阻把端口拉高,此时可以作为输入口使用作为输入7使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址在这种应用中,P2口使用很强的内部上拉发送1在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容在flash编程和校验时,P2口也接收高8位地址字节和一些控制__P3口P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平P3端口写“1”时,对内部上拉电阻把端口拉高,此时可以作为输入口使用作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)P3口亦作为AT__S52特殊功能(第二功能)使用,如下表所示在flash编程和校验时,P3口也接收一些控制__端口引脚第二功能P
3.0RXD串行输入口P
3.1TXD串行输出口P
3.2INTO外中断0P
3.3INT1外中断1P
3.4TO定时/计数器08P
3.5T1定时/计数器1P
3.6WR外部数据存储器写选通P
3.7RD外部数据存储器读选通此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制__RST——复位输入当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲__,因此它可对外输出时钟或用于定时目的要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作该位置位后,只有一条MOVX和MOVC指令才能将ALE激活此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通__,当AT__C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN__9EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)需注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp
2.硬件电路设计复位晶振源AT__S52各路口红绿灯LED倒计时显示10说明此图为直方图,上边为北路口灯,右边为东路口灯,下边为南路口灯,左边为西路口灯图2-2所示为一种红绿灯规则的状态图,分别设定为S
1、S
2、S
3、S4,交通灯以这四的状态为一个周期,循环执行(见图2-3)11图2-1请注意图2-1b和图2-1d,它们在一个时间段中四个方向都可以通车,这种状态能在一定的时间内达到较大的车流量,效率特别高依据上述的车辆行驶的状态图,可以列出各个路口灯的逻辑表,由于相向的灯的状态图是一样的,所以只需写出相邻路口的灯的逻辑表;根据图2-3可以看出,相邻路口的灯它们的状态在相位上相差180°因此最终只需写出一组S
1、S
2、S
3、S4的逻辑状态表如表2-1所示12表2-1表中的“×”代表是红灯亮(也代表逻辑上的0),“√”是代表绿灯亮(也代表逻辑上的1),依上表,就可以向相应的端口送逻辑值1314一组段选,段选数据仅对位选选中的数码管有效对于每一位显示器来说,每隔一段时间点亮一次显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关通过调整电流和时间参数,可以既保证亮度,又保证显示若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)153-2晶振模块原理图选取原则传统做法,但能够实现所需,即最简单也最是实用电容选取30pF,晶振为30MHz
163.软件设计
3.1数码管显示子程序voidnor__lPageShow{registerunsignedcharijn;registerlonglTmp;unsignedcharconstSEG_CODE[]={0x3F0x060x5B0x4F0x660x6D0x7D0x070x7F0x6F};unsignedcharconstCOMM
[2]={0x010x020x040x08};fori=0;i2;i++{lTmp=gnValue;n=lTmp-lTmp/10*10;P2=COMM[i];P0=SEG_CODE[n];P2=COMM[i+2];P0=SEG_CODE[n];lTmp/=10;}}17voiddelay_usunsignedintnCount//延时子程序{registerunsignedinti;fori=0;inCount;i++{_nop_;_nop_;_nop_;_nop_;}}voiddelay_msunsignedcharnCount{registerunsignedchari;fori=0;inCount;i++{delay_us1000;}}
3.1LED红绿灯显示模块程序:__invoid{EA=0;//globalinterruptdisable18giSysStatus=0;initMCU;EA=1;//如有初始化当中已经设定了交通灯的初始状态,所以只需一个if和else,就能完成交通灯的切换while1{ifgbFlag_1sPeriod{gbFlag_1sPeriod=0;gnValue-=1;gbFlag_refreshLED=1;//10s的时候,两个黄灯都亮,其余全灭ifgnValue==10{dsY1=0;dsY2=0;dsR1=1;dsR2=1;dsG1=1;dsG2=1;}ifgnValue==0{//计数倒计时到达0s//东西方向如果此时红灯亮,那么接下来的动作应该是东西方向绿灯亮,南北方向红灯亮,其余的都灭ifdsR1==0{19//刷新LEDdsR1=1;dsR2=0;dsG1=0;dsG2=1;dsY1=1;dsY2=1;}//东西方向的红灯不亮,那么接下来的动作应该是东西方向红灯亮,南北方向应该是红灯亮,其余的都灭else{dsR1=0;dsR2=1;dsG1=1;dsG2=0;dsY1=1;dsY2=1;}}}ifgbFlag_refreshLED{//刷新LED的标志gbFlag_refreshLED=0;nor__lPageShow;//LED显示函数}}}
204.总结通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼使我在单片机的基本原理、单片机应用系统__过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步本次课程设计的过程是艰辛的,不过收获却是很大的此次课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,这需要在实践中进一步完善通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我
215.____
[1]李朝青.单片机原理及接口技术(第3版).2005年10月
[2]蔡朝洋.单片机控制实习与专题制作
[3]楼然苗.单片机课程设计指导
[4]赵广林.电路设计与制版
6.附录
6.1附录1程序清单#includereg
51.h#include#define#define#define#define#define#definedsR1dsY1dsG1dsR2dsY2dsG2P1^0;P1^1;P1^2;P1^4;P1^5;P1^6;//对6个交通灯端口定义//位运算,定义两个标志位unsignedintbdata__itgbFlag_1sPeriod__itgbFlag_refreshLEDgiSysStatus;=giSysStatus^0;//1秒标志=giSysStatus^1;//刷新LED的显示22unsignedintidataintdatagiTimerTick;giKeyTick;voidinitMCUvoid;voidnor__lPageShow;voidrstCalcParamvoid;intidatagnValue;//定义变量存放时间voiddelay_usunsignedintnCount//延时函数{registerunsignedinti;fori=0;inCount;i++{_nop_;_nop_;_nop_;_nop_;}}voiddelay_msunsignedcharnCount{23registerunsignedchari;fori=0;inCount;i++{delay_us1000;}}//1ms中断初始化voidinitMCU{TMOD=0x10;TH1=0xD8;TL1=0xF0;TR1=1;ET1=1;EA=1;}//1秒程序在中断中进行voidtimer1voidinterrupt2using3{registerunsignedchari;TF1=0;if++giTimerTick=100{giTimerTick=0;24gbFlag_1sPeriod=1;}else{giKeyTick=0;}}voidrstCalcParamvoid{registerunsignedchari;giSysStatus=0;gnValue=50;giKeyTick=0;dsR1=0;dsY1=1;dsG1=1;dsR2=1;dsY2=1;dsG2=0;//初始化时,让东西方向的红灯和南北方向的绿灯亮}voidnor__lPageShow25{registerunsignedcharijn;registerlonglTmp;unsignedcharconstSEG_CODE[]={0x3F0x060x5B0x4F0x660x6D0x7D0x070x7F0x6F};unsignedcharconstCOMM
[2]={0x010x020x040x08};fori=0;i2;i++{lTmp=gnValue;n=lTmp-lTmp/10*10;P2=COMM[i];P0=SEG_CODE[n];P2=COMM[i+2];P0=SEG_CODE[n];lTmp/=10;}}__invoid{EA=0;//globalinterruptdisable26giSysStatus=0;initMCU;EA=1;while1{ifgbFlag_1sPeriod{gbFlag_1sPeriod=0;gnValue-=1;gbFlag_refreshLED=1;ifgnValue==10{dsY1=0;dsY2=0;}ifgnValue==0{ifdsR1==0{dsR1=1;dsR2=0;dsG1=0;dsG2=1;dsY1=0;dsY2=0;}else{27//刷新LEDdsR1=0;dsR2=1;dsG1=1;dsG2=0;dsY1=0;dsY2=0;}}}ifgbFlag_refreshLED{gbFlag_refreshLED=0;nor__lPageShow;}}}
286.2附录2电路设计总图29东北石油大学课程设计成绩评价表课程名称题目名称学生姓名序号马深慧评价项目工作量、工作态1度和出勤率学号单片机原理及应用课程设计交通灯管理电路设计07090___0505指指导教师姓名标职称满分评分按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作课程设计选题合理,计算过程简练准确,分析问202课程设计质量题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确4534总分评语创新答辩工作中有创新意识,对前人工作有一些改进或有一定应用价值能正确回答指导教师所提出的问题530指导教师年月日301。