111人行过马路交通灯论文.doc_第1页
111人行过马路交通灯论文.doc_第2页
111人行过马路交通灯论文.doc_第3页
111人行过马路交通灯论文.doc_第4页
111人行过马路交通灯论文.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

I 46 摘要摘要 纵观单片机的发展和应用 51 单片机越来越无法满足用户的需求 ARM 高速 32 位单片机的出现 缔造了嵌入式系统的新纪元 嵌入式系统是指以应用为中心 以计算机技术为基础 软件 硬件可裁减 适应 应用系统对功能 可靠性 成本 体积 和功耗严格要求的专用计算机系统 嵌入式 系统已广泛地渗透到科学研究 工程设计 军事等各种领域 甚至商业 文化 艺术 及人们日常生活的方方面面 随着国内外各种嵌入式产品的进一步开发和推广 嵌入 式技术的重要性日益凸显 使得我们不得不将注意力转移到它身上 ARM 的应用已遍及 工业控制 消费类电子产品 通信系统 网络系统 无线系统等各类产品市场 此设 计采用了 ARM7 微处理器 LPC2103 作为核心处理器 本文介绍了一个智能交通灯系统的 设计 该智能交通灯控制系统可以实现的功能有 对某人行马路的交通路口进行控制 和对红绿灯的闪亮控制 各路口有固定的工作周期 人行过马路交通灯控制系统不仅 可以缓解交通拥堵 还能阻止一些交通事故的发生 它采用 LPC2103 来实现对红绿灯 的控制 其中通过设置 LPC2103 的 GPIO 功能用定时器来实现 LED 灯的亮灭与闪亮 关键词关键词 ARM7ARM7 LPC2103LPC2103 LEDLED 灯灯 II 46 Abstract Throughout the development and application of SCM 51 SCM increasingly unable to satisfy the demand of users ARM speed 32bit MCU embedded systems creates the new era of embedded system Refer to the application for the center to computer technology as the foundation software hardware can adapt to function application system reliability cost volume and the power of the strict specialized computer system The embedded system has been widely permeates scientific research and engineering design military and other fields or even commercial culture art and all aspects of People s Daily life With the further development of embedded products and the importance of the embedded technology allows us to increasingly prominent divert attention to it The ARM of the application in industrial control consumer electronics communication system network system wireless systems and other kinds of product market This design uses the LPC2103 ARM7 microprocessor core processors This article describes an intelligent traffic light system The intelligent traffic light control system functions can be achieved the road trip against a person to control the traffic junctions and traffic lights to flash control the intersection with a fixed duty cycle Pedestrian crossing traffic light control system can not only ease traffic congestion but also prevent a number of traffic accidents It uses LPC2103 to realize the control of traffic lights LPC2103 s GPIO by setting them with a timer function to achieve bright LED lights off and shine Key words ARM7 LPC2103 LED lights III 46 目录目录 摘要 I Abstract II 目录 III 1 引言 1 1 1 背景 1 1 2 现状问题 2 2 工作硬件原理 3 2 1 LPC2103 简介 3 2 1 1 概述 3 2 1 2 管脚信息 3 2 2 ARM2103 底板原理图 4 2 2 1 电源电路 4 2 2 2 时钟电路 4 2 2 3 JTAG 接口电路 4 2 2 4 LPC2103 电路原理图和最小系统实物图 5 2 2 5 人行过马路交通灯控制系统电路原理图 6 3 工程建立和调试 7 3 1 ADS 1 2 集成开发环境的组成 7 3 1 1 CodeWarrior IDE 简介 8 3 2 工程的编辑 9 3 2 1 建立工程 9 3 2 2 建立文件 10 3 2 3 添加文件到工程 10 3 2 4 编辑连接工程 11 3 3 工程的调试 12 4 LPC2103 基础知识详解 13 4 1 引脚链接模块 13 4 1 1 概述 13 4 1 2 寄存器描述 13 4 2 GPIO 15 4 2 1 概述 15 IV 46 4 2 2 寄存器描述 16 4 3 向量中断控制器 17 4 3 1 概述 17 4 3 2 寄存器描述 17 4 3 3 向量 IRQ 中断 18 4 4 定时器 0 和定时器 1 19 4 4 1 概述 19 4 4 2 特性 19 4 4 3 引脚描述 20 4 4 4 寄存器描述 20 4 4 5 定时器中断 23 5 带闪烁人行过马路交通灯控制系统的设计与实现 26 5 1 带闪烁人行过马路交通灯控制的基本规则 26 5 2 人行过马路交通灯点亮与熄灭的原理 28 5 3 ARM 定时器控制的原理 28 5 4 ARM 中断控制的原理 29 5 5 人行过马路交通灯控制系统的硬件设计 29 5 6 人行过马路交通灯控制程序的设计 29 5 6 1 定时器 0 初始化程序 29 5 6 2 定时器 1 初始化程序 31 5 6 3 中断服务程序 31 5 6 4 主程序 32 6 总结与体会 33 6 1 总结 33 6 2 体会 33 6 3 致谢 34 6 4 参考文献 34 附录 A 源程序 35 1 46 1 引言引言 随着我国改革开放的不断深入 城市化进程不断加快 交通事业飞速发展 交通 拥挤已成为城市经济发展的 瓶颈 特别是大 中城市不断增加的车辆和有限的道路 空间矛盾日益加剧 目前我国城市里的人行过马路交通系统大都采用定时来控制 不排除繁忙路段或高 峰时段用交警来取代交通灯的情况 这样必然产生如下弊端 当某条路段的车流量很 大时却要等待红灯 而此时另一条是空道或车流量相对少得多的道却长时间亮的是绿 灯 这种多等少的尴尬现象是未对实际情况进行实时监控所造成的 不仅让司机乘客 怨声载道 而且对人力和物力资源也是一种浪费 缓解道路交通拥堵 减少交通事故 改善道路交通环境 节约交通能源 减轻驾驶疲劳等功能 最终实现安全 舒适 快速 经济的交通环境是目前急需解决的城市交通管理系统的关键技术之一 本文采用的设计是使用 ARM32 位 LPC2103 芯片 作为带闪烁人行过马路交通灯控制 系统的核心部件 利用 ARM32 位芯片定时器的优势 对带闪烁人行过马路交通灯精确 的控制 可根据车流量的大小 合理的和精确的控制每一个人行过马路通道的时间 来减少道路上车辆拥塞的时间 达到路口车辆畅通的的同时减少车辆的停留时间 从 而有利于减轻城市马路空气污染的目的 1 1 背景背景 当人类历史跨入 21 世纪的时候 全球社会 经济 市场 产业结构及科学技术等 发生着深刻的变革 国际和国内市场向着大竞争大合作的方向发展 产业结构向着以 信息产业为主的方向发展 基础科学 信息科学 材料科学 管理科学和现代控制理 论与制造科学等获得了突破性的进展 而且相互交叉融合 以网络为基础的科学活动环境研究对未来的计算模式和科研活动产生了深刻的影 响 同时也提出了挑战 如 无序成长性与动态有序性的统一 自治条件下的协同性 及安全保证 海量信息的结构化组织与管理等 在此背景下 网络技术与先进制造技 术的有效融合形成了一种全新的生产制造模式 网络化制造 网络化制造技术的出现 2 46 和发展 引起了全球制造领域的极大关注 网络化制造涉及的技术问题多且内容复杂 许多技术问题都有待于深入研究和解决 在这些技术内容和技术问题中 网络化协同 产品开发将是今后相当一段时间网络化制造的主要研究课题 网络环境下新产品的研 究 开发 设计 制造 管理 营销 服务不再局限于一座城市 一个地区甚至一个 国家 同时 企业间的兼并和收购成为激烈竞争的必然结果 这使得企业规模急剧膨 胀 其内部生产 管理和决策支持系统多种多样系统间的信息和知识交换成为瓶颈 而且 随着现代产品的复杂度和技术含量的提高 单一企业常常受到技术和资源等方 面的限制 不能胜任产品开发的全过程 于是 利用现代计算机和网络技术 进行企 业间的合作和同盟 以便充分利用各自的资源和技术优势 取长补短 获得整体优化 上述产品开发模式随着 Internet 变成网络应用平台而越来越具有可实现性 但是 从总体上讲 网络化协同产品开发的研究还不够深入 缺乏系统的理论体系和支持工 具 研究成果与实际需求尚有一定的差距 因此 探索网络环境下的协同产品开发方 法和关键技术 并开发出相应的支持系统 是一项具有重要理论意义和广泛应用前景 的研究课题 理论不可能产生在实践之前 它需要实践经验作为其构成的基本要素 理论也不是产生在实践的终点 因为它负有指导后续实践使之有更多成功机会的责任 本论文针对网络化协同产品开发业务流程和软件技术架构进行了深入的研究 1 2 现状现状问题问题 近来有不少市民反映 由于一些道路红绿灯设置不甚合理 给行人过马路带来不 便 甚至险象环生 成为诱发交通事故的原因之一 在车流繁杂的路口 因为人行道 的绿灯时间太短 导致通常都要小跑才能过马路 这对老年人和儿童来讲的确是件难 事 红绿灯时间究竟多久才能让行人从容通过 专业人士介绍 红绿灯时间设置有固 定的计算公式 主要以所在路口的车流量 人流量等数据为指标 结合常人行走平均 速度 大约1 3米 秒 并考虑行人的过路时间得来的 交通问题在现在乃至将来的一 段时间内仍是制约国内各大中城市发展的主要问题之一 因此合理的设置人行过马路 交通灯控制系统成为交通系统中的一个重要问题 3 46 2 工作硬件原理工作硬件原理 2 1 LPC2103 简介简介 2 1 1 概述概述 LPC2103是一个基于支持实时仿真的16 32位ARM7 TDMI S CPU的微控制器 并带 有32kB的嵌入高速Flash存储器 128位宽度的存储器接口和独特的加速结构使32位代 码能够在最大时钟速率下运行 较小的封装和极低的功耗使LPC2103适用于访问控制器和POS机等小型应用系统中 由于内置了宽范围的串行通信接口 2个UART SPI SSP和2个I2C 和8KB的片内 SRAM LPC2103也适合用在通信网关和协议转换器中 32 16位定时器 增强型10位 ADC 定时器输出匹配PWM特性 多达13个边沿 电平触发的外部中断 32条高速 GPIO 使得LPC2103微控制器特别适用于工业控制和医疗系统中 2 1 2 管脚信息管脚信息 图 2 1 PLC2103 管脚配置 4 46 2 2 ARM2103ARM2103底板原理图底板原理图 2 2 1 电源电路电源电路 LPC2103 控制器需要双电源供电 1 8V 内核电压和 3 3V 功能外设电压 5V 电源由 变压器或 USB 电源线输入 二极管 1N5819 可以防止电源反接 电路采用 SPX1117 系列 LDO 芯片 SPX1117M 3 3 和 SPX1117M 1 8 将电压稳至 3 3V 和 1 8V 0 欧的电阻用来隔 离数字电源和模拟电源 数字地和模拟地 SPX1117 系列 LDO 芯片是 EXAR 公司生产的 低压差芯片 其特点是输出电流大 输出电压精度高 稳定性高 宽电压输入 这里 选择的是 5V 输入 此系列 LDO 芯片的输出电流高达 800mA 输出电压的精度在 1 之内 可广泛应用于手持式仪表 数字家电 工业控制等领域 注意在电路输入输出 端接一个 10 F 的电容 可改善瞬态响应和稳定性 2 2 2 时钟电路时钟电路 LPC2103 微控制器可使用外部晶振或外部时钟源 内部 PLL 电路可调整系统时钟 使系统运行速度更快 CPU 的操作频率最大可达 70MHz 若不使用片内 PLL 功能及 ISP 下载功能 则外部晶振频率为 1 30MHz 外部时钟频率为 1 50MHz 若使用片内 PLL 功能或 ISP 下载功能 则外部晶振频率为 10 25MHz 外部时钟频率为 10 25MHz ARM2103 开发板使用外部晶振 11 0592MHz 实时时钟为 32 768KHz 电路原理如图 2 2 所示 用 11 0592MHz 的外部晶振使串口的波特率更精确 同时能支持 LPC2103 微 控制器内部的 PLL 电路及 ISP 在系统编程 功能 图 2 2 时钟电路 2 2 3 JTAGJTAG 接口电路接口电路 JTAG 接口电路采用 ARM 公司提出的标准 20 脚 JTAG 仿真调试接口 JTAG 接口与 5 46 LPC2103 引脚之间的连接如图 2 3 所示 在 RTCK 引脚处接一个 4 7K 的下拉电阻 将在 系统复位后使能 JTAG 调试接口 图 2 3 JTAG 接口电路 2 2 4 LPC2103LPC2103 电路原理图和最小系统实物图电路原理图和最小系统实物图 最小系统电路原理图如下图 2 4 所示 图 2 4 最小系统电路原理图 6 46 最小系统实物图如下图 2 5 所示 图 2 5 最小系统实物图 2 2 5 人行过马路交通灯控制系统电路原理图人行过马路交通灯控制系统电路原理图 人行过马路交通灯控制系统 LED 红绿灯与闪亮控制的电路原理图如下图 2 6 所示 图 2 6 电路原理图 7 46 3 工程建立和调试工程建立和调试 本章将介绍在ADS1 2开发环境里如何建立 编译连接工程及对工程进行调试的基 本方法 进而说明基于LPC2103 ARM微控制器的工程模板 3 1 ADS 1 2集成开发环境的组成集成开发环境的组成 ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具 英文全称为ARM Developer Suite 成熟版本为ADS1 2 ADS1 2支持ARM10之前的所有ARM系列微控制器 支持软件调试及JTAG硬件仿真调试 支持汇编 C C 源程序 具有编译效率高 系 统库功能强等特点 可以在Windows98 Windows2000 Windows XP以及RedHat Linux 上运行 ADS 1 2由6个部分组成 如表3 1所示 表 3 1 ADS 1 2 的组部分 名称描述使用方式 代码生成工具 ARM 汇编器 ARM 的 C C 编译器 Thumb 的 C C 编译器 ARM 连接器 由 CodeWarrior IDE 调用 集成开发环境CodeWarrior IDE工程管理 编译连接 调试器 AXD ADW ADU armsd 仿真调试 指令模拟器ARMulator由 AXD 调用 ARM 开发包 底层的例程 实用程序 如 fromELF 实用程序由 CodeWarrior IDE 调用 ARM 应用库C C 函数库等用户程序使用 由于用户一般直接操作的是 CodeWarrior IDE 集成开发环境和 AXD 调试器 所以本文只介绍这两部分的使用 其它部分的详细说明参考 ADS 1 2 的在线帮助文档 8 46 3 1 1 CodeWarrior IDE简介简介 ADS 1 2使用了CodeWarrior IDE集成开发环境 并集成了ARM汇编器 ARM的 C C 编译器 Thumb的C C 编译器 ARM连接器 包含工程管理器 代码生成接 口 语法敏感 对关键字以不同颜色显示 编辑器 源文件和类浏览器等 CodeWarrior IDE主窗口如图3 1所示 图 3 1 CodeWarrior 开发环境 3 1 2 AXD调试器简介调试器简介 9 46 图 3 2 AXD 调试器 AXD调试器ARM Extended Debugger是ARM扩展调试器 包括ADW ADU的所有特 性 支持硬件仿真和软件仿真 AXD能够装载映像文件到目标内存 具有单步 全速和 断点等调试功能 可以观察变量 寄存器和内存的数据等 AXD调试器主窗口如图3 2 所示 3 2 工程的编辑工程的编辑 3 2 1 建立工程建立工程 点击WINDOWS操作系统的 开始 程序 ARM Developer Suite v1 2 CodeWarrior for ARM Developer Suite 启动Metrowerks CodeWarrior 启动ADS1 2 IDE如图3 3所示 图3 3 启动ADS1 2 IDE 点击 File 菜单 选择 New 即弹出New对话框 如图3 4所示 10 46 图 3 4 New 对话框 选择工程模板为 ARM 可执行映象 ARM Executable Image 或 Thumb 可执 行映象 Thumb Executable Image 或 Thumb ARM 交织映象 Thumb ARM Interworking Image 然后在 Location 项选择工程存放路径 并在 Project name 项输入工程 名称 点击 确定 按钮即可建立相应工程 工程文件名后缀为 mcp 下文有时也把 工程称为项目 3 2 2 建立文件建立文件 建立一个文本文件以便输入用户程序 点击 New Text File 图标按钮 然后在新 建的文件中编写程序 点击 Save 图标按钮将文件存盘 或从 File 菜单选 择 Save 输入文件全名 如 TEST1 S 注意 请将文件保存到相应工程的目录下 以 便于管理和查找 当然 您也可以 New 对话框选择 File 页来建立源文件 或使 用其它文 本编辑器建立或编辑源文件 3 2 3 添加文件到工程添加文件到工程 在工程窗口中 Files 页空白处点击鼠标右键 弹出浮动菜单 选择 AddFiles 即 可弹出 Select files to add 对话框 选择相应的源文件 可按着 Ctrl 键一次选 择多 个文件 点击 打开 按钮即可 11 46 图 3 5 Select files to add 对话框 另外 用户也可以在 Project 菜单中选择 Add Files 来添加源文件 或 使用New 对话框选择 File 页来建立源文件时选择加入工程 即选中 Add to Project 项 添加文 件操作如3 5所示 3 2 4 编辑连接工程编辑连接工程 如 图 3 6 所示为工程窗口中的图标按钮 通过这些图标按钮 您可以快速地进行工 程设置 编译连接 启动调试等等 在不同的菜单项上可以分别找到对应的菜单命令 12 46 图 3 6 工程窗口中的图标按钮 点击 DebugRel Settings 图标按钮 即可进行工程的地址设置 输出文件设 置 编 译选项等 在 ARM Linker 对话框设置连接地址 在 Language Settings 中设置各编译器的编译选项 对于简单的软件调试 可以不进行连接地址的设置 直接点击工程窗口的 Make 图 标按钮 即可完成编译连接 若编译出错 会有相应的出错提示 双击 出错提示行信息 编辑窗即会使用光标指出当前出错的源代码行 Touch 栏用于标记文件是否已编译 若打上 则表明对应文件需要重新编译 可以通过单击该栏位置来设置 取消符号 或将工程目录下的 tdt 文件删除 也 可以使整个工程源文件均打上 重新编译之前 建议将原来生成的目标文件都删除 方法如下 点选 project 下拉菜 单的 Remove Object code All Targets 删除了旧目标文件后 所有 文件都被 touch 上了 此时可对整个工程进行重新编译 3 3 工程的调试工程的调试 13 46 图 3 7 Choose Target 窗口 当工程编译连接通过后 在工程窗口中点击 Debug 图标按钮 即可启动 AXD 也 可以通过 开始 菜单起动 AXD 点击菜单 Options 选择 Configure Target 即弹 出 Choose Target 窗口 如图 3 7 所示 在没有添加其它仿真驱动程序前 Target 项中只有 两项 分别为 ADP JTAG 硬件仿真 和 ARMUL 软件仿真 选择仿真驱动程序后 点击 File 选择 Load Image 加载 ELF 格式的可 执行文件 即 axf 文件 说明 当工程编译连接通过后 在 工程名 工程名 Data 当前的生成目标 目录下就会生成一个 axf 调试文件 如工程 TEST 当前的生成目 标 Debug 编译连接通过后 则在 TEST TEST Data Debug目录下生成 TEST axf 文 件 14 46 4 LPC2103LPC2103 基础知识详解基础知识详解 4 1 引脚链接模块引脚链接模块 4 1 1 概述概述 LPC2103 控制器的引脚都具有多种功能 但是每个引脚在某一时刻只能选择一种 功能 图4 1是LPC2103 引脚P0 0 的一个功能选择示意图 通过配置引脚功能选择寄 存器即可选择相应的功能 当使用一个功能外设时 如果需要相应的引脚参与 如 GPIO 等 则必须在实现 这一功能之前先设置好引脚的功能 否则无法实现该外设功能 图 4 1 引脚链接模块示意图 4 1 2 寄存器描述寄存器描述 LPC2103具有两个PINSEL寄存器 PINSEL0和PINSEL1 它们都是32位宽度的 详细 描述如表4 1所列 15 46 表4 1 引脚连接模块寄存器描述 名称 描述 访问 复位值 1 地址 PINSEL0 引脚功能选择寄存器0 读 写 0 x00000000 0 xE002C000 PINSEL1 引脚功能选择寄存器1 读 写 0 x00000000 0 xE002C004 1 复位值仅反映已使用位中保存的数据 不包含保留位的内容 PINSEL0 和 PINSEL1 寄存器中的每两个位控制着一个引脚的功能 所以一个引脚最 多可以有 4 种不同的功能选择 PINSEL0 和 PINSEL1 寄存器就是按照如表 4 2 表 4 3 所列的设定来选择 P0 口的引脚功能 表 4 2 引脚功能选择寄存器 0 PINSE0 引脚名称 00011011 复位 值 1 0P0 0GPIO P0 0TxD0 UART0 MAT3 1 定时器3 保留 00 3 2P0 1GPIO P0 1RxD0 UART0 MAT3 2 定时器3 保留 00 5 4P0 2GPIO P0 2SCL0 I2C0 CAP0 0 定时器0 保留 00 7 6P0 3GPIO P0 3SDA0 I2C0 MAT0 0 定时器0 保留 00 9 8P0 4GPIO P0 4SCK0 SPI0 CAP0 1 定时器0 保留 00 11 10P0 5GPIO P0 5MISO0 SPI0 MAT0 1 定时器0 保留 00 13 12P0 6GPIO P0 6MOSI0 SPI0 CAP0 2 定时器0 保留 00 15 14P0 7GPIO P0 7SSEL0 SPI0 MAT2 0 定时器2 保留 00 17 16P0 8GPIO P0 8TxD1 UART1 MAT2 1 定时器2 保留 00 19 18P0 9GPIO P0 9RxD1 UART1 MAT2 2 定时器2 保留 00 21 20P0 10GPIO P0 10RTS1 UART1 CAP1 0 定时器1 AIN300 23 22P0 11GPIO P0 11CTS1 UART1 CAP1 1 定时器1 AIN400 25 24P0 12GPIO P0 12DSR1 UART1 MAT1 0 定时器1 AIN500 27 26P0 13GPIO P0 13 保留MAT1 1 定时器1 DTR1 UART1 00 29 28P0 14GPIO P0 14EINT1SCK1 SSP1 DCD1 UART1 00 31 30P0 15GPIO P0 15EINT2 保留 RI1 UART1 00 16 46 表 4 3 引脚功能选择寄存器 1 PINSEL1 引脚名称 00011011 复位值 1 0P0 16GPIO P0 16EINT0 MAT0 2 定时器0 保留 00 3 2P0 17GPIO P0 17SCL1 I2C1 CAP1 2 定时器1 保留 00 5 4P0 18GPIO P0 18SDA1 I2C1 CAP1 3 定时器1 保留 00 7 6P0 19GPIO P0 19MISO1 SPI1 MAT1 2 定时器1 保留 00 9 8P0 20GPIO P0 20MOSI1 SPI1 MAT1 3 定时器1 保留 00 11 10P0 21GPIO P0 21SSEL1 SPI1 MAT3 0 定时器3 保留 00 13 12P0 22GPIO P0 22 保留保留 AIN000 15 14P0 23GPIO P0 23 保留保留 AIN100 17 16P0 24GPIO P0 24 保留保留 AIN200 19 18P0 25GPIO P0 25 保留保留 AIN600 21 20P0 26GPIO P0 26 保留保留 AIN700 23 22P0 27GPIO P0 27TRST JTAG CAP2 0 定时器2 保留 01 25 24P0 28GPIO P0 28TMS JTAG CAP2 1 定时器2 保留 01 27 26P0 29GPIO P0 29TCK JTAG CAP2 2 定时器2 保留 01 29 28P0 30GPIO P0 30TDI JTAG MAT3 3 定时器3 保留 01 31 30P0 31GPIO P0 31TDO JTAG 保留保留 00 4 2 GPIOGPIO 4 2 1 概述概述 LPC2103只有1个32位的通用I O口P0 31 0 由于与引脚的其它功能复用 在使 用前要进行相关的引脚设置 然后才能进行操作 其中 P0 27 P0 31是JTAG调试引 脚 在复位时 如果DEBUG引脚为高 则P0 31 27 是不能作为GPIO使用的 只能作为 JTAG调试引脚 反之 如果复位时DEBUG引脚为低 则P0 31 27 引脚可以由用户设置 此时 调试禁止 LPC2103的GPIO有两种模式 高速GPIO和低速GPIO 高速GPIO的控制寄存器位于 CPU的局部总线上 可进行高速的读写操作 低速GPIO的控制寄存器挂在VPB总线上 P0口作为高速GPIO使用时 将不能在调试环境下观察GPIO在VPB总线上的寄存器 17 46 4 2 2 寄存器描述寄存器描述 LPC2103的GPIO由表4 4 表4 5 表4 6中所列的寄存器来控制 表4 4所列寄存器是用来选择GPIO的操作模式 当GPIO0M位的值为0时 选择低速 GPIO 当GPIO0M位的值为1时 选择高速GPIO 在使用引脚的GPIO时 必须选择GPIO的 操作模式 表4 5所列是低速GPIO的相关寄存器 挂在VPB总线上 表4 4 系统控制和状态标志寄存器 SCS 0 xE01F C1A0 位 名称 描述 复位值 0 低速GPIO在GPIO端口0上使能 通过VPB地址访问GPIO端口0 与 先前的LCP2000器件兼容 0 GPIO0M 1 高速GPIO在GPIO端口0上使能 通过片内存储器范围的地址来访 问 该模式包括端口屏蔽特性 0 31 1 保留 用户软件不要向其写入1 从保留位读出的值未被定义 NA 表4 5 GPIO控制寄存器 通过VPB总线访问的寄存器 通用名称描述访问复位 PORT0 地址 设置定时器计数器 TC 与 MR0 值相等时产生中断 TC 与 MR1 值相 等时产生中断 TC 与 MR2 值相等时产生中断 TC 与 MR3 值相等 31 46 时产生中断并复位 T0MR0 Fpclk 5 给匹配寄存器 MR0 赋值 T0MR1 Fpclk 15 给匹配寄存器 MR1 赋值 T0MR2 Fpclk 20 给匹配寄存器 MR2 赋值 T0MR3 Fpclk 30 给匹配寄存器 MR3 赋值 即对人行过马路红绿黄灯分别控制的时间是 红绿灯亮 15S 5S 10S 黄灯闪烁 20S 15S 5S 定时器 0 初始化流程图如图 5 5 所示 32 46 开始 定时器 0 复位 T0TC T0MR0 申请中断 T0TC T0MR2 复位 N Y N Y N N Y Y 不设时钟分频 设置 T0MCR T0TC T0MR1 申请中断 申请中断 申请中断 T0TC T0MR3 开 始 T1TC T1MR0 N Y 定时器 0 复位 不设时钟分频 设置 T1MCR 设置 T1EMR 申请中断 T1TC T1MR1 T1TC T1MR2 T1TC T1MR3 申请中断 申请中断 申请中断 N N Y Y Y 复位 N 图 5 5 图 5 6 5 6 2 定时器定时器 1 1 初始化程序初始化程序 本设计使用定时器 1 匹配翻转来控制黄灯的闪烁频率变化 其核心程序代码如下 所示 T1MCR 0 x400 设置 T1MR3 匹配后复位 T1TC T1EMR 0 xff0 33 46 设置 0 25s 匹配值 T1MR0 Fpclk 4 匹配翻转 MR0 T1MR1 Fpclk 4 匹配翻转 MR1 T1MR2 Fpclk 4 匹配翻转 MR2 T1MR3 Fpclk 4 匹配翻转 MR4 定时器 1 初始化流程图如上图 5 6 所示 5 6 3 中断服务程序中断服务程序 通过定义一个 32 位 count 变量 在中断发生时中断服务程序的 count 变量自加 1 操作并对其进行除 4 取余数操作 将其余数作为点亮一组 LED 灯的条件 每执行一次 中断服务程序 即可执行一次点亮一组 LED 灯 连续 4 次中断点亮 4 组 LED 灯后 又 回到了起点的中断服务 这样使的执行中断服务连续不断的循环持续下去 使人行过 马路交通灯的循环服务持续下去 其中断服务程序流程图如下图 5 7 所示 34 46 开始 count 1 执行中断 所有黄灯 闪烁 Y N Y N Y N N Y count 4 0 count 1 nt 1 count 4 1 count 1 nt 1 执行中断 车行道红 灯亮 人行道绿灯亮 执行中断 所有黄灯 闪烁 count 4 2 count 1 nt 1 count 4 3 count 1 nt 1 执行中断 人行道红 灯亮 车行道绿灯亮 开始 定时器 0 初始化 定时器 1 初始化 IRQ 中断使能 寄存器初始化 定时器 0 分配为 IRQ 中断 定时器 0 中断使能 无限循环等待 匹配 Y N 执行中断函数 图 5 7 图 5 8 5 6 4 主程序主程序 主程序实现的是 设置 P0 12 P0 3 以及 P0 17 P0 26 引脚设置为 GPIO 输出状态 选定时器 0 中断为向量 IRQ 将中断向量使能 选择 4 号中断源为向量 0 通道并将中断 服务程序地址赋给向量 0 并将中断使能 然后通过调用定时器初始化运行程序等待中 断发生执行中断服务程序 执行完一次中断服务程序后 再返回定时器初始化程序 等待计数匹配产生 发生中断 其主程序流程图如上图 4 8 所示 35 46 6 总结与体会总结与体会 6 1 总结总结 本文设计了一款基于 ARM7 的人行过马路交通灯控制系统 LED 红绿灯与闪亮控制 可以通过修改程序的方法任意设定红 绿 黄灯的亮 灭 以及闪烁时间 主控计算 机控制 ARM7 控制板 然后通过 ARM7 控制板的引脚来控制各个 LED 灯 通过此次设计 我从零学习理论知识入手到写程序再调试的整个过程中都受益很 多 整个过程下来 我感觉学到了很多知识 首先我很仔细地消化了 LPC2103 微控制 器的基础知识 其次 在很好地掌握了这些基础知识和清楚人行过马路交通灯控制系 统的状态后 分析到要用定时器 0 的四路匹配中断来控制红 绿 黄灯的亮灭时间 用定时器 1 的四路匹配翻转来控制黄灯的闪烁频率变化 中断函数作为前台执行中断 任务 主函数在后台运行支持中断函数 从而编写了程序代码 最后 在写好程序后 进行调试工作 不断地验证实验的准确性 不断地修改程序 直到达到正确的实验结 果 因此我从中学到了很多知识 在此次设计中 需要你特别的细心和认真以及耐心 特别是在调试阶段 就需要 你特别的细心和认真以及耐心 例如 在 LPC2103 的引脚设置过程和在调试时接插 LED 灯得引脚时就要很细心 防止插错 造成试验不准确 我还深刻的认识到老师的指点 的重要性 也许就是老师的一句话 就可以让我更快的发现程序中哪个地方出现问题 从而更快的修改程序 节约了不少时间 也少走了很多弯路 6 2 体会体会 本次设计是一次对书本知识综合运用的机会 通过对本次课题的研究与学习 让 我明白理论到实践之间的差距 以及自己在平时学习中懒于动手的缺点 也从中深切 体会到自己知识的零散性和不完备 同时也看到了自己的将理论联系和实际联系起来 解决实际的能力还急需提高 在此次的设计中 在学习理论知识时虽然有看不懂的地方 但是我通过调试验证 了理论知识的原理 从而更深刻地理解和掌握所学的理论知识 我还深刻的体会到老 师的指点的重要性 这样可以让我更快理解知识并且发现程序中哪个地方出现问题 从而更快的修改程序 节约了时间 也少走了弯路 学东西就要学以致用 在这里我 深刻的感觉到理论和实践的差别性 学得好不一定做得好 但要做得好就一定要学得 36 46 好 在理论学习好之后只有通过实践才能体现出知识的价值 但是前提还要是把基础 的理论知识学好 然会在理论的基础上再进行实践 把理论知识升华到实践中去 将最高科技大量应用到民用上是一个趋势 已经有越来越多的高科技产品进入到 了我们的生活 在未来 这种趋势无疑将进一步加大 在不远的以后 我们或许就将 拥有一个让人头晕目眩的智能化社会 就人行过马路交通灯这种小玩意而言 它或者 就不再只是指挥车停车走这么简单 随着道路拥堵的加重 堵车现象的越加频繁 它 在堵车的时候也将能够展现威力 它或许能够代替一个真正的交通警察来疏导拥堵的 车流 6 3 致谢致谢 历时两月 从论文选题到搜集资料 从开题报告 写初稿到反复修改 期间经历 了喜悦 聒噪 痛苦和彷徨 在写作论文的过程中心情是如此复杂 如今 伴随着这 篇毕业论文的最终成稿 复杂的心情烟消云散 自己甚至还有一点成就感 在本次设计过程中 我的导师刘敦放老师倾注了大量的心血 特别是在调试过程 中 刘老师的每一个指点 都使我少走了很多弯路 在论文写作中从选题到开题报告 从写作提纲 到一遍又一遍地指出每稿中的具体问题 严格把关 循循善诱 在此我 表示衷心感谢 同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关 心我的同学和朋友 毕业设计是一次再系统学习的过程 毕业论文的完成 同样也意 味着新的学习生活的开始 在本文完成之际 无论我的设计是否能够真的投入使用 这里面每一个控件的绘 制 每一行语句的调试 每一段文本的输入之中都有我辛勤的汗水 两个月的设计时 间虽然短暂 我却从中学到了很多的东西 我由衷地感谢关怀 教诲 帮助 支持和 鼓励我完成学业的老师 朋友和亲人 在此我谨向我的导师以及在毕业设计过程中给予我很大帮助的老师 同学们致以 最诚挚的谢意 6 4 参考文献参考文献 1 周立功 ARM 嵌入式系统基础教程 北京航空航天大学出版社 2004 年 2 PHILIPS 公司 LPC2101 02 03 数据手册 2006 年 4 月 11 日 3 刘敦放老师参考论文及资料 37 46 4 EasyARM2103 安装手册 5 EasyARM2103 配套教程 38 46 附录附录 A 源程序源程序 include config h 车行道黄灯 define LED1 1 12 黄 define LED2 1 13 黄 人行道黄灯 define LED3 1 19 黄 define LED4 1 20 黄 人行道 define LED5 1 17 红 define LED6 1 18 绿 define LED7 1 21 红 define LED8 1 22 绿 车行道 define LED9 1 23 红 define L

温馨提示

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

评论

0/150

提交评论