版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 学科代码: 学 号: 贵 州 师 范 大 学(本 科)课 程 设 计 题 目:十字路口交通信号灯单片机控制系统设计与调试 学 院:机械与电气工程学院 专 业:电气工程及其自动化 班 级: 姓 名: 指导教师: 完成时间:2016年 6 月 24 日 贵州师范大学机械与电气工程学院 课程设计考核表专业: 级别: 级 班设计题目学生姓名学号指导教师答辩回答教师提问情况:课程设计完成质量情况:出勤情况:综合成绩: 指导教师签名:年 月 日注:1、本表一式两份,一份同设计报告一起装订保存,一份上交学院存档。目录目录第一章 课程设计任务书及控制要求1.1课程设计任务书1.2 控制要求第二章 系统方案设
2、计2.1交通灯运行状态分析2.2系统总体方案设计第三章 系统电路设计 3.1 交通灯系统芯片选择 3.2状态灯选择 3.3系统硬件原理图设计第四章 系统软件设计 4.1 程序流程图设计 4.2 系统编程第五章 系统调试与仿真 5.1 proteus仿真 第六章 心得体会附录 源程序 第一章 课程设计任务书及控制要求1.1课程设计任务书一、课程设计目的:1、培养学生文献检索的能力,特别是如何利用Internet检索需要的文献资料。2、培养学生综合分析问题、发现问题和解决问题的能力。3、培养学生运用知识的能力和工程设计的能力。4、提高学生课程设计报告撰写水平。二、课程设计题目每个同学自己独立完成课
3、程设计,按学号最后两位除以4取余+1选附录的题目进行设计,相同题目的同学禁止互相抄袭,老师会根据设计报告判别是否抄袭。三、课程设计任务及设计报告的要求设计任务: (1)进行设计方案的比较,并选定设计方案; (2)完成原理分析,进行各主要元器件的选择并设计电路; (3)利用Protues绘制系统电路原理图。(4)利用Keil软件编制程序。 (5)将软件与硬件电路连接调试仿真。设计报告: (1)根据设计题目进行分析,选择方案和元器件,对没有在书本上学过的知识点和元器件,通过网络等方式查阅相关资料,了解其使用方法,并详细记录在设计报告上。(作为设计报告的第一章:设计题目分析、方案及元器件选择) (2
4、)利用Protues软件进行绘制系统电路原理图,记录绘制过程中遇到的问题及解决办法。(作为设计报告的第二章:系统电路设计) (3)利用Keil软件编程,记录编程过程中遇到的问题及解决办法。(作为设计报告的第三章:系统软件设计) (4)将软件与系统电路连接调试,记录在调试过程中相应修改了哪些硬件电路或软件上的问题,最终才实现了设计题目要求的功能。(作为设计报告的第四章:连接调试) (5)在调试成功,完成全部设计后,手工写出本次设计的心得体会,字数不少于1000字。(作为设计报告的第五章:总结)最终绘制的电路原理图,编写的程序要打印出来附在设计报告中。1.2 控制要求 (1)系统工作受开关控制,起
5、动开关 ON 则系统工作;起动开关 OFF 则系统停止工作。(2)控制对象有八个: 东西方向红灯两个 , 南北方向红灯两个, 东西方向黄灯两个 , 南北方向黄灯两个, 东西方向绿灯两个 , 南北方向绿灯两个, 东西方向左转弯绿灯两个,南北方向左转弯绿灯两个。(3)另外东西方向、南北方向各设置显示两位十进制的7段显示器,用来显示倒数计数值。1)高峰时段按时序图二(见附图)运行, 正常时段按时序图三(见附图)运行,晚上时段按提示警告方式运行,规律为: 东、南、西、北四个黄灯全部闪亮,其余灯全部熄灭。2) 高峰时段、正常时段及晚上时段的时序分配按时序图一运行(见附图)。3) 可以只选择高峰时段或正常
6、时段进行设计,但最后评分值最高以良好评议;如果全部功能实现(需要设计一个24小时的时钟作为时段划分的基础),最高评分值以优秀评议。 时序图 高峰时段 7:00 8:15 16:30 正常时段 晚间时段 6:30 0 1 2 3 4 5 6 7 8 9 16 17 18 19 20 21 22 23 24小时 第二章 系统方案设计2.1交通灯运行状态分析 根据控制要求,系统以下图交通的运行状态来设计系统方案。 图1.1 状态1南北直行 图1.1 状态2南北左转 图1.3 状态3东西直行 图1.4 状态4东西左转 共有四种状态,分别设定为S1、S2、S3、S4,交通灯以这四种状态为一个周期。循环执
7、行如图1.5所示:图1.5 交通灯状态循环图2.2系统总体方案设计 图6 系统总体方案图 本系统采用MCS-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了正常、高峰、晚间时通过单片机的P1口设置红、绿、黄灯亮灭的功能。东西、南北两位7段显示器用来显示倒数计数值。系统分三种工作时段:正常、高峰、晚间,并且通过时间段来控制“正常”、“高峰”、“晚间”相互转化。 正常时段:南北段直行通行(绿灯)、东西段禁止(红灯)40s,同时南北段和东西段方向的数码管分别从40s和70s开始倒计时,至最后5s时南北段绿灯变成黄灯闪烁;此后南北段左转(左转绿灯亮)通行、东西段禁止(红灯)20s,同时
8、南北段和东西段方向的数码管都从20s开始倒计时,至最后5s时南北段左转灯变成黄灯闪烁;再后东西段直行通行(绿灯)、南北段禁止(红灯)40s,同时东西段和南北段方向的数码管分别从40s和70s开始倒计时,至最后5s时东西段绿灯变成黄灯闪烁;最后东西段左转(左转绿灯亮)通行、南北段禁止(红灯)20s,同时东西段和南北段方向的数码管都从20s开始倒计时,至最后5s时东西段左转灯变成黄灯闪烁。高峰时段:南北段、东西段的通行时间改为45s,左转的时间改为15s,其它与正常时段相同。 晚间时段:禁止左转和直行,东西南北四个方向黄灯闪亮。第三章 系统电路设计3.1控制芯片选择AT89C51是美国ATMEL公
9、司生产的低电压,高性能CMOS 8位单片机,有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个可编程定时计数器,2个全双工串行通信口,2个读写口线,器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8051产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,可以按照常规方法对其进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。图2.1 AT89C51引脚图 3.2状态灯选择 该系统设计红、绿、黄状态灯显示的功能,用LED灯来代替实际的交
10、通灯,由于有四种不同的运行状态,一个十字路口需要16个LED灯,倒计时数码管显示选用两位带片选的7段数码管,需要4个。数码管显示简单,程序简单,端口用的少。普通单色发光二极管具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点,可用各种直流、交流、脉冲等电源驱动点亮,它属于电流控制型半导体器件,使用时需串接合适的限流电阻。 3.3系统硬件原理图设计图2.2系统原理布置图第四章 系统软件设计 4.1 程序流程图设计 图3.1主程序流程图系统通电后,初始化定时器,进行24小时定时,在7:00到8:15或16:30到17:00时,按高峰时段运行。在6:30到7:00或8:15到
11、16;30或18:00到19:00时,按正常时段运行。其余时段,按晚间时段运行。 图3.2 时钟及晚间时段程序流程图 本设计利用单片机的定时器T0中断来设置24小时定时,设置TH1=0x3C,TL1=0xB0.即每0.05秒中断一次。到第20次中断即过了20*0.05秒1秒时,计60S时,满意1分钟,计满60分钟,满1小时,计满24小时,又重新开始计时。用定时器T1中断来设置数码管倒计时,每满1S时,使时间的计数值减1,便实现了倒计时的功能。 图3.3 高峰时段及正常时段流程图4.2 系统编程3.2.1定时器的中断设置在单片机中,中断技术主要用于实时控制。所谓实时控制,就是要求计算机能及时地响
12、应被控对象提出的分析、计算和控制等请求,使被控对象保持在最佳工作状态,以达到预定的控制效果。由于这些控制参量的请求都是随机发出的,而且要求单片机必须做出快速响应并及时处理,对此,只有靠中断技术才能实现。本系统中的定时时钟及倒计时的设置和相应中断服务子程序如下:/*24小时时钟 */void Timer0Cofig()TMOD=0x01; /T0定时器工作方式TH0=0x3C; /设置初始值,定时50MSTL0=0xB0;ET0=1; /定时器开中断TR0=1; /启动定时器0 EA=1; /CPU开中断总允许 void T0int() interrupt 1TH0=0x3C; /设置初始值TL
13、0=0xB0;second_counter+;if(second_counter=20)second+;second_counter=0;if(second=60)minute+;second=0;if(minute=60)hour+;minute=0;if(hour=24)hour=0; /*倒数显示定时器*/void Timer1Cofig()TMOD=0x01; /T1定时器工作方式TH1=0x3C; /定时器初值50ms中断一次TL1=0xB0; ET1=1; /定时器开中断TR1=1; /启动定时器1EA=1; /CPU开中断总允许/*定时器中断函数*/void timer1() i
14、nterrupt 3 TH1=0x3C; /重新装入初值TL1=0xB0; RGY_second+;if(RGY_second=20)RGY_second=0;Time_EW-;/满1秒,数码管值减1Time_SN-;第五章 系统调试与仿真 5.1 proteus仿真结果 根据系统设计要求,进行keil调试和proteus系统仿真,不断调试程序。发光二极管,数码管都能按要求显示,符合要求。proteus总体仿真图如下。 图4.1 仿真结果 第六章 心得体会附录 源程序 #include#defineucharunsigned char#define ON 0 /交通灯开关定义#define O
15、FF 1 /*数码管片选定义*/sbitLED_D1=P23;/NS_LED2控制低位sbitLED_C1=P22;/NS_LED1控制高位sbitLED_B1=P21;/EW_LED2控制低位sbitLED_A1=P20;/EW_LED1控制高位/*交通灯状态显示输出引脚定义*/sbit NS_GREEN=P10; /南北绿 sbit NS_RED=P11; / 南北红sbit NS_YELLOW=P12;/ 南北黄sbit LNS_GREEN=P13; / 南北左转绿sbit EW_GREEN=P14; / 东西绿sbit EW_RED=P15; /东西红sbit EW_YELLOW=P1
16、6; /东西黄sbit LEW_GREEN=P17;/东西左转绿charTime_EW;/东西方向倒计时charTime_SN;/南北方向倒计时/ 共阳数码管显示值 0123456789 char code table=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; /时间时、分、秒定义 unsigned char hour=0,minute=0,second=0,second_counter=0; /黄绿红亮灭计时定义 unsigned char RGY_second=0; /东南西北倒计时时间uchar EW,B_SN,B_L_WENS
17、,YEEL,N_SN,N_L_WENS;/*显示延时 */ void Delay10uS(unsigned char z) char i,a,b; for(i=0;i0;b-) for(a=2;a0;a-); /*EW/NS显示子函数*/void Display1() char H,L; H=Time_EW/10; L=Time_EW%10 ; P0=tableH; LED_A1=1; Delay10uS(10); LED_A1=0; P0=tableL; LED_B1=1; Delay10uS(10); LED_B1=0; H=Time_SN/10; L=Time_SN%10 ; P0=ta
18、bleH; LED_C1=1; Delay10uS(10); LED_C1=0; P0=tableL; LED_D1=1; Delay10uS(10); LED_D1=0; /*24小时时钟 */void Timer0Cofig() TMOD=0x01; /T0定时器工作方式 TH0=0x3C; /设置初始值,定时50MS TL0=0xB0; ET0=1; /定时器开中断 TR0=1; /启动定时器0 EA=1; /CPU开中断总允许 void T0int() interrupt 1 TH0=0x3C; /设置初始值 TL0=0xB0; second_counter+; if(second_c
19、ounter=20)second+;second_counter=0; if(second=60)minute+;second=0; if(minute=60)hour+;minute=0; if(hour=24)hour=0; /*倒数显示定时器*/void Timer1Cofig() TMOD=0x01; /T1定时器工作方式 TH1=0x3C; /定时器初值50ms中断一次 TL1=0xB0; ET1=1; /定时器开中断 TR1=1; /启动定时器1EA=1; /CPU开中断总允许/*定时器中断函数*/ void timer1() interrupt 3 TH1=0x3C; /重新装入
20、初值 TL1=0xB0; RGY_second+;if(RGY_second=20)RGY_second=0;Time_EW-;/满1秒,数码管值减1Time_SN-;/*高峰时段函数*/void busy() /*SN直行45S,EW禁行70S */ Time_EW=EW;/70 Time_SN=B_SN;/45 while(Time_SN0) NS_GREEN=ON;NS_RED=OFF;LNS_GREEN=OFF;NS_YELLOW=OFF;EW_RED=ON;EW_GREEN=OFF;EW_YELLOW=OFF;LEW_GREEN=OFF; Display1();/NS EW/*准备左
21、转,黄灯闪5S,停止直行*/ Time_SN=YEEL; while(Time_SN0) if(RGY_second%2=0) NS_YELLOW=ON; else NS_YELLOW=OFF; NS_GREEN=OFF;NS_RED=OFF;LNS_GREEN=OFF;EW_RED=ON;EW_GREEN=OFF;EW_YELLOW=OFF;LEW_GREEN=OFF;/SN黄闪灯5S,等待左转信号 Display1(); /EWNSYELLOW/*东西禁行70S,南北左转15S*/ Time_SN=B_L_WENS; /15 while(Time_SN0) NS_GREEN=OFF;NS_
22、RED=ON;LNS_GREEN=ON;NS_YELLOW=OFF;EW_RED=ON;EW_GREEN=OFF;EW_YELLOW=OFF;LEW_GREEN=OFF; Display1(); /EW NS/*南北黄灯闪,禁止左转*/ Time_SN=YEEL;/5s while(Time_SN0) if(RGY_second%2=0) NS_YELLOW=ON; else NS_YELLOW=OFF; NS_GREEN=OFF;NS_RED=OFF;LNS_GREEN=OFF;EW_RED=ON;EW_GREEN=OFF;EW_YELLOW=OFF;LEW_GREEN=OFF; /SN黄闪
23、灯5S,等待左转信号 Display1(); /EW NSYELLOW/*东西直行45S,南北禁行70S*/Time_EW=B_SN;/45 Time_SN=EW; / 70 while(Time_EW0) NS_GREEN=OFF;NS_RED=ON;LNS_GREEN=OFF;NS_YELLOW=OFF;EW_RED=OFF;EW_GREEN=ON;EW_YELLOW=OFF;LEW_GREEN=OFF; Display1(); /*东西黄灯亮5S,南北禁行*/ Time_EW=YEEL; while(Time_EW0) if(RGY_second%2=0) EW_YELLOW=ON; e
24、lse EW_YELLOW=OFF; NS_GREEN=OFF;NS_RED=ON;LNS_GREEN=OFF;NS_YELLOW=OFF; EW_RED=OFF;EW_GREEN=OFF;LEW_GREEN=OFF; Display1(); /NS EWYELLOW /*东西左转15S,南北禁行*/ Time_EW=B_L_WENS; while(Time_EW0) NS_GREEN=OFF;NS_RED=ON;LNS_GREEN=OFF;NS_YELLOW=OFF;EW_RED=ON;EW_GREEN=OFF;EW_YELLOW=OFF;LEW_GREEN=ON; Display1();/
25、*东西黄灯亮5S。禁止左转*/ Time_EW=YEEL; while(Time_EW0) if(RGY_second%2=0) EW_YELLOW=ON; else EW_YELLOW=OFF; NS_GREEN=OFF;NS_RED=ON;LNS_GREEN=OFF;NS_YELLOW=OFF;EW_RED=OFF;EW_GREEN=OFF;LEW_GREEN=OFF; Display1(); /*正常时段功能函数*/void normal() /*SN通行40S,EW禁行70S*/ Time_EW=EW;/70 Time_SN=N_SN;/40 while(Time_SN0) NS_GR
26、EEN=ON;NS_RED=OFF;LNS_GREEN=OFF;NS_YELLOW=OFF;EW_RED=ON;EW_GREEN=OFF;EW_YELLOW=OFF;LEW_GREEN=OFF; Display1();/*准备左转,黄灯闪5S,停止直行*/ Time_SN=YEEL; while(Time_SN0) if(RGY_second%2=0) NS_YELLOW=ON; else NS_YELLOW=OFF; NS_GREEN=OFF;NS_RED=OFF;LNS_GREEN=OFF;EW_RED=ON;EW_GREEN=OFF;EW_YELLOW=OFF;LEW_GREEN=OFF
27、; /SN黄闪灯5S,等待左转信号 Display1(); /*东西禁行70S,南北左转20S*/ Time_SN=N_L_WENS; /20 while(Time_SN0) NS_GREEN=OFF;NS_RED=ON;LNS_GREEN=ON;NS_YELLOW=OFF;EW_RED=ON;EW_GREEN=OFF;EW_YELLOW=OFF;LEW_GREEN=OFF; Display1();/*南北黄灯闪,禁止左转*/ Time_SN=YEEL;/5s while(Time_SN0) if(RGY_second%2=0) NS_YELLOW=ON; else NS_YELLOW=OFF
28、; NS_GREEN=OFF;NS_RED=ON;LNS_GREEN=OFF;EW_RED=ON;EW_GREEN=OFF;EW_YELLOW=OFF;LEW_GREEN=OFF; /SN黄闪灯5S,等待左转信号 Display1(); /*东西直行40S,南北禁行70S*/ Time_EW=N_SN;/40 Time_SN=EW; / 70 while(Time_EW0) NS_GREEN=OFF;NS_RED=ON;LNS_GREEN=OFF;NS_YELLOW=OFF;EW_RED=OFF;EW_GREEN=ON;EW_YELLOW=OFF;LEW_GREEN=OFF; Display1(); /*东西黄灯亮5S,南北禁行70S*/ Time_EW=YEEL; while(Time_EW0) if(RGY_second%2=0) EW_YELLOW=ON; else EW_YELLOW=OFF; NS_GREEN=OFF;NS_RED=ON;LNS_GREEN=OFF;NS_YELLOW=OFF; EW_RED=OFF;EW_GREEN=OFF;LEW_GREEN=O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年即时零售调度算法项目评估报告
- 2026江西南昌青山湖区南师附小高新幼儿园招聘教师考试备考题库及答案解析
- 2026湖南娄底市娄星区青年就业见习单位第三批招募见习人员的考试参考题库及答案解析
- 2026福建泉州南安市实验中学春季编外教师招聘1人考试备考题库及答案解析
- 2026赣江新区金开融资担保有限公司招聘2人考试参考题库及答案解析
- 2026内蒙古赤峰市红山区“绿色通道”引进教师82人考试参考题库及答案解析
- 2026年西安市雁塔区第八小学招聘考试参考题库及答案解析
- 2026云南昭通昭阳区残疾人联合会招聘城镇公益性岗位工作人员的1人考试备考试题及答案解析
- 2026广东梅州大埔县家炳第一中学招聘顶岗老师的7人考试参考题库及答案解析
- 2026年安徽省合肥市外企德科安徽派驻蜀山区公立幼儿园多名工勤岗位招考试备考试题及答案解析
- 基于微信小程序的失物招领系统设计与实现
- 2025年一级注册结构考试试题及答案(下午卷)
- 台球器材买卖合同范本
- bz-高标准农田建设项目勘察设计技术投标方案210
- 高三物理一轮复习力学试卷及答案
- 幼儿园营养餐制作标准及流程
- 比亚迪股份有限公司盈利能力分析及提升对策研究
- 种子管理课件
- 通信光缆运维管理办法
- 车辆资产闲置管理办法
- DB32∕T 4981-2024 公路水运工程平安工地建设规范
评论
0/150
提交评论