版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、物理机电学院课程设计报告评阅意见:日期评阅教师多功能秒表设计【摘要】随着电子技术的飞速发展,基于嵌入式的控制系统已广泛应用于工业、农业、电力、 电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制 系统的常规电子线路。同时楼宇智能化的发展与成熟,也为基于嵌入式的控制系统的普及与 应用奠定了坚实的基础。而本次实训的目的在于利用ARM系统迸行简单的系统设计。而在这次实训中,我利 用ARM系统设计函数信号发生器,其基本步骤如下:总体方案的设计与选择:根据设计任务要求和给定的条件,分析所要设计电路应完成 的功能,并将总体功能分解成若干个单元功能,分清主次和相互的关系,形成若
2、干单元功能 愆后再组成总体方案。程序的编写:编写满足设计要求的程序并写入LPC2138芯片中,通过系统实现对电路 的控制,从而达到设计的要求。程序的调试:在课程设计的实践过程中程序的调试占有非常重要的地位,它是最基础的 阶段,也是将理论转换为实际的一个关键过程,因此调试时要谨慎小心的逬行,从各方面考虑 不能产生结果的原因。本次实训我做的是秒表:这是一个在实验和实际应用中都很实用,也有较大的意义。【关键词】ARM7、LPC2138、UART串口发送、定时器、GPIO、中断、按键、秒 表、DOS字符窗口显示。目录1、设计目的与要求31.1设计目的31.2设计要求32、方案设计与论证32. 1设计分
3、析32. 2方案论证42. 3方案选择43、实训原理特性44、流程图105、实训程序136、实训总结177、参考文献171设计目的与要求1.1设计目的能够了解ARM各个部分的基本功能,将各个部分合理的组合在一起,实现一些实际 功能:将ARM第四章中任意三个或三个以上的功能融合在一起,如UART串口,I2C, GPIO 串口等等,形成具有特左功能的实际效果,并能够灵活处理实训过程中的各种问题。(1)在学习了深入浅出ARM7课程后,为了加深对理论知识的理解,学习理论知识在 实际中的运用,培养动手能力和解决实际问题的能力,通过实训,进一步熟悉和掌握ARM 的结构及工作原理。(2)熟悉ARM Deve
4、loper suitvl.2调试和仿真,提高软件调试能力。通过实际程序设计和 调试,逐步掌握模块化程序设计方法和调试技术。(3)通过课程设计,掌握以ARM为核心的电路设计的基本方法和技术,了解电路参数的 计算方法。(4)通过实训,电路检查能力,提髙动手实践能力、提高科学的思维能力。(5)通过完成一个程序开发的完整过程,了解开发一个ARM应用系统的全过程,为今后 从事相应事业打下基础。1.2设计要求设计一个多功能秒表:按下K1键开始汁时:接着再按下K2键开始在DOS字符窗口显示按下此刻秒表所显示时间,一共可以显示20组时间数据:再按下K3键则淸零DOS字符 窗口显示数据。之后又可重新计时。2、方
5、案设计与论证2. 1设计分析方案一:做个普通秒表,就是能让他计时,还有可以用按键控制它开始与暂停。方案二:做个多功能秒表,能让它汁时,还可以记住时间,就是按下键后可以记住刚才的显 示时间数拯,然后将它读出来,那要用到寄存器等东西,这都还好,只是arm板没有这么 多数码管,只有一个,根本不行,起码要5个,将1秒分成100份快速显示,这样的话4 个数码管显示秒表计时时间,最大时间是60秒。还有一个是说明读出的数是第几组,我想 到了我在单片机实训时做了个最小系统,那里就有多的数码管,于是就想用跳线将接口接到 单片机最小系统板的数码管控制口,这样就实现要求。方案三:也是个秒表,不过不用数码管控制其计时
6、,而是将其数据发送到DOS字符窗口显 示秒表的计时,并用泄时器、串行口发送来显示秒表的汁时,也可以记时与读岀记住的数值, 因为用DOS字符窗口一排排显示出记住的数值,这些都用按键控制,再加复位清零键。2. 2方案论证用DOS字符窗口显示秒表的计时比较方便,而且用容易操作,简洁明了。DOS字符窗 口只要一连接就可以发送的数据显示出来,发送也可以用左时器与中断控制秒表发送到串行 口。2. 3方案选择经过以上说明:方案一过于简单,根本达不到要求:方案二要用到单片机板,而且接的 连接线过多,不是很好,因为我们做的是arm的,也没必要那样子:方案三是我选择的, 比较方便明了,也很实用,准确性高,所以我选
7、了方案三。3、实训原理特性(1) 选择芯片LPC2138(2) 中断LPC2138通过向量中断控制器(VIC )管理中断。外设中断信号需要经过2个开关才能 到达ARM内核,真正产生异常,逻辑示意图如下图所示。如果在VIC中使能了相应外 设的中断,外设中断才能到达VIC并向内核发送中断请求:只有使能了内核中断IRQ或者HQ,内核才能貞正产生异常。硬件图如下中断的过程示意图如下:vicaiii i;VIC的32个 中 KfrffiA住内骸(3)定时器LPC2131具有2个32位可编程泄时川数器,均具有4路捕获、4比较路匹配并输出电 路。泄时器对外设时钟(pclk)周期进行计数,可选择产生中断或根据
8、4个匹配寄存器的 设定,在到达指左的泄时值时执行英它动作(输出高/低电平、翻转或者无动作)。它还包 括4个捕获输入,用于在输入信号发生跳变时捕获泄时器值,并可选择产生中断。 可用于对内部事件进行计数的间隔左时器,或者通过捕获输入实现脉宽调制,亦可作为 自由运行的定时器。左时器0和宦时器1除了外设基地址以外,其它都相同。特性:带可编程32位预分频器的32位定时器/计数器:具有多达4路32位的捕获通道一当输入信号跳变时可取得泄时器的瞬时值,也可 选择使捕获事件产生中断;4个32位匹配寄存器:一匹配时立时器继续工作,可选择产生中断:一匹配时停止泄时器,可选择产生中断;一匹配时复位定时器,可选择产生中
9、断。多达4个对应于匹配寄存器的外部输出,具有下列特性:一匹配时设宜为低电平;一匹配时设置为高电平:一匹配时翻转: 一匹配时无动作。结构如下:左时器0和左时器1的方框图(4) GPIOLPC2131 具有多达 47 个通用 I/O 口(GPIO,General Purpose I/O ports),分别为 P031:0、 Pl31:161,其中,P0.24未用,P0.31仅为输出口。由于口线与其它功能复用,因而需要进 行相关的管脚连接模块(PINSEL0. PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR 进行输入/输出属性设置后才能操作。当管脚选择GPIO功能时,有3个寄存
10、器用于控制GPIO的使用,IOSET、IOCLR和 IOPIN。IOSET用于口线置1,而IOCLR则用于口线淸零,IOPIN则反映当前10 口的状态, 读回IOSET则反映当前IO 口设泄状态。特性Z单个位的方向控制:Z单独控制输出的置位和淸零:Z所有I/O 口在复位后默认为输入。世脚描述GPIO管脚描述见表4.1,表4.1 GPIO管脚描述管脚名称类型描述P0.0 - P0.31Pl. 16-P1.31输入/输出通用I/O 口。实际可用的 GPIO数量取决于可选功 能的使用。P0. 31GPIO数量取决于可选功能的使用C管脚连接设置将相应管脚的PINSELn位设置为00即选择GPIO功能:
11、大部分管脚复位后默认为GPIO.蜂鸣器连接图WIJZZ.ER髙电平时蜂鸣器停止鸣叫,低电平时开始鸣叫按键的连接图:不按下时为髙电平,按下时变为低电平(5) UARTO 和 UART1LPC2131具有2个符合符合'550工业标准的异步串行口(UART) UART0和UART1。 两者除了外设基地址以外,其它都相同,因而在这里统一进行描述。特性:z 16字节收发FIFO:z寄存器位置符合'550工业标准:z接收器HFO触发点可为1,4.8和14字节;z内苣波特率发生器:z LPC2131包含使能实现软件流控制的机制。管脚描述UART管脚描述见表4.7。表4. 7 UART管脚描述
12、管脚名称UART管脚功能描述说明P0. 0 TxDO串行输岀串行发送数据P0. 1 RxDO串行输入串行接收数据P0. 8 TxDl串行输岀串行发送数据P0. 9 RxDl串行输入串行接收数据管脚连接设置当进行如下设置时将P()0、P0.1选择UARTO功能:PINSELO = 0x00000005; /可能影响其它管脚连接PINSEL0 = (PINSELO & (OxOF) 10x05; / 不影响其它管脚连接 当进行如下设宜时将P0.8、P0.9选择UART1功能:PINSELO = 0x05 « 16: /可能影响其它管脚连接结构UART的结构如图4.16所示。VPB
13、接口提供CPU或主机与UART之间的通信连接。图4.16 UART方框图UART接收器模块UxRx监视串行输入线RxD的有效输入山ART Rx移位寄存器(UxRSR) 通过RxD接收有效的字符。当UxRSR接收到一个有效字符时,它将该字符传送到UART Rx 缓冲寄存器HFO中,等待CPU或主机通过主机接口进行访问。UART发送器模块UxTx接收CPU或主机写入的数据并将数据缓存到UART Tx保持寄 存器FIFO (UxTHR)中。UARTTx移位寄存器(UxTSR)读取UxTHR中的数据并将数据 通过串行输出管脚TxD发送。UART波特率发生器模块UxBRG产生UART Tx模块所使用的左
14、时。UxBRG模块时钟 源为VPB时钟(pclk)。主时钟与UxDLL UxDLM寄存器所左义的除数相除得到UART Tx模块使用的时钟。该时钟为16倍过采样时钟NBAUDOUTo中断接口包含寄存器UxIER和UxIIRo中断接口接收几个由UxTx和UxRx发出的单时 钟宽度的使能信号。UxTx和UxRx的状态信息保存在UxLSR中。UxTx和UxRx的控制信息保存在UxLCR中。4、流程图()设置 P0.16、P0.17、P0.18 引脚连 接 UART0IRQ中断使能V中断程序框图(返回原中断点(TimerO中断服务( 程序开始zm是杏=60 ?5、实训程序#include "c
15、onfigh"/通讯波特率115200#include "stdio. h"ftdefine UART_BPS 115200 uint32 kl = 1«16;uint32 k2 = 1«17;uint32 k3 = 1«18;uint32 h=0, m=0, s=0, ss=0, i=l; char str20, stir30;void _irq IRQ_TimerO (void) ss+;if (ss=100) ss=0;s+; if(s=60)s=0;m+; if(m=60) m=0;h+; if(h=60) h=0;TOIR
16、= 0x01;VICVectAddr = 0x00;/*清除中断标志*/void delay(uint32 dly)uint32 i;for ( ; dly>0; dly)for (i=0; i<5000; i卄);DLAB = 1/等待数据发送完毕uint8 color)/起始字符char *str)/结束字符void UARTO_Init (void)uintl6 Fdiv;UOLCR = 0x83;Fdiv = (Fpclk / 16) / UART_BPS;UODLM = Fdiv / 256;UODLL = Fdiv % 256;UOLCR = 0x03;void UAR
17、TO.SendByte (uint8 data)UOTHR = data;while (UOLSR & 0x40) = 0);void PC_DispChar (uint8 x, uint8 y, uint8 chr, UARTO.SendByte(Oxff); UARTO_SendByte(x); UARTO_SendByte(y); UARTO_SendByte(chr); UARTO_SendByte(color);void ISendStr (uint8 x, uint8 y, uint8 color,while (1)if (*str =,0) break; PC.DispC
18、har (x+, y, *str+, color) if (x >= 80)x = 0;y+;void reset()h=0;m=0;s=0;ss=0;for(i=l;i<21;i+)sprintf (strr, "%2d%2d:%2d:%2d:%2d*, i, h, s> ss);ISendStr (0, i, 0x30, strr);i=l;void xianshi ()sprintf (str, 2d:%2d:%2d:%2d "、h> m> s, ss); ISendStr (1, 0, 0x30, str); int main (voi
19、d)PINSELO = 0x00000005;/* IRQ中断使能*/IRQEnableO;/* 定时器0初始化 */TOTC = 0;TOPR = 0;TOMCR = 0x03;TOMRO = Fpclk/100 ;/*定时器设置为0*/*时钟不分频*/*设置TOMRO匹配后复位TOTC,并产生中断标志*/* 1ms秒钟定时*/UARTO.InitO;/*设置定时器0中断IRQ */VICIntSelect=OxOO;VICVectCntl0=0x20|0x04;VICVectAddrO=(uint32)IRQ_TimerO;VICIntEnable =(l«0x04): rese
20、t ();whiledOOPIN&kl); delay (80);/*启动定时器*/whil e(!(IOOPIN&kl);TOTCR = 0x01;while (1)if(IOOPIN&kl)=O)whiled (IOOPIN&kl);delay(80);TOTCR = 0x00;wh订e(IOOPIN&kl)辻(IOOPIN&k3) =0)reset();xianshi ();while(!(IOOPIN&kl)delay(80);TOTCR = 0x01;if(IO0PIN&k2)=0)whiled (I00PIN&
21、k2);delay(80);if(i<21)sprintf (str, "%2d%2d:%2d:%2d:%2d ", i, h, m, s, ss); ISendStr (0, i> 0x30, str);xianshi ();return 0;6v实训总结通过这次实训,让我对ARM7有了更加全面的了解,所有预期的功能都实 现了。最主要是在老师的耐心和有力指导,还有自己的动脑思考,动手实践,以 及一起的合作,才做好。通过这次实训,使我对于软件制作的流程有了更加深刻 的认识和可以熟练使用相关软件的操作。在实践中,一个小小的失误都会整个过 程变得缓慢。在这次实训中,由于参考程序少,主要是自己动脑想,其中经历了挺多的 思维困扰,不过还是成功了。实训不仅仅是对于知识的考察,更
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论