欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    ARM课程设计报告.doc

    • 资源ID:2392424       资源大小:3.90MB        全文页数:16页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    ARM课程设计报告.doc

    目录1. 摘要.32. 关键词.43. 引言 .44. 原理与总体方案 .55. 软件设计.76. 仿真设计.117. 硬件设计.148. 调试 .149. 结束语.1610. 参考文献.171. 摘要:由于网络与通信技术的发展,嵌入式系统在经历了近20年的发展历程后,又进入了一个新的历史发展阶段,即从普遍的低端应用进入一个高、低端并行发展,并且不断提升低端应用技术水平的时代,其标志是32位MCU的发展。LPC2000系列ARM7微控制器包含有六路PWM波产生通道;在显示方面着多利用LED和LCD, LCD 的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面;我们此次课程设计的作品主要运用了LPC2000系列的微控制器芯片、产生T=10ms的PWM波,在指定的引脚输出,并将其周期,占空比的改变在LCD屏上显示。利用按键K1改变其占空比高电平的宽度,每按一次K1,T增加1ms。高电平在1ms9ms循环改变。使用Proteus 7.5 professional和keil进行程序编写,利用ADS 和Magic ARM2200教学实验开发平台进行硬件仿真。经过软硬件调试和测试,产生了以10ms为周期的PWM波并能通过按键改变其高电平。实践不仅证明了设计方法的正确性,更增加了实践操作的经验。Abstract: due to network and communication technology development, the embedded system after nearly 20 years of development, and to enter into a new historical stage of development, that is, from the low end of general application into a high, the low end of the parallel development, and constantly improve the low end of the application of the technical level of the era, the sign is 32 bit MCU development. LPC2000 series ARM7 micro controller contains six PWM waves produce channel; In the more shows using LED and LCD, LCD structure is in two pieces of parallel of liquid crystal glass place, two pieces of glass is among many vertical and horizontal small wire, electricity or not to control rods through crystal molecules to change direction, will light reflection out produce images; We of the curriculum design of the main works using a LPC2000 series of micro controller chip, produces T = 10 ms PWM wave, in the designated pin output, and the cycle, occupies emptiescompared to change in the LCD display. Use button to change the triassic-paleogene occupies emptiescompared to the width of the high level, each as a K1, T + 1 ms. High level in 1 ms 9 ms cycle changes. Use Proteus 7.5 professional and keil for programming, and ADS and Magic ARM2200 teaching experiment development platform for hardware simulation. After the software and hardware commissioning and testing, produced with 10 ms cycle of PWM waves and can effectively change through the high level. Practice not only proved the correctness of design method, more added to practice the operation experience. 2. 关键词:LPC2000 ,周期 ,占空比,按键,PWM3 引言LPC2000系列微处理器工作频率为60MHz,采用基于ARMTDMI内核的32位RISC。LPC2000的外设接口非常丰富,包括UART、SPI、I2C、CAN、ADC、 PWM、RTC等。这一系列微控制器LPC2114/2124/2119/2129/2194、LPC2210/2212/2214、LPC2290 /2292/2294借助片上存储器加载模块实现了“零等待访问”高速闪存功能,提高了指令执行的效率。在高性能低功耗的基础上提供了增强的通信功能和片上代码保护机制。由于内置了宽范围的串行通信接口,它们也非常适用于通信网关、协议转换器、嵌入式软调制解调器等。6通道的PWM更能用于复杂的马达控制应用。 LPC2000系列微控制器能够实现零等待访问的高速闪存,这主要归功于片上的存储器加速模块。图2为存储器加速模块的结构框图。128位宽度的闪存阵列通过单独的局部总线与处理器接口,每周期可为ARM内核提供四条32位指令。这使得MCU无需经过等待状态就可直接从闪存上执行指令,从而消除了一般闪存读取时的等待时间。为了解决指令序列的变化,指令和数据的不同处理带来的等待时间,模块内部实现了预取缓冲器、避免数据读/写打乱地址序列的数据旁路和跳转跟踪缓冲器三个功能块的联合工作,并用两组128位宽度的存储器来进行并行访问,消除延时。存储器加速模块的作用取决于系统时钟的大小。LPC2000系列片上闪存的访问时间为50nS,对于系统时钟不高于20MHZ的应用,在1个周期内就可将闪存的内容读出,此时没必要使用存储器加速模块。时钟频率越高,当直接执行闪存中的代码时,系统性能受影响越大,此时使能存储器加速模块,可以得到接近4倍速度的加速,真正实现零等待高速闪存。由于LPC2000可直接从闪存执行指令,无需引导期间将代码传送到SRAM,这不仅省掉了耗时又耗能的系统启动步骤,还节省了昂贵的SRAM。对片内闪存的编程可通过几种方法来实现:通过内置的串行JTAG 接口,通过串口进行在系统编程(ISP),或通过在应用编程(IAP)。4. 原理与总体方案4.1 GPIOLPC2000系列ARM的GPIO具有如下特性:a、 可以独立控制每个GPIO口的方向(输入/输出模式);b、 可以独立设置每个GPIO的输出状态(高/低电平);c、 所有GPIO口在复位后默认为输入状态。每个作为GPIO功能的引脚受到四个寄存器控制,分别为控制方向的IOxDIR、控制输出电平状态的IOxSET和IOxCLR、反映引脚电平状态的IOxPIN。这四个寄存器构成一组,而一组寄存器控制着一个端口(P0、P1、P2或P3)。注意事项:引脚设置为输出方式时,输出状态由IOxSET和IOxCLR中最后操作的寄存器决定。LPC2000系列ARM大部分的I/O引脚为推挽方式输出,但是具有总线功能的I/O引脚为开漏输出(P0.2/3和P0.11/14)。使用这些开漏输出的引脚作为GPIO功能,并用于高电平输出或者引脚状态输入时,要接上拉电阻才能正常使用。推挽输出的I/O引脚正常拉出/灌入电流均为4mA,短时间极限值为40mA。复位后,大部分引脚默认作为GPIO功能,并且均为输入状态。但是,有部分引脚在复位后默认作为第二功能(如:P0.27P0.30在复位后默认为A/D输入引脚)。LPC2210/2220/2212/2214中的P2.30和P2.31比较特殊,无论它们作为什么功能,第二功能的A/D输入始终有效,当它们连接高于3.3V的电平时,将影响其它A/D转换的结果。 在LPC2000系列中,可以直接产生PWM波,而且可以灵活的产生单边的或双边的PWM波,所谓单边,指的就是在每个周期的开始,该PWM波就升高电平,因此只需要控制下降沿的时间就可以,因此成为单边;而双边的含义是上升沿和下降沿都可以得到控制,显然,这种PWM波需要更多的控制寄存器,典型的波形如下: 在LPC2000系列中,产生这种PWM的方法如下:(1) 首先必须关闭相应的定时器,并且将定时器复位(2) 设置预分频器的数值,但是一般并不需要使用预分频(3) 设置当PWM产生用到的TIMER计数达到匹配寄存器的数值后,进行何种操作,如果是连续的产生PWM波,那么一般是选择在这个时候将产生PWM波的TIMER复位,进而进行下一个周期的计数(4) 设置PWM的周期与占空比,这里注意,在LPC中,PWMMR0是控制着整个PWM产生的周期的,其余的PWMMR16都是用来控制占空比的,而非控制周期,这个寄存器与其它的并不一样(5) 对以上的设置进行锁存,就是将PWMMR0决定的周期,和其它寄存器决定的占空比进行锁存(6) 设置允许相应的PWM引脚输出PWM波,同时设置是单边PWM还是双边PWM波,值得注意的是,“允许”并不代表就是启动了PWM输出,PWM的输出是随着TIMER的启动而启动的(7) 启动用于PWM波的TIMER,开始输出4.2 总体方案首先在keil软件中编写程序,应用PWM专用的标准定时器,设定相应的寄存器,并通过PWMRO来控制PWM的周期,设置所存并保证在每次案件按下的时候其占空比可以更新,通过匹配功能及一些控制电路来产生单边沿控制的PWM波,LCD1062显示周期,和高电平的宽度,通过按键查询改变高电平的宽度。应用Proteus软件仿真,仿真实现后下载程序到Magic ARM2200教学实验开发平台硬件仿真。GPIO初始化5. 软件设计 MRO匹配复位PWM定时器LCD初始化设置单边沿控制通过寄存器设置周期与占空比PWM定时器端口初始化 按键按下?YESNOPWM匹配所存高电平宽度加1ms启动PWM的定时器宽度大于 9msNOH=1ms周期T=10YES 图2 PWM初始化图1 主函数流程图主函数流程如图1,首先对GPIO初始化,设置P0.20脚为GPIO功能,并设置为输入,再对LCD初始化,若用LCD1602,应对LCD所连接的引脚设置为GPIO功能。应用PWM专用的标准定时器,设定相应的寄存器,并通过PWMRO来产生PWM波,设置1ms时PWMLER更新一次占空比,按键采用查询按键方式,当没有按键时循环读P0.20的电平,由于按键接有上拉电阻,在没有按键按下的情况下读到的电平状态为高,当有按键按下时通过控制定时器PWMLER寄存器来改变占空比的大小从而改变输出PWM波的高电平。定时器初始化流程图如图2所示,首先将MRO匹配复位PWM定时器,预分频计数器设置为零分频,PWM匹配控制寄存器设置为匹配复位,以输出固定周期的PWM波,由于采用0分频,输出PWM波为10ms,所以计数器上限值设置为14.000*1000000/100。部分程序如下#include "config.h"#define KEY1 (1<<20) /*P0.20引脚连接KEY1*/ 函数名称: WaitKey()功能: 等待一个有效按键,延时去抖功能函数说明:当没有按键按下时,一直读P0.20的电平状态,当有按键按下时,延时一段时间,再次判断P0.20的电平状态,若仍为低电平,则可确定按键按下,再读取P0.20的电平状态,等待按键弹起。*/void WaitKey(void) uint32 i; while(1) while(IO0PIN&KEY1)!=0); /等待KEY1键按下 for(i=0;i<Fpclk/100;i+); /延时去抖 if(IO0PIN&KEY1)=0) break; while(IO0PIN&KEY1)=0); /等待KEY1键放开 /*函数名称: PWMInit功能描述: PWM初始化代码,在需要的地方调用,根据需要改变*/void PWM_INIT(void) PWMPR=0x00; /不分频,计数频率为Fpclk PWMMCR=0x02; /设置PWMMR0匹配时复位T0TC, PWMMR0=14.000*1000000/100; /设置PWM周期为10ms PWMMR5=14000; /设置PWM占空比 PWMLER=0x21; /PWMMR0,PWMMR5锁存 PWMPCR=0x2000; /允许PWM5输出,单边PWM PWMTCR=0x09; /启动定时器,PWM使能 /*名称: main()*功能: 使用PWM5输出占空比可调的PWM波形,并在LCD上面显示*/int main (void)INT8U err, *pt, i, k= 10; INT32U pwmduty; /PWM占空比控制变量 INT16U x = 0, y; INT8U (*p)63 = a;GUI_Initialize(); / 初始化LCM GUI_SetColor(BLUE, WHITE); / 设置前景色和背景色 for(err = 0; err < 2; err+) GUI_LoadPic(24*err + 10, 0, *p, 24, 21); p+; Dispnum(0, 10);/显示周期默认信息 for(err = 2; err < 4; err+) GUI_LoadPic(24*(err-2) + 10, 26, *p, 24, 21); p+; Dispnum(1, 1);/显示周期默认信息PINSEL1=0x00000400; /设置PWM5连接到P0.21引脚PINSEL0=0X00000000;PWM_INIT(); /PWM初始化pwmduty=14000;PWMMR0=14.000*1000000/100; /设置PWM周期 i=1; while(1) PWMMR5=pwmduty; /设置PWM占空比 PWMLER=0x21; /PWMMR0,PWMMR6锁存,更新PWM占空比 WaitKey(); /等待按键 i+; if(i=10) i=1;Dispnum(1, i);/显示高电平时间 pwmduty+=14000; /改变PWM占空比控制变量 if(pwmduty>=140000) pwmduty=14000; return 0; 6. 仿真设计6.1 Proteus软件Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。特点:用户可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。6.2 仿真电路整体仿真电路如图3,该仿真的原理图运用了一个LPC2138芯片为主体,以液晶和按键的控制实现的人机交互,实现按键每按下一次,就改变一次波形的周期并显示在液晶LCD液晶显示屏上。采用LPC2138芯片作为主控器,扩展LCD接口图形液晶模块显示屏作为出设备,以输出改变的周期数,另外,示波器作为波形显示,显示出改变周期频率后的波形图。此外,系统还扩展了LCD作为字库字模数据显示芯片,将数字模拟示波器显示的字模以相应的代码放在程序里并显示。图3液晶模块电路如图4所示。采用图形液晶显示模块LCD240128作为显示设备。其内含有中、英文以及数字字库,配合字库存储芯片可以实现24×24中文汉字的输入。它利用拼音输入系统软件部分来实现对数字,周期的输入。LCD的主要任务是将键盘输入的数字序列转换成汉字。 它将键盘输入的数字序列转换为编码,根据编码转换为该显示所需的16进制数,之后放在程序中运行显示。该显示屏是将它的数据输入接口D0D7连接到芯片的P0.0P0.7,复位RS口,访问控制接口RW,使能端E分别连接到芯片P0.8P0.10口,以实现上述的显示功能。 图4 示波器是用于显示与触发时间相关的波形采样内容,当每次实施触发时它都会显示采样波形。图5仿真结果如图6所示,当按下按键时,示波器显示PWM波的高电平加1ms,同时LCD显示高电平加1ms,和周期10ms。图6 仿真结果7. 硬件设计硬件电路采用Magic ARM2200教学实验开发平台图7硬件电路8. 调试8.1 软件调试主要运用keil软件进行软件调试,通过主函数调用子函数实验设计要求的功能,利用仿真软件观察现象。Keil软件可以通过软件窗口的模拟监测输出信号的高低电平以及单片机相关端口的变化。常用的调试按钮:Reset 相当于单片机最简,系统的复位按钮,按下后,所有的系统状态将变成初始全速运行,相当于单片机的通电执行;step into 逐语句;进入并单步执行;单步执行step over;逐过程;step out跳出。软件的调试主要是修改程序语法错误,通过观察各寄存器的变化,与输入输出口的变化也可以发现逻辑错误。语法错误可以通过下方的提示改正,而逻辑错误则需通过keil和Proteus仿真改正。读取按键值时,若将程序中的变量设置为16位或8位与IO0PIN相与则不能正确读取到按键值,此处应将变量改为32位。LCD1602若不添加读忙函数,则应在LCD子函数中加入适当的延时,否则LCD的读写速度跟不上芯片的速度,特别是在写指令时,应加入较大的延时。8.2 软件电路仿真调试按照程序,在Proteus软件中连接电路,选用LPC2138芯片,P0.21连接示波器,P0.20连接按键并接上上拉电阻,选用LCD240128作LCD显示模块,将keil中生成的.HEX连接到芯片中。运行程序,观察示波器与LCD的显示结果。软件电路仿真中,LCD的所有端口都应接上上拉电阻,否则在接上示波器时,LCD不能正确显示。用Proteus仿真LCD1602时,不能在程序中检测“忙”信号,否则会进入死循环。8.3 硬件仿真调试Magic ARM2200通过并口与电脑连接,用ARM Developer Suite v1.2软件编写程序,并下载到开发平台。由于开发平台应用的5.2寸的彩色液晶屏,在程序中则应添加该显示屏的底层驱动,调用相应的显示函数实现lcd显示。用示波器与开发平台的P0.21脚连接,通过按键改变PWM的占空比,观察示波器与LCD显示,并在LCD上显示周期。图8波形图图9 LCD显示8.4分析 通过设置PWM5为单边沿控制PWM输出,PWM周期由匹配寄存器0控制,当匹配寄存器0匹配时,PWM5输出高电平,PWM占空比由匹配寄存器5控制,当匹配寄存器5匹配时,PWM5输出低电平。然后当检测到按键按下的时候PWM锁存器更新一次,得到改变的高电平,并显示在LCD上和示波器上,每按下一次按键高电平就改变一次,并在1ms-9ms循环改变。9.结束语 在这次三周的嵌入式课程设计中,经过我们我组成员的共同努力,并在老师的细心指导下,我们成功实现了“通过按键改变PWM波的高电平,使其在1ms-9ms之间循环改变,并在LCD上显示高电平的改变和周期值”的课程设计要求。 在这过程中,我们都收获颇丰,从上学期学习ARM嵌入式系统这门课程开始,到这学期进行嵌入式课程设计结束,我们将以往书本上的知识成功应用到实践中去了,并且我们也对keil、proteus、ADS等软件进一步熟悉,掌握得更加牢固,对LPC2000系列ARM7的芯片有所了解,并可以初步的去运用它做一些小的程序编写;同时也发现个人能力还不足,还需更加努力地学习,特别是在编程方面还需要提高和进步,希望自己能再接再厉,不断提高个人能力。10.参考文献1ARM嵌入式系统基础教程 周立功 主编 北京航空航天大学出版社2008.9251单片机典型应用开发范例大全刘坤 主编 中国铁道出版社 2011.10

    注意事项

    本文(ARM课程设计报告.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开