基于LPC2131的定时数据采集与通讯程序设计报告_第1页
基于LPC2131的定时数据采集与通讯程序设计报告_第2页
基于LPC2131的定时数据采集与通讯程序设计报告_第3页
基于LPC2131的定时数据采集与通讯程序设计报告_第4页
基于LPC2131的定时数据采集与通讯程序设计报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、 重庆理工大学嵌入式体系结构课程总结题目:基于LPC2131的定时数据采集与通讯程序设计 二级学院 计算机科学与信息学院 专 业 计算机科学与技术 班 级 学生姓名 学号 教 师 时 间 2015.1.9 成 绩 嵌入式体系结构综合实验要求一、 题目:基于LPC2131的定时数据采集与通讯程序设计二、 实验内容:(1) 使用EasyARM2131板上AIN0和AIN3输入模拟量;(2) 定时1mS中断采样,即每通道每秒500次采样,A/D采样结果也采用中断读取;(3) AIN0和AIN1的电压值取500次采样的平均值;(4) 采样的电压每秒通过UART串口传送到PC机串口助手显示,显示格式形如

2、:Voltage0 is 1.987VVoltage3 is 2.345V,其中的电压值为实际采样值,每秒显示完后换行,同时要求串口发送采用中断。三、实验设备与环境1.实验设备:EasyARM2131开发实验板。2.环境:ADS集成开发环境、PC机串口助手。四、实验原理1. 硬件触发转换如果ADCR的BURST位为0且START字段的值包含在010-111之内,当所选管脚(P0.16或P0.22)或定时器匹配信号(MAT0.1、MAT0.3、MAT1.0或者MAT1.1)发生跳变时A/D转换器启动一次转换。也可选择在4个匹配信号中任何一个的指定边沿转换,或者在2个捕获/匹配管教中与任何一个的指

3、定边沿转换。将所选端口的管脚状态或所选的匹配信号ADCR位27相异或所得的结果作为边沿检测逻辑。2. 时钟产生时钟分频器(通过它可以得到4.5MHz的转换时钟)在A/D转换器空间保持复位状态,在ADCR的START字段被写入01(立即启动转换)或所选边沿出现在选择的信号上时可立刻启动采样时钟。这个特性可以节省功率,尤其适用于A/D转换器很少使用的场合。3. 中断4. 精度和数字接收器当A/D转换器用来测量Ain脚的电压时,可以不理会管脚在管脚选择寄存器中的设置,但是通过禁能管脚的数字接收器来选择Ain功能可以提高转换精度。当管脚用作A/D转换器输入时,不论管脚选择何种功能,它都仍可用作A/D输

4、入,A/D输入可随时被读取,管脚的电压变化都从A/D的读取中反映出来。但是,只有选择模拟输入功能,才能读出有效的模拟值。也只有这种情况下,管脚和A/D模块之间的接口电路才有效。其他情况下,执行数字功能所必需的数字逻辑部分将有效,从而影响A/D转换器的正确操作。程序: Startup.s中队FIQ的处理Reset ;异常向量表 LDR PC,ResetAddr ;跳转到复位入口地址 LDR PC,UndefinedAddr LDR PC,SWI_Addr ;跳转到软件中断入口地址 LDR PC,PrefetchAddr LDR PC,DataAbortAddr DCD 0xb9205f80 LD

5、R PC,PC,#-0xff0 ;跳转到向量中断入口地址(向量中断控制器) LDR PC,FIQ_Addr ;跳转到快速中断入口地址ResetAddr DCD ResetInitUndefinedAddr DCD UndefinedSWI_Addr DCD SoftwareInterruptPrefetchAddr DCD PrefetchAbortNouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler ;快速中断服务程序入口地址FIQ_Handler ;快速中断服务程序 STMFD SP!,R0-R3,LR ;保护现场 HL FIQ_Excepti

6、on ;调用C语言编写的快速中断服务函数 LDMFD SP!R0-R3,LR ;恢复现场 SUBS PC,LR,#4 ;中断返回五、实验程序#include "config.h"/* 定义串口模式设置数据结构 */typedef struct UartMode uint8 datab;  / 字长度,5/6/7/8可选 uint8 stopb;  / 停止位,1/2可选 uint8 parity;  / 奇偶校验位,0-无校验,1-奇校验,2-偶校验UARTMODE;uint8 rcv

7、_buf8;  / UART0数据接收缓冲区volatile uint8 rcv_new; / 接收新数据标志/* 函数名称 :IRQ_UART0()* 函数功能 :串口0接收中断服务程序* 入口参数 :无* 出口参数 :无*/void _irq IRQ_UART0 (void) uint8 i;  if (U0IIR & 0x0F) = 0x04)   rcv_new = 1;   / 设置接收到新的数据标志 for (i=0; i<8; i+)&#

8、160;  rcv_bufi = U0RBR;  / 读取FIFO的数据,并清除中断   VICVectAddr = 0x00;   / 中断处理结束/* 函数名称 :UART0_SendByte()* 函数功能 :向串口0发送1字节数据* 入口参数 :dat 要发送的数据* 出口参数 :无*/void UART0_SendByte (uint8 dat) U0THR = dat; / 要发送的数据/* 函数名称 :UART0_SendBuf()* 函数功能 :向串

9、口发送8字节数据* 入口参数 :dat 要发送的数据* 出口参数 :无*/void UART0_SendBuf (void) uint8 i;  for (i=0; i<8; i+)  UART0_SendByte(rcv_bufi); while (U0LSR & 0x20) = 0); / 等待数据发送完毕/* 函数名称 :UART0_Init()* 函数功能 :串口初始化,设置工作模式和波特率。* 入口参数 :baud 波特率*     set&

10、#160;模式设置(UARTMODE数据结构)* 出口参数 :1-初始化成功,  0-初始化失败*/int8 UART0_Init (uint32 baud, UARTMODE set) uint32 bak;  /* 参数过滤 */ if (baud =0 ) | (baud > 115200) return (0); if (set.datab <5) | (set.datab > 8) return (0); if (set.stopb = 0) | (set.stopb >

11、 2)  return (0); if (set.parity > 4) return (0);  /* 设置串口波特率 */ U0LCR = 0x80;      / DLAB = 1  bak   = (Fpclk >> 4) / baud; U0DLM = bak >> 8; U0DLL = bak & 0xFF;  /* 设置串口模式 */ 

12、bak   = set.datab - 5;    / 设置字长 if (set.stopb = 2) bak |= 0x04; / 判断是否为2位停止位  if (set.parity != 0)   set.parity = set.parity - 1;  bak |= 0x08;  bak |= set.parity << 4;    / 设置奇偶校验

13、60; U0LCR = bak;  return (1);/* 函数名称 :main()* 函数功能 :从串口UART0接收字符串"ABCDEFGH",并发送回上位机显示。* 调试说明 :需要PC串口显示终端软件如EasyARM.exe。*/int main (void) UARTMODE set; set.datab  = 8; set.stopb  = 1; set.parity = 0;  rcv_new = 0;  PINSEL0 = 0

14、x00000005;    / 设置I/O连接到UART0  UART0_Init(115200, set);   / 串口初始化 U0FCR = 0x81;      / 使能FIFO,并设置触发点为8字节 U0IER = 0x01;      / 允许RBR中断,即接收中断  IRQEnable();   

15、0;  / 使能IRQ中断 /* 使能UART0中断 */ VICIntSelect = 0x00000000;   / 设置所有的通道为IRQ中断 VICVectCntl0 = 0x20 | 0x06;   / UART0分配到IRQ slot0,即最高优先级 VICVectAddr0 = (uint32)IRQ_UART0; / 设置UART0向量地址 VICIntEnable = 1 << 0x06;   / 使能UART0中断 while (1)   if (rcv_new = 1)      rcv_new =0;   UART0_SendBuf();    

温馨提示

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

评论

0/150

提交评论