版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设计题目:NE杯交通灯设计报告撰写人:李健 2013050107010(大一) 王棋 2014050106028设计时间:10.1.201410.29.2014*目录*一 设计要求(1.11.8)二 系统方案的论证与选择(2.1-2.4)三 系统方案的分析与计算(3.1-3.3)四 电路设计4.1 系统总体框图4.2 各模块电路图五 程序设计5.1 程序功能5.2 程序思路六 测试方案与测试结果6.1 软件测试 6.2 硬件测试6.3 联调七 参考文献八 附录8.1 C源程序源代码 8.2电路原理图一:设计要求1.1 红绿灯可自动切换;1.2 黄灯可于红绿灯切换之间自动以一赫兹闪烁三次;1.3
2、 蜂鸣器可于黄灯闪烁时自动警报三次;1.4 数码管可计时;1.5 可人为暂停/继续计时;1.6 可人为切换红绿灯周期(30s/15s);1.7 电源自备;1.8 搭建合理美观的电路图二 系统方案的论证与选择本系统主要由控制模块,电源模块,信号输出模块,信号输入模块组成,下面分别论证这几个模块的选择。2.1 控制模块的论证与选择本次控制包括交通灯三种状态(红亮黄暗绿暗,红暗黄暗绿亮,红暗黄闪绿暗)切换和数码管的计时暂停继续及切换。方案一:以交通灯状态控制计时,即可采用较多的数字芯片;方案二:以计时控制交通灯状态,即可采用STC89C52单片机。分析:方案一电路简单,但过程复杂,成本较高;方案二虽
3、电路较复杂,编程麻烦,但其数码显示电路不易受其他信号的干扰,且控制交通灯状态较为容易实现,成本较低。经综合比较,采取方案二,并采用单片机STC89C52。2.2 电源模块的论证与选择方案一:仅采取独立直流电源提供电源;方案二:仅采取单片机控制模块提供电源;方案三:采取外部直流电源和单片机控制模块共同提供电源。 分析: 方案一优点是电源稳定可靠,缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平;方案二优点是系统简明扼要,节约成本,缺点是输出功率不高;方案三集合了前两者的优点,保证功率的同时,电路也较简明。经综合比较,采取方案三,并采用B型USB口来接充电宝作为独立直流电源。2.3信号
4、输出模块本次输出信号包括数码管及发光二级管数字信号和蜂鸣器的声信号。 方案一:数码管倒计时采用锁存器和IO口结合进行,发光二级管共阴,正极由IO口控制,使用无源蜂鸣器; 方案二:数码管倒计时仅采用IO口进行,发光二级管共阴,正极由IO口控制,使用无源蜂鸣器。 分析:方案一位选和段选更稳定,但需两个锁存器,接线麻烦,且本次只需对两位进行位选,方案二只需添加两个IO口且动态显示设置正确即可完成方案一中两个锁存器的作用。经综合比较,采取方案二。2.4 信号输入模块本次输入信号包括周期的切换信号及暂停继续计时信号。方案一:采用8155扩展I/O 口及键盘,显示等。 方案二:直接在I
5、/O口线上接上按键开关。分析:方案一优点是可灵活编程,并且有RAM,及计数器,可提供较多的IO口,缺点是操作复杂;方案二优点是编程更加简洁,使用更加简单,且成本更低,缺点就是功能有限。经综合比较本设计的实际需要,在使用输入的时候不需要过于复杂的功能,故采用方案二。 三 系统方案的分析与计算3.1 结合本次设计要求1-6的方案分析(控制与分析)本次控制模块主要利用单片机最小系统来控制交通灯。包括:单片机,复位电路,外部晶振电路。对上述设计要求具体分析如下(使用STC89C52和C编程完成):a 采用STC89C52内部定时器T0的定时功能实现红绿切换,并且使用P1端口控制12个LED灯
6、(红黄绿*4)的亮暗情况;b 采用定时器T0的定时功能实现黄灯在每个周期结束时和下个周期开始前之间的闪烁,并且利用常数延时函数实现黄灯闪烁频率;c 采用P2.2端口的电位变化驱动无源蜂鸣器,使其与黄灯一起工作。d 采用P2.0和P2.1两个端口分别对数码管的个位和十位进行位选,用P0对数码管进行段选,并且在C程序中利用主函数对数码管不断扫描实现动态显示;e采用STC89C52外部中断INT0控制定时器T0的开启与关闭(已进行过中断优先级的设定),从而控制数码管计时的暂停与继续。f采用STC89C52外部中断INT1设定周期(30s和15s);3.2 关于数码管和发光二极管的分析本次数码管和发光
7、二极管均是共阴接法,而单片机IO口电流有限,故于P0,P1口均采用上拉电阻增加电流。3.3 相关计算关于定时器初值的计算:本次定时器工作方式为方式一,即16位计数器。外部晶振12MHZ,则时钟周期为1/12微秒,则机器周期为1微秒,溢出一次为65536微秒。本次采用50ms的定时,即要计5000个数,则20次定时为1s。TH0和TL0赋初值:TH0=(65536-5000)/28=0x3c;TL0=(65536-5000)%28=0xb0。四 电路设计4.1 系统总体框图:(1.1)4.2 各模块电路图4.2.1 控制模板:(1.2)4.2.2 电源模块:(1.3)4.2.3 信号输出模块:(
8、1.4.1) (1.4.2) (1.4.3)4.2.4 信号输入模块:(1.5)(1.1)(1.2)(1.3)(1.4.1)(1.4.2)(1.4.3)(1.5)五 程序设计5.1 程序功能及设计思路详细的分析写在第三部分系统的理论分析,此处只描述程序的大概思路,具体源代码见附录。5.1.1程序功能建立数码管计时显示和发光二极管点亮状态间的联系,并引入STC89C52中自带的中断,来实现人为的一些控制。5.1.2程序思路5.1.2.1通过在主函数中对控制发光二极管、数码管和蜂鸣器的IO口进行扫描来实现信号的输出(包括声信号和数字信号);5.1.2.2通过定时器T0建立数码管显示函数和发光二极管
9、显示函数的关系(即实现二极管点亮时间与数码管计时的一致性);5.1.2.3通过在发光二极管显示函数中的参数延时函数的利用实现黄灯闪烁和蜂鸣器警报的一致;5.1.2.4通过两个外部中断函数实现周期切换和暂停继续。5.2 程序流程图(1.6)六 测试方案与测试结果6.1 软件测试仿真工具:PROTEUS软件结果:利用PROTEUS软件测试如下:情况正常,可测知程序大致无错。6.2 硬件测试是否虚焊断路短路,电路实物是否与电路原理图逻辑一致工具:万用表和可调直流学生电源经调试无错,电路原理图见附录。6.3 联调测试工具:PROTEUS软件, 51开发板,万用表,5v直流电源经调试,作品功能正常七 参
10、考文献新概念51单片机C语言教程 电子工业出版社 郭天祥C程序设计(第四版) 清华大学出版社 谭浩强单片机原理及接口技术 北京航空航天大学出版社 李朝青基于Proteus和Keil C51的单片机设计与仿真电子工业出版社杜树春八 附录8.1 C源程序代码#include <reg52.H>/定义使用的IO口#define GPIO_CODE P0 /定义控制数码管段选的IO口#define GPIO_LED P1 /定义控制LED灯的IO口sbit K1=P32;/两个外部中断按键的声明sbit K2=P33;sbit wela0=P20;/两个位选IO口的声明sbit wela1
11、=P21;sbit beep=P22;/有源蜂鸣器 控制IO口的声明/定义全局变量unsigned char code DIG_CODE= /共阴极数码管的显示数字0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, /共阴极数码管段选显示0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char code DIG_LED= /LED的亮暗状态 0x82,0x44,0x00,0x28; /“红-绿,黄,全暗,绿-红”四个状态unsigned char int1=0xff; unsigned char int0=0xff
12、; unsigned char end=0xff;unsigned char sub_end=0xff;char judge1=0;char judge2=0;char num=30;char tens=3;char single=0;char second=30;/声明全局函数void delay(unsigned int); void intconfiguration();void display();void led();/*函数名:main功能:主函数*/void main ()GPIO_CODE=0;GPIO_LED=0;wela0=1;wela1=1;K1=1;K2=1;intco
13、nfiguration();/ 中断设置函数的调用while(1)/对数码管和LED不断的扫描display();led();/*函数名:delay功能: 实现精度要求不高的延时*/void delay(unsigned int xms)unsigned int i,j;for(i=xms;i>0;i-)for(j=110;j>0;j-);/*函数名:intconfiguration功能: 两个外部中断和定时器设置*/void intconfiguration()TMOD=0x01;TH0=0x3c;TL0=0XB0;IE=0x87;IT0=1;IT1=1; TR0=1;PT0=0
14、; /中断优先级设置PX0=1;PX1=1;/*函数名:display功能 :数码管的动态显示*/void display()wela1=1;GPIO_CODE=DIG_CODEsingle;wela0=0;delay(5); /510msGPIO_CODE=0x00;delay(5);wela0=1;GPIO_CODE=DIG_CODEtens; wela1=0;delay(5); /*函数名:led功能 :红绿灯切换及其之间的黄灯闪烁和蜂鸣器响声*/void led()/控制黄灯闪烁和蜂鸣器if(sub_end!=end)/判断黄灯是否需要闪烁int i, j, k;TR0=0;wela0
15、=0;wela1=1; /关上定时器for(i=0;i<3;i+)GPIO_CODE = 0;delay(5);GPIO_CODE = DIG_CODE3-i;delay(5);GPIO_LED = DIG_LED1;for(j = 16; j > 0; j-)for(k = 17; k > 0; k-)beep = 1;delay(1);beep = 0;delay(1);GPIO_LED = DIG_LED2;delay(550);TR0 = 1; /打开定时器/控制红绿灯切换if(end=0xff)GPIO_LED=DIG_LED0;sub_end=end;elseGP
16、IO_LED=DIG_LED3;sub_end=end;/*函数名:Timer_0功能 :定时功能*/void Timer_0() interrupt 1TH0=0x3c;TL0=0xb0;judge1+;if(judge1=20)/判断是否已达一秒judge1=0;judge2+;num=(second-judge2); /num加一if(judge2=second)/判断是否已经一周期judge2=0;/初始化num=second;end=end;/取反tens=num/10;/获取十位个位数字single=num%10;/*函数名:int_1功能 :切换周期 */void int_1() interrupt 2delay(10);if(K2=0)TR0=0;/关闭定时器GPIO_CODE=0x00; wela0=1; wela1=1;GPIO_LED=DIG_LED2;if(int1=0xff)second=15;/重新赋周期tens=second/10; /相关变量的初始化single=second%10;judge2=0; num=second;int1=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防疫期间个人先进事迹(7篇)
- 赴企业调研报告8篇
- 游峨眉山的心得(31篇)
- 手机市场调查报告
- 心理健康教育的活动总结范文
- 消防年度工作总结15篇
- 情深意重,感恩演讲稿300字(3篇)
- 知识竞赛活动领导讲话稿
- 幼儿园卫生保健秋季传染病活动方案
- 2022年购物中心七夕节促销活动方案(7篇)
- 体育大单元教学计划(18课时)
- 蓝色简约风中国空军成立75周年纪念日
- 期中考试卷(试题)-2024-2025学年苏教版二年级数学上册
- 2024年全国企业员工全面质量管理知识竞赛题库(含答案)(共132题)
- 知识创业思维与方法智慧树知到答案2024年湖南师范大学
- 《国有企业采购操作规范》【2023修订版】
- 野生动物管理学智慧树知到答案章节测试2023年东北林业大学
- 城市经济学习题与答案
- 员工人事档案目录
- 迅达SWE30-100K自动扶梯电路分析_图文
- ProCAST学习操作教程ppt课件
评论
0/150
提交评论