资源描述
下面是我们的报告演示! 各位老师好! LOGO 设计题目: 基于单片机实现的交通灯控制系统 小组成员: XXX XXX XXX 指导老师: 设计时间: LOGO 目 录 2 系统总体设计 3 软、硬件设计 4 安装与调试 5 结论 6 收获、体会和建议 设计任务及要求 1 LOGO 1.设计任务及要求 1.1设计任务 以 AT89S51为核心 芯片模拟实现十字 路口交通灯亮灭、 倒计时显示、紧急 情况处理等功能。 1.2技术要求 ( 1)正常情况: 正常情况下 A(南北方 向), B(东西方向)( A, B道交叉组成十 字路口, A是主道, B是支道)轮流放行, A 道放行 1min, B道放行 30s,当剩余时间为 5s时,绿灯闪亮,为 3s时,黄灯闪亮,时 间到时交通灯换向。 ( 2)紧急情况:紧急车辆通过时, A, B道 均为红灯,除了紧急车辆能通过外其他的 车辆禁止通行。 ( 3)倒计时显示: 显示时间要倒计时,并 且红绿灯点亮时间可调,即倒计时可调。 2.1方案论证 2.2交通灯系统结构设计及说明 2.系统总 体设计 LOGO 1.信号灯方案 方案一:一个交通灯用一个 I/O口控制,即东南西北 4个方向上的 12个交通灯分别由 12个 I/O口控制。 方案二:两个方向上的同一种颜色的交通灯由同一个 I/O口控制。 2.电源提供方案 方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用; 缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。 方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺 点是输出功率不高。 3.倒计时方案 方案一:采用数码管显示。这种方案可以有效显示数字,只要通过对 I/O口 的控制,就能输出相应的段码及位选,得到所需额的数字。 方案二:采用点阵式 LED 显示。这种方案功能强大,可以方便的显示各种英文字符,汉 字,图形等,但是这种方案实现复杂,且须完成大量的软件工作。 2.1方案论证 方案二 方案一 方案二 LOGO 4.数码管显示方案 方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极 管恒定的导通或截止。该方式每一位都需要一个 8 位输出口控制。静态显示时较小的电 流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的 I/O口 太多,造成了资源的浪费。 方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每 一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须 保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间 与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了 I/O口, 降低了能耗。 5.按键方案: 方案一:用独立式按键来控制。独立式按键就是各个按键相互独立,每个按键各接一 条 I/O口线。一根 I/O口线的按键工作状态不会影响其他 I/O口线上的工作状态。因此,通 过检测 I/O口线的电平状态可以很容易判断哪个按键被按下。独立式按键电路配置灵活, 软件结构简单。但每个按键需占一根 I/O口线,这种按键电路适合按键数量较少或操作速 度较高的场合。 方案二:用矩阵式键盘来控制。矩阵式按键电路每一个按键开关占用一个 I/O口线。 当按键数量较多时,可以采用此方法。矩阵式按键由行线和列线组成,按 键位于行、 列的交叉点上行、列线分别连到按键开关的两端,当有键按下时,行线电平状态将由此 行线相连的列线电平决定,列线电平如果为低,则行线电平为低;反之,则高。这一点 是识别矩阵式按键是否按下的关键。矩阵式按键个按键之间彼此发生影响,所以必须将 行、列线信号配合起来并做适当的处理,才能确定闭合键的位置。 方案一 方案二 LOGO 2.2交通灯系统结构设计框图及说明 AT89C51 信号灯模拟 数码管显示 振荡电路 按键输入 系统设计说明: 整个系统以单片机为系统核心,系统分为最小系统模块、按键输 入模块、数码管显示模块、信号灯模块组成。通过各个模块的有 效组合,共同完成对交通灯的控制。 最小系统:单片机内部是一个集接收信号、信号处理、发送信号, 定时及计数等功能于一体的超大规模集成电路。单片机里虽然集 成了很多电路,但仍然不能独立运行,必须要外连一些电路,才 能使单片机运行起来。这种能使单片机工作的最简电路,我们叫 做单片机最小系统。 信号灯的显示:信号灯的模拟采用 12只红、黄、绿发光 LED灯。 红灯点亮表示禁行,黄灯点亮表示警告,绿灯点亮表示通行。 数码管显示:用两个 2位数码管来显示倒计时,分别显示 A道和 B 道信号灯显示时间。 按键输入:用 5个独立式按键对整个系统进行控制,可以对倒计 时和紧急情况进行控制。 3.软、硬件设计 3 1 1 硬件总 体设计 3 1 2 硬件单元 模块设计 3.1硬件设计 3.2软件设计 3 2 2 软件单元 模块设计 3. 2.1 软件总 设计 3.1.1硬件总体设计 工作原理说明: 本设计采用 12个 LED发光二极管模拟 红、黄、绿交通灯,用单片 P1口控 制发光二极管的亮灭状态。在不考 虑左转弯车辆行驶的情况下,东、 西两个方向的信号灯显示状态是一 样的,所以,对应两个方向上的 6个 发光二极管只用 P1口的 3跟 I/O口线 控制即可。同样,南北方向上的 6个 发光二极管可用 P1口的另外 3跟 I/O 口线控制。当 I/O口线输出高电平时, 对应的交通灯灭;反之,当 I/O口线 输出低电平时,对应的交通灯亮 3.1.2硬件单元模块设计 电源:电源正极接 40( Vcc)引脚,电源负极 接 20( Vss)引脚。电源电压为 5V,正负偏离 值不超过 5%。 振荡电路:单片机内部由大量的时序电路构 成,没有时钟脉冲即 “ 脉搏 ” 的跳动,单片 机的各个部分将无法工作。所以在单片机的 内部集成有振荡电路,只需按图将晶振 ( 12Mhz)和电容( 30Pf)接到单片机的 18 ( XTAL2)引脚、 19( XTAL1)引脚,一个完 整的振荡器即 “ 心脏 ” 就构成了,只要接通 电源,这个心脏的脉搏就会按固定的频率开 始跳动,晶振的频率决定了单片机工作的快 慢。晶振采用了内部时钟信号源的方式。对 于时间要求不是很高的系统,只要按图进行 设计就能使系统可靠起振并稳定运行,图中 的电容 C1、 C2起着系统时钟频率微调和稳定 的作用,因此在实际应用时注意正确的参数 选择( 20-40 PF),并保证其对称性。 复位电路:用于将单片机内部的各部分电路 的状态恢复到初始值。按图将电容接到 9 ( RES/VPD)引脚,在通电的一瞬间使 9脚获 得一个高电平,单片机内部电路就被自动复 位了。此系统采用上电按钮复位方式 最小系统 信号灯模块采用 12个红、黄、 绿发光 LED灯来模拟交通灯指挥 系统。考虑到单片机端口常态 是高电平,所以设计时采用低 电平点亮。通过 P2口输出的电 平状态来实现 A、 B两道信号灯 状态的改变。 信号灯模 块 按键模块采用独立式 按键电路,按键的一 端接口,另一端 接地,在接口那 端接上拉电阻。只要 某个按键有按下时, 对应的 I/O口就能检测 到低电平,单片机对 采集到得信号进行分 析,从而做出反应。 按键模 块 由内部原理图可知 8段数码管由 8个 LED发光二极管组成,通过 控制不同 LED的亮灭可以显示 出相应的字形。数码管分为共阴型和共阳型共阴极就是将 8个 LED的阴极连在一起,让其接 地,这样给任何一个 LED的另 一端高电平,它就能点亮。共 阳型则相反。 本系统采用的是 2位共阳型数码 管,其 5脚和 10脚分别是右边数 码管和左边数码管的公共端, 只要给予需要的低电平就能显示出所要的字形。 P0口控制数 码管的段选, P2口控制位选, 外接下拉电阻可以保护数码管。 数码 管模 块 数码管内 部图 3.2.1软件总设计 主程序流 程图 设计思路说明 1)正常情况下 a、程序开始后, A主干道(南北)要通行,支道(东西) 禁行,即 A道的绿灯点亮,红、黄灯熄灭; B支道红灯亮, 绿、黄灯熄灭。数码管开始倒计时 b、倒计时显示为 5时,绿灯开始以 1秒间隔闪烁;倒计时显 示为 3时黄灯点亮 c、 60秒倒计时完后 A主干道禁行, B支道通行,即道红灯 亮,绿、黄灯熄灭;支道绿灯亮,红、黄灯熄灭。然后 重复步骤,最后重复步骤,如此循环。 2)调整情况下 a、对道倒计时进行调整。按下 P3.2时对 A道的倒计时调 整即可可调 A道红绿灯通行时间,调整完后,再按下 P3.2后 完成对 A道的调整。 b、对 B道倒计时进行调整。按下 P3.3时对 B道的倒计时调整 即可调整 B道红绿灯通行时间,调整完后,再按下 P3.3后完 成对 B道的调整。 3)紧急情况下 在紧急情况下,禁止所有方向的车辆通行,各方向的信 号灯状态变成红色。按下 P3.2进入紧急情况处理,程序进 入中断控制程序,可以实现将交通灯切换到全部显示红灯 状态。 3.2.2软件单元模块设计 由主程序负责向 P1口发送交通灯 显示数据,用寄存器 R2存放调用 0.5S延时子程序的次数,只要修改 调用的次数就可获得不同的延时时 间。延时子程序采用定时器 T1,工 作方式实现 50ms定时,用寄存器 R3存放循环次数,循环 10次便可 获得 0.5s的延时。 2位 LED显示时间由显示缓冲区单元中的数据 决定。动态显示每位的持续时间为 1ms,采 用软件延时。 1秒钟的定时采用定时器 T0, 方式 1来实现,每 50ms中断一次,每中断一 次计数单元 61内容加 1;若计满 20次,秒 计数单元 60内容加 1; 60H单元中的数据采 用压缩 BCD码按十进制数计数,将该单元中 的数据拆成各位和十位两个十进制数据后分 别送至显示缓冲区。 对 A道调整时,进入 A道调整程序, 所有红灯点亮, A道数码管显示初 始值 55;按下加一键时,数码管数 字加一,加到 99时再往上加就从 00 开始往上加如此循环。按下减一键 时,数码管数字减一,减到 00时再 往下减就从 99开始往下减如此循环。 对 B道调整时,原理同道相似。 在主程序的开始部分增加中断管理初 始化指令,分别设置好与中断有关的 IE,IP,TCON寄存器。在运行正常交通 灯显示管理程序时,若接受到来自 P3.2引脚的外部中断请求信号,程序 将自动转入执行中断服务子程序。中 断服务子程序的功能就是点亮所有的 红灯,让各方向的普通车辆出于禁止 通行的状态,当再次按下开关的时候 将返回主程序继续保持正常运行的状 态 LOGO 5 1调试过程 1信号灯显示测试 当电路连接完毕后,将写好的测试程序下载到电路板的芯片内,并给芯片通电即可 检测。 2数码管的测试 将串口的和电路板上的接口连接,将写好的测试程序刷写到芯片内,开电源即可测 试。 3整体电路测试 系统上电,刷写好程序即可开始测试,观测一个周期(即 A、 B两条干道各通行一次, 和各禁行一次) LED灯的显示状态是否正常,同时观察数码管的倒计时的计数是否正常, 并观察紧急处理按键 p3.2按下时, A、 B两天干道是否都处于禁行状态,放开时是否又恢 复原来按下前的状态,以及在正常的运行中,任何时候按下对 A调整键或对 B调整键时, 是否能够对 A干道或对 B干道的通行时间进行调整,(即加一键、减一键和相应的确定键 是否能正常使用),以及在对 A干道或对 B干道的通行时间进行调整后,是否能够按调整 之后的允许通行时间进行运行等 4.焊接时注意各个器件的引脚处 ,注意区分各个电阻与电容的数值要仔细看清楚 ,每一 个器件都要尽量贴近印制板 ,最后 ,要用万用表测试一下 ,检查有没有短路的的地方。 5.在编写延时程序时尤其当延时常数太大时仿真时程序易死,所以使用定时器定时中 断的方法,然后对定时计数以次延时 LOGO 6结论 用的是单片机作为核心的控制元件,使 得电路的可靠性比较高,功能也比较强 大,而且可以随时的更新系统,进行不 同状态的组合。 在我们设计和调试的过程中,也发现了 一些问题,譬如红灯和绿灯的切换还不 够迅速,红绿灯规则不效率还不是很高 等等,这需要在实践中进一步完善。 进一步熟悉单片机内部的硬件资源,更 加了解单片机中定时器、中断技术的使 用,同时还提高综合程序的调试能力。 以及对编程软件,仿真软件更加熟练地 操作。 LOGO 收获 体会 建议 在老师的指导下我们完成了整个设计,通过本次设计较系统地掌握有关单片机控制的 设计思想和设计方法,主要对 AT89C51的结构、功能、内部资源等了解并对其进行测试和 加以应用的知识得到学习。并且使我们得到了一次用专业知识、专业技能分析团队合作 和解决问题全面系统的锻炼,深刻体会到团队合作以及分工明确的重要性。使我们在单 片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧的掌握方面 都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。在完成本设计的 过程中培养了我们的查找以及对文档的整理能力,在遇到困难时能通过工具书网络查找 知识点,或者向同学寻求帮助。在写程序时,养成在每条指令后都写好注释的习惯,以 便在程序出错的检查过程中可以更容易查找得到。系统不足之处不能控制车的左、右转、 以及自动根据车流改变红绿灯时间等,如果有需要可以设计扩充原系统来实现 。 LOGO 8参考文献 1 张迎新,何立民 等单片机初级 教程 单片机基 础(第二版) 北京:北京航空 航天大学出版社 , 2008 2 张永枫,王静霞, 刘守义等单片 机应用实训教 程北京:清华 大学出 2008 3 http:/www.led- se/digit/PDF/tw o/S04021E-F.pdf LOGO 9附录 LOGO
展开阅读全文