嵌入式交通灯设计_第1页
嵌入式交通灯设计_第2页
嵌入式交通灯设计_第3页
嵌入式交通灯设计_第4页
嵌入式交通灯设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统设计专题实践 交通灯控制系统 专业 专业 电子信息工程电子信息工程 班级 班级 电子电子 1102 姓名 姓名 XXX 学号 学号 XXXXXXXX 同组人 同组人 XXX 指导教师 指导教师 XXX 1 目录 一 方案设计与论证 1 1 1 系统任务描述 1 1 2 系统方案设计 4 1 3 系统框图 4 二 硬件电路设计 4 2 1 控制器最小系统设计 4 2 2 数码管显示模块设计 6 2 3 交通灯指示模块设计 8 三 系统软件设计 8 3 1 系统软件流程图 8 3 2 500ms 定时器子程序设计 9 3 3 计数显示子程序设计 10 四 系统调试 11 4 1 硬件调试 11 4 2 软件调试 11 4 3 综合调试 11 五 结论 12 六 心得体会 13 七 附录 15 2 7 1 实物图 15 7 1 参考文献 16 7 2 示例代码 16 摘要摘要 随着移动设备的流行和发展 嵌入式系统已经成为一个热点 它并不是最 近出现的新技术 只是随着微电子技术和计算机技术的发展 微控制芯片功能 越来越大 而嵌入微控制芯片的设备和系统越来越多 从而使得这种技术越来 越引人注目 它对软硬件的体积大小 成本 功耗和可靠性都提出了严格的要 求 嵌入式系统的功能越来越强大 实现也越来越复杂 随之出现的就是可靠 性大大降低 最近的一种趋势是一个功能强大的嵌入式系统通常需要一种操作 系统来给予支持 这种操作系统是已经成熟并且稳定的 本文将介绍一种基于 飞思卡尔 K60P144M100SF2RM 控制的交通信号灯的自动指挥系统 交通信号灯控 制方式很多 本系统采用嵌入式系统 本系统性能稳定 功能完善 实用性强 关键词 关键词 交通灯 K60P144M100SF2RM 嵌入式系统 定时显示 3 一 方案设计与论证一 方案设计与论证 1 11 1 系统任务描述系统任务描述 本次设计中根据实际需要 结合嵌入式系统的特点 完成对交通灯的 控制系统设计 系统功能包括实现对车辆的直行 左拐 停止等待等功能 基于飞思卡尔 K60P144M100SF2RM 控制器 实现对车辆进行指导控制 本系 统中主要由控制器最小系统 数码管显示模块 交通灯模块等相关模块构 成 系统任务包括三个环节 假设十字路口南北方向为主干车道 东西方向为支干道 1 完成交通灯的变化规律 就是一个十字路口分别为东西向和南北向 四 个路口均有红黄绿三灯和两位 LED 数码显示管 及每个路口有一个人行道 交通灯 2 交通灯上电后进入初始状态即东西红灯常亮 60s 南北绿灯常亮 60s 第一种状态 南北绿灯亮通车 东西红灯亮禁止通行 当东西红灯亮时 东西方向的人行道为绿灯 持续 60s 后转第二个状态 南北绿灯灭转黄灯 闪亮 10 次 延时 10s 东西仍然红灯 东西方向人行道仍为绿灯 10s 后转 第三个状态 东西绿灯亮通车 60s 南北转红灯禁止通行 60s 南北方向人 行道为绿灯持续 60s 60s 后转第四个状态 东西绿灯灭转黄灯闪亮 10 次 延时 10s 南北仍然红灯 南北方向人行道仍为绿灯 最后循环至第一种 状态 3 用 4 个两位一体 LED 数码管 各个方向均有 1 个两位一体 LED 数码管 分别表示个位和十位 显示倒计时 倒计时用于提醒驾驶员和行人信号灯 发生变化的时间 以便他们在 停止 和 通行 两者作出合适的选择 以下为系统的工作状态图 4 图图 1 1 1 1 工作状态图工作状态图 下为本系统的工作方式图 图图 1 21 2 工作方式图 工作方式图 1 1 状态 1 60s 状态 2 10s 状态 3 60s 5 图图 1 21 2 工作方式图 工作方式图 2 2 1 21 2 系统方案设计系统方案设计 本系统基于 K60P144M100SF2RM 控制器设计的交通灯控制系统 设计过程主 要采用自上向下的设计思路和模块化设计的设计思想 对软件和各个硬件模块 进行独立设计 综合调试 软件包括显示 定时器 GPIO 时钟等设置 硬件 6 电路包括由三极管驱动的数码管显示电路以及交通灯显示电路 1 31 3 系统框图系统框图 图图 1 31 3 系统框图系统框图 K60P144M100SF2RM 控制器 最小系统 电源 数码 管显 示计 时模 块 7 二 硬件电路设计二 硬件电路设计 本系统中硬件系统包括 K60P144M100SF2RM 最小系统设计 数码管显示模 块 交通灯显示模块 采用模块化设计的思想对以上模块进行设计 2 12 1 K60P144M100SF2RMK60P144M100SF2RM 最小系统设计最小系统设计 Kinetis 是低功耗可扩展和在工业上使用混合信号 ARM Cortex M4 系列 的 最好的组合 Kinetis MCUs 使用了飞思卡尔的新的 90nm 带有独特 FlexMemory 的薄膜存储器 TFS 闪存技术 Kinetis 系列 MCU 结合了最新的低 功耗革新技术和高性能 高精密混合信号功能与连通 人机界面 安全及外设 广泛 Kinetis MCUs 使用了飞思卡尔和 ARM 第三方合作伙伴的市场领先的捆绑 模式 所有 Kinetis 系列都包涵强大的逻辑 通信和时序阵列和带有伴随着闪 存大小和 I O 数量的集成度等级的控制外围部件 Kinetis 产品组合内核具有 以下特点 ARM Cortex M4 内核带 DSP 指令 性能可达 1 25 DMIPS MHz 部 分 Kinetis 系列提供浮点单元 32 通道的 DMA 可用于外设和存储器数据传输 并减少 CPU 干预 提供不同级别的 CPU 频率 50 MHz 72 MHz 和 100 MHz 部 分 Kinetis 系列提供 120 MHz 和 150 MHz 10 种低功耗操作模式用于优化 外设活动和唤醒时间以延长电池的寿命 行业领先的快速唤醒时间 正是由于 K60 控制器在性能上有较多的优点和较低的功耗 因而适合用来开发交通灯控 制系统 以下为本控制器的最小系统原理图 8 9 图图 2 12 1 最小系统原理图最小系统原理图 2 22 2 数码管显示模块设计数码管显示模块设计 LED 显示器采用发光二极管显示字段 单片机糸统中经常采用的是八段 显示器 即 LED 显示器中有 8 个发光二极管 每段 LED 的笔画分别称为 a b c d e f g 代表 a b c d e f g 七个字段和一个小数点 dp 它有共阴和共阳两种结构 七段 LED 的阳极连在一起称为共阳极 接法 而阴极接在一起的称为共阴极接法 图图 2 22 2 数码管数码管 10 图图 2 22 2 七段七段 LEDLED 的段代码的段代码 数码管的驱动分为静态和动态驱动 在本系统中采用两个共阳数码管 进行动态显示 分别对三个状态进行计时 个位和十位分别用一个数码管 显示 每次计时加一的时间是 1s 以下是本模块的原理图 11 图图 2 32 3 四位共阳数码管四位共阳数码管 其中由数码管的位选端和段选端进行控制数码管的显示程序 根据 PNP 三极管的导通原理 当位选端为低电平时 三极管导通 根据共阳极 编码进行合理设置即可 此外用三极管驱动数码管的原因是三极管显示更 明亮一些 用数码管显示效果比较直观 2 32 3 交通灯指示模块交通灯指示模块 12 由南向北和由北向南车道各用一组红 绿 黄三色的指示灯 指挥车辆 通行 绿灯是通行信号 面对绿灯的车辆可以直行 红灯是禁止通行信号 面对红灯的车辆必须在路口的停车线后停车 黄灯是警告信号 面对黄灯 的车辆不能越过停车线 但车辆已十分接近停车线而不能安全停车时可以 继续行进 三 软件设计三 软件设计 3 13 1 软件系统流程图软件系统流程图 在系统的软件设计时 需要对系统时钟进行设计 以满足对本次系统 的功能需求 还需对 GPIO 端口进行初始化设置 500ms 定时延迟设置 然 后需要考虑交通灯的三个工作状态 合理安排显示与计数的时序关系 N Y 开始 系统初始化程序 时钟设置 交通指示灯交替亮灭 500ms 定时器设置 计数程序 数码管显示 计数结 束 13 Y 图图 3 1 软件系统流程图软件系统流程图 3 23 2 500ms500ms 定时器子程序设计定时器子程序设计 本模块是将产生 500ms 定时器 让在计数器计数时提供计时间 隔 同时也可作为数码管个位和十位的刷新时间 即每次数码管显 示更新递增一个数字经过的时间是 1s 以下是本模块的子程序软件 流程图 结束 开始 设置 LPTMR 定时器 设置 count val 比较值 14 N Y 1KHz LPO 时钟计数 触发输出 清除标志位 到达 count val 值 15 图图 3 2 定时器流程图定时器流程图 3 33 3 计数显示子程序设计计数显示子程序设计 计数显示是在定时器运行前提下进行工作的 数码管每刷新一个数时 时间是 1s 这样的好处是显示与指示灯状态同步起来 同时也能做到效果 比较直观 以下是此部分模块的流程图 结束 开始 dis 0 0 dis 1 0 dis 2 0 初始化 1000ms 定时器 指示灯亮 1000ms 定时器 dis 0 dis 0 60 1000ms 定时器 数码管译码指示灯亮 dis 2 dis 2 60 dis 1 10 16 图图 3 33 3 计数器计数器 四 系统调试四 系统调试 4 14 1 硬件调试硬件调试 在硬件调试时 K60 最小系统的调试就是用集成 Mini 核心板进行调试 dis 1 数码管译码指示灯亮 17 当系统上电后 将系统示例程序下载到开发板中 用一个示例 LED 等进行 测试能否正常运行 在 GPIO 端口进行初始化后 应对端口进行合理设置 在对核心板程序下载成功后 在程序能正确运行时 可以根据共阳数 码管的特点进行测试 对显示电路能否正常工作进行测试 验看数码管计 数时是否与预想的一样 若不一样营及时修正程序 最终使结果出现与预 期一样 4 24 2 软件调试软件调试 在软件调试时 在 IAR for ARM 6 30 版本平台上进行编程下载 通 过 J LinkJI 进行下载到 K60 核心板中 在调试时可以用单步调试 全速 运行 设置断点等方式 与此同时观看寄存器和变量的值在调试中常常发 挥着重要作用 在修改和完善程序后 最终下载到核心板中运行 图图 4 14 1 软件编程界面软件编程界面 4 34 3 综合调试综合调试 18 测试一开始 我们就发现了系统出现了两个问题 一是有一部分交通灯亮 度不够 所发出来的光非常的微弱以致于几乎感觉不到它的亮度 二是数码管 不工作 没有时间显示 这与设计的要求完全不符 为了找出这个问题和解决 方法 我们查找了电路的输出各部分的输出电平 发现了一个现象 我们采用 的数码管是共阴极数码 而控制数码段显示的 P1 口输出的是高电平 经多方查阅资料 解决第二个问题可以有两个解决方法 其一 将硬件电 路作修改 将数码管换成共阳极的数码管 这样数码管就可以正常进行时间显 示了 其二 修改程序 让控制数码管段码的 P1 输出的是低电平 若采用修改 硬件电路的方法的话 硬件电路就得作变动 已经布好的线也必须有相应的变 动 操作起来比较麻烦 所以 我们采用了第二种方法 修改了程序电路中的 段码代码 再次调试 按照设计要求的指标 系统数码管电路部分基本能按照 预先设定的要求来进行倒计时的显示 亮度要求也基本符合预先设想 接下来还有一个问题有待解决 交通灯亮度不足 以致于部分交通灯只能 勉强看得出来它在亮而已 这明显不能满足设计要求 经多方检测 我们认为 这是由于 LED 灯驱动能力不足引起的亮度弱问题 若要修正这个问题 那就得 为 LED 灯增加驱动电路以提高电路的驱动能力 要实现这一步骤必须对硬件电 路进行一定的改动 LED 灯的驱动电路可以用集成电路电路芯片来进行驱动 在初步方案中我们考虑要用集成电路来完成 但是由于客观方面的原因 将要 参加工作离开学校没有制作实物的环境条件 因此 这部分改进只作了一个设 想 并没有时间去付诸实施 但基本问题和解决问题的原理我们还是有一定的 了解 五 总结五 总结 本次基于飞思卡尔 K60P144M100SF2RM 控制器设计的交通灯控制系统 通 过合理的软件设计和硬件设计 实现了交通灯绿灯亮 60 秒 黄灯亮 10 秒 红 灯亮 60 秒 对南北主干道方向和东西支干道车辆进行直行和左转控制 用红 绿 黄 LED 发光二极管代替实际中的交通指示灯 用数码管对亮灭时间进行计 时 使结果直观 六 心得体会六 心得体会 通过嵌入式课程设计 我不仅加深了对嵌入式理论的理解 将理论很好地 应用到实际当中去 而且我还学会了如何去培养我们的创新精神 从而不断地 19 战胜自己 超越自己 创新 是要我们学会将理论很好地联系实际 并不断地 去开动自己的大脑 从为人类造福的意愿出发 做自己力所能及的 别人却没 想到的事 使之不断地战胜别人 超越前人 同时 更重要的是 我在这一设 计过程中 学会了坚持不懈 不轻易言弃 设计过程 也好比是我们人类成长 的历程 常有一些不如意 也许这就是在对我们提出了挑战 勇敢过 也战胜 了 胜利的钟声也就一定会为我们而敲响 7 17 1 实物图实物图 1 20 2 2 3 21 7 27 2 参考文献参考文献 1 嵌入式系统原理与实践 ARM Cortex M4 Kinetis 微控制器 王宜怀著 电子工业出版社 2 MC9S12XS 单片机原理及嵌入式系统开发 王宜怀著 电子工业出版社 3 付家才 单片机控制工程实践技术 北京 化学工业出版社 4 单片机原理及应用 李建忠著 西安 西安电子科技大学 5 模拟电子技术基础 童诗白 华成英等著 北京 高等教育出版社 6 C 程序设计 谭浩强著 北京 清华大学出版社 7 37 3 示例代码 示例代码 void main void int m 0 printf TWR K60N512 GPIO Example n uint i 0 Turn on all port clocks SIM SCGC5 SIM SCGC5 PORTA MASK SIM SCGC5 PORTB MASK SIM SCGC5 PORTC MASK SIM SCGC5 PORTD MASK SIM SCGC5 PORTE MASK Enable GPIOA and GPIOE interrupts in NVIC enable irq 87 GPIOA Vector is 103 IRQ is 103 16 87 enable irq 91 GPIOE Vector is 107 IRQ is 107 16 91 22 Initialize GPIO on TWR K60N512 init gpio gpio set PORTB 21 1 gpio set PORTB 20 1 gpio set PORTA 17 0 gpio set PORTA 16 0 gpio set PORTA 15 0 gpio set PORTA 14 0 gpio set PORTA 13 0 gpio set PORTA 12 0 data7 while 1 for dis 0 0 dis 0 62 dis 0 if dis 060 gpio set PORTB 21 1 gpio set PORTB 20 1 24 gpio set PORTA 17 0 gpio set PORTA 13 1 for dis 1 0 dis 1 12 dis 1 if dis 110 gpio set PORTB 20 1 gpio set PORTB 21 1 gpio set PORTA 16 0 gpio set PORTA 15 0 gpio set PORTA 13 0 for dis 2 0 dis 2 61 dis 2 if dis 2 60 27 gpio set PORTB 20 1 gpio set PORTB 21 1 gpio set PORTA 14 0 gpio set PORTA 12 0 gpio set PORTA 13 0 time delay ms 1000 void init gpio Set PTA19 and PTE26 connected to SW1 and SW2 for GPIO 28 functionality falling IRQ and to use internal pull ups pin defaults to input state PORTA PCR19 PORT PCR MUX 1 PORT PCR IRQC 0 xA PORT PCR PE MA SK PORT PCR PS MASK PORTE PCR26 PORT PCR MUX 1 PORT PCR IRQC 0 xA PORT PCR PE MA SK PORT PCR PS MASK Set PTB10 PTB21 PTB21 and PTB23 connected to LED s for GPIO functionality 修改适合本电路板 PORTB PCR20 0 PORT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论