基于c语言单片机交通灯.docxVIP

  • 4
  • 0
  • 约7.25千字
  • 约 30页
  • 2021-02-23 发布于天津
  • 举报
精品文档 精品文档 随意编辑 随意编辑 1 设计课题设计要求及总体方案介绍 设计课题任务 设计一个具有特定功能的十字路口交通灯。 该交通灯上电或按键复位后能自 动显示系统提示符“ d.1004-16 ”, 进入准备工作状态。按开始键则开始工作, 按结束键则返回“ d.1004-16 ”状态。 功能要求说明 要求甲车道和乙车道两条交叉道路上的车辆交替运行, 甲车道为主车道, 每 次通车时间为 60 秒,乙车道为次车道,每次通车时间为 30 秒,要求黄灯亮 3 秒,并且 1 秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间 10 秒,同时禁止其他车辆通过。 交通灯总体方案介绍及工作原理说明 电源提供方案 为使模块稳定工作, 须有可靠电源, 采用单片机控制模块提供电源。此方案 的优点是系统简明扼要,节约成本;缺点是输出功率不高。 复位方案 复位方式有两种:按键复位与软件复位。由考虑到程序的简洁,避免冗长, 本设计采用按键复位, 在芯片的复位端口外接复位电路, 通过按键对单片机输入 一个高电平脉冲,达到复位的目的。 输入方案 直接在 IO 口线上接上按键开关。因为设计时精简和优化了电路,所以剩余 的口资源还比较多,我们使用 2 个按键,分别是 K1 、K2。 由于该系统对于交通灯及数码管的控制,只用单片机本身的 I/O 口就可实 现,且本身的计数器及 RAM 已经够用 显示界面方案 该系统要求完成倒计时、状态灯等功能。 采用数码管与点阵LED (点阵式和8段式LED)相结合的方法因为设计既 要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况, 用数码管与 LED 灯分别显示时间与提示信息。这种方案既满足系统功能要求, 又减少了系统实现的复杂度。 权衡利弊, 第三种方案可互补一二方案的优缺, 我 们决定采用方案三以实现系统的显示功能。 2交通灯硬件系统的设计 交通灯硬件系统各模块功能简要介绍 设计方框图 图2-1 复位电路模块 复位方式有多种,本设计采用按键复位,在设定的定时时间内, 89S52 必须在 RST 引脚产生一个由高到低的电平变化,以清内部定时器。 晶振电路模块 选取原则:传统做法,但能够实现所需,即最简单也最是实用。电容选取 33pF ,晶振为 12MHz 。 流水灯电路模块 流水灯电路直接接在单片机的 P2 口上,采用共阳接法。 数码管电路模块 数码管的段控口接在单片机的 P0 口上,位控通过三极管接在单片机的 P 2 口上。 按键电路模块 按键电路的设计就是在一段共接地,另一端通过上拉电阻接到 P1 口有按键 时。相应的口就会变成低电平,产生一个下降沿。 下载口电路 下载口的 1 脚接在 P1.5 口,2 脚悬空,3 脚接在单片机的复位口上, 4 脚接在 P1.6 口,5 叫接在 P1.7 口, 6 、7、8、9、10 接地。 交通灯电路原理图、 PCB 图、元器件分布图 电路原理图见附录 1 PCB 顶层图见附录 2 PCB 底层图见附录 3 元器件布局图见附录 4 交通灯元器件清单 元器件清单见附录 5 3 交通灯软件系统的设计 3.1 单片机资源使用情况 AT89S52 的 P3 口用来接八个发光二极管的阴极,控制其亮与灭, P0 口和 P2 口外接由 8 个 LED 数码管构成的显示器,用 P0 口作 LED 的段码输出口 (P0.0~P0.7对应于LED的a~dp ), P2 口作LED的位控输出线,P2 口外接3 个按键A、B、C (分别对应于P1.0、P1.1、P1.2)用于调整显示接口电路。 软件各模块简要介绍 软件设计是由 C 语言来编写的,由主程序、键处理和键扫描程序、显示程 序、延时程序这几个模块组成的。 主程序 主程序中会一直调用显示程序、键扫描程序,延时程序,当没有键按下时, 数码管会一直显示P.,当有按键按下时,就会按操作执行。 显示程序 显示程序主要完成数码管动态显示。 键处理和键扫描程序 键处理程序主要将 P1 口的取值送往单片机进行取反。键扫描主要判断是否 有键按下, 即过度前沿抖动在判断是否有键按下。 最终将处理完的键值作为返回 值返回。 延时程序 延时程序主要是用来倒计时用的,用来计算秒数。 交通灯程序流程图 3.3.1 主程序流程框图 主程序流程图如图3-1所示 图3-1 紧急情况时的中断服务程序(外中断 0) 返回 图3-2 332 显示子程序流程框图 显示子程序框图如图3-3所示 图3-3 333 键扫子程序流程框图 键扫子程序流程框图如图3-4所示 开始 取P1 口的值并取反 判断取反后是否为0 判断取反后是否为0 调显示延时过 渡前沿抖动.:: 调显示延时过 渡前沿抖动 .::二判断值是否还不为0 二:一 ■迟二 ■迟二:判断按键是否释放 返回

文档评论(0)

1亿VIP精品文档

相关文档