ARM秒表设计实训报告--多功能秒表课程设计.doc_第1页
ARM秒表设计实训报告--多功能秒表课程设计.doc_第2页
ARM秒表设计实训报告--多功能秒表课程设计.doc_第3页
ARM秒表设计实训报告--多功能秒表课程设计.doc_第4页
ARM秒表设计实训报告--多功能秒表课程设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

物理机电学院课程设计报告 评阅意见: 评阅教师 日期 多功能秒表设计 【摘要】随着电子技术的飞速发展,基于嵌入式的控制系统已广泛应用于工业、农业、电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。同时楼宇智能化的发展与成熟,也为基于嵌入式的控制系统的普及与应用奠定了坚实的基础。而本次实训的目的在于利用ARM系统进行简单的系统设计。而在这次实训中,我利用ARM系统设计函数信号发生器,其基本步骤如下:总体方案的设计与选择:根据设计任务要求和给定的条件,分析所要设计电路应完成的功能,并将总体功能分解成若干个单元功能,分清主次和相互的关系,形成若干单元功能然后再组成总体方案。程序的编写:编写满足设计要求的程序并写入LPC2138芯片中,通过系统实现对电路的控制,从而达到设计的要求。程序的调试:在课程设计的实践过程中程序的调试占有非常重要的地位,它是最基础的阶段,也是将理论转换为实际的一个关键过程,因此调试时要谨慎小心的进行,从各方面考虑不能产生结果的原因。本次实训我做的是秒表:这是一个在实验和实际应用中都很实用,也有较大的意义。 【关键词】 ARM7、LPC2138、UART串口发送、定时器、GPIO、中断、按键、秒表、DOS字符窗口显示。目录1、设计目的与要求 31.1设计目的 31.2设计要求 3 2、方案设计与论证 3 2.1设计分析32.2方案论证42.3方案选择43、实训原理特性44、流程图 105、实训程序 136、实训总结177、参考文献171设计目的与要求1.1设计目的能够了解ARM各个部分的基本功能,将各个部分合理的组合在一起,实现一些实际功能;将ARM第四章中任意三个或三个以上的功能融合在一起,如UART串口,I2C,GPIO串口等等,形成具有特定功能的实际效果,并能够灵活处理实训过程中的各种问题。 (1)在学习了深入浅出ARM7课程后,为了加深对理论知识的理解,学习理论知识在实际中的运用,培养动手能力和解决实际问题的能力,通过实训,进一步熟悉和掌握ARM的结构及工作原理。(2)熟悉ARM Developer suitv1.2调试和仿真,提高软件调试能力。通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。(3)通过课程设计,掌握以ARM为核心的电路设计的基本方法和技术,了解电路参数的计算方法。(4)通过实训,电路检查能力,提高动手实践能力、提高科学的思维能力。(5)通过完成一个程序开发的完整过程,了解开发一个ARM应用系统的全过程,为今后从事相应事业打下基础。1.2 设计要求设计一个多功能秒表:按下K1键开始计时;接着再按下K2键开始在DOS字符窗口显示按下此刻秒表所显示时间,一共可以显示20组时间数据;再按下K3键则清零DOS字符窗口显示数据。之后又可重新计时。2、方案设计与论证2.1设计分析方案一:做个普通秒表,就是能让他计时,还有可以用按键控制它开始与暂停。方案二:做个多功能秒表,能让它计时,还可以记住时间,就是按下键后可以记住刚才的显示时间数据,然后将它读出来,那要用到寄存器等东西,这都还好,只是arm板没有这么多数码管,只有一个,根本不行,起码要5个,将1秒分成100份快速显示,这样的话4个数码管显示秒表计时时间,最大时间是60秒。还有一个是说明读出的数是第几组,我想到了我在单片机实训时做了个最小系统,那里就有多的数码管,于是就想用跳线将接口接到单片机最小系统板的数码管控制口,这样就实现要求。方案三:也是个秒表,不过不用数码管控制其计时,而是将其数据发送到DOS字符窗口显示秒表的计时,并用定时器、串行口发送来显示秒表的计时,也可以记时与读出记住的数值,因为用DOS字符窗口一排排显示出记住的数值,这些都用按键控制,再加复位清零键。2.2方案论证用DOS字符窗口显示秒表的计时比较方便,而且用容易操作,简洁明了。DOS字符窗口只要一连接就可以发送的数据显示出来,发送也可以用定时器与中断控制秒表发送到串行口。2.3方案选择经过以上说明:方案一过于简单,根本达不到要求;方案二要用到单片机板,而且接的连接线过多,不是很好,因为我们做的是arm的,也没必要那样子;方案三是我选择的,比较方便明了,也很实用,准确性高,所以我选了方案三。3、实训原理特性(1)选择芯片LPC2138(2)中断LPC2138 通过向量中断控制器(VIC )管理中断。外设中断信号需要经过2 个开关才能 到达ARM 内核,真正产生异常,逻辑示意图如下图所示。如果在VIC中使能了相应外 设的中断,外设中断才能到达VIC并向内核发送中断请求;只有使能了内核中断IRQ或者 FIQ,内核才能真正产生异常。硬件图如下中断的过程示意图如下:(3)定时器LPC2131具有2个32位可编程定时/计数器,均具有4路捕获、4比较路匹配并输出电路。 定时器对外设时钟(pclk)周期进行计数,可选择产生中断或根据4个匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作)。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。 可用于对内部事件进行计数的间隔定时器,或者通过捕获输入实现脉宽调制,亦可作为自由运行的定时器。 定时器0和定时器1除了外设基地址以外,其它都相同。 特性 : 带可编程32位预分频器的32位定时器/计数器; 具有多达4路32位的捕获通道当输入信号跳变时可取得定时器的瞬时值,也可选择使捕获事件产生中断; 4个32位匹配寄存器: 匹配时定时器继续工作,可选择产生中断; 匹配时停止定时器,可选择产生中断; 匹配时复位定时器,可选择产生中断。 多达4个对应于匹配寄存器的外部输出,具有下列特性: 匹配时设置为低电平; 匹配时设置为高电平; 匹配时翻转; 匹配时无动作。结构如下:定时器0和定时器1的方框图(4)GPIOLPC2131具有多达47个通用I/O口(GPIO,General Purpose I/O ports),分别为P031:0、P131:16,其中,P0.24未用,P0.31仅为输出口。由于口线与其它功能复用,因而需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作。 当管脚选择GPIO功能时,有3个寄存器用于控制GPIO的使用,IOSET、IOCLR和IOPIN。IOSET用于口线置1,而IOCLR则用于口线清零,IOPIN则反映当前IO口的状态,读回IOSET则反映当前IO口设定状态。 特性 z 单个位的方向控制; z 单独控制输出的置位和清零; z 所有I/O口在复位后默认为输入。 管脚描述 GPIO管脚描述见表4.1。 表4.1 GPIO管脚描述管脚名称 类型 描述 P0.0 P0.31 P1.16P1.31 输入/输出 通用I/O口。实际可用的GPIO数量取决于可选功能的使用。 P0.31GPIO数量取决于可选功能的使用。 管脚连接设置 将相应管脚的PINSELn位设置为00即选择GPIO功能;大部分管脚复位后默认为GPIO。 蜂鸣器连接图 高电平时蜂鸣器停止鸣叫,低电平时开始鸣叫按键的连接图:不按下时为高电平,按下时变为低电平(5) UART0和UART1 LPC2131具有2个符合符合550工业标准的异步串行口(UART)UART0和UART1。两者除了外设基地址以外,其它都相同,因而在这里统一进行描述。 特性 :z 16字节收发FIFO; z 寄存器位置符合550工业标准; z 接收器FIFO触发点可为1, 4, 8和14字节; z 内置波特率发生器; z LPC2131包含使能实现软件流控制的机制。 管脚描述 UART管脚描述见表4.7。 表4.7 UART管脚描述 管脚名称 UART管脚 功能描述 说明 P0.0 TxD0 串行输出 串行发送数据 P0.1 RxD0 串行输入 串行接收数据 P0.8 TxD1 串行输出 串行发送数据 P0.9 RxD1 串行输入 串行接收数据 管脚连接设置 当进行如下设置时将P0.0、P0.1选择UART0功能: PINSEL0 = 0x00000005; / 可能影响其它管脚连接 PINSEL0 = (PINSEL0 & (0x0F) | 0x05; / 不影响其它管脚连接 当进行如下设置时将P0.8、P0.9选择UART1功能: PINSEL0 = 0x05 16; / 可能影响其它管脚连接 结构 UART的结构如图4.16所示。 VPB接口提供CPU或主机与UART之间的通信连接。 图4.16 UART方框图 UART接收器模块UxRx监视串行输入线RxD的有效输入。UART Rx移位寄存器(UxRSR)通过RxD接收有效的字符。当UxRSR接收到一个有效字符时,它将该字符传送到UART Rx缓冲寄存器FIFO中,等待CPU或主机通过主机接口进行访问。 UART发送器模块UxTx接收CPU或主机写入的数据并将数据缓存到UART Tx保持寄存器FIFO(UxTHR)中。UART Tx移位寄存器(UxTSR)读取UxTHR中的数据并将数据通过串行输出管脚TxD发送。 UART波特率发生器模块UxBRG产生UART Tx模块所使用的定时。UxBRG模块时钟源为VPB时钟(pclk)。主时钟与UxDLL和UxDLM寄存器所定义的除数相除得到UART Tx模块使用的时钟。该时钟为16倍过采样时钟NBAUDOUT。 中断接口包含寄存器UxIER和UxIIR。中断接口接收几个由UxTx和UxRx发出的单时钟宽度的使能信号。 UxTx和UxRx的状态信息保存在UxLSR中。 UxTx和UxRx的控制信息保存在UxLCR中。 4、流程图开 始设置P0.16、P0.17、P0.18引脚连接UART0IRQ中断使能定时器初始化:时钟分频、定时器初值、匹配后产生中断、定时时间、使能定时器 VIC中断向量控制器设置:设置为向量中断;分配中断通道;设置中断服务程序地址;使能Timer0中断 While(1);等待中断 否K1键是否按下 是 K2键是否按下K1键是否按下 否 暂 停 是 是 DOS显示 读数是否结束 否 是 K3键是否下 否 是复位清零 中断程序框图 Timer0中断服务程序开始 SS自加1SS是否=100? 否 是SS等于0;S加1S是否=60?否 是 返回原中断点S等于0;m加1 m是否=60? 通知VIC中断处理结束 是 m等于0;h加1清除Timer0中断标志直到h等于0 5、实训程序#include config.h#include stdio.h#defineUART_BPS115200 / 通讯波特率115200uint32 k1 = 116;uint32 k2 = 117;uint32 k3 = 10; dly-)for (i=0; i= 80) x = 0; y+;void reset() h=0;m=0;s=0;ss=0;for(i=1;i21;i+)sprintf(strr,%2d-%2d:%2d:%2d:%2d,i,h,m,s,ss);ISendStr(0,i,0x30,strr); i=1; void xianshi()sprintf(str, %2d:%2d:%2d:%2d ,h,m,s,ss);ISendStr(1,0,0x30,str); int main (void)PINSEL0 = 0x00000005;IRQEnable(); /* IRQ中断使能*/* 定时器0初始化 */T0TC = 0; /* 定时器设置为0*/T0PR = 0; /* 时钟不分频*/T0MCR = 0x03; /* 设置T0MR0匹配后复位T0TC,并产生中断标志*/ T0MR0 = Fpclk/100 ; /* 1ms秒钟定时*/UART0_Init();/* 设置定时器0中断IRQ */VICIntSelect=0x00;VICVectCntl0=0x20|0x04;VICVectAddr0=(uint32)IRQ_Timer0;VICIntEnable =(10x04);reset(); while(IO0PIN&k1); delay(80); while(!(IO0PIN&k1); T0TCR = 0x01; /* 启动定时器*/ while(1) if(IO0PIN&k1)=0) while(!(IO0PIN&k1);delay(80);T0TCR = 0x00; while(IO0PIN&k1)if(IO0PIN&k3)=0) reset(); xianshi(); while(!(IO0PIN&k1)delay(80);T0TCR = 0x01;if(IO0PIN&k2)=0)while(!(IO0PIN&k2);delay(80);if(i21)sprintf(str, %2d-%2d:%2d:%2d:%2d , i,h,m,s,ss);ISendStr(0,i,0x30,str);i+; xianshi(); return 0; 6、实训总结通过这次实训,让我对ARM7有了更加全面的了解,所有预期的功能都实现了。最主要是在老师的耐心和有力指导,还有自己的动脑思考,动手实践,以及一起的合作,才做好。通过这次实训,使我对于软件制作的流程有了更加深刻的认识和可以熟练使用相关软件的操作。在实践中,一个小小的失误都会整个过程变得缓慢。在这次实训中,由于参考程序少,主要是自己动脑想,其中经历了挺多的思维困扰,不过还是成功了。实训不仅仅是对于知识的考察,更是考察同学的细心与耐心,只有这样,才能在实训,不至于迷失自己。还有通过实习论文,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更

温馨提示

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

评论

0/150

提交评论