1 / 12
文档名称:

ARM——秒表设计.pdf

格式:pdf   大小:1,110KB   页数:12页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ARM——秒表设计.pdf

上传人:秋江孤影 2023/3/20 文件大小:1.08 MB

下载得到文件列表

ARM——秒表设计.pdf

文档介绍

文档介绍:该【ARM——秒表设计 】是由【秋江孤影】上传分享,文档一共【12】页,该文档可以免费在线阅读,需要了解更多关于【ARM——秒表设计 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
EasyARM2131开发板实验报告
实验名称:秒表
系部:物理与机电工程学院
专业班级:07电子信息工程(2)班
学生姓名:阙开灿
学号:2006050427
指导教师:涂二生老师
完成时间:2010年5月6日
报告成绩:
1:.
秒表
(结合UART0、定时器0设计的实验)
一、实验目的:
1)结合UART0和定时器0,设计一个秒表
2)复****UART0和定时器0的工作原理和应用
3)熟悉掌握ARM中的程序应用,将理论结合实际
4)通过本次实验,将以前学的进行结合使用,以检验自己的学****质量
5)更加熟练了ARM的实验环境
二、实验仪器:
硬件:Easy-ARM实验开发板一套
计算机一台()
软件:Windowsxp系统,
三、实验原理:
:
LPC2131通过向量中断控制器(VIC)管理中断。外设中断信号需要经过
2个开关才能到达ARM内核,真正产生异常,。如
果在VIC中使能了相应外设的中断,外设中断才能到达VIC并向内核发送中断
请求;只有使能了内核中断IRQ或者FIQ,内核才能真正产生异常。
:
用户程序首先要初始化VIC使能相关中断,然后正常运行用户程序(如
①);
当有IRQ中断产生时,VIC将会根据中断源设置VICVectAddr寄存器为
相应中断服务程序的地址(②),
切换处理器工作模式为IRQ模式,并跳转到异常向量表的IRQ中断入
口0x00000018处(③);
读取VICVectAddr寄存器的值然后放入PC程序指针,跳转到相应中断
2:.
服务程序(④);
中断服务中执行相应的中断处理,清除中断标志,(⑤);
中断服务完成后,切换回原来的模式,并返回原中断点(
中的⑥)。
:
(1)特性:
16字节收发FIFO;
寄存器位置符合16C550工业标准;
接收器FIFO触发点可为1,4,8和14字节;
内置波特率发生器;
LPC2131包含使能实现软件流控制的机制。
(2)结构:
UART接收器模块UxRx监视串行输入线RxD的有效输入。UARTRx移位寄
存器(UxRSR)通过RxD接收有效的字符。当UxRSR接收到一个有效字符时,
它将该字符传送到UARTRx缓冲寄存器FIFO中,等待CPU或主机通过主机接口
进行访问。
UART发送器模块UxTx接收CPU或主机写入的数据并将数据缓存到UART
Tx保持寄存器FIF(UxTHR)中。UARTTx移位寄存器(UxTSR)读取UxTHR
中的数据并将数据通过串行输出管脚TxD发送。
UART波特率发生器模块UxBRG产生UARTTx模块所使用的定时。UxBRG
模块时钟源为VPB时钟(pclk)。主时钟与UxDLL和UxDLM寄存器所定义的除
数相除得到UARTTx模块使用的时钟。该时钟为16倍过采样时钟NBAUDOUT。
中断接口包含寄存器UxIER和UxIIR。中断接口接收几个由UxTx和UxRx发出
的单时钟宽度的使能信号。
UxTx和UxRx的状态信息保存在UxLSR中。
UxTx和UxRx的控制信息保存在UxLCR中。
3:.
:
VPB接口提供CPU或主机与UART之间的通信连接。
:
(1)概述:
LPC2131具有2个32位可编程定时/计数器,均具有4路捕获、4比较路匹配
并输出电路。定时器对外设时钟(pclk)周期进行计数,可选择产生中断或根据
4个匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、
翻转或者无动作)。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定
时器值,并可选择产生中断。可用于对内部事件进行计数的间隔定时器,或者通
过捕获输入实现脉宽调制,亦可作为自由运行的定时器。
定时器0和定时器1除了外设基地址以外,其它都相同。
(2)定时器特性:
带可编程32位预分频器的32位定时器/计数器;
4:.
具有多达4路32位的捕获通道-当输入信号跳变时可取得定时器的瞬时
值,也可选择使捕获事件产生中断;
4个32位匹配寄存器:
匹配时定时器继续工作,可选择产生中断;
匹配时停止定时器,可选择产生中断;
匹配时复位定时器,可选择产生中断。
多达4个对应于匹配寄存器的外部输出,具有下列特性:
匹配时设置为低电平;
匹配时设置为高电平;
匹配时翻转;
匹配时无动作。
(3)结构:
定时器0和定时器1的方框图,如下图所示:(注:捕获寄存器3不能用
于定时器0)
5:.
(4)定时器基本操作方法:
计算定时器的时钟频率,设置PR寄存器进行分频操作;
设置比较匹配通道的初值及其工作模式,若是使用捕获功能,则设置捕
获方式;
若使用定时器的相关中断,则设VIC,使能中断;
设置TCR,启动定时器。
如前所述,定时计数器时钟频率计算如下:
其中,N为PR的值。
四、实验内容:
结合了UART0和定时器,自编程序设计的一个可以记录20个时间值的秒表。
五、实验步骤:
1)按照开发板说明连接计算机,-JTAG软件,给开发板上电、
调试。
2)载入编好的程序,;
3)观察实验现象,看程序是否正常运作,有没有达到实验预计的功能。
六、实验程序流程图:
6:.
开始

按键1按下?
设置I/O连接UART0

IRQ使能中断
开始计时
定时器初始化

按键2按下?
设置定时器使能,IRQ中断

寄存这个时刻的值
启动定时器

按键3按下?

暂停计时
七、程序:
:
本程序是结合了UART0和定时器,自编程序设计的一个可以记录20个时间
值的秒表。
(表格内和字体加粗部分为增加修改的程序):
#include""
#include""
#defineUART_BPS115200//串口通讯波特率
uint32K1=<<16;
uint32K2=<<17;
uint32K3=<<18;
uint32h=0,m=0,s=0,ss=0,i=1;
charstr[20],strr[30]
/****************************************************************************************
**函数名称:IRQ_Timer0()
**函数功能:定时器0中断服务程序,取反LED9控制口。
**入口参数:无
**出口参数:无
7:.
****************************************************************************************/
void__irqIRQ_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延时参数,值越大,延时越久
**出口参数:无
****************************************************************************************/
voidDelayNS(uint32dly)
{
uint32i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}
/****************************************************************************************
**函数名称:UART0_Init()
**函数功能:串口初始化,设置为8位数据位,1位停止位,无奇偶校验,波特
率115200。
**入口参数:无
**出口参数:无
****************************************************************************************/
voidUART0_Init(void)
{
uint16Fdiv;
U0LCR=0x83;//DLAB=1,允许设置波特率
Fdiv=(Fpclk/16)/UART_BPS;//设置波特率
U0DLM=Fdiv/256;
U0DLL=Fdiv%256;
U0LCR=0x03;
}
/****************************************************************************************
8:.
**函数名称:UART0_SendByte()
**函数功能:向串口发送字节数据,并等待发送完毕,查询方式。
**入口参数:dat要发送的数据
**出口参数:无
****************************************************************************************/
voidUART0_SendByte(uint8dat)
{
U0THR=dat;
while((U0LSR&0x40)==0);//等待数据发送完毕
}
voidPC_DispChar(uint8x,uint8y,uint8chr,uint8color)
{
UART0_StendByte(0xff);
UART0_StendByte(x);
UART0_StendByte(y;
UART0_StendByte(chr);
UART0_StendByte(color);
}
/****************************************************************************************
**函数名称:UART0_SendStr()
**函数功能:向串口发送一字符串
**入口参数:str要发送的字符串的指针
**出口参数:无
****************************************************************************************/
voidUART0_SendStr(uint8x,uint8y,uint8color,char*str)
{
while(1)
{
if(*str=='\0')break;//遇到结束符,退出
PC_DispChar(x++,y,*str++,color);//发送数据
if(x>=80){x=0;y++;}
}
}
voidreset()
{
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;
9:.
}
voidxianshi()
{
spirntf(str,"%2d:%2d:%2d:%2d",i,h,m,s,ss);
UART0_SendStr(1,0,0x30,str);
}
/****************************************************************************************
**函数名称:main()
**函数功能:使用定时器实现1秒钟定时,控制LED9闪烁。中断方式。
**调试说明:需要将跳线JP11连接BEEP。
****************************************************************************************/
intmain(void)
{
PINSEL0=0x00000005;/*设置管脚连接GPIO*/
IRQEnable();/*IRQ中断使能*/
/*定时器0初始化*/
T0TC=0;/*定时器设置为0*/
T0PR=0;/*时钟不分频*/
T0MCR=0x03;/*设置T0MR0匹配后复位T0TC,并产生中断标志*/
T0MR0=Fpclk/100;/**/
/*设置定时器0中断IRQ*/
VICIntSelect=0x00;/*所有中断通道设置为IRQ中断*/
VICVectCntl0=0x20|0x04;/*设置定时器0中断通道分配最高优先级*/
VICVectAddr0=(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));
10:.
DelayNs(80);
T0TCR=0x00;
while((IO0PIN&K1))
{
if((IO0PIN&K3)==0){rest();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();
}
return0;
}
/****************************************************************************************
**EndOfFile
****************************************************************************************/
七、实验现象:
在运行本实验程序后,实验现象如下:
打开DOS窗口:
1)当按下KEY1键时,秒表开始启动;
2)当按下KEY2键时,将计数到底时间记录下来;
3)当按下KEY3键时,秒表停止走动;
4)最多可以记录20个时间值。
八、实验心得体会:
通过本次实验,让我又复****了GPIO、SPI的7段数码管的应用;了解了实
时时钟的工作原理及其应用;以及掌握了综合几个小实验实现一个新功能;更加
熟练了ARM的实验环境。
11:.
通过这次实验也让我学会了如何不断地发现问题并解决问题。比如,在定时
10s时,定时不准,不能实现每倒计时一秒蜂鸣器就响一次、LED灯闪一下和数
码管显示相应的数字。后来想了很久并通过和同学讨论才解决这个问题。还有就
是在一些小细节上也遇到不少问题,不过这些小问题都通过一次又一次的运行仿
真解决了。
总的来说,要做到每做一个实验,不但能实现该有的功能还要能学到不少的
知识。这样才能达到了做实验的目的。
12

最近更新

高中物理教学设计模板 3页

最新监理工程师之合同管理题库及答案(真题汇.. 41页

最新环境影响评价工程师之环评技术方法包过题.. 42页

音乐鱼咬尾教学设计 3页

最新机械员之机械员基础知识精选题库附参考答.. 40页

最新机械员之机械员专业管理实务包过题库完美.. 41页

最新教师招聘之中学教师招聘(网校专用) 88页

最新护师类之主管护师完整版(夺冠) 39页

醉翁亭记教学设计 3页

道法教学设计评语 3页

教师资格之小学教育学教育心理学精选题库附答.. 69页

教师资格之小学教育学教育心理学完整版(实用.. 69页

越剧歌词教学设计 3页

2024年瞬间胶项目资金筹措计划书代可行性研究.. 80页

2024年数字信号处理电路项目资金筹措计划书代.. 69页

教师招聘之幼儿教师招聘及答案【夺冠系列】 80页

教师招聘之小学教师招聘题库大全附参考答案(.. 85页

教师招聘之小学教师招聘精选题库附答案(轻巧.. 83页

2024年热轧板(卷)项目资金需求报告代可行性.. 67页

教师招聘之小学教师招聘大全带解析答案 87页

让幼儿看书教学活动设计 3页

教师招聘之中学教师招聘题库(各地真题) 90页

防晒服项目融资方案 38页

教师招聘之中学教师招聘包过题库附答案【考试.. 89页

护师类之主管护师精选题库附参考答案(B卷) 39页

薛谭学讴教学设计 4页

护师类之主管护师及答案参考 39页

草虫的村落教学设计 4页

迷你ktv点唱机项目融资计划书 41页

芽苗菜项目化教学设计 4页