




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要纵观单片机的发展和应用,51单片机越来越无法满足用户的需求,ARM高速32位单片机的出现,缔造了嵌入式系统的新纪元.嵌入式系统是指以应用为中心,以计算机技术为基础,软件,硬件可裁减,适应应用系统对功能、可靠性、成本、体积、和功耗严格要求的专用计算机系统。嵌入式系统已广泛地渗透到科学研究、工程设计、军事等各种领域、甚至商业、文化、艺术、及人们日常生活的方方面面。随着国内外各种嵌入式产品的进一步开发和推广,嵌入式技术的重要性日益凸显,使得我们不得不将注意力转移到它身上。ARM的应用已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。此设计采用了ARM7微处理器LPC2103作为核心处理器。本文介绍了一个智能交通灯系统的设计。该智能交通灯控制系统可以实现的功能有:对某人行马路的交通路口进行控制和对红绿灯的闪亮控制;各路口有固定的工作周期。人行过马路交通灯控制系统不仅可以缓解交通拥堵,还能阻止一些交通事故的发生。它采用LPC2103来实现对红绿灯的控制。其中通过设置LPC2103的GPIO功能用定时器来实现LED灯的亮灭与闪亮。关键词:ARM7LPC2103LED灯AbstractAbstractThroughoutthedevelopmentandapplicationofSCM,51SCMincreasinglyunabletosatisfythedemandofusers,ARMspeed32bitMCUembeddedsystems,createstheneweraofembeddedsystem.Refertotheapplicationforthecentertocomputertechnologyasthefoundation,software,hardware,canadapttofunction,applicationsystemreliability,cost,volume,andthepowerofthestrictspecializedcomputersystem.Theembeddedsystemhasbeenwidelypermeatesscientificresearchandengineeringdesign,militaryandotherfields,orevencommercial,culture,art,andallaspectsofPeople'sDailylife.Withthefurtherdevelopmentofembeddedproducts,andtheimportanceoftheembeddedtechnologyallowsustoincreasinglyprominent,divertattentiontoit.TheARMoftheapplicationinindustrialcontrol,consumerelectronics,communicationsystem,networksystem,wirelesssystemsandotherkindsofproductmarket.ThisdesignusestheLPC2103ARM7microprocessorcoreprocessors.Thisarticledescribesanintelligenttrafficlightsystem.Theintelligenttrafficlightcontrolsystemfunctionscanbeachieved:theroadtripagainstapersontocontrolthetrafficjunctionsandtrafficlightstoflashcontrol;theintersectionwithafixeddutycycle.Pedestriancrossingtrafficlightcontrolsystemcannotonlyeasetrafficcongestion,butalsopreventanumberoftrafficaccidents.ItusesLPC2103torealizethecontroloftrafficlights.LPC2103'sGPIObysettingthemwithatimerfunctiontoachievebrightLEDlightsoffandshine.Keywords:ARM7LPC2103LEDlights目录摘要......................................................................IAbstract.................................................................II目录....................................................................III1引言....................................................................11.1背景................................................................11.2现状问题............................................................22工作硬件原理............................................................33工程建立和调试..........................................................74LPC2103基础知识详解...................................................135带闪烁人行过马路交通灯控制系统的设计与实现.............................265.1带闪烁人行过马路交通灯控制的基本规则...............................265.2人行过马路交通灯点亮与熄灭的原理...................................285.3ARM定时器控制的原理...............................................285.4ARM中断控制的原理.................................................295.5人行过马路交通灯控制系统的硬件设计.................................295.6人行过马路交通灯控制程序的设计.....................................295.6.1定时器0初始化程序............................................295.6.2定时器1初始化程序............................................315.6.3中断服务程序..................................................315.6.4主程序........................................................326总结与体会.............................................................336.1总结...............................................................336.2体会...............................................................336.3致谢...............................................................346.4参考文献...........................................................34附录A源程序............................................................35引言1引言随着我国改革开放的不断深入,城市化进程不断加快,交通事业飞速发展,交通拥挤已成为城市经济发展的“瓶颈”,特别是大、中城市不断增加的车辆和有限的道路空间矛盾日益加剧。目前我国城市里的人行过马路交通系统大都采用定时来控制(不排除繁忙路段或高峰时段用交警来取代交通灯的情况,这样必然产生如下弊端:当某条路段的车流量很大时却要等待红灯,而此时另一条是空道或车流量相对少得多的道却长时间亮的是绿灯,这种多等少的尴尬现象是未对实际情况进行实时监控所造成的,不仅让司机乘客怨声载道,而且对人力和物力资源也是一种浪费。缓解道路交通拥堵,减少交通事故,改善道路交通环境,节约交通能源,减轻驾驶疲劳等功能,最终实现安全、舒适、快速、经济的交通环境是目前急需解决的城市交通管理系统的关键技术之一。本文采用的设计是使用ARM32位LPC2103芯片,作为带闪烁人行过马路交通灯控制系统的核心部件,利用ARM32位芯片定时器的优势,对带闪烁人行过马路交通灯精确的控制;可根据车流量的大小,合理的和精确的控制每一个人行过马路通道的时间,来减少道路上车辆拥塞的时间。达到路口车辆畅通的的同时减少车辆的停留时间,从而有利于减轻城市马路空气污染的目的。1.1背景当人类历史跨入21世纪的时候,全球社会、经济、市场、产业结构及科学技术等发生着深刻的变革:国际和国内市场向着大竞争大合作的方向发展;产业结构向着以信息产业为主的方向发展;基础科学、信息科学、材料科学、管理科学和现代控制理论与制造科学等获得了突破性的进展,而且相互交叉融合。以网络为基础的科学活动环境研究对未来的计算模式和科研活动产生了深刻的影响,同时也提出了挑战,如:无序成长性与动态有序性的统一;自治条件下的协同性及安全保证;海量信息的结构化组织与管理等。在此背景下,网络技术与先进制造技术的有效融合形成了一种全新的生产制造模式---网络化制造。网络化制造技术的出现和发引言展,引起了全球制造领域的极大关注。网络化制造涉及的技术问题多且内容复杂,许多技术问题都有待于深入研究和解决。在这些技术内容和技术问题中,网络化协同产品开发将是今后相当一段时间网络化制造的主要研究课题。网络环境下新产品的研究、开发、设计、制造、管理、营销、服务不再局限于一座城市、一个地区甚至一个国家。同时,企业间的兼并和收购成为激烈竞争的必然结果,这使得企业规模急剧膨胀,其内部生产、管理和决策支持系统多种多样系统间的信息和知识交换成为瓶颈。而且,随着现代产品的复杂度和技术含量的提高,单一企业常常受到技术和资源等方面的限制,不能胜任产品开发的全过程。于是,利用现代计算机和网络技术,进行企业间的合作和同盟,以便充分利用各自的资源和技术优势,取长补短,获得整体优化。上述产品开发模式随着Internet变成网络应用平台而越来越具有可实现性。但是,从总体上讲,网络化协同产品开发的研究还不够深入,缺乏系统的理论体系和支持工具,研究成果与实际需求尚有一定的差距。因此,探索网络环境下的协同产品开发方法和关键技术,并开发出相应的支持系统,是一项具有重要理论意义和广泛应用前景的研究课题。理论不可能产生在实践之前,它需要实践经验作为其构成的基本要素;理论也不是产生在实践的终点,因为它负有指导后续实践使之有更多成功机会的责任。本论文针对网络化协同产品开发业务流程和软件技术架构进行了深入的研究。1.2现状问题近来有不少市民反映,由于一些道路红绿灯设置不甚合理,给行人过马路带来不便,甚至险象环生,成为诱发交通事故的原因之一。在车流繁杂的路口,因为人行道的绿灯时间太短,导致通常都要小跑才能过马路,这对老年人和儿童来讲的确是件难事。红绿灯时间究竟多久才能让行人从容通过?专业人士介绍,红绿灯时间设置有固定的计算公式,主要以所在路口的车流量、人流量等数据为指标,结合常人行走平均速度(大约1.3米/秒,并考虑行人的过路时间得来的。交通问题在现在乃至将来的一段时间内仍是制约国内各大中城市发展的主要问题之一,因此合理的设置人行过马路交通灯控制系统成为交通系统中的一个重要问题。2工作硬件原理2.1LPC2103简介LPC2103是一个基于支持实时仿真的16/32位ARM7TDMI-SCPU的微控制器,并带有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.1PLC2103管脚配置2.2ARM2103底板原理图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的电容,可改善瞬态响应和稳定性。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时钟电路JTAG接口电路采用ARM公司提出的标准20脚JTAG仿真调试接口,JTAG接口与LPC2103引脚之间的连接如图2.3所示。在RTCK引脚处接一个4.7K的下拉电阻,将在系统复位后使能JTAG调试接口。图2.3JTAG接口电路最小系统电路原理图如下图2.4所示:图2.4最小系统电路原理图最小系统实物图如下图2.5所示:图2.5最小系统实物图人行过马路交通灯控制系统—LED红绿灯与闪亮控制的电路原理图如下图2.6所示:图2.6电路原理图3工程建立和调试本章将介绍在ADS1.2开发环境里如何建立、编译连接工程及对工程进行调试的基本方法,进而说明基于LPC2103ARM微控制器的工程模板。3.1ADS1.2集成开发环境的组成ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文全称为ARMDeveloperSuite,成熟版本为ADS1.2。ADS1.2支持ARM10之前的所有ARM系列微控制器,支持软件调试及JTAG硬件仿真调试,支持汇编、C、C++源程序,具有编译效率高、系统库功能强等特点,可以在Windows98、Windows2000、WindowsXP以及RedHatLinux上运行。ADS1.2由6个部分组成,如表3.1所示。表3-1ADS1.2的组部分由于用户一般直接操作的是CodeWarriorIDE集成开发环境和AXD调试器,所以本文只介绍这两部分的使用,其它部分的详细说明参考ADS1.2的在线帮助文档。ADS1.2使用了CodeWarriorIDE集成开发环境,并集成了ARM汇编器、ARM的C/C++编译器、Thumb的C/C++编译器、ARM连接器,包含工程管理器、代码生成接口、语法敏感(对关键字以不同颜色显示编辑器、源文件和类浏览器等。CodeWarriorIDE主窗口如图3.1所示。图3.1CodeWarrior开发环境图3.2AXD调试器AXD调试器ARMExtendedDebugger是ARM扩展调试器,包括ADW/ADU的所有特性,支持硬件仿真和软件仿真。AXD能够装载映像文件到目标内存,具有单步、全速和断点等调试功能,可以观察变量、寄存器和内存的数据等,AXD调试器主窗口如图3.2所示。3.2工程的编辑点击WINDOWS操作系统的【开始】→【程序】→【ARMDeveloperSuitev1.2】→【CodeWarriorforARMDeveloperSuite】启动MetrowerksCodeWarrior,启动ADS1.2IDE如图3.3所示。图3.3启动ADS1.2IDE点击【File】菜单,选择【New„】即弹出New对话框,如图3.4所示。图3.4New对话框选择工程模板为ARM可执行映象(ARMExecutableImage或Thumb可执行映象(ThumbExecutableImage,或Thumb、ARM交织映象(ThumbARMInterworkingImage,然后在【Location】项选择工程存放路径,并在【Projectname】项输入工程名称,点击【确定】按钮即可建立相应工程,工程文件名后缀为mcp(下文有时也把工程称为项目。建立一个文本文件以便输入用户程序。点击“NewTextFile”图标按钮,然后在新建的文件中编写程序,点击“Save”图标按钮将文件存盘(或从【File】菜单选择【Save】,输入文件全名,如TEST1.S。注意,请将文件保存到相应工程的目录下,以便于管理和查找。当然,您也可以New对话框选择【File】页来建立源文件,或使用其它文本编辑器建立或编辑源文件。在工程窗口中【Files】页空白处点击鼠标右键,弹出浮动菜单,选择“AddFiles„”即可弹出“Selectfilestoadd„”对话框,选择相应的源文件(可按着Ctrl键一次选择多个文件,点击【打开】按钮即可。图3.5Selectfilestoadd对话框另外,用户也可以在【Project】菜单中选择【AddFiles„】来添加源文件,或使用New对话框选择【File】页来建立源文件时选择加入工程,即选中“AddtoProject”项。添加文件操作如3.5所示。图3.6所示为工程窗口中的图标按钮,通过这些图标按钮,您可以快速地进行工程设置、编译连接、启动调试等等。在不同的菜单项上可以分别找到对应的菜单命令。图3.6工程窗口中的图标按钮点击“DebugRelSettings„”图标按钮,即可进行工程的地址设置、输出文件设置、编译选项等。在“ARMLinker”对话框设置连接地址,在“LanguageSettings”中设置各编译器的编译选项。对于简单的软件调试,可以不进行连接地址的设置,直接点击工程窗口的“Make”图标按钮,即可完成编译连接。若编译出错,会有相应的出错提示,双击出错提示行信息,编辑窗即会使用光标指出当前出错的源代码行。Touch栏用于标记文件是否已编译,若打上“√”则表明对应文件需要重新编译。可以通过单击该栏位置来设置/取消符号“√”,或将工程目录下的*.tdt文件删除也可以使整个工程源文件均打上“√”。重新编译之前,建议将原来生成的目标文件都删除,方法如下,点选“project”下拉菜单的“RemoveObjectcode”->“AllTargets”,删除了旧目标文件后,所有文件都被“touch”上了,此时可对整个工程进行重新编译。3.3工程的调试图3.7ChooseTarget窗口当工程编译连接通过后,在工程窗口中点击“Debug”图标按钮即可启动AXD(也可以通过【开始】菜单起动AXD。点击菜单【Options】选择【ConfigureTarget„】,即弹出ChooseTarget窗口,如图3.7所示。在没有添加其它仿真驱动程序前,Target项中只有两项,分别为ADP(JTAG硬件仿真和ARMUL(软件仿真。选择仿真驱动程序后,点击【File】选择【LoadImage„】加载ELF格式的可执行文件,即*.axf文件。(说明:当工程编译连接通过后,在“工程名\工程名_Data\当前的生成目标”目录下就会生成一个*.axf调试文件。如工程TEST,当前的生成目标Debug,编译连接通过后,则在„\TEST\TEST_Data\Debug目录下生成TEST.axf文件。4LPC2103基础知识详解4.1引脚链接模块LPC2103控制器的引脚都具有多种功能,但是每个引脚在某一时刻只能选择一种功能。图4.1是LPC2103引脚P0.0的一个功能选择示意图,通过配置引脚功能选择寄存器即可选择相应的功能。当使用一个功能外设时,如果需要相应的引脚参与(如GPIO等,则必须在实现这一功能之前先设置好引脚的功能,否则无法实现该外设功能。图4.1引脚链接模块示意图LPC2103具有两个PINSEL寄存器,PINSEL0和PINSEL1,它们都是32位宽度的,详细描述如表4.1所列。表4.1引脚连接模块寄存器描述[1]:复位值仅反映已使用位中保存的数据,不包含保留位的内容。PINSEL0和PINSEL1寄存器中的每两个位控制着一个引脚的功能,所以一个引脚最多可以有4种不同的功能选择。PINSEL0和PINSEL1寄存器就是按照如表4.2、表4.3所列的设定来选择P0口的引脚功能。表4.2引脚功能选择寄存器0表4.3引脚功能选择寄存器14.2GPIOLPC2103只有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总线上的寄存器。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-0xE01FC1A0表4.5GPIO控制寄存器(通过VPB总线访问的寄存器4.3向量中断控制器向量中断控制器VIC(VectoredInterruptController具有32个中断请求输入。可将这些中断编程分为3类:FIQ、向量IRQ、非向量IRQ。快速中断请求FIQ(FastInterruptreQuest具有最高的优先级。如果分配给FIQ的请求超过1个,VIC将中断请求相“或”后向ARM处理器产生FIQ信号。当只有1个中断被分配为FIQ时,可实现最短的FIQ等待时间,因为FIQ服务程序只要简单地启动器件的处理即可。但分配给FIQ级的中断多于1个时,FIQ服务程序需要读取FIQ状态寄存器来识别产生中断请求的FIQ中断源。向量IRQ(VectoredIRQ具有中等优先级。该级别可分配32个中断请求中的16个。32个请求中的任意一个都可分配到16个向量IRQslot中的任意一个,其中slot0具有最高优先级,而slot15则为最低优先级。非向量IRQ(Non-vectoredIRQ的优先级最低。VIC将所有向量IRQ和非向量IRQ相“或”,向ARM处理器产生IRQ信号。IRQ服务程序可通过读取VIC的一个寄存器来启动并跳转到相应的地址。如果有任意一个向量IRQ发出请求,VIC则提供最高优先级请求IRQ服务程序的地址;否则提供所默认程序的地址。该默认程序由所有非向量IRQ共用。默认程序可读取IRQ状态寄存器,来确定哪个IRQ被激活。VIC所包含的常用寄存器如表4.6所列。表4.6VIC控制寄存器向量中断控制器所包含的寄存器的位与外设中断的分配关系如表4.7所列:表4.7向量中断寄存器的位与外设中断的分配关系向量IRQ具有中等优先级,处理中断比较迅速。一旦发生向量IRQ中断,ARM处理器进入IRQ模式,PC指向IRQ异常入口0x18,同时向量IRQ服务程序的地址从相应通道的向量地址寄存器(VICVectAddr0-15中复制到VIC的向量地址寄存器(VICVectAddr,PC根据VICVectAddr内的地址进行跳转,执行相应的服务程序,如图4.2所示。这整个过程都是由VIC硬件自动完成的,无需用户的软件干预。图4.2向量IRQ示意图在一个具体应用中,向量IRQ中断使用往往是最多的,一个系统往往都会有多个向量IRQ中断。将一个中断分配为向量IRQ中断后,需要在程序中设置该中断的优先级、服务程序地址,接着清除相关中断标识再使能相应中断,最后编写IRQ中断服务程序即可。4.4定时器0和定时器1LPC2103含有两个32位定时器:定时器0和定时器1,这两个定时器除了外设基地址不同外,其它都相同。定时器/计数器对外设时钟(PCLK或外部提供的时钟周期进行计数,可选择产生中断或根据4个匹配寄存器的设定,在到达指定的定时值时执行其它动作。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。由于LPC2103器件的管脚数目有限,定时器0只有3个捕获输入和3个匹配输出被连接到器件的管脚。1.两个32位定时器/计数器各含有一个可编程32位预分频器;2.计数器或定时器操作;3.定时器0有3路、定时器1有4路捕获通道。当输入信号跳变时可取得定时器的瞬时值。也可选择使捕获事件产生中断;4.每个定时器共有4个32位匹配寄存器,匹配时的动作有如下3种:a.匹配时定时器继续工作,可选择产生中断;b.匹配时停止定时器,可选择产生中断;c.匹配时复位定时器,可选择产生中断。5.定时器0有3个、定时器1有4个对应于匹配寄存器的外部输出,匹配时的输出有如下4种:a.匹配时设置为低电平;b.匹配时设置为高电平;c.匹配时翻转;d.匹配时无动作。定时器/计数器相关管脚的简要描述如表4.8所列。表4.8定时器/计数器管脚描述1.寄存器汇总定时器/计数器0、1所包含的寄存器如表4.9所列。表4.9定时器0、1定时器1寄存器映射2.匹配功能寄存器组匹配功能寄存器组主要针对定时器的匹配功能,包括:匹配寄存器、匹配控制寄存器以及外部匹配寄存器。其中,匹配寄存器用来设置定时器的匹配值,发生匹配事件时,匹配控制寄存器用来设置定时器的动作,外部匹配寄存器用来设置匹配输出引脚的动作。(1匹配寄存器(MR0-MR3匹配寄存器值连续与定时器计数值(TC相比较,当2个值相等时,则自动触发产生中断,复位定时器计数器或停止定时器,所执行的动作由MCR寄存器控制。(2匹配控制寄存器(T0MCR:0xE0004014;T1MCR:0xE00080014匹配控制寄存器用于控制在发生匹配时所执行的操作,相关位的描述如表4.10所列。表4.10匹配控制寄存器描述(3外部匹配寄存器(T0EMR:0xE000403C;T1EMR:0xE0008003C外部匹配寄存器提供外部匹配管脚MATn.0~MATn.3(n为0或1的控制和状态,EMR寄存器描述如表4.11所列,EMR外部匹配控制如表4.12所列。表4.11外部匹配寄存器描述表4.12EMR外部匹配控制LPC2103含有两个32位定时器,每个定时器可以产生8种类型的中断:4路匹配中断、4路捕获中断,可以通过读取中断标志寄存器(TnIR来区分中断类型。定时器中断与向量中断控制器(VIC的关系如图4.3所示。图4.3定时器0、1与VIC的关系定时器0和定时器1分别处于VIC的通道4和通道5,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。a.当VICIntEnable[4]=1时,通道4中断使能,即:定时器0中断使能;b.当VICIntEnable[5]=1时,通道5中断使能,即:定时器1中断使能。中断选择寄存器VICIntSelect用来分配VIC通道的中断。当某一位为“1”时,对应的通道中断分配为FIQ;当某一位为“0”时,对应的通道中断分配为IRQ。VICIntSelect[4]和VICIntSelect[5]分别用来控制通道4和通道5,即:a.当VICIntSelect[4]=1时,定时器0中断分配为FIQ中断;b.当VICIntSelect[4]=0时,定时器0中断分配为IRQ中断;c.当VICIntSelect[5]=1时,定时器1中断分配为FIQ中断;d.当VICIntSelect[5]=0时,定时器1中断分配为IRQ中断。1.匹配中断LPC2103定时器计数溢出时不会产生中断,但是匹配时可以产生中断。每个定时器都具有4个匹配寄存器(MR0~MR3,可以用来存放匹配值,当定时器的当前计数值TC等于匹配值MR时,就可以产生中断。寄存器TnMCR控制匹配中断的使能,以定时器0为例,定时器匹配控制寄存器TnMCR用来使能定时器的匹配中断:a.当T0TC=T0MR0时,发生匹配事件0,若T0MCR[0]=1,则T0IR[0]置位;b.当T0TC=T0MR1时,发生匹配事件1,若T0MCR[3]=1,则T0IR[1]置位;c.当T0TC=T0MR2时,发生匹配事件2,若T0MCR[6]=1,则T0IR[2]置位;d.当T0TC=T0MR3时,发生匹配事件3,若T0MCR[9]=1,则T0IR[3]置位。275带闪烁人行过马路交通灯控制系统的设计与实现5.1带闪烁人行过马路交通灯控制的基本规则在城市里的马路路口交通灯的控制规则中,始终都允许车辆靠右行驶。在行人过马路的斑马线处,带闪烁人行过马路交通灯控制系统是指通过运行程序来实现的,用ARM32位微控制器控制2组LED灯,每组有两个红灯、两个绿灯和两个黄灯。一组对应车辆,一组对应行人,当对应车辆的2个红灯亮时,车辆禁止通行;此时对应行人的绿灯亮,行人可以过马路;反之车辆可以通行,行人禁止过马路,并且在这两组状态切换之间加有黄灯闪烁。我们将这种情况分别设置为以下四个时刻,以下是四种时刻的状态图,箭头指向为车辆行驶方向。1时刻人行过马路交通灯控制状态如图5.1所示:图5.1时刻状态图此时人行道绿灯亮,车行道红灯亮,车辆禁止通行,行人过马路,时间设为10s.2时刻人行过马路交通灯控制状态如图5.2所示:28图5.2时刻状态图此时4个黄灯同时闪烁,红绿灯熄灭,行人、车辆禁止通行,车辆等待通行,时间为5s.3时刻人行过马路交通灯控制状态如图5.3所示:图5.3时刻状态图此时人行道红灯亮,车行道绿灯亮,车辆通行,行人禁止过马路,时间为10s.4时刻时人行过马路交通灯控制状态如图5.4所示:图5.4时刻状态图此时4个黄灯同时闪烁,红绿灯熄灭,行人、车辆禁止通行,行人等待通行,时间为5s.5.2人行过马路交通灯点亮与熄灭的原理带闪烁人行过马路交通灯控制系统其外围电路原理为:LED红绿灯的发光和熄灭的控制,是通过控制GPIO寄存器组来完成的,需先将引脚P0.17-P0.18、P0.21-P0.26通过引脚功能选择寄存器PINSEL1设置为GPIO方式;再设置GPIO方向寄存器0(IO0DIR,对应的引脚位设置为输出方向。要点亮红绿灯需要使用GPIO清零寄存器0(IO0CLR的对应位设置为1,即在引脚P0.17-P0.18、P0.21-P0.26上加逻辑低电平,即可点亮这些灯。与之相反要熄灭这些红绿灯,需要使用GPIO输出置位寄存器0(IO0SET,即在这些引脚上加逻辑高电平,即可熄灭这些灯。而LED黄灯的闪烁是用P0.12-P0.13,P0.19、P0.20引脚的四路匹配MAT1.0-1.3实现的。它将引脚P0.12-P0.13,P0.19-P0.20通过引脚功能选择寄存器PINSEL0和PINSEL1设置为定时器1形式来控制黄灯闪烁的。5.3ARM定时器控制的原理定时器对外设时钟(Fpclk周期进行计数,根据4个匹配寄存器的设定,可设置为匹配(即达到匹配寄存器指定的定时值时产生中断或执行其他操作ARMLPC210329有两个32位定时器,它们是定时器0和定时器1,这里选用的是定时器0匹配产生中断来控制红、绿、黄灯的亮、灭以及闪烁时间,用定时器1匹配翻转来控制黄灯的闪烁频率变化。5.4ARM中断控制的原理本文人行过马路交通灯控制系统项目采用的是向量IRQ中断,向量IRQ中断需要对中断使能寄存器VICIntEnable、中断选择寄存器VICIntSelect、向量地址寄存器VICVectAddr、向量控制寄存器VICVectCntl进行设置。因为采用的是定时器0中断,而定时器0为4号中断源,所以需要用中断使能寄存器对4号中断源进行使能。5.5人行过马路交通灯控制系统的硬件设计用LPC2103开发块的引脚接LED灯来控制灯的亮、灭及闪烁,然后把12个LED灯按人行过马路交通道的形式在面包板上排版焊接,再与LPC2103开发块的引脚相连接。具体引脚链接如下:车行道LED灯连接引脚:黄灯:P0.12-P0.13(LED1-2红灯:P0.23、P0.25(LED9、LED11绿灯:P0.24、P0.26(LED10、LED12人行道LED灯连接引脚黄灯:P0.19-P0.20(LED3-4红灯:P0.17、P0.21(LED5、LED7绿灯:P0.18、P0.22(LED6、LED85.6人行过马路交通灯控制程序的设计5.6.1定时器0初始化程序在ARM控制板连接LED1~LED12作为显示,以程序控制不同的引脚来点亮不同的红绿灯。本文使用定时器0来进行定时操作,采用向量IRQ请求中断,来完成人行过马路交通灯控制服务。根据流程图编写源程序如下:T0MCR=0x649;/*设置定时器计数器TC与MR0值相等时产生中断,TC与MR1值相等时产生中断,TC与MR2值相等时产生中断,TC与MR3值相等时产生中断并复位。*/T0MR0=Fpclk*5;/*给匹配寄存器MR0赋值*/30T0MR1=Fpclk*15;/*给匹配寄存器MR1赋值*/T0MR2=Fpclk*20;/*给匹配寄存器MR2赋值*/T0MR3=Fpclk*30;/*给匹配寄存器MR3赋值*/即对人行过马路红绿黄灯分别控制的时间是:红绿灯亮15S-5S=10S;黄灯闪烁20S-15S=5S。定时器0初始化流程图如图5.5所示:图5.5图5.6315.6.2定时器1初始化程序本设计使用定时器1匹配翻转来控制黄灯的闪烁频率变化,其核心程序代码如下所示:T1MCR=0x400;/*设置T1MR3匹配后复位T1TC*/T1EMR=0xff0;/*设置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所示:图5.7图5.85.6.4主程序主程序实现的是:设置P0.12-P0.3以及P0.17-P0.26引脚设置为GPIO输出状态,选定时器0中断为向量IRQ,将中断向量使能,选择4号中断源为向量0通道并将中断服务程序地址赋给向量0,并将中断使能,然后通过调用定时器初始化运行程序等待中断发生执行中断服务程序,执行完一次中断服务程序后;再返回定时器初始化程序,等待计数匹配产生,发生中断。其主程序流程图如上图4.8所示。6总结与体会6.1总结本文设计了一款基于ARM7的人行过马路交通灯控制系统-LED红绿灯与闪亮控制,可以通过修改程序的方法任意设定红、绿、黄灯的亮、灭、以及闪烁时间。主控计算机控制ARM7控制板,然后通过ARM7控制板的引脚来控制各个LED灯。通过此次设计,我从零学习理论知识入手到写程序再调试的整个过程中都受益很多,整个过程下来,我感觉学到了很多知识。首先我很仔细地消化了LPC2103微控制器的基础知识。其次,在很好地掌握了这些基础知识和清楚人行过马路交通灯控制系统的状态后,分析到要用定时器0的四路匹配中断来控制红、绿、黄灯的亮灭时间,用定时器1的四路匹配翻转来控制黄灯的闪烁频率变化,中断函数作为前台执行中断任务,主函数在后台运行支持中断函数,从而编写了程序代码。最后,在写好程序后进行调试工作,不断地验证实验的准确性,不断地修改程序,直到达到正确的实验结果,因此我从中学到了很多知识。在此次设计中,需要你特别的细心和认真以及耐心,特别是在调试阶段,就需要你特别的细心和认真以及耐心,例如:在LPC2103的引脚设置过程和在调试时接插LED灯得引脚时就要很细心,防止插错,造成试验不准确。我还深刻的认识到老师的指点的重要性,也许就是老师的一句话,就可以让我更快的发现程序中哪个地方出现问题,从而更快的修改程序,节约了不少时间,也少走了很多弯路。6.2体会本次设计是一次对书本知识综合运用的机会,通过对本次课题的研究与学习,让我明白理论到实践之间的差距,以及自己在平时学习中懒于动手的缺点。也从中深切体会到自己知识的零散性和不完备,同时也看到了自己的将理论联系和实际联系起来解决实际的能力还急需提高。在此次的设计中,在学习理论知识时虽然有看不懂的地方,但是我通过调试验证了理论知识的原理,从而更深刻地理解和掌握所学的理论知识。我还深刻的体会到老师的指点的重要性,这样可以让我更快理解知识并且发现程序中哪个地方出现问题,从而更快的修改程序,节约了时间,也少走了弯路。学东西就要学以致用,在这里我深刻的感觉到理论和实践的差别性,学得好不一定做得好,但要做得好就一定要学得好,在理论学习好之后只有通过实践才能体现出知识的价值,但是前提还要是把基础的理论知识学好,然会在理论的基础上再进行实践,把理论知识升华到实践中去。将最高科技大量应用到民用上是一个趋势,已经有越来越多的高科技产品进入到了我们的生活,在未来,这种趋势无疑将进一步加大,在不远的以后,我们或许就将拥有一个让人头晕目眩的智能化社会。就人行过马路交通灯这种小玩意而言,它或者就不再只是指挥车停车走这么简单,随着道路拥堵的加重,堵车现象的越加频繁,它在堵车的时候也将能够展现威力:它或许能够代替一个真正的交通警察来疏导拥堵的车流。6.3致谢历时两月,从论文选题到搜集资料,从开题报告、写初稿到反复修改,期间经历了喜悦、聒噪、痛苦和彷徨,在写作论文的过程中心情是如此复杂。如今,伴随着这篇毕业论文的最终成稿,复杂的心情烟消云散,自己甚至还有一点成就感。在本次设计过程中,我的导师刘敦放老师倾注了大量的心血,特别是在调试过程中,刘老师的每一个指点,都使我少走了很多弯路;在论文写作中从选题到开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我表示衷心感谢。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。毕业设计是一次再系统学习的过程,毕业论文的完成,同样也意味着新的学习生活的开始。在本文完成之际,无论我的设计是否能够真的投入使用,这里面每一个控件的绘制,每一行语句的调试,每一段文本的输入之中都有我辛勤的汗水。两个月的设计时间虽然短暂,我却从中学到了很多的东西。我由衷地感谢关怀、教诲、帮助、支持和鼓励我完成学业的老师、朋友和亲人。在此我谨向我的导师以及在毕业设计过程中给予我很大帮助的老师、同学们致以最诚挚的谢意。6.4参考文献[1]周立功.ARM嵌入式系统基础教程.北京航空航天大学出版社.2004年[2]PHILIPS公司.LPC2101_02_03数据手册.2006年4月11日[3]刘敦放老师参考论文及资料[4]EasyARM2103安装手册[5]EasyARM2103配套教程附录A源程序#include"config.h"//车行道黄灯#defineLED1(1<<12//黄#defineLED2(1<<13//黄//人行道黄灯#defineLED3(1<<19//黄#defineLED4(1<<20//黄//人行道#defineLED5(1<<17//红#defineLED6(1<<18//绿#defineLED7(1<<21//红#defineLED8(1<<22//绿//车行道#defineLED9(1<<23//红#defineLED10(1<<24//绿#defineLED11(1<<25//红#defineLED12(1<<26//绿uint32count=0;void__irqTimer0ISR(void{count++;if((count%4==0{PINSEL0=PINSEL0&(~(0x03<<24|(0x02<<24;/*选择MAT1.0输出LED1*/PINSEL0=PINSEL0&(~(0x03<<26|(0x02<<26;/*选择MAT1.1输出LED2*/PINSEL1=PINS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CACEM 23-2022网约车经营企业安全生产费用管理指南
- DB32/T 769-2021餐饮计量规范
- DB32/T 4678-2024环境空气质量预报评价规范
- 学校学生消防培训课件
- 2025年影视工业化制作流程与质量控制产业链布局研究报告
- 2025年申请续签物业服务合同的报告(附加条款版)
- 舒适护理在外科的应用
- 创业投资基金AI应用企业制定与实施新质生产力项目商业计划书
- 证券审计AI应用企业制定与实施新质生产力项目商业计划书
- 精细化学品纯度检测服务行业跨境出海项目商业计划书
- 2025年中考历史复习试题分类汇编:中国古代史之大题(学生版)
- GB/T 19609-2024卷烟用常规分析用吸烟机测定总粒相物和焦油
- 2024年区域品牌授权协议书范文范本
- HIV阳性孕产妇全程管理专家共识2024年版解读
- 施工安全的教育培训记录表
- 核反应堆热工分析课程设计
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- AQ 1011-2005 煤矿在用主通风机系统安全检测检验规范(正式版)
- JTS-110-10-2012水运工程标准施工监理招标文件
- 2024年安徽省初中(八年级)学业水平考试初二会考生物+地理试卷真题
- 2024年江西省中考生物·地理合卷试卷真题(含答案)
评论
0/150
提交评论