嵌入式系统技术及应用实验指导书(第3版)郑普亮编写西安建筑科技大学信控学院智能建筑与楼宇自动化实验室2014年5月1目录1课程简介、实验项目及学时安排.........................................................................................11.1课程简介......................................................................................................................11.2实验项目及学时安排..................................................................................................12实验仪器仪表设备简介.........................................................................................................22.1嵌入式系统实验箱......................................................................................................22.2其它实验设备..............................................................................................................23嵌入式系统技术及应用课程实验.........................................................................................33.1实验1系统认识实验...............................................................................................33.2实验2定时器实验.................................................................................................103.3实验3PWM发生器实验.......................................................................................143.4实验416*16LED点阵显示汉字实验..................................................................1611课程简介、实验项目及学时安排1.1课程简介嵌入式系统广泛应用于仪器仪表、工业控制、汽车电子等多个领域,是一个综合性的快速发展的技术方向。课程以ARMCortex-M3系列处理器为主,着重介绍了嵌入式系统设计的基本概念、基于ARM处理器的体系结构、ARM微处理器的编程模型与指令系统、嵌入式操作系统及相关的接口技术。通过对本课程的学习,能够使学生深刻了解ARM处理器的工作原理,熟练掌握ARM微处理器的指令系统,以及嵌入式系统软硬件设计基本方法,进而加强学生独立设计能力和创新能力的培养。1.2实验项目及学时安排本课程的实验目的是使学生掌握ARM指令系统及基于C语言和驱动程序库的程序设计方法,掌握ARM微处理器各组成部分工作原理及应用,培养学生对ARM微处理器的应用程序与硬件电路的设计能力,提高学生分析和解决实际问题的能力,从而为学生今后走向工作岗位、从事相关专业领域的科学研究和技术开发打下扎实的基础。所以安排了验证性、设计性和综合性不同属性的实验项目。序号实验项目学时实验性质验证综合设计1系统认识实验2√2定时器实验2√3PWM发生器实验2√416*16LED点阵显示汉字实验2√注:实验项目根据实验教学安排选取。22实验仪器仪表设备简介2.1嵌入式系统实验箱EL-EMCU-I型教学实验系统是属于一种综合的教学实验系统,该系统支持8位的8051/C8051F021等型号、16位的MSP430系列/AVR系列以及基于Cortex-M3内核的32位群星系列ARM处理器,实现了多模块的应用实验。在实验板上有丰富的外围扩展资源,可以完成基于CPU硬件资源的基础性实验、多种串行总线类实验以及CAN总线实验等等。实验箱底板的平面框图如下图2.1所示:2.2其它实验设备微型计算机AspireT135、数字万用表、数字示波器。信号源自动控制原理实验模块计算机控制原理实验模块虚拟示波器控制对象模块控制对象输出显示模块CPU控制模块上位机TFT_LCDE_LAB16X16LED点阵USERI/O12个LED12个拨码2X4键盘ICCARD74LS273EXP系列MCU74LS244CANRELAYSIMPLEPAULSEPHOTOBUZZERAD参考电压DAADRS232TEMPSENSORRS485USERI/OWDTEXP系列EDA/CPLD/FPGAUSERI/OUSERI/OLEDDISPHD7279DCMOTORSTEPMOTORUSERI/OUARTINTERFACE电源时钟33嵌入式系统技术及应用课程实验3.1实验1系统认识实验一、实验目的1.了解Cortex-M3的GPIO使用及其相关的API函数;2.掌握Cortex-M3读取GPIO引脚状态的方法。3.掌握Cortex-M3的GPIO引脚输出控制的方法。二、实验原理、内容及步骤实验原理1、GPIO开关量输入将GPIO连接数字开关量对应的管脚设置在输入状态;然后,写一个循环,不停地去检测输入引脚的状态。2、GPIO输出驱动继电器(或光电隔离器)将相关的GPIO设置成输出状态,并且要注意配置输出的驱动电流大小;然后,写一个循环,依次输出变化的高低电平,从而控制继电器及光电隔离器的关断与打开。实验内容:1.编程实现读取GPIO引脚上对应的开关量状态,改变开关量,观察能否成功读回;2.编程实现Cortex-M3的GPIO引脚驱动继电器及光电隔离器,观察继电器的动作以及发光管的亮灭变化;实验步骤:1)在PC机上打开IAR环境,并打开“源程序”文件夹GPIO_INandOUT的工程文件GPIO_In_Out.ewp,并按图3.1至图3.8完成环境设置,并完善程序,然后编译程序,并生成可执行文件GPIO_In_Out.elf。2)打开PC机上的Proteus环境,并打开“仿真电路”文件夹中的设计文件“实验1.DSN”。双击MCU图标,按图3.9所示,指定程序文件GPIO_In_Out.ewp后,开始仿真。然后拨动开关,观察输入高低电平时继电器、光耦以及其他GPIO的状态变化。4图3.1图3.1中,在Workspace窗口中一定要先选中工程名,然后再选择Project-Options。图3.2因为在Proteus中,提供的LuminaryCortex-M3芯片型号有限,结合实验要实现的功能,此处选择LM3S317。5图3.3图3.46图3.5图3.67图3.7图3.88图3.9三、实验仪器设备及实验注意事项1.实验设备:计算机。2.实验前必须做好预习,并做出必要的计算和记录用的表格;3.实验开始前先检查仪器设备是否完好;4.实验中如发现异常(如冒烟、异味、冒火等非正常现象),应立即切断电源,并报告指导教师,仔细查找原因,问题解决后,方可继续进行实验;5.实验完毕应先关掉电源,将所用仪器设备恢复原貌,并清理卫生后方可离开。四、实验报告要求1.GPIO的工作原理;2.写出创建新工程的步骤;3.写出采用API函数和驱动库,进行GPIO输入输出驱动的步骤;4.实验中存在的问题及其处理方法;5.收获和体会。五、预习要求及思考题预习要求1.GPIO的工作原理;92.GPIO库函数;思考题1.GPIO的推挽输出和开漏输出在应用上有何区别?2.如何解决开漏模式下上拉电压不足的问题?3.施密特触发输入有何作用?103.2实验2定时器实验一、实验目的1.了解Cortex-M3的定时/计数器使用及其相关的API函数;2.掌握Cortex-M3的定时/计数器使用方法与关键步骤;3.了解Cortex-M3的看门狗定时器使用及其相关的API函数;4.掌握Cortex-M3的看门狗定时器使用方法与关键步骤。二、实验原理、内容及步骤实验原理1)计数器实验首先,将相应的定时/计数器配置好(使能,计数初值的装载等);然后,注册相应的中断,编写中断服务程序;最后,使能中断,进入一个死循环中,当计数满5次后,计数器溢出,触发标志位,产生中断,进入到中断服务程序中执行。2)秒时钟发生器实验首先,将相应的定时/计数器配置好(使能,定时初值的装载等);然后,注册相应的中断,编写中断服务程序;最后,使能中断,进入一个死循环中,当定时时间到后,产生中断,进入到中断服务程序中执行。3)看门狗定时器实验首先,使能看门狗定时器的定时功能,装载初值;然后,注册相应的中断,编写中断服务程序;最后,使能中断,进入一个死循环中,当时间到后,产生中断,进入到中断服务程序中执行,即翻转一个GPIO引脚电平,产生方波输出。实验内容1)计数器实验编程实现利用Cortex-M3的定时/计数器引脚对外部脉冲进行计数,每计数满5个后产生计数中断。2)秒时钟发生器实验编程实现利用Cortex-M3的定时/计数器的精确定时功能,产生一个频率为1Hz的时钟输出。3)看门狗定时器实验11编程实现利用Cortex-M3的看门狗定时器功能,产生一个方波输出。实验步骤1)计数器实验(1)在PC机上打开IAR环境,并打开实验程序文件夹COUNTER下的工程文件COUNTER.ewp,参照图3.1至图3.8完成工程环境设置,并生成可执行文件COUNTER.elf。(2)打开PC机上的Proteus环境,按图3.10绘制原理图,并命名为“实验2(Timer)COUNTER.DSN”。双击MCU图标,按图3.9所示,指定程序文件COUNTER.ewp后,开始仿真。按下5次按键后观察LED灯的变化情况,再次按下5下后,观察LED灯的变化。图3.10计数器实验原理图2)秒时钟发生器实验(1)在PC机上打开IAR环境,并打开实验程序文件夹Timer_Second下的工程文件Timer_Second.ewp,参照图3.1至图3.8完成工程环境设置,并生成可执行文件Timer_Second.elf。(2)打开PC机上的Proteus环境,按图3.11绘制原理图,并命名为“实验122(Timer)Timer_WDG.DSN”。双击MCU图标,按图3.9所示,指定程序文件Timer_Second.ewp后,开始仿真。观察LED灯的变化;图3.11秒时钟发生器和看门狗实验原理图3)看门狗定时器实验(1)在PC机上打开IAR环境,打开实验程序文件夹WDT_Timer(未启用看门狗复位)下的工程文件WDT_Timer.ewp,参照图3.1至图3.8完成工程环境设置,并生成可执行文件WDT_Timer.elf。(2)打开PC机上的Proteus环境,并使用设计文件“实验2(Timer)Timer_WDG.DSN”。双击MCU图标,按图3.9所示,指定程序文件WDT_Timer.ewp后,开始仿真。观察LED灯的变化。(3)在PC机上打开IAR环境,打开实验程序文件夹WDT_Timer(启用看门狗复位)下的工程文件WDT_Timer.ewp,参照图3.1至图3.8完成工程环境设置,在main.c中修13改程序,使能看门狗复位功能,并补充喂狗程序,使得程序正常运行时,不会因看门狗中断产生复位。(4)打开PC机上的