版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Easy ARM2131开发板实验报告实验名称: 秒 表 系 部:物理与机电工程学院 专业班级:07电子信息工程(2)班 学生姓名:阙 开 灿 学 号:2006050427 指导教师:涂二生老师 完成时间:2010年5月6日 报告成绩: 秒 表(结合UART0、定时器0设计的实验)一、 实验目的:1) 结合UART0和定时器0,设计一个秒表2) 复习UART0和定时器0的工作原理和应用3) 熟悉掌握ARM中的程序应用,将理论结合实际4) 通过本次实验,将以前学的进行结合使用,以检验自己的学习质量5) 更加熟练了ARM的实验环境二、 实验仪器:硬件:Easy-ARM实验开发板一套计算机一台(内装
2、有ADS1.2及EasyJTAG仿真器)软件:Windows xp系统,ADS1.2集成开发环境三、 实验原理:1. 中断:LPC2131 通过向量中断控制器(VIC)管理中断。外设中断信号需要经过 2 个开关才能到达ARM内核,真正产生异常,逻辑示意图如图4.129所示。如果在VIC中使能了相应外设的中断,外设中断才能到达VIC并向内核发送中断请求;只有使能了内核中断IRQ或者FIQ,内核才能真正产生异常。使用VIC的IRQ中断处理过程如图4.130所示: l 用户程序首先要初始化VIC使能相关中断,然后正常运行用户程序(如图 4.130中的); l 当有IRQ中断产生时,VIC将会根据中断
3、源设置VICVectAddr寄存器为相应中断服务程序的地址(如图4.130中的), l 切换处理器工作模式为IRQ模式,并跳转到异常向量表的IRQ中断入口 0x00000018处(如图4.130中的); l 读取VICVectAddr寄存器的值然后放入PC程序指针,跳转到相应中断服务程序(如图4.130中的); l 中断服务中执行相应的中断处理,清除中断标志,(如图4.130中的); l 中断服务完成后,切换回原来的模式,并返回原中断点(如图4.130中的)。 2. UART0 查询:(1)特性:l 16字节收发FIFO;l 寄存器位置符合16C550工业标准; l 接收器FIFO触发点可为1
4、, 4, 8和14字节; z l 内置波特率发生器; l LPC2131包含使能实现软件流控制的机制。(2)结构:UART 接收器模块UxRx监视串行输入线RxD的有效输入。UART Rx移位寄存器(UxRSR)通过RxD接收有效的字符。当UxRSR接收到一个有效字符时,它将该字符传送到UARTRx缓冲寄存器FIFO中,等待CPU或主机通过主机接口进行访问。 UART发送器模块UxTx接收CPU或主机写入的数据并将数据缓存到UART Tx保持寄存器FIF(UxTHR)中。UART Tx移位寄存器(UxTSR)读取UxTHR中的数据并将数据 通过串行输出管脚TxD发送。 UART波特率发生器模块
5、UxBRG产生UART Tx模块所使用的定时。UxBRG模块时钟源为VPB时钟(pclk)。主时钟与UxDLL和UxDLM寄存器所定义的除数相除得到 UART Tx模块使用的时钟。该时钟为16倍过采样时钟NBAUDOUT。 中断接口包含寄存器UxIER和UxIIR。中断接口接收几个由UxTx和UxRx发出的单时钟宽度的使能信号。 l UxTx 和 UxRx 的状态信息保存在 UxLSR 中。l UxTx 和 UxRx 的控制信息保存在 UxLCR 中。 UART的结构如图4.16所示: VPB 接口提供CPU或主机与UART之间的通信连接。3. 定时器: (1)概述:LPC2131具有2个32
6、位可编程定时/计数器,均具有4路捕获、4比较路匹配并输出电路。定时器对外设时钟(pclk)周期进行计数,可选择产生中断或根据4个匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作)。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。可用于对内部事件进行计数的间隔定时器,或者通过捕获输入实现脉宽调制,亦可作为自由运行的定时器。 定时器0和定时器1除了外设基地址以外,其它都相同。(2)定时器特性:l 带可编程32位预分频器的32位定时器/计数器; l 具有多达4路32位的捕获通道当输入信号跳变时可取得定时器的瞬时值,也可选择使捕获事件产生
7、中断; l 4个32位匹配寄存器:Ø 匹配时定时器继续工作,可选择产生中断;Ø 匹配时停止定时器,可选择产生中断; Ø 匹配时复位定时器,可选择产生中断。 l 多达4个对应于匹配寄存器的外部输出,具有下列特性: Ø 匹配时设置为低电平; Ø 匹配时设置为高电平; Ø 匹配时翻转;Ø 匹配时无动作。 (3)结构:定时器 0 和定时器 1 的方框图,如下图所示:(注:捕获寄存器3不能用于定时器0)(4)定时器基本操作方法: l 计算定时器的时钟频率,设置PR寄存器进行分频操作; l 设置比较匹配通道的初值及其工作模式,若是使用捕
8、获功能,则设置捕获方式; z l 若使用定时器的相关中断,则设VIC,使能中断; l 设置TCR,启动定时器。 如前所述,定时计数器时钟频率计算如下:其中,N为PR的值。四、 实验内容:结合了UART0和定时器,自编程序设计的一个可以记录20个时间值的秒表。五、 实验步骤:1) 按照开发板说明连接计算机,打开ADS1.2和H-JTAG软件,给开发板上电、调试。2) 载入编好的程序,运行ADS.12软件;3) 观察实验现象,看程序是否正常运作,有没有达到实验预计的功能。六、 实验程序流程图:开始设置I/O连接UART0IRQ使能中断设置定时器使能,IRQ中断定时器初始化启动定时器开始计时暂停计时
9、寄存这个时刻的值按键2 按下?按键1 按下?按键3 按下?是否是是否否七、 程序:1.程序说明:本程序是结合了UART0和定时器,自编程序设计的一个可以记录20个时间值的秒表。2.实验程序(表格内和字体加粗部分为增加修改的程序):#include "config.h"#include "stdio.h"#defineUART_BPS115200/ 串口通讯波特率uint32 K1=<<16;uint32 K2=<<17;uint32 K3=<<18;uint32 h=0,m=0,s=0,ss=0,i=1;char st
10、r20,strr30/* 函数名称 :IRQ_Timer0()* 函数功能 :定时器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中断处理结束 */* 函数名称 :DelayNS()* 函数功能 :长软件延时。* 入口参数 :dly延时参数,值越大,延时越久* 出口参数 :无*/void
11、 DelayNS (uint32 dly)uint32 i;for ( ; dly>0; dly-)for (i=0; i<50000; i+);/* 函数名称 :UART0_Init()* 函数功能 :串口初始化,设置为8位数据位,1位停止位,无奇偶校验,波特率115200。* 入口参数 :无* 出口参数 :无*/void UART0_Init (void)uint16 Fdiv;U0LCR = 0x83;/ DLAB=1,允许设置波特率Fdiv = (Fpclk / 16) / UART_BPS;/ 设置波特率U0DLM = Fdiv / 256;U0DLL = Fdiv %
12、256;U0LCR = 0x03;/* 函数名称 :UART0_SendByte()* 函数功能 :向串口发送字节数据,并等待发送完毕,查询方式。* 入口参数 :dat要发送的数据* 出口参数 :无*/void UART0_SendByte (uint8 dat)U0THR = dat;while (U0LSR & 0x40) = 0);/ 等待数据发送完毕void PC_DispChar(uint8 x,uint8 y,uint8 chr,uint8 color)UART0_StendByte(0xff);UART0_StendByte(x);UART0_StendByte(y;UA
13、RT0_StendByte(chr);UART0_StendByte(color);/* 函数名称 :UART0_SendStr()* 函数功能 :向串口发送一字符串* 入口参数 :str要发送的字符串的指针* 出口参数 :无*/void UART0_SendStr (uint8 x,uint8 y,uint8 color, char *str)while (1)if (*str = '0')break;/ 遇到结束符,退出PC_DispChar(x+,y,*str+,color);/ 发送数据if(x>=80) x=0;y+;void reset()h=0;m=0;s=
14、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连接BEEP。*/int main (void
15、)PINSEL0 = 0x00000005;/* 设置管脚连接GPIO*/IRQEnable();/* IRQ中断使能 */* 定时器0初始化 */T0TC = 0; /* 定时器设置为0 */T0PR = 0; /* 时钟不分频 */T0MCR = 0x03; /* 设置T0MR0匹配后复位T0TC,并产生中断标志*/T0MR0 = Fpclk /100; /* 0.5秒钟定时 */* 设置定时器0中断IRQ */VICIntSelect = 0x00;/* 所有中断通道设置为IRQ中断 */VICVectCntl0 = 0x20 | 0x04; /*设置定时器0中断通道分配最高优先级*/V
16、ICVectAddr0 = (uint32)IRQ_Timer0;/* 设置中断服务程序地址*/VICIntEnable = 1 << 0x04;/* 使能定时器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(IO0PIN&K1)if(IO0PIN&K3)=0) res
17、t();xianshi();while(!(IO0PIN&K1);DelayNs(80);T0TCR = 0x01;if(IO0PIN&K2)=0)while(!(IO0PIN&K2);DelayNs(80);if(i<21)spirntf(str,"%2d-%2d:%2d:%2d:%2d",i,h,m,s,ss);UART0_SendStr(0,i,0x30,str);i+;xianshi(); return 0;/* End Of File*/七、实验现象: 在运行本实验程序后,实验现象如下:打开DOS窗口:1) 当按下KEY1键时,秒表开始启动;2) 当按下KEY2键时,将计数到底时间记录下来;3) 当按下KEY3键时,秒表停止走动;4) 最多可以记录20个时间值。八、实验心得体会:通过本次实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030城市规划行业市场发展趋势分析及可持续发展研究报告
- 2025-2030城市规划市场现状及发展趋势研究方案
- 2025-2030城市综合体行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030城市更新项目融资设计较革周期核算增长红利捕捉实施方案权威指南
- 2025-2030城市安防行业市场供需现状投资评估规划分析研究报告
- 2025-2030地球食品行业品牌竞争发展策略创新市场供应评估投资效益
- 2025-2030厨房电器行业智能厨电市场供需分析及家庭烹饪规划研究报告
- 工程测量控制方案
- 屋面工程专项施工方案
- 基础底板大体积混凝土施工方案
- 地方关系协调管理办法
- 肿瘤科病历书写规范与要点
- 一年级《池上》课件
- MUX-2MD继电保护信号数字复接接口装置说明书
- 物流行业转型与挑战试题及答案
- 2025年机车调度员岗位培训手册考试题库
- 《分析化学》课程思政教学案例(一等奖)
- 绩效管理流程培训
- 北京市通州区2023-2024学年九年级上学期期末考试语文试卷(含答案)
- 2024年医院副主任竞聘演讲稿模版(3篇)
- 2024年普通高等学校招生全国统一考试政治试题全国乙卷含解析
评论
0/150
提交评论