温度采集项目

温度采集项目

ID:38195194

大小:36.02 KB

页数:5页

时间:2019-05-26

温度采集项目_第1页
温度采集项目_第2页
温度采集项目_第3页
温度采集项目_第4页
温度采集项目_第5页
资源描述:

《温度采集项目》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、液晶显示采集温度系统一、实验目的在这个实验中让我们了解基于CC2530芯片以及ZigBee协议实现温度的采集。二、仪器介绍1、CC2530芯片:CC2530芯片主要分为三大方面:1、CPU和内存2、外设,时钟以及电源管理,无线电灯。而在我们这次试验就涉及了第二模块。2、ADC寄存器:ADC寄存器是一个支持多达14位的模拟数字转化。ADC寄存器在这次的实验中主要表现了以下几个特性:(1):8个独立的输入通道,可接受单端或差分信号(2):转化结束时的DMA触发(3):温度传感器输入,这也是本实验中最重要的3、液晶显示器:由ADC寄存器的模数

2、转化,从而显示其数据三、程序设计主函数代码如下:#include"ioCC2530.h"#include"initUART_Timer.h"#include"stdio.h"#include"LCD.h"INT16AvgTemp;/****************************************************************温度传感器初始化函数****************************************************************/voidinitTempSens

3、or(void){DISABLE_ALL_INTERRUPTS();//关闭所有中断InitClock();//设置系统主时钟为32M*((BYTE__xdata*)0x624B)=0x01;//开启温度传感器*((BYTE__xdata*)0x61BD)=0x01;//将温度传感器与ADC连接起来}/****************************************************************读取温度传感器AD值函数*******************************************

4、*********************/INT8getTemperature(void){UINT8i;UINT16AdcValue;UINT16value;AdcValue=0;for(i=0;i<4;i++){ADC_SINGLE_CONVERSION(ADC_REF_1_25_V

5、ADC_14_BIT

6、ADC_TEMP_SENS);//使用1.25V内部电压,14位分辨率,AD源为:温度传感器ADC_SAMPLE_SINGLE();//开启单通道ADCwhile(!ADC_SAMPLE_READY());//等待AD转换完成v

7、alue=ADCL>>2;//ADCL寄存器低2位无效value

8、=(((UINT16)ADCH)<<6);AdcValue+=value;//AdcValue被赋值为4次AD值之和}value=AdcValue>>2;//累加除以4,得到平均值returnADC14_TO_CELSIUS(value);//根据AD值,计算出实际的温度}voidmain(void){chari;charTempValue[10];while(1){initTempSensor();//初始化ADCAvgTemp=0;for(i=0;i<64;i++){

9、AvgTemp+=getTemperature();AvgTemp>>=1;//每次累加后除2.}sprintf(TempValue,(char*)"%dC",(INT8)AvgTemp);uchar*pstr=(uchar*)TempValue;P0DIR=0XFF;P1DIR=0XFF;ResetLCD();initLCDM();ClearRAM();delay_us(100);Print8(12,6,pstr);delay_ms(5000);}}函数调用以及声明在库文件中,请到文件夹上看一、程序流程图以下是采集的温度如何实现液晶显

10、示的流程图接受温度TempValue调用液晶显示器借口pstr从而把温度显示出来Pstr=TempValue传入温度传感器中,并且读取温度这时的信号是个模拟信号信号进过ADC寄存器IAR软件输入程序利用Dubgger数据线把程序传入CC2530芯片从而液晶显示器显示出来ADC寄存器进行模拟信号转化成数字信号二、温度采集的流程图三、整体分析a)对整个项目来说,主要面临的问题是我们如何采集温度?sprintf(TempValue,(char*)"%dC",(INT8)AvgTemp);这句代码尤为重要,把采集到的温度求取平均值在利用ADC寄

11、存器进行模数转化,成为uint型的数据。b)又如何把温度显示出来?uchar*pstr=(uchar*)TempValue;液晶显示器接受的类型是uchar类型的,而温度是个uint类型的,这时我们就要进行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。