《嵌入式系统基础课程设计 韩雨松.docx》由会员分享,可在线阅读,更多相关《嵌入式系统基础课程设计 韩雨松.docx(26页珍藏版)》请在三一办公上搜索。
1、嵌入式系统基础课程设计交通灯系统设计目录一.设计目的1二设计方案摘要1三总体设计2四. 硬件电路设计31. 单片机 AT89C51 32. LED数码管43. 信号灯,数码管与单片机连接电路44. 外部时钟方式电路55. 复位电路66. 紧急情况电路6五. 软件设计7六. 调试过程及仿真结果10七. 真机调试18八. 课设心得18九. 附录19、设计目的课程设计是自动化专业集中实践环节的主要内容之一。训练正确 地应用单片机,培养解决工业控制、工业检测等领域具体问题的能力。 学生通过所做课题,熟悉单片机应用系统开发研制的过程,软硬件设 计的工作方法、内容及步骤,对学生进行基本技能训练。例如组成系
2、 统、编程、调试、绘图等。使学生理论联系实际,提高动手能力和分 析问题、解决问题的能力。为了解决城市十字交叉路口的车辆通行问题,我设计了交通灯控 制系统。一般在每条道路上各有一组红、黄、绿交通信号灯。一般情 况下,十字交叉路口红、黄、绿灯的定时交替变化,正常显示。当紧 急情况发生时,两个方向四个路口交通信号灯全红,以应对紧急情况, 当情况恢复正常,手动复位,回到正常运行。二设计方案概要这是一种基于单片机的交通灯模拟系统,它由控制部分和显示 部分组成。它的主要功能是:南北方向通行时,南北方向绿灯亮,东 西方向红灯亮,时间20秒;在灯由红变绿或有绿变红时,南北方向 黄灯亮,东西方向红灯亮,时间5秒
3、;东西方向通行时,南北方向红 灯亮,东西方向绿灯亮,时间20秒;在灯由红变绿或有绿变红时, 南北方向红灯亮,东西方向黄灯亮,时间5秒;实现红、绿、黄3灯 亮时分别以“倒计时” 25秒、20秒、5秒方式循环显示。开机自动 运行,显示时间基本单位为“秒(s)”。如果发生紧急事件,可以 手动控制四个方向黄灯全亮的功能。此模式适用于十字路口发生紧急 情况如车祸等时,需要双向禁行的时候。在此模式下可随时复位到正 常模式。针对以上设计思路,进行分析得到:该交通灯模拟系统由单 片机系统、LED指示灯显示、LED数码管显示、交通灯按钮控制系统 组成。除了可以实现基本交通灯功能外,亦能实现倒计时和紧急特殊模式等
4、功能。只采用了 AT89C51芯片及一些简单的外围电路,通过LED数码管显示电路进行定时倒计时。关键词:单片机LED数码管外围电路三. 总体设计图1系统原理框图整个电路的工作原理是运用软件延时程序,通过对指令运行的次数进行循环来实现软件延时和相应的显示。当品振频率为6MHz时有以下时间周期:震荡频率:6MHz;机器周期:2微秒;指令周期:2一8微秒;(根据指令的不同而不同)四. 硬件电路设计1.单片机AT89C51(RXD)P3. 0(TXD)Pl (TSTiJ)P3-2(THTilP土 3在珈.4ATB9C51VCC PfK (ADO) PO. IHAD1)PO. 3/ (AD3) P0.4
5、/LAD41 po.snmsi m 6/ E06I PD. 7/ CW7) EX/VPP all/FSoc PSEN P2.7/(A15) P2.6/U14)说明:AT89C51使用6MHz品振。XTAL1 (19脚)和XTAL2 (18脚):外接品体引脚,XTAL1 和XTAL2分别接外部品振一端。RST:即为RESET,该引脚为单片机的上电复位或掉电保护端。 在此设计中接止常模式按扭P3.3:接紧急工作模式按扭P0.0P0.7、P2.0P2.7:用来控制LED显示器的显示控制P1.0、P1.1、P1.2:用来控制南北交通信号灯P1.3、P1.4、P1.5:用来控制东西交通信号灯2. LED
6、数码管传统的共阳或共阴的数码管其显示输入需要为段码,这样就使得 电路相对复杂和繁琐。对于相同的功能在成本相差不大的情况下,此 处运用了带BCD译码电路的LED显示器。这样既可使线路简化,可靠 性提高。本设计中使用的自带BCD译码电路的LED显示器,其主要特点是采用 四线BCD码输入,可显示0-F十六进制数。使用时直接输入BCD码即 可显示相应的数字,使得电路大大简化。3. 信号灯,数码管与单片机连接电路K -n ii nYfT; YfT;寸邛;1111MU.:奇.:U1切.四Lmu-2RSTD1LED-GREENATS9C51PO.O/ADO PU.1/AD1 P0.2/AD2 P0.3/AD
7、3 PU.4/WD4 P0.5/AD5P0.6/AD6 PU.7/AD7P2.0/S8 P2.1/.MyP2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15P3.0/RXD P3.1ZTXD P3.2/IN1B P3.3/iNTT P3.4.-TU P3.5/T1P3.6 瓯 P3.7/RD1。11F1314l?16T4. 外部时钟方式电路外部时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接品体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为6MHz 的品振,一个机器周期为2us,C1,C2为1nF。5.复位电路U11n
8、FR.1 .400 29E23XTAL1PO.O/ADOP0.1/AD1P0.2/AD2XTAL2P0.3/ADGP0.4/AMP0.5/AD5RSTP0.6/AD6P0.7/AD7P2.0/:P2.1/.yPSEN ALEP2.2/A10P2.3/A11EAP2.5/A13P2.6/A14P2.7/A15F1.0P1.1F1.2P3.0/RXDP3.2/INTLIP1.3P3.3/INT1F1.5P3.5/T1P1.6P3.6/WRF1.7P3.7/RD1918gAT89C513938五36353332212223242526272S仲111213何1516F手动复位电路图复位电路分为上电自
9、动复位和按键手动复位,RST引脚是复位信 号的输入端,复位信号是高电平有效.上电自动复位通过电容C3和电 阻R1来实现,按键手动复位是图中复位键来实现的。6.紧急情况电路XTAL1PO.LIWDLIP0.1MD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/P2.1/.flUP2.2/A1Dpsb7P2.3/A11.MEP2.4/A12EA.P2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1ZTXDPI.2P3.2/INT0PI.3P3.3/INTTP1.4P3.4.-T0PI.5
10、P3.5/T1PI.6P3.6/WRP1.7P3.7/RD987654323 3 3 3 3 3 3 3123 45 6782 2 2 2 2 2 2 24_ok紧急情况发生时,按下紧急按键,单片机输出紧急信号,系统进入 紧急状态。五. 软件设计软件部分分为主程序循环部分,倒计时显示及延时部分,中断显 示部分。1. 主程序循环流程系统开启后,自动进入START程序,开始进行交通灯顺序显示:南 北方向通行时,南北方向绿灯亮,东西方向红灯亮,时间20秒;在 灯由红变绿或有绿变红时,南北方向黄灯亮,东西方向红灯亮,时间 5秒;东西方向通行时,南北方向红灯亮,东西方向绿灯亮,时间20 秒;在灯由红变绿
11、或有绿变红时,南北方向红灯亮,东西方向黄灯亮, 时间5秒;实现红、绿、黄3灯亮时分别以“倒计时” 25秒、20秒、 5秒方式显示。开机自动循环运行,显示时间基本单位为“秒(s)”。 直到有外部控制信号介入或系统掉电,系统将一直循环运行下去。流程图开始主程序循环流程2. 倒计时显示及延时部分本设计利用单片机的P0和P2 口来做数码管的段码驱动,P0 口 对应南北方向,P2 口对应东西方向,数码管选用共阴极BCD码显示。以东西通行,南北禁行为例,流程图如图所示:东西通行,南北禁行倒计时显示及延时部分流程图同理,东西禁行,南北通行时,将P0和P2 口线显示顺序调换即可。当一个方向禁行,另一个方向警告
12、时,即一方黄灯,另一方红灯时,双方的 显示倒计时时间相同。程序流程如图所示:一个方向禁行,另一个方向警告的时程序流程图3.中断显示部分当紧急情况发生时,按下紧急按键(外部中断INT1),单片机输 出紧急信号,系统进入紧急状态。此时,信号灯显示全为黄灯,倒计 时显示为零。中断显示程序如图13所示:等待复位)中断显示程序图六. 调试过程及仿真结果将程序放入keil uVision4中进行编译调试,若调试无误通过,与Proteus软件连在一起进行调试。1. 编译调试2. 电路连接TERMINALSDEFAULTcop *+t |l I HO 12 Message(s) |Wirei理漏w本地._/基
13、于._v新建.E hys.恤交通.臼新建.P本地.|凹新建.|已新建.依事凸16:42700.0 -900.0 Ih整体图Ei5 交通灯hys - ISIS Professional (Locked)File Vi ew Edi t Tools Desi gn Graph Source Debug Library Template System Help口序#7孙 尊回 腥忘|辛一申瓦巅昭屈 前灭ibkiide) h队才F忍回*壑/口。rCDA 国+TERMINALSDEFAULTINPUT OUTPUT BIDIR POWER GR 口 LIND BUS数码管及LED部分d目wi*毋 毋回函
14、而|辛1 小虱国 j9aizaai 饮回/dc5 6c3As+U13919XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTA 技P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD73837X1183635n3433932T O IrtLc(;1_AIP2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15211nFTnF22T匚VT卜I vTPVT23Jk -29243025312627c;328Rn1P1.0P3.0/RXDP1.1P3.1/TXDP1.2P1
15、.3P3.3/INTFP1.4P3.4HUP1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RD101nF211-:-TPY312413514615JJ7161817J,AT89C511C O |6 44 t | | l | II |O 12Mes$age(s) |Wire-6700.0 +2400.0 th坍开始| gg e g 曰 W本地|白基干.| 0新建.| jShysIllg交通 3新建.|本地.|画新建.|日新建|遂翁16:30外部时钟及复位电路紧急按键电路3. 参数设置将程序装入仿真软件,设置时钟频率为6MHZ。1515 交通灯h”01 - ISIS Professi
16、onalFile View Edi t Tools Design Graph Source Debug Library Tempi ate System HelpJ3 TERMINALSDEFAULTINPUT OUTPUTBIDIRPOWER GROUND BUSc o 厂 *+1 i : i ” ran o 12 Messaged Root sheet 1开始1 S侄6 W本地.曰基于.1 D新建.屹hys. |厕交通曰新建.本地.|匝新建.曰新建.磕史传16:334. 开始仿真a.启动程序后,LED数码管及二极管点亮,此时数码管南北向倒计时起始数为20,东西向为25。东西向红灯亮,南北向
17、绿灯亮。File Vi ew Edi t Tools Desi gn Graph Source Debug Library Template System Help击或曲)E |阻囱奇+您成性|1船矛D ,券区列19EF,虬ILTINPUT OUTPUT BIDIFI POWER GROUND BUSFpiTERMINALS2。厂 + t| | l | II | | O 5 Message(s)PAUSED: 00:04:22.450000+1700.0 -4350.0 th坍开姻霉e日) 本地.| _)基千.| H新建.| 四 hys.|匣交通.,D新建.1 *本地.1曹成. 1白新建.J
18、苣命 16:24回 TERMINAL,DEFAULTINPUT OUTPUT EHDIFi POWER GROUND BUS/QDraAMb.当南北向倒计时率先变为零时,南北向向黄灯亮起,倒计时变为5S,而东西向继续红灯,直至倒计时结束。Eis 交通灯hys - ISIS Professional (Aniating)File Vi ew Edi t Tools Design Graph Source Debug Library Template System Help-3000.0 -3700.0 thU P 厂 t I I * I H | | O 5 Message(s) PAUSED:
19、00:04:52.600000 / 本地.| m基干.I 0新建| )hys. |瓯交通.3新建| P本地. |也新建| U新建|16:26仁当东西向,南北向倒计时均为零时,南北向红灯亮起,东西向绿灯亮起,此时东西向倒计时变为20S,南北向倒计时变为25S。口序.|*街|尊回函巨I* I+ 您虱国 HR E) +m=一一卅 UF忍回/d0Dc3A 回+CD + t I I I + Il 5 Me$sage($) | PAUSED: 0004:53.900000*15000 -1200 0 th开始+ | J ,本地.基干.新建.国玄通.新建.本地.新建. 新建.g 16:27d.紧急情况下摁下
20、紧急按键,所有方向均变为黄灯,倒计时置零, 静止不动(因忘了截图,暂用网络图片一张)mmD5 UUira-tfii霞卜WW轩1番忡-=F D6i-RHiD3.LHi-lLD2 m-.! :ETI ,e.正常运行中间过程D序.I甄垃i阻卸中禽|9。|二昭|二吞|景#舞/|匣|前六i 1 E) 19_p DEFAULT INPUT OUTPUT BIDIFI POWERTER , NALt;GROUNDBUSCO *+ t I | I| II | | 5 Message(司ANIMATING: 00:00:01.900000 (CPU load 3)+1700.0 -1800.0 Ihd开始I富
21、e 口 9本地.I 3基于.|-)新建.|嗯hysl. |匣交通. Q新建.I 9本地.|新建.|萱希O 16:055. 仿真结论本次仿真基本达到设计效果,由于绿灯变红灯时需要经历5S的黄 灯时间,因此南北向和东西向的倒计时起始时间相差5,当一向变 为黄灯时,双向的倒计时时间正好相等,同时实现通行和停止信号的 转换。当遇到紧急情况需要停止红绿灯时,摁下停止按键,交通灯全 变为黄灯,倒计时停止,信号失效。如果需要重新计时,摁下复位键, 数码管开始重新倒计时,发光二极管状态不变。由于线路复杂,图中 并未同时接通两组信号灯,实际操作中可以全接。七. 真机调试将程序下载至单片机,确认无误后上电,单片机
22、开始运行。本次实 验中由于所用单片机硬件数量不足,故显示不完全,无法达到预期效 果,因此仅得出仿真结果。八. 课设心得此次课设整体上来说还是比较顺利的,基本达到了预期效果。但 是中途还是出现了一些小的挫折,比如说由于数码管的错误选型导致 其无法正确亮起,后来经过研究生学长的帮助后终于找到了正确的选 型。除此之外,刚开始对晶振频率设置过高,导致倒计时速度过快, 不切合实际,后经过多次试验,终于找到了合适的频率。通过本次课设,我对单片机的硬件结构更加了解,特别是各个引 脚的功能及设置方面,与此同时,我还学会了多种实用的电路,比如 说复位电路及紧急按键电路等。加深了对这门课程的理解,为以后继 续学习
23、和使用单片机及其他嵌入式系统打下了基础。当然,本次课设的内容还设计到计算机控制技术,电子技术基础等 多门课程讲到的内容,这让我不得不联想到相关的课程,可以说加强 了对自动化各学科的融会贯通吧。不过,有些遗憾的是,实验室的单片机开发板硬件配置不足,没有 成功实现真机调试,而自己手里的单片机板子由于型号原因及接线的 差异也难以达到预期效果。但至少程序没有什么问题,从对程序的编 写及修改中收获也是很多的。最后想说的是课设的成功还归功于各位同学及学长的耐心指导和 帮助,也提高了本人的团队意识或是合作意识,对于以后的工作和学 习良处颇多!;程序入口地址;下降沿触发方式;开启总中断;开启外部中断1;将 2
24、1H (0010 0001)给 P1 口输出;调用LED显示程序A;将 11H (0001 0001 )给 P1 口输出;调用LED显示程序B;将 0CH (0000 1100)给 P1 口输出;调用LED显示程序C;将 0AH (0000 1010)给 P1 口输出;调用LED显示程序A;跳转到START程序,实现循环;程序入口地址;关闭外部中断1;将 12H (0001 0010)给 P1 口输出九.附录1.程序清单ORG 0000HLJMP STARTORG 0013HLJMP STOP;-START 程序-ORG 0100HSTART:SETB IT1SETB EASETB EX1MO
25、V P1,#21H LCALL XSA MOV P1,#11H LCALL XSBMOV P1,#0CH LCALL XSC MOV P1,#0AH LCALL XSBAJMP START;-STOP中断服务程序ORG 0200H STOP:CLR EX1MOV P1,#12H;程序入口地址;跳转到START程序;外部中断1程序入口地址;跳转到STOP中断服务程序MOV P0,#00HMOV P2,#00HLJMP $;将 00H (0000 0000)给 P0 口输出;将 00H (0000 0000)给 P2 口输出;进入死循环,直到复位键被按下;程序入口地址;将20存放到R7中;将R7的
26、值给寄存器A;将10存放到寄存器B中;A除以B,将商存放到A,余数存放到B;将A的高四位与低四位调换位置,存放;A与B的值相加,和存放到A中;将累加器A的值给P2 口输出;将5存放到R6中;将R7的值给寄存器A;A与R6的值相加,和存放到A中;将10存放到寄存器B中;A除以B,将商存放到A,余数存放到B;将A的高四位与低四位调换位置,存放;A与B的值相加,和存放到A中;将累加器A的值给P0 口输出;调用延时1s程序;R7减1,若结果非零,则跳转到XSA1;跳出;-LED显示AORG 0300HXSA: MOV R7,#20XSA1:MOV A,R7MOV B,#10 DIV AB SWAP A
27、到A中ADD A,BMOV P2,AMOV R6,#5MOV A,R7ADD A,R6MOV B,#10 DIV AB SWAP A到A中ADD A,BMOV P0,A LCALL DEDJNZ R7,XSA1 RET;-LED显示BORG 0400HXSB: MOV R7,#5XSB1:MOV P0,R7MOV P2,R7LCALL DEDJNZ R7,XSB1;程序入口地址;将5存放到R7中;将寄存器R7的值给P0 口输出;将寄存器R7的值给P2 口输出;调用延时1s程序;R7减1,若结果非零,则跳转到XSB1;跳出;程序入口地址;将20存放到R7中;将R7的值给寄存器A;将10存放到寄存
28、器B中;A除以B,将商存放到A,余数存放到B;将A的高四位与低四位调换位置,存放;A与B的值相加,和存放到A中;将累加器A的值给P0 口输出;将5存放到R6中;将R7的值给寄存器A;A与R6的值相加,和存放到A中;将10存放到寄存器B中;A除以B,将商存放到A,余数存放到B;将A的高四位与低四位调换位置,存放;A与B的值相加,和存放到A中;将累加器A的值给P2 口输出;调用延时1s程序;R7减1,若结果非零,则跳转到XSC1;跳出;程序入口地址;将FAH存放到R2中;将FAH存放到R2中;R2减1,若结果非零,则跳转到DE2;R1减1,若结果非零,则跳转到DE1;跳出;结束RET;-LED 显
29、示 C- ORG 0500HXSC: MOV R7,#20XSC1:MOV A,R7MOV B,#10DIV ABSWAP A到A中ADD A,B MOV P0,A MOV R6,#5 MOV A,R7 ADD A,R6MOV B,#10 DIV AB SWAP A到A中ADD A,B MOV P2,A LCALL DEDJNZ R7,XSC1 RET;-延时1S程序- ORG 0600HDE: MOV R1,#0FAH DE1:MOV R2,#0FAH DE2:DJNZ R2,DE2DJNZ R1,DE1 RET END2.元器件清单元件名称型号数量数码管7SEG-BCD8心片AT89C511手动开关BUTTON2电容CAP3电阻RES10发光二极管(三色)LED12晶振CRYSTAL13. 参考文献牛昱光主编单片机原理与接口技术电子工业出版社51单片机实验指导书胡汉才主编单片机原理及其应用清华大学出版社出版何立民主编单片机应用文集北京航空航天大学出版社出版3/卯TAIYUAN UNIVERSIIY OF TECHNOLOGY嵌入式系统基础课程设计报告设计题目:交通灯系统设计姓 名: 韩雨松班 级:自动化1101学 号:2011001201指导老师:李立宏时 间:2014年6月29日