毕业设计(论文)基于单片机的人行过马路智能交通灯系统的设计_第1页
毕业设计(论文)基于单片机的人行过马路智能交通灯系统的设计_第2页
毕业设计(论文)基于单片机的人行过马路智能交通灯系统的设计_第3页
毕业设计(论文)基于单片机的人行过马路智能交通灯系统的设计_第4页
毕业设计(论文)基于单片机的人行过马路智能交通灯系统的设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、 摘要摘要 i摘要摘要纵观单片机的发展和应用, 51 单片机越来越无法满足用户的需求, arm 高速 32位单片机的出现,缔造了嵌入式系统的新纪元.嵌入式系统是指以应用为中心,以计算机技术为基础,软件,硬件可裁减,适应应用系统对功能、可靠性、成本、体积、和功耗严格要求的专用计算机系统。嵌入式系统已广泛地渗透到科学研究、工程设计、军事等各种领域、甚至商业、文化、艺术、及人们日常生活的方方面面。随着国内外各种嵌入式产品的进一步开发和推广,嵌入式技术的重要性日益凸显,使得我们不得不将注意力转移到它身上。arm 的应用已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。此设计采

2、用了 arm7 微处理器 lpc2103 作为核心处理器。本文介绍了一个智能交通灯系统的设计。该智能交通灯控制系统可以实现的功能有:对某人行马路的交通路口进行控制和对红绿灯的闪亮控制;各路口有固定的工作周期。人行过马路交通灯控制系统不仅可以缓解交通拥堵,还能阻止一些交通事故的发生。它采用 lpc2103 来实现对红绿灯的控制。其中通过设置 lpc2103 的 gpio 功能用定时器来实现 led 灯的亮灭与闪亮。关键词关键词: arm7arm7 lpc2103lpc2103 ledled 灯灯 abstract iiabstract throughout the development and

3、 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 syste

4、m 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 peoples daily life. with the further develop

5、ment 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

6、 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

7、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. lpc2103s gpio by setting them with a timer function to achieve bright

8、 led lights off and shine.key words:arm7 lpc2103 led lights 目录目录 iii目录目录摘要 .iabstract .ii目录 .iii1 引言 .11.1 背景.11.2 现状问题.22 工作硬件原理 .32.1 lpc2103 简介 .32.1.1 概述.32.1.2 管脚信息.32.2 arm2103 底板原理图 .42.2.1 电源电路.42.2.2 时钟电路.42.2.3 jtag 接口电路 .42.2.4 lpc2103 电路原理图和最小系统实物图 .52.2.5 人行过马路交通灯控制系统电路原理图.63 工程建立和调试 .7

9、3.1 ads 1.2 集成开发环境的组成 .73.1.1 codewarrior ide 简介 .83.2 工程的编辑 .93.2.1 建立工程 .93.2.2 建立文件.103.2.3 添加文件到工程.103.2.4 编辑连接工程.113.3 工程的调试 .124 lpc2103 基础知识详解.134.1 引脚链接模块 .134.1.1 概述.134.1.2 寄存器描述.134.2 gpio .154.2.1 概述.15 目录目录 iv4.2.2 寄存器描述.164.3 向量中断控制器 .174.3.1 概述.174.3.2 寄存器描述.174.3.3 向量 irq 中断.184.4 定时

10、器 0 和定时器 1 .194.4.1 概述.194.4.2 特性.194.4.3 引脚描述.204.4.4 寄存器描述.204.4.5 定时器中断.235 带闪烁人行过马路交通灯控制系统的设计与实现 .265.1 带闪烁人行过马路交通灯控制的基本规则 .265.2 人行过马路交通灯点亮与熄灭的原理 .285.3 arm 定时器控制的原理 .285.4 arm 中断控制的原理 .295.5 人行过马路交通灯控制系统的硬件设计 .295.6 人行过马路交通灯控制程序的设计 .295.61 定时器 0 初始化程序.295.62 定时器 1 初始化程序.315.63 中断服务程序.315.64 主程

11、序.326 总结与体会 .336.1 总结 .336.2 体会 .336.3 致谢 .346.4 参考文献 .34附录 a 源程序.35 引言引言 11 引言引言 随着我国改革开放的不断深入 ,城市化进程不断加快 ,交通事业飞速发展 ,交通拥挤已成为城市经济发展的“瓶颈”,特别是大、中城市不断增加的车辆和有限的道路空间矛盾日益加剧。 目前我国城市里的人行过马路交通系统大都采用定时来控制(不排除繁忙路段或高峰时段用交警来取代交通灯的情况),这样必然产生如下弊端:当某条路段的车流量很大时却要等待红灯,而此时另一条是空道或车流量相对少得多的道却长时间亮的是绿灯,这种多等少的尴尬现象是未对实际情况进行

12、实时监控所造成的,不仅让司机乘客怨声载道,而且对人力和物力资源也是一种浪费。缓解道路交通拥堵 ,减少交通事故 ,改善道路交通环境 ,节约交通能源 ,减轻驾驶疲劳等功能 ,最终实现安全、舒适、快速、经济的交通环境是目前急需解决的城市交通管理系统的关键技术之一。 本文采用的设计是使用 arm32 位 lpc2103 芯片,作为带闪烁人行过马路交通灯控制系统的核心部件,利用 arm32 位芯片定时器的优势,对带闪烁人行过马路交通灯精确的控制;可根据车流量的大小,合理的和精确的控制每一个人行过马路通道的时间,来减少道路上车辆拥塞的时间。达到路口车辆畅通的的同时减少车辆的停留时间,从而有利于减轻城市马路

13、空气污染的目的。1.1 背景背景当人类历史跨入 21 世纪的时候,全球社会、经济、市场、产业结构及科学技术等发生着深刻的变革:国际和国内市场向着大竞争大合作的方向发展;产业结构向着以信息产业为主的方向发展;基础科学、信息科学、材料科学、管理科学和现代控制理论与制造科学等获得了突破性的进展,而且相互交叉融合。以网络为基础的科学活动环境研究对未来的计算模式和科研活动产生了深刻的影响,同时也提出了挑战,如:无序成长性与动态有序性的统一;自治条件下的协同性及安全保证;海量信息的结构化组织与管理等。在此背景下,网络技术与先进制造技术的有效融合形成了一种全新的生产制造模式-网络化制造。网络化制造技术的出现

14、 引言引言 2和发展,引起了全球制造领域的极大关注。网络化制造涉及的技术问题多且内容复杂,许多技术问题都有待于深入研究和解决。在这些技术内容和技术问题中,网络化协同产品开发将是今后相当一段时间网络化制造的主要研究课题。网络环境下新产品的研究、开发、设计、制造、管理、营销、服务不再局限于一座城市、一个地区甚至一个国家。同时,企业间的兼并和收购成为激烈竞争的必然结果,这使得企业规模急剧膨胀,其内部生产、管理和决策支持系统多种多样系统间的信息和知识交换成为瓶颈。而且,随着现代产品的复杂度和技术含量的提高,单一企业常常受到技术和资源等方面的限制,不能胜任产品开发的全过程。于是,利用现代计算机和网络技术

15、,进行企业间的合作和同盟,以便充分利用各自的资源和技术优势,取长补短,获得整体优化。上述产品开发模式随着 internet 变成网络应用平台而越来越具有可实现性。但是,从总体上讲,网络化协同产品开发的研究还不够深入,缺乏系统的理论体系和支持工具,研究成果与实际需求尚有一定的差距。因此,探索网络环境下的协同产品开发方法和关键技术,并开发出相应的支持系统,是一项具有重要理论意义和广泛应用前景的研究课题。理论不可能产生在实践之前,它需要实践经验作为其构成的基本要素;理论也不是产生在实践的终点,因为它负有指导后续实践使之有更多成功机会的责任。本论文针对网络化协同产品开发业务流程和软件技术架构进行了深入

16、的研究。1.2 现状现状问题问题近来有不少市民反映,由于一些道路红绿灯设置不甚合理,给行人过马路带来不便,甚至险象环生,成为诱发交通事故的原因之一。在车流繁杂的路口,因为人行道的绿灯时间太短,导致通常都要小跑才能过马路,这对老年人和儿童来讲的确是件难事。 红绿灯时间究竟多久才能让行人从容通过?专业人士介绍,红绿灯时间设置有固定的计算公式,主要以所在路口的车流量、人流量等数据为指标,结合常人行走平均速度(大约1.3米/秒) ,并考虑行人的过路时间得来的。交通问题在现在乃至将来的一段时间内仍是制约国内各大中城市发展的主要问题之一,因此合理的设置人行过马路交通灯控制系统成为交通系统中的一个重要问题。

17、 工作硬件原理工作硬件原理 32 工作硬件原理工作硬件原理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、定时器输

18、出匹配pwm特性、多达13个边沿、电平触发的外部中断、32条高速gpio,使得lpc2103微控制器特别适用于工业控制和医疗系统中。 2.1.2 管脚信息管脚信息 图 2.1 plc2103 管脚配置 工作硬件原理工作硬件原理 42.2 arm2103arm2103底板原理图底板原理图2.2.1 电源电路电源电路 lpc2103 控制器需要双电源供电,1.8v 内核电压和 3.3v 功能外设电压,5v 电源由变压器或 usb 电源线输入,二极管 1n5819 可以防止电源反接。电路采用 spx1117 系列ldo 芯片 spx1117m-3.3 和 spx1117m-1.8 将电压稳至 3.3

19、v 和 1.8v,0 欧的电阻用来隔离数字电源和模拟电源、数字地和模拟地。 spx1117 系列 ldo 芯片是 exar 公司生产的低压差芯片,其特点是输出电流大,输出电压精度高,稳定性高,宽电压输入(这里选择的是 5v 输入) 。此系列 ldo 芯片的输出电流高达 800ma,输出电压的精度在1之内,可广泛应用于手持式仪表、数字家电、工业控制等领域。注意在电路输入输出端接一个 10f 的电容,可改善瞬态响应和稳定性。 2.2.2 时钟电路时钟电路 lpc2103 微控制器可使用外部晶振或外部时钟源,内部 pll 电路可调整系统时钟,使系统运行速度更快(cpu 的操作频率最大可达 70mhz

20、) 。若不使用片内 pll 功能及 isp下载功能,则外部晶振频率为 130mhz,外部时钟频率为 150mhz;若使用片内 pll功能或 isp 下载功能,则外部晶振频率为 1025mhz,外部时钟频率为 1025mhz。arm2103 开发板使用外部晶振 11.0592mhz,实时时钟为 32.768khz,电路原理如图2.2 所示。用 11.0592mhz 的外部晶振使串口的波特率更精确,同时能支持 lpc2103 微控制器内部的 pll 电路及 isp(在系统编程)功能。图 2.2 时钟电路2.2.3 jtagjtag 接口电路接口电路 jtag 接口电路采用 arm 公司提出的标准

21、20 脚 jtag 仿真调试接口,jtag 接口与 工作硬件原理工作硬件原理 5lpc2103 引脚之间的连接如图 2.3 所示。在 rtck 引脚处接一个 4.7k 的下拉电阻,将在系统复位后使能 jtag 调试接口。 图 2.3 jtag 接口电路2.2.4 lpc2103lpc2103 电路原理图和最小系统实物图电路原理图和最小系统实物图最小系统电路原理图如下图 2.4 所示:图 2.4 最小系统电路原理图 工作硬件原理工作硬件原理 6最小系统实物图如下图 2.5 所示: 图 2.5 最小系统实物图2.2.5 人行过马路交通灯控制系统电路原理图人行过马路交通灯控制系统电路原理图人行过马路

22、交通灯控制系统led 红绿灯与闪亮控制的电路原理图如下图 2.6 所示:图 2.6 电路原理图 工程建立和调试工程建立和调试 73 工程建立和调试工程建立和调试 本章将介绍在ads1.2开发环境里如何建立、编译连接工程及对工程进行调试的基本方法,进而说明基于lpc2103 arm微控制器的工程模板。 3.1 ads 1.2集成开发环境的组成集成开发环境的组成ads集成开发环境是arm公司推出的arm核微控制器集成开发工具,英文全称为arm developer suite,成熟版本为ads1.2。ads1.2支持arm10之前的所有arm系列微控制器,支持软件调试及jtag硬件仿真调试,支持汇编

23、、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/aduarmsd仿真调试指令模拟器armulator由 axd 调用arm 开发包底层的例程实用程序(如 fromel

24、f)实用程序由 codewarrior ide 调用arm 应用库c、c+函数库等用户程序使用由于用户一般直接操作的是 codewarrior ide 集成开发环境和 axd 调试器,所以本文只介绍这两部分的使用,其它部分的详细说明参考 ads 1.2 的在线帮助文档。 工程建立和调试工程建立和调试 83.1.1 codewarrior ide简介简介ads 1.2使用了codewarrior ide集成开发环境,并集成了arm汇编器、arm的c/c+编译器、thumb的c/c+编译器、arm连接器,包含工程管理器、代码生成接口、语法敏感(对关键字以不同颜色显示)编辑器、源文件和类浏览器等。

25、codewarrior ide主窗口如图3.1所示。 图 3.1 codewarrior 开发环境3.1.2 axd调试器简介调试器简介 工程建立和调试工程建立和调试 9图 3.2 axd 调试器axd调试器arm extended debugger是arm扩展调试器,包括adw/adu的所有特性,支持硬件仿真和软件仿真。axd能够装载映像文件到目标内存,具有单步、全速和断点等调试功能,可以观察变量、寄存器和内存的数据等,axd调试器主窗口如图3.2所示。3.2 工程的编辑工程的编辑 3.2.1 建立工程建立工程 点击windows操作系统的【开始】【程序】【arm developer sui

26、te 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图 3.4 new 对话框选择工程模板为 arm 可执行映象(arm executable image)或 thumb 可执行映象 (thumb executable image),或 thumb、arm 交织映象(thumb arm interworking image)

27、, 然后在【location】项选择工程存放路径,并在【project name】项输入工程名称,点击【确定】按钮即可建立相应工程,工程文件名后缀为 mcp(下文有时也把工程称为项目)。3.2.2 建立文件建立文件建立一个文本文件以便输入用户程序。点击“new text file”图标按钮,然后在新建的文件中编写程序,点击“save”图标按钮将文件存盘(或从【file】菜单选 择【save】),输入文件全名,如 test1.s。注意,请将文件保存到相应工程的目录下,以 便于管理和查找。当然,您也可以 new 对话框选择【file】页来建立源文件,或使用其它文 本编辑器建立或编辑源文件。3.2.

28、3 添加文件到工程添加文件到工程 在工程窗口中 【files】 页空白处点击鼠标右键, 弹出浮动菜单, 选择 “addfiles”即可弹出“select files to add”对话框,选择相应的源文件(可按着 ctrl 键一次选 择多个文件),点击【打开】按钮即可。 工程建立和调试工程建立和调试 11图 3.5 select files to add 对话框 另外,用户也可以在【project】菜单中选择【add files】来添加源文件,或使用new 对话框选择【file】页来建立源文件时选择加入工程,即选中“add to project”项。添加文 件操作如3.5所示。3.2.4 编辑

29、连接工程编辑连接工程如图 3.6 所示为工程窗口中的图标按钮,通过这些图标按钮,您可以快速地进行工程设置、 编译连接、启动调试等等。在不同的菜单项上可以分别找到对应的菜单命令。 工程建立和调试工程建立和调试 12图 3.6 工程窗口中的图标按钮 点击“debugrel settings”图标按钮,即可进行工程的地址设置、输出文件设置、编 译选项等。在“arm linker”对话框设置连接地址,在“language settings” 中设置各编译器的编译选项。对于简单的软件调试,可以不进行连接地址的设置,直接点击工程窗口的“make”图 标按钮,即可完成编译连接。若编译出错,会有相应的出错提示

30、,双击出错提示行信息, 编辑窗即会使用光标指出当前出错的源代码行。touch 栏用于标记文件是否已编译,若打上“”则表明对应文件需要重新编译。可以通过单击该栏位置来设置/取消符号“”,或将工程目录下的*.tdt 文件删除 也可以使整个工程源文件均打上“”。重新编译之前,建议将原来生成的目标文件都删除,方法如下,点选“project”下拉菜 单的“remove object code”-“all targets”,删除了旧目标文件后,所有 文件都被“touch”上了,此时可对整个工程进行重新编译。3.3 工程的调试工程的调试 工程建立和调试工程建立和调试 13图 3.7 choose targe

31、t 窗口当工程编译连接通过后, 在工程窗口中点击 “debug”图标按钮 即可启动 axd(也可以通过【开始】菜单起动 axd)。点击菜单【options】选择【configure target】, 即弹出 choose target 窗口, 如图 3.7 所示。 在没有添加其它仿真驱动程序前, target 项中只有两项,分别为 adp(jtag 硬件仿真)和 armul(软件仿真)。选择仿真驱动程序后,点击【file】选择【load image】加载 elf 格式的可执行文件,即*.axf 文件。 (说明:当工程编译连接通过后,在“工程名工程名_data当前的生成目标”目录下就会生成一个*

32、.axf 调试文件。如工程 test,当前的生成目标 debug,编译连接通过后,则在testtest_datadebug目录下生成 test.axf 文件。 lpc2103 基础知识详解基础知识详解 144 lpc2103lpc2103 基础知识详解基础知识详解4.1 引脚链接模块引脚链接模块4.1.1 概述概述lpc2103 控制器的引脚都具有多种功能,但是每个引脚在某一时刻只能选择一种功能。图4.1是lpc2103 引脚p0.0 的一个功能选择示意图,通过配置引脚功能选择寄存器即可选择相应的功能。 当使用一个功能外设时,如果需要相应的引脚参与(如 gpio 等) ,则必须在实现这一功能之

33、前先设置好引脚的功能,否则无法实现该外设功能。 图 4.1 引脚链接模块示意图4.1.2 寄存器描述寄存器描述lpc2103具有两个pinsel寄存器,pinsel0和pinsel1,它们都是32位宽度的,详细描述如表4.1所列。 lpc2103 基础知识详解基础知识详解 15表4.1 引脚连接模块寄存器描述名称 描述 访问 复位值1 地址pinsel0 引脚功能选择寄存器0 读/写 0 x00000000 0 xe002c000 pinsel1 引脚功能选择寄存器1 读/写 0 x00000000 0 xe002c004 1:复位值仅反映已使用位中保存的数据,不包含保留位的内容。 pinse

34、l0 和 pinsel1 寄存器中的每两个位控制着一个引脚的功能,所以一个引脚最多可以有 4 种不同的功能选择。pinsel0 和 pinsel1 寄存器就是按照如表 4.2、表 4.3所列的设定来选择 p0 口的引脚功能。表 4.2 引脚功能选择寄存器 0pinse0引脚名称00011011复位值1:0p0.0gpio p0.0txd0(uart0)mat3.1(定时器3)保留003:2p0.1gpio p0.1rxd0(uart0)mat3.2(定时器3)保留005:4p0.2gpio p0.2scl0(i2c0)cap0.0(定时器0)保留007:6p0.3gpio p0.3sda0(i

35、2c0)mat0.0(定时器0)保留009:8p0.4gpio p0.4sck0(spi0)cap0.1 (定时器0)保留0011:10p0.5gpio p0.5miso0(spi0)mat0.1 (定时器0)保留0013:12p0.6gpio p0.6mosi0(spi0)cap0.2(定时器0)保留0015:14p0.7gpio p0.7ssel0(spi0)mat2.0(定时器2)保留0017:16p0.8gpio p0.8txd1 (uart1)mat2.1(定时器2)保留0019:18p0.9gpio p0.9rxd1(uart1)mat2.2(定时器2)保留0021:20p0.10

36、gpio p0.10rts1 (uart1)cap1.0(定时器1)ain30023:22p0.11gpio p0.11cts1(uart1)cap1.1 (定时器1)ain40025:24p0.12gpio p0.12dsr1(uart1)mat1.0 (定时器1)ain50027:26p0.13gpio p0.13保留mat1.1 (定时器1)dtr1 (uart1)0029:28p0.14gpio p0.14eint1sck1(ssp1)dcd1 (uart1)0031:30p0.15gpio p0.15eint2保留ri1 (uart1)00 lpc2103 基础知识详解基础知识详解

37、16表 4.3 引脚功能选择寄存器 1pinsel1引脚名称00011011复位值1:0p0.16gpio p0.16eint0mat0.2(定时器0)保留003:2p0.17gpio p0.17scl1 (i2c1)cap1.2 (定时器1)保留005:4p0.18gpio p0.18sda1 (i2c1)cap1.3 (定时器1)保留007:6p0.19gpio p0.19miso1 (spi1)mat1.2(定时器1)保留009:8p0.20gpio p0.20mosi1 (spi1)mat1.3(定时器1)保留0011:10p0.21gpio p0.21ssel1 (spi1)mat3

38、.0(定时器3)保留0013:12p0.22gpio p0.22保留保留ain00015:14p0.23gpio p0.23保留保留ain10017:16p0.24gpio p0.24保留保留ain20019:18p0.25gpio p0.25保留保留ain60021:20p0.26gpio p0.26保留保留ain70023:22p0.27gpio p0.27trst (jtag)cap2.0(定时器2)保留0125:24p0.28gpio p0.28tms (jtag)cap2.1(定时器2)保留0127:26p0.29gpio p0.29tck (jtag)cap2.2(定时器2)保留0

39、129:28p0.30gpio p0.30tdi (jtag)mat3.3(定时器3)保留0131:30p0.31gpio p0.31tdo (jtag)保留保留004.2 gpiogpio 4.2.1 概述概述 lpc2103只有1个32位的通用i/o口p031:0,由于与引脚的其它功能复用,在使用前要进行相关的引脚设置,然后才能进行操作。其中,p0.27p0.31是jtag调试引脚,在复位时,如果debug引脚为高,则p031:27是不能作为gpio使用的,只能作为jtag调试引脚;反之,如果复位时debug引脚为低,则p031:27引脚可以由用户设置,此时,调试禁止。 lpc2103的g

40、pio有两种模式:高速gpio和低速gpio。高速gpio的控制寄存器位于cpu的局部总线上,可进行高速的读写操作,低速gpio的控制寄存器挂在vpb总线上。p0口作为高速gpio使用时,将不能在调试环境下观察gpio在vpb总线上的寄存器。 lpc2103 基础知识详解基础知识详解 174.2.2 寄存器描述寄存器描述lpc2103的gpio由表4.4、表4.5、表4.6中所列的寄存器来控制。 表4.4所列寄存器是用来选择gpio的操作模式。当gpio0m位的值为0时,选择低速gpio,当gpio0m位的值为1时,选择高速gpio。在使用引脚的gpio时,必须选择gpio的操作模式。 表4.

41、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地址&名称iopingpio端口管脚值寄存器。不管管脚的

42、方向如何设定,gpio配置端口管脚的当前状态都可从该寄存器中读出r/wna0 xe002 8000io0piniosetgpio端口输出置位寄存器。该寄存器和ioclr寄存器一起控制输出管脚的状态。写入1使对应管脚输出高电平。写入0无效r/w00 xe002 8004io0setiodirgpio端口方向控制寄存器。该寄存器单独控制每个i/o口的方向r/w00 xe002 8008io0dirioclrgpio端口输出清零寄存器。该寄存器控制输出管脚的状态。写入1使对应管脚输出低电平并清零ioset寄存器中的对应位。写入0无效wo00 xe002 800cio0clr lpc2103 基础知识

43、详解基础知识详解 184.3 向量中断控制器向量中断控制器 4.3.1 概述概述 向量中断控制器vic(vectored interrupt controller)具有32个中断请求输入。可将这些中断编程分为3类:fiq、向量irq、非向量irq。 快速中断请求fiq(fast interrupt request)具有最高的优先级。如果分配给fiq的请求超过1个,vic将中断请求相“或”后向arm处理器产生fiq信号。当只有1个中断被分配为fiq时,可实现最短的fiq等待时间,因为fiq服务程序只要简单地启动器件的处理即可。但分配给fiq级的中断多于1个时,fiq服务程序需要读取fiq状态寄存

44、器来识别产生中断请求的fiq中断源。 向量irq(vectored irq)具有中等优先级。该级别可分配32个中断请求中的16个。32个请求中的任意一个都可分配到16个向量irq slot中的任意一个,其中slot0具有最高优先级,而slot15则为最低优先级。 非向量irq(non-vectored irq)的优先级最低。vic将所有向量irq和非向量irq相“或”,向arm处理器产生irq信号。irq服务程序可通过读取vic的一个寄存器来启动并跳转到相应的地址。如果有任意一个向量irq发出请求,vic则提供最高优先级请求irq服务程序的地址;否则提供所默认程序的地址。该默认程序由所有非向量

45、irq共用。默认程序可读取irq状态寄存器,来确定哪个irq被激活。 4.3.2 寄存器描述寄存器描述vic所包含的常用寄存器如表4.6所列。表4.6 vic控制寄存器名称描述访问复位值地址vicintselect中断选择寄存器。该寄存器将32个中断请求分配为fiq或irqr/w00 xffff f00cvicintenable中断使能寄存器。该寄存器控制32个中断和软件中断r/w00 xffff f010 lpc2103 基础知识详解基础知识详解 19的使能vicintenclear中断使能清零寄存器。该寄存器允许将中断使能寄存器的一个或多个位清零w00 xffff f014vicvecta

46、ddr向量地址寄存器。当发生一个irq中断时,irq服务程序可读出该寄存器并跳转到读出的地址r/w00 xffff f030vicvectaddr0-15向量地址0-15寄存器。向量地址寄存器015保存了16个向量irq slot的中断服务地址r/w00 xffff f1000 xffff f13cvicvectcntl0-15向量控制0-15寄存器。向量控制寄存器015分别控制16个向量irq slot中的一个。slot0优先级最高,而slot15优先级最低r/w00 xffff f2000 xffff f23c向量中断控制器所包含的寄存器的位与外设中断的分配关系如表4.7所列: 表4.7向

47、量中断寄存器的位与外设中断的分配关系位 31 30 29 28 27 26 25 24 对应外设 - - - - timer3 timer2 - - 位 23 22 21 20 19 18 17 16 对应外设 - - - - i2c1 ad0 - eint2位 15 14 13 12 12 10 9 8 对应外设 eint1 eint0 rtc pll ssp/spi1 spi0 i2c0 - 位 7 6 5 4 3 2 1 0 对应外设 uart1uart0 timer1timer0armcore1armcore0 - wdt4.3.3 向量向量irqirq中断中断向量irq具有中等优先级

48、,处理中断比较迅速。一旦发生向量irq中断,arm处理器进入irq模式,pc指向irq异常入口0 x18,同时向量irq服务程序的地址从相应通道的向量地址寄存器(vicvectaddr0-15)中复制到vic的向量地址寄存器(vicvectaddr),pc根据vicvectaddr内的地址进行跳转,执行相应的服务程序,如图4.2所示。这整个过程都是由vic硬件自动完成的,无需用户的软件干预。 lpc2103 基础知识详解基础知识详解 20 图4.2 向量irq示意图在一个具体应用中,向量irq中断使用往往是最多的,一个系统往往都会有多个向量irq中断。将一个中断分配为向量irq中断后,需要在程

49、序中设置该中断的优先级、服务程序地址,接着清除相关中断标识再使能相应中断,最后编写irq中断服务程序即可。 4.4 定时器定时器 0 和定时器和定时器 1 4.4.1 概述概述 lpc2103含有两个32位定时器:定时器0和定时器1,这两个定时器除了外设基地址不同外,其它都相同。定时器/计数器对外设时钟(pclk)或外部提供的时钟周期进行计数,可选择产生中断或根据4个匹配寄存器的设定,在到达指定的定时值时执行其它动作。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。 由于lpc2103器件的管脚数目有限,定时器0只有3个捕获输入和3个匹配输出被连接到器件的管脚。4

50、.4.2 特性特性 1.两个32位定时器/计数器各含有一个可编程32位预分频器; 2.计数器或定时器操作; 3.定时器0有3路、定时器1有4路捕获通道。当输入信号跳变时可取得定时器的瞬时值。也可选择使捕获事件产生中断; 4.每个定时器共有4个32位匹配寄存器,匹配时的动作有如下3种: lpc2103 基础知识详解基础知识详解 21 a.匹配时定时器继续工作,可选择产生中断; b.匹配时停止定时器,可选择产生中断; c.匹配时复位定时器,可选择产生中断。 5.定时器0有3个、定时器1有4个对应于匹配寄存器的外部输出,匹配时的输出有如下4种: a.匹配时设置为低电平; b.匹配时设置为高电平; c

51、.匹配时翻转; d.匹配时无动作。4.4.3 引脚描述引脚描述 定时器/计数 器相关管脚的简要描述如表4.8所列。表4.8 定时器/计数器管脚描述 管脚名称 管脚方向 管脚描述 mat0.20 mat1.30 输出 外部匹配输出0/1:当匹配寄存器0/1(mr3:0)等于定时器计数器(tc)时,该输出可翻转、变为低电平、变为高电平或不变。外部匹配寄存器(emr)和pwm控制寄存器(pwmcon)控制该输出的功能。 下面是所有匹配信号及其选择的管脚的列表: mat0.0:p0.3 mat0.1:p0.5 mat0.2:p0.16 mat1.0:p0.12 mat1.1:p0.13 mat1.2:

52、p0.19 mat1.3:p0.204.4.4 寄存器描述寄存器描述1.寄存器汇总定时器/计数器0、1所包含的寄存器如表4.9所列。表4.9 定时器0、1定时器1寄存器映射通用 名称 描述 访问复位值定时器/计数器0地址&名称定时器/计数器1地址&名称ir 中断寄存器。可以写ir来清除中断。可读取ir来识别哪个中断源(8个可能中断源中)被挂起r/w0 0 xe0004000 t0ir 0 xe0008000 t1ir lpc2103 基础知识详解基础知识详解 22tcr 定时器控制寄存器。tcr用于控制定时器计数器功能,定时器计数器可通过tcr禁止或复位 r/w0 0 xe00

53、04004 t0tcr 0 xe0008004 t1tcr tc 定时器计数器。32位tc每经过pr+1个pclk周期加1,tc通过tcr进行控制 r/w0 0 xe0004008 t0tc 0 xe0008008 t1tc pr 预分频寄存器。预分频计数器(下面)等于该值时,下个时钟增加tc并清除pc r/w0 0 xe000400c t0pr 0 xe000800c t1pr pc 预分频计数器。32位pc是加1到pr内的存储值的计数器。当到达pr中保存的值时,tc加1且pc被清除。通过总线接口可观察和控制pc r/w0 0 xe0004010 t0pc 0 xe0008010 t1pc

54、mcr 匹配控制寄存器。mcr用于控制在匹配时是否产生中断或复位tc r/w0 0 xe0004014 t0mcr 0 xe0008014 t1mcr mr0 匹配寄存器0。mr0可通过mcr设定为在每次mr0匹配tc时复位tc、停止tc和pc,选择产生中断 r/w0 0 xe0004018 t0mr0 0 xe0008018 t1mr0 mr1 匹配寄存器1。见mr0描述 r/w0 0 xe000401c t0mr1 0 xe000801c t1mr1 mr2 匹配寄存器2。见mr0描述 r/w0 0 xe0004020 t0mr2 0 xe0008020 t1mr2 mr3 匹配寄存器3。

55、见mr0描述 r/w0 0 xe0004024 t0mr3 0 xe0008024 t1mr3 emr 外部匹配寄存器。emr控制外部匹配管脚mat0.2.0和mat1.3.0 注:mat0.3不连接到lpc2101/02/03的管脚 r/w0 0 xe000403c t0emr 0 xe000803c t1emr ctcr 计数控制寄存器。ctcr选择定时器或计数器模式,且在计数器模式下选择计数的信号和边沿 r/w0 0 xe0004070 t0ctcr 0 xe0008070 t1ctcr 2.匹配功能寄存器组 匹配功能寄存器组主要针对定时器的匹配功能,包括:匹配寄存器、匹配控制寄存器以及

56、外部匹配寄存器。其中,匹配寄存器用来设置定时器的匹配值,发生匹配事件时,匹配控制寄存器用来设置定时器的动作,外部匹配寄存器用来设置匹配输出引脚的动作。 (1)匹配寄存器(mr0 - mr3) lpc2103 基础知识详解基础知识详解 23匹配寄存器值连续与定时器计数值(tc)相比较,当2个值相等时,则自动触发产生中断,复位定时器计数器或停止定时器,所执行的动作由mcr寄存器控制。 (2)匹配控制寄存器(t0mcr:0 xe0004014;t1mcr:0 xe00080014) 匹配控制寄存器用于控制在发生匹配时所执行的操作,相关位的描述如表4.10所列。 表4.10 匹配控制寄存器描述mcr

57、功能描述 复位值0 中断(mr0i) 为1时,mr0与tc值的匹配将产生中断。为0时,中断被禁止 0 1 复位(mr0r) 为1时,mr0与tc值的匹配将使tc复位。为0时,该特性被禁止 0 2 停止(mr0s) 为1时,mr0与tc值的匹配将使tc和pc停止,tcr的bit0清零。为0时,该特性被禁止 0 3 中断(mr1i) 为1时,mr1与tc值的匹配将产生中断。为0时,中断被禁止 0 4 复位(mr1r) 为1时,mr1与tc值的匹配将使tc复位。为0时,该特性被禁止 0 5 停止(mr1s) 为1时,mr1与tc值的匹配将使tc和pc停止,tcr的bit0清零。为0时,该特性被禁止

58、0 6 中断(mr2i) 为1时,mr2与tc值的匹配将产生中断。为0时,中断被禁止 0 7 复位(mr2r) 为1时,mr2与tc值的匹配将使tc复位。为0时,该特性被禁止 0 8 停止(mr2s) 为1时,mr2与tc值的匹配将使tc和pc停止,tcr的bit0清零。为0时,该特性被禁止 0 9 中断(mr3i) 为1时,mr3与tc值的匹配将产生中断。为0时,中断被禁止 0 10 复位(mr3r) 为1时,mr3与tc值的匹配将使tc复位。为0时,该特性被禁止 0 11 停止(mr3s) 为1时,mr3与tc值的匹配将使tc和pc停止,tcr的bit0清零。为0时,该特性被禁止 0 lp

59、c2103 基础知识详解基础知识详解 24(3)外部匹配寄存器(t0emr:0 xe000403c;t1emr:0 xe0008003c)外部匹配寄存器提供外部匹配管脚matn.0matn.3(n为0或1)的控制和状态,emr寄存器描述如表4.11所列,emr外部匹配控制如表4.12所列。表4.11 外部匹配寄存器描述emr 功能描述 复位值0外部匹配0不管mat0.0/mat1.0是否连接到管脚,该位都会反映mat0.0/mat1.0的状态。当mr0发生匹配时,该输出可翻转,变为低电平,变为高电平或不执行任何动作。位emr4:5控制该输出的功能01外部匹配1不管mat0.1/mat1.1是否

60、连接到管脚,该位都会反映mat0.1/mat1.1的状态。当mr1发生匹配时,该输出可翻转,变为低电平,变为高电平或不执行任何动作。位emr6:7控制该输出的功能02外部匹配2不管mat0.2/mat1.2是否连接到管脚,该位都会反映mat0.2/mat1.2的状态。当mr2发生匹配时,该输出可翻转,变为低电平,变为高电平或不执行任何动作。位emr8:9控制该输出的功能03外部匹配3不管mat0.3/mat1.3是否连接到管脚,该位都会反映mat0.3/mat1.3的状态。当mr3发生匹配时,该输出可翻转,变为低电平,变为高电平或不执行任何动作。位emr10:11控制该输出的功能05:4外部匹配控制0决定外部匹配0

温馨提示

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

评论

0/150

提交评论