ARM——秒表设计._第1页
ARM——秒表设计._第2页
ARM——秒表设计._第3页
ARM——秒表设计._第4页
ARM——秒表设计._第5页
免费预览已结束,剩余9页可下载查看

下载本文档

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

文档简介

1、Easy ARM2131开发板实验报告实验名称:部:物理与机电工程学院专业班级:07电子信息工程(2 )班14学生姓名:学 号:2006050427指导教师:涂二生老师完成时间:2010年5月6日报告成绩:A.ad hSui,2 > ®POTtP 3_3V VNIMJP1TSP:C<U&畑Mzjg臼j白A I 巧.ibF>« 竺21:8:二« -LMEIIHIIIHIIIIH匕亠eiSjSaoa斗' 1|J5bat口|5'-r*PEL 1PD.7POlSPCU4口 EX QPD.«Pa子PMPD.SP&&

2、amp;«ktt5pauPQa»戸OLii«甩小pob口虽L斗POL LQKlTHk Lfi*POL 1?Pf&LflPaisPOJPOLJCPCBPdM1*fG Z3rfL»sw口 0 jaPG10皿2<1*pa a?TOIBPCk ZQpdl zaP&13皿30lPOl 3PC14切.Id口工.莎panP】Pl-13poaQ1.2CIV«'円柑】TOlITpt.aipcda珂片Pl - 2dnUSTuuer-pGTCii JkiKCVlKUOST图1.18 EasyARM2l3l元件布局图(结合UARTO、定时

3、器0设计的实验)实验目的:.72 3 4 51)结合UART0和定时器0,设计一个秒表 复习UART0和定时器0的工作原理和应用 熟悉掌握ARM中的程序应用,将理论结合实际 通过本次实验,将以前学的进行结合使用,以检验自己的学习质量 更加熟练了 ARM的实验环境实验仪器:硬件:Easy-ARM实验开发板一套计算机一台(内装有 ADS1.2及EasyJTAG仿真器)软件:Windows xp系统,ADS1.2集成开发环境实验原理:1. 中断:LPC2131通过向量中断控制器(VIC)管理中断。外设中断信号需要经过 2个开关才能到达ARM内核,真正产生异常,逻辑示意图如图4.129所示。如 果在V

4、IC中使能了相应外设的中断,外设中断才能到达 VIC并向内核发送中断 请求;只有使能了内核中断IRQ或者FIQ,内核才能真正产生异常。产±口昂1使用VIC的IRQ中断处理过程如图4.130所示:用户程序首先要初始化VIC使能相关中断,然后正常运行用户程序(如 图4.130中的);当有IRQ中断产生时,VIC将会根据中断源设置VICVectAddr寄存器为 相应中断服务程序的地址(如图4.130中的),切换处理器工作模式为IRQ模式,并跳转到异常向量表的IRQ中断入口 0x00000018 处(如图4.130 中的);读取VICVectAddr寄存器的值然后放入PC程序指针,跳转到相应

5、中断服务程序(如图4.130中的);并返回原中断点(如图4.130中断服务中执行相应的中断处理,清除中断标志,(如图4.130中的); 中断服务完成后,切换回原来的模式,中的)。图4J,30 憧用VIC的IRQ申範处理过握2. UARTO 查询:(1)特性:16字节收发FIFO ;寄存器位置符合16C550工业标准;接收器FIFO触发点可为1,4, 8和14字节; 内置波特率发生器;LP C2131包含使能实现软件流控制的机制。(2)结构:UART接收器模块UxRx监视串行输入线RxD的有效输入。UART Rx移位寄 存器(UxRSR )通过RxD接收有效的字符。当UxRSR接收到一个有效字符

6、时, 它将该字符传送到UARTRx缓冲寄存器FIFO中,等待CPU或主机通过主机接口 进行访问。UART发送器模块UxTx接收CPU或主机写入的数据并将数据缓存到 UART Tx保持寄存器FIF( UxTHR )中。UART Tx移位寄存器(UxTSR )读取UxTHR 中的数据并将数据 通过串行输出管脚TxD发送。UART波特率发生器模块UxBRG产生UART Tx模块所使用的定时。UxBRG 模块时钟源为VPB时钟(pcik)。主时钟与UxDLL和UxDLM寄存器所定义的除 数相除得到UART Tx模块使用的时钟。该时钟为16倍过采样时钟NBAUDOUT。中断接口包含寄存器UxIER和Ux

7、IIR。中断接口接收几个由UxTx和UxRx发出 的单时钟宽度的使能信号。UxTx和UxRx的状态信息保存在 UxLSR中。UxTx和UxRx的控制信息保存在 UxLCR中。UART的结构如图4.16所示:VPB接口提供CPU或主机与UART之间的通信连接。UART浅睛莖L 发生曙绫决 JUART樓攻模決八;瞪Ubt.EAUKtNTft牛断接口UxSCRkLljfTxMTXRDY #巧(D UxTHRLbtPSRHOU. A4UfiAUDOUTRCLKR& 可HUkRSR*T)UxFCRNRXFLD¥ 會,RxDPSElPSFER'jRJTE*丹严2】ARt.lft荃

8、4花UART方推图3. 定时器:(1)概述:LPC2131具有2个32位可编程定时/计数器,均具有4路捕获、4比较路匹配 并输出电路。定时器对外设时钟(pcik)周期进行计数,可选择产生中断或根据 4个匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作)。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定 时器值,并可选择产生中断。可用于对内部事件进行计数的间隔定时器,或者通过捕获输入实现脉宽调制,亦可作为自由运行的定时器。定时器0和定时器1除了外设基地址以外,其它都相同。(2)定时器特性:带可编程32位预分频器的32位定时器/计数器;具有多达4路32位的捕获

9、通道-当输入信号跳变时可取得定时器的瞬时 值,也可选择使捕获事件产生中断;4个32位匹配寄存器:匹配时定时器继续工作,可选择产生中断;匹配时停止定时器,可选择产生中断;匹配时复位定时器,可选择产生中断。多达4个对应于匹配寄存器的外部输出,具有下列特性:匹配时设置为低电平;匹配时设置为高电平;匹配时翻转;匹配时无动作。(3) 结构定时器 于定时器0)If*f恃我奇冬A 04""1 4捕蕊面存紙1捕itflf与箍24捕狂寄為藕日1TCisCt和定时器1的方框图,如下图所示:(注:捕获寄存器 3不能用1 匹£«非帝0 1H 亿LW厚番1TSyjflf孚舊 21

10、且配奇导话31H1鬼者【奇#番1(蛉難匹虻奇厚爵斷寄殍燕V'ATl-C)TCVAMWA- T注:掩莪菇族3疋:绽羽于定卜:再打$4.85建时器方嗨$(4 )定时器基本操作方法:计算定时器的时钟频率,设置PR寄存器进行分频操作;设置比较匹配通道的初值及其工作模式, 若是使用捕获功能,则设置捕 获方式;若使用定时器的相关中断,则设VIC,使能中断; 设置TCR,启动定时器。如前所述,定时计数器时钟频率计算如下:计数吋钟频率=冬岂N + 其中,N为PR的值。四、实验内容:结合了 UARTO和定时器,自编程序设计的一个可以记录20个时间值的秒表。五、实验步骤:1)2)3)八、按照开发板说明连接

11、计算机,打开ADS1.2和H-JTAG软件,给开发板上电、 调试。载入编好的程序,运行ADS.12软件;观察实验现象,看程序是否正常运作,有没有达到实验预计的功能。实验程序流程图:七、程序:1.程序说明:本程序是结合了 UART0和定时器,自编程序设计的一个可以记录 20个时间 值的秒表。2.实验程序(表格内和字体加粗部分为增加修改的程序):#i nclude "con fig.h"#i nclude "stdio.h"#defi neUART_B PS115200uint32 K1=<<16;ui nt32 K2=<<17;ui

12、 nt32 K3=<<18;uin t32 h=0,m=0,s=0,ss=0,i=1;char str20,strr30/串口通讯波特率/*函数名称 函数功能 入口参数 出口参数IRQ_TimerO()定时器0中断服务程序,取反LED9控制口。 无无*/void _irq IRQ_Timer0 (void) s+;if(ss=100)ss=0;s+; if(s=60)s=0;m+; if(m=60)m=0;h+; if(h=24)h=0;T0IR = 0x01;VICVectAddr = 0x00; /*/* 清除中断标志 */*通知VIC中断处理结束*/函数名称函数功能入口参数出

13、口参数DelayNS() 长软件延时。 dly 延时参数,值越大,延时越久 无*/void DelayNS (uint32 dly) uint32 i;for ( ; dly>0; dly-)for (i=0; i<50000; i+);/* 函数名称 * 函数功能 率115200 。* 入口参数 * 出口参数:UART0_Init():串口初始化,设置为 8位数据位, 1位停止位,无奇偶校验,波特:无:无*/void UART0_Init (void)uint16 Fdiv;U0LCR = 0x83;/ DLAB=1, 允许设置波特率Fdiv = (Fpclk / 16) / U

14、ART_BPS; / 设置波特率U0DLM = Fdiv / 256;U0DLL = Fdiv % 256;U0LCR = 0x03;/*UART0_SendByte() 向串口发送字节数据,并等待发送完毕,查询方式。 dat 要发送的数据无UART0_SendStr() 向串口发送一字符串 str 要发送的字符串的指针 无函数名称函数功能入口参数出口参数*/ void UART0_SendByte (uint8 dat) U0THR = dat;/ 等待数据发送完毕while (U0LSR & 0x40) = 0); void PC_DispChar(uint8 x,uint8 y,

15、uint8 chr,uint8 color) UART0_StendByte(0xff); UART0_StendByte(x);UART0_StendByte(y; UART0_StendByte(chr);UART0_StendByte(color); /*函数名称函数功能入口参数出口参数*/ void UART0_SendStr (uint8 x,uint8 y,uint8 color, char *str)while (1)if (*str = '0') break; / 遇到结束符,退出PC_DispChar(x+,y,*str+,color); / 发送数据 if(

16、x>=80) x=0;y+;void reset() h=0;m=0;s=0;ss=0;for(i=1;i<21;i+)spirntf(strr,"%2d-%2d:%2d:%2d:%2d",i,h,m,s,ss); UART0_SendStr(0,i,0x30,strr);i=1;void xianshi()spirntf(str,"%2d:%2d:%2d:%2d",i,h,m,s,ss);UART0_SendStr(1,0,0x30,str);main()使用定时器实现 1秒钟定时,控制 LED9 闪烁。中断方式。 需要将跳线JP11连接B

17、EEP 。/* 函数名称* 函数功能* 调试说明*/ int main (void)/* 设置管脚连接 GPIO */PINSEL0 = 0x00000005;IRQEnable();/* 定时器0初始化 */T0TCT0PRT0MCRT0MR0= 0;= 0;= 0x03;= Fpclk /100;/*/* 定时器设置为 0 */* 时钟不分频 */设置T0MR0匹配后复位T0TC,并产生中断标志*/ /* 0.5 秒钟定时 */* IRQ 中断使能 */*设置定时器0中断IRQ */VICIntSelect = 0x00;VICVectCntl0 = 0x20 | 0x04;VICVect

18、Addr0 = (uint32)IRQ_Timer0;VICIntEnable = 1 << 0x04;/* 所有中断通道设置为 IRQ 中断 */ /*设置定时器 0中断通道分配最高优先级 */ /* 设置中断服务程序地址 */* 使能定时器 0中断 */ rest() while(IO0PIN&K1); DelayNs(80); while(!(IO0PIN&K1);T0TCR = 0x01;/* 启动定时器 */ while (1)if(IO0PIN&K1)=0)while(!(IO0PIN&K1);DelayNs(80);T0TCR = 0x00;while(IO0 PIN&K1)if(IO0 PIN&K3)=0) rest();xia nshi();while(!(IO 0P IN&K1);DelayNs(80);T0TCR =

温馨提示

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

评论

0/150

提交评论