南邮AVR单片机软件交通灯设计报告_第1页
南邮AVR单片机软件交通灯设计报告_第2页
南邮AVR单片机软件交通灯设计报告_第3页
南邮AVR单片机软件交通灯设计报告_第4页
南邮AVR单片机软件交通灯设计报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、才U蹴凄/漂通信与信息工程学院/学年第学期软件设计实验报告模块名称AVR单片机软件设计(pioteus)专业学生班级学生学号学生姓名指导教师设计题目基于LED数码管显示的交通灯控制任务要求基本要求:1 .用2个7段数码管或2片LCD液晶显示屏分别倒计时东西及南北方向的通行及等待时间。2 .用两组各3个发光二极管模拟两个方向的红、黄、绿交通灯的显示。3 .可任意调节通行时长。4 .要求对东西、南北直行方向的交通灯进行控制,南北方向互相配合,在通行方向的最后5秒这样处理:绿灯闪烁3秒后灭,最后2秒黄灯亮。禁行方向则直接由红灯变为绿灯。发挥部分:1 .设计三车道十字路口信号灯(左转、直行、右转),右

2、转灯常亮,直行和左转分时通行。2 .用定时器而不是普通的延时程序控制显示时间实验设备及软件CVAVR编程软件、PROTUES仿真软件同组人员学号及姓名一人一组,无同组成员参考文献1刘文涛.单片机应用开发实例.北京:清华大学出版社,2005年9月:19-1132周宝善.经典电子设计与实践DIY.北京:人民邮电出版社,2008年8月:78,61923宁武,唐晓宇,闫晓金.电子设计竞赛技能指导.北京:电子工业出版社,2006年:1281564胡伟,季晓衡.单片机c程序设计及应用.北京:人民邮电出版社,2003年7月:671355童诗白,华成英.模拟电子技术基础.北京:高等教育出版社,2001年1月:

3、5015506张靖武,周灵彬.单片机原理应用与PROTEUS仿真.北京:电子工业出版社,2008年:28607张超琦,钟明哲.单片机原理及实例.实践篇.上海:上海交通大学出版社,2007年:1101588潘超群.单片机控制技术在通信中的应用:MCS-51.北京:电子工业出版社,2008年:2002289陈涛.单片机原理及C51程序设计.北京:机械工业出版社,2008年:20669AVR单片机软件设计(proteus)报告摘要本文介绍了交通灯系统的设计。软件部分是基于ATMEGA128单片机的CVAVR软件系统。本系统利用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭,并且用2位

4、共阳数码管显示十字路口两个方向的剩余时间。本系统可以按照设定程序在PROTUES仿真软件中自行运行。可实现基本交通灯功能,系统实用性强、操作简单。关键词:单片机最小系统ATMEGA128红绿灯控制仿真一、总体设计原理及思路(一)整体思路本系统的整体框图由ATMEGA128构成主控芯片,主要是实现各个功能模块之间功能交互。本系统包括红黄绿LED灯显示模块,LED数码管显示模块。LED数码管显示模块用来显示被点亮的指示灯还将点亮多久;LED发光二极管模块用于指示该方向的3种状态:通行(绿灯亮)、暂缓通行(黄灯亮)和禁止通行(红灯亮)。系统结构框图如图所示:(图)系统结构框图红绿灯控制器的总体的设计

5、如下图所示:KTCilPMC ibMWCLM g 心一Ti»»» itW KillTMlatiT) ro-tzi2”£桁 ro«Ti 2mfCi<Dfl64«0> kJ* J心,KMXJgEW4TJ*T* KH-CPJtiTT方(3匕FfJS 口 K'-MC-iTO FCK»Cfi<TMlE6ll 外P2 >C«|J F-Cl-wrfwir gRhlMtrviuacxzmr(图)红绿灯控制器总体设计图从上图中可以看出整个设计图。由CWWR单片机最小系统模块来控制红绿黄发光二极管组合模

6、块与LED数码管动态显示模块的联合动态显示,可通过代码的编写任意改变通行时间的长短和红绿黄三种灯的交替。(二)整体设计流程图二、各模块设计思路及原理图 单片机最小系统ATMEGA128是ATMEL公司的8位系列单片机的最高配置的一款单片机,稳定性极高,应用极其广泛。它是高性能、低功耗的AVR8位微处理器,具有先进的RISC结构。它工作于16MHz时性能高达16MlpS,具有只需两个时钟周期的硬件乘法器。它有128K字节的系统内可编程Flash,4K字节的EEPROM,4K字节的内部SRAM,多达64K字节的优化的外部存储器空间。它有两个具有独立的预分频器和比较器功能的8位定时器/计数器,两个具

7、有预分频器、比较功能和捕捉功能的16位定时器/计数器,具有独立预分频器的实时时钟计数器,两路8位PWM,6路分辨率可编程(1到16位)的PWM,输出比较调制器,8路10位ADC,2个具有可编程增益(lx,10x,或200x)的差分通道。它还具有6种睡眠模式:空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式。单片机最小系统如下图所示:uz*PAD2025P242351KebeIrUUXbLLJlIM1UPD1/SDA/INT1XTAL1PD2/RXD1/INT2XTAL2PD3/TX01/INT3PD4/ICP126P272局2930PA150HA

8、U/ADUHKlPA1/AD1P&6/T-1PA2ZAD2PP7/T2PA3ZAD3PA4/AD4PEO/RXOOXPDI31PA2493248PA44712PM54634544PBO10HjAJD/ADOHbl?1AuUJHUUPA6ZAD6PE2/XCKJZAIN0PA7ZAD7PE3/OC3A/AIN1PE4fOC3BXINT4PBO/SSPE5OC3CZINT5DO4PUC1/OU。FT勺tlkITfi457PB1118P0212Hbl?bLKHto?1JJINIDPB2/M0SIPE7/ICP3XINT7PB3/MIS0oa/i/cmocm/Arr*c913PB4-iZ-61

9、F萌15rDMTUUUrrwLUPB5/0C1APF1/ADC1PB6Z0C1BPF2/ADC2PB7/OC27OC1CPF3/ADC3PF4ZADC4/TCK6016175g-5S,57PCO3556PC138HLU/A©H卜5/ADL-OX1MbPCVASPF6/ADC6/TD055PC23754PCS38rC2/A1UrF7?ADC?/TPIPC3ZA11PC43933PCS40rLAIZrvUhIuK34PCS41HLO/AT3rky1/KU43426264rCo?R1rUZ/ALcPC7/A15PG3/T0SC2pg4nosc1AREFAVCCPEN"伯1ATME

10、GA128(图)单片机最小系统图 LED数码管显示电路模块按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。本系统的数码管采用的是两位共阳数码管。数码管如下图所示:ABCDEFGDP12IocmrosrjocoolOUUUDUD。口CLCLCLCLCLCLCL.CL.(图)LED数码管显示模块图 LED灯显示模块LED灯采用的是共阳接法,即所有的LED管阳级通过一个限流

11、电阻上拉到5V电源,所有的阴级接到单片机的相应引脚。只要该DO口置低,该灯就能点亮。本系统出于节省资源,左转灯只用了红、绿两色,直行灯用了红、绿、黄三色,而右转灯由于要常绿,因此只用了一个绿灯。下图只给出了东西南北方向重其中任意的一个。LED灯显示模块如下图所示:三、软件设计(一)各模块设计思路及流程图 主程序模块主要完成定时器TO的设置,绿、黄灯的初值设定以及各子程序的调用。主程序的流程图如下图所示:(图)主程序的流程图 LED数码管显示模块LED数码管显示模块包括南北方向LED显示、东西方向LED显示。LED数码管显示模块的程序流程图如下图所示:初始化显示初始计数值k计数值减1显示(图)L

12、ED显示模块程序流程图 LED灯显示模块LED灯的显示及执行流程主要是对I/O的高低电平的控制。LED显示模块的程序流程图如下图所示:开始(图)LED显示模块程序流程图 定时器。中断模块定时器0主要通过计数产生1秒的定时时间,使LED数码管按照每秒减1进行倒计时。定时器0中断模块的程序流程图如下图所示:(图)定时器0中断模块程序流程图(二)关键代码说明以下是将计数数值转换成LED能显示的两个数字的程序代码。将一个两位十进制数通过numberO=a/10;number1=a%10;转换成两个数字并显示voidled_play(unsignedchaia)(numbeiO=a/10;numberl

13、=a%10;PORTD=0x00;PORTD=wei0;PORTC=tablenumbeiO;delay_ms(5);PORTD=0x00;PORTD=weil;PORTC=tablenumberl;delay_ms(5);以下是计数器0的中断服务程序。由于初始化的参数设置,使程序1ms进入一次中断函数,等到进入第1000次时代表1s计时时间到。1s到了就讲time_countei-清零,并将Hme_ls_os置1,便于主函数每1s执行一次显示函数。mterniptTDvI0_COMPvoidtimeiO_comp_isr(void)(if(Htime_counter=1000)(tiine_

14、counter=0;timeIsok=1;)Sfep3.以下是主函数里的while(l)函数。首先判断是否到达了1s(即检验times_ok是否为1,若为1,则到达了1s)。然后将times_ok清零,将计数值num自减1,并将num的值送给LED数码管显示。接着判断mode为1还是0。如果为0,则是南北方向通行,否则则是东西方向通行。我在函数中初始化计数初值num为30。假设mode为0,那么如果numv=30&&num>21,那么使南北方向的左转方向通行,即使南北方向的左转灯为绿灯;同时南北方向的直行方向为红灯;而右转灯无论南北还是东西方向一直都是通行的,即为绿灯。如

15、果numv=21&&num>6,那么南北方向的直行方向为绿灯,左转禁止通行了。如果nuni<=6&num>3,南北方向的绿灯闪烁三秒。如果num<=3&&num>l,则南北方向的直行方向为黄灯。在mode=0的这30s内,东西方向的左转和直行方向都是禁止的。mode=l时,则南北和东西方向的情况完全相反,这里就不赘述了。wliile(1)(led_play(num);if(time_ls_ok)tiine_ls_ok=0;if(!mode)(PORTA=Ox2d;使东西方向的左转和直行灯都是红灯if(num<=30&a

16、mp;&num>21)PORTB=Oxld;if(num<=21&&num>6)PORTB=Ox2b;if(num<=6&num>3)南北方向绿灯闪烁(PORTB=Ox2f;for(i=0;i<20;i+)(led_play(num);PORTB=Ox2b;)if(num<=3&&num>1)PORTB=Ox2e;if(nuni<=l)(mode=mode;num=31;)if(mode)PORTB=Ox2d;if(num<=30&&num>21)PORTA=Oxl

17、d;if(num<=21&&num>6)PORTA=Ox2b;if(num<=6&num>3)PORTA=Ox2f;for(i=0;i<20;i+)(led_play(num);PORTA=Ox2b;)if(num<=3&&num>1)PORTA=Ox2e;if(num<=l)mode=mode;num=31;)num-;四、系统测试在PROTUES软件中画好了仿真图后,将CVAVR中写好的代码放入ATMEGA16芯片中,然后启动。情况如下:mode=0的30秒内:21<num<=30时,南北方

18、向的左转、直行、右转分别为绿灯、红灯、绿灯;东西方向的左转、直行、右转分别为红灯、红灯、绿灯。6<num<=21时,南北方向的左转、直行、右转分别为红灯、绿灯、绿灯;东西方向的左转、直行、右转分别为红灯、红灯、绿灯。3<num<=6时,南北方向的直行方向绿灯有闪烁。l<num<=3时,南北方向的直行方向黄灯亮。mode=l的30秒内:东西方向与南北方向与上述现象正好相反。系统仿真出来的结果和实验的基础要求及提高要求大致上符合,较好的完成了预期期望。13PS:仿真一开始led灯的颜色较淡,之后将串接的限流电阻阻值改小后就解决了这个问题。五、实验心得首先,从此次实验的完成成果一一基于LED数码管显示的交通灯控制的角度来总结,本次单片机课程设计的红绿灯控制器结构简单,操作方便,对优化城市交通具有一定的意义。本设计将各任务进行细分包装,使各任务保持相对独立;能有效改善程序结构,便于模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。同时由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大而且可以随时的更新系统,进行不同状态的组合。总而言之,本次实验我努力完成了课程要求的基本部分和发挥部分,探索的内容丰富、学习内容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论