压力传感器采集设计
4.利用CVT-WSN-II硬件综合实验平台,搭建C、C++、或者nesC语言设计的集成开发环境。给出程序流程图。在集成开发环境中调试程序。给出程序的详细注释。能够解释使用程序模拟显示信息。
5.撰写课程设计报告,1)详细陈述以上的设计过程;2)详细陈述电路的调试过程。
时间安排:
第20周:
1.熟悉CVT-WSN-II硬件综合实验平台,掌握CC2530接口芯片的使用方法和编程要领设计。
while(1){
// P2_0=~P2_0;
P0_0 = 1; //熄灭LED
P2_0 = 1;
AdValue = ReadAdcValue(0x6,3,2);
AdValue = AdValue>>6;
temp = AdValue;
if(temp > 0x24){
temp = (temp - 0x22) * 200 / 0x12;
及格(60-69分)、60分以下为不及格
指导教师签名:
2014年01月 日
[6]杨玺.面向实时监测的无线传感器网络.北京:人民邮电出版社,2010-10.
本科生课程设计成绩评定表
序号
评分项目
满分
实得分
1
学习态度认真、遵守纪律
10
2
设计分析合理性
10
3
设计方案正确性、可行性、创造性
20
4
设计结果正确性
40
5
设计报告的规范性
10
6
设计验收
10
总得分/等级
评语:
注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、
5测试
5
图5.1无压力时的串口输出
图5.2有压力时的串口输出
5
(1)不对压力传感器施加压力时或获得结果不超过50g时D3不亮,如图5.3所示;
(2)对压力传感器施加压力且获得压力大于50g时D3亮,如图5.4所示;
图5.3 压力小于50g时实验图像
图5.4 压力大于50g时图像
6课程设计
无线传感网络是是一门极其重要的学科,也是21世纪极其重要的一门技术。下一场信息革命正在悄然兴起,而无线传感网络正是其核心之一。越来越多的传感器、应用将会需要这门技术。可见其地位非同一般。学号无线传感网络,对我们是很有帮助的。
2.
本此课程设计,其主要任务是实现传感器对环境压力信息的采集,采集后通过串口线使其输出在窗口显示,通过修改时延函数来改变输出的速率,我们可以编写压力传感器代码,在PC机上编译,编译完成后通过烧写软件,写入压力传感器中。让实验设备(即压力传感器)通过USB线与PC机相连,通过串口显示软件显示出压力测量值。我们可以通过对其不同的压力改变受压值。以及通过改变延时时间,实现采集数据的速率。
4
4
#include "ioCC2530.h"
#define uint8 unsigned char
#define uint16 unsigned int
#define uint32 unsigned long
extern void Sensor_PIN_INT(void);
extern uint16 ReadAdcValue(uint8 ChannelNum,uint8 DecimationRate,uint8 RefVoltage);
学 号:
课程设计
题目
压力传感器采集设计
学院
计算机科学与技术
专业
班级
姓名
指导教师
年
1
月
15
日
课程设计任务书
学生姓名:专业班级:
指导教师:工作单位:
题目: 压力传感器采集设计
初始条件:
1.课程设计使用 CVT-WSN-II实验平台,使用CC2530芯片和辅助芯片以及器件;
2530有程序设计集成开发环境,程序设计语言为C、C++、或者nesC语言;
2.设置串口的波特率:57600
3.数据位数、停止位数、校验方式、是否流控等默认即可;
4.勾选HEX发送。
5.点击“打开串口”,即可建立网关机和PC之间的连接。
3
1.压力传感器工作原理
压力传感器采集压力形变转化为数字信号。具体为当在压力传感器上施加压力时,该压力传感器发生形变,从而使阻抗发生变化,同时使激励电压发生变化,输出一个变化的模拟信号。该信号经放大电路放大输出到模数转换器。微处理器通过A/D采集口采集此模拟信号,并经过运算计算出压力值.
图3.1 配置工程
图3.2工程配置Linker
图3.3 工程配置,Debugger
3、添加文件
(1)->File->New->File,如图3.4所示
(2)新建文件另存为test.c,如图3.5所示。右键点击test-Debug->Add->Add Files:
(3)选择 test.c,点击打开:
图3.4新建文件
图3.5新建test.c
4、编译链接
(1)右键点击 test-Debug->Rebuild All 进行编译
(2)编译成功后,IAR 软件会在下方显示编译信息。如果编译失败,会有编译错误的信息提示和说明。
(3)编译成功后,右键点击 test-Debug->Make生成可供仿真器烧写的.hex 文件。
细心认真这是每一次实验都应力求达到的,严谨慎重的科学态度有助于我们不失败的去完成科学探索。很多时候我们常常被自己一个小小的错误难道女,很容易就因为这个小小的错误导致我们没法继续试验或者得到错误的结果。然后导致我们没法正常实验。这就是一个不小心的力量。不管怎么说,细心严谨是我每一次实验中,用力去做的事。希望这样能给我带来好运。
//UartTX_Send_String("welcome",10);
UartTX_Send_Data(uart_buffer,1);
}
void main( void )
{
uint16 AdValue;
uint16 temp;
unsigned char buf[8];
Sensor_PIN_INT();
char uart_buffer;
void delay(void)
{
unsigned int i;
unsigned char j;
for(i=0;i<10000;i++)
{
for(j=0;j<200;j++)
{
asm("NOP");
asm("NOP");
asm("NOP"_String(unsigned char *Data,int len) //串口发送函数
{
U0DBUF = Data;
while(UTX0IF == 0);
UTX0IF = 0;
}
}
#pragma vector=URX0_VECTOR //uart0中断函数
__interrupt void uart0(void){
URX0IF = 0; //清中断标志
P0_0=~P0_0;
uart_buffer = U0DBUF;
7
[1]许毅.无线传感器网络原理及方法.北京:清华大学出版社,2012.
[2]王鹏.压阻式压力传感器及其应用电路设计,2002.
[3]崔逊学、左从菊.无线传感器网络简明教程.北京:清华大学出版社
[4]孙利民.无线传感器网络.北京:清华大学出版社,2005-05.
[5]许力.无线传感器网络的安全和优化.北京:电子工业出版社,2010-03.
}
else
temp = 0;
buf[0] = (uint8)temp;//压力
buf[1] = buf[0]/100;
buf[2] = buf[0]%100/10;
buf[3] = buf[0]%10;
if(buf[1] > 0x9)
buf[1] = buf[1] - 0XA + 'A';
else
buf[1] = buf[1] + '0';
UartTX_Send_String(&buf[1],3);
UartTX_Send_String("g",1);
UartTX_Send_String("\r\n",2);
if (buf[2]> 0x34) //当力大于50克时LED灯亮
{
P0_0 = 0; //点亮LED
P2_0 = 0;
}else
3
(1)打开SmartRFProg
(2)找到要烧写的hex文件。
(3)在Actions处选择要验证还是擦除等,一般选择:Erase program and verify;
(4)点击Perform actions,将开始第4步选择的项目;
(5)点击writeIEEE
3
图3.6 串口调试
1.选择串口号,第一个
(2)->Device information->Device->CC2530F256.i51->CC2530。
(3)->Option->Linker,出现链接设置对话框,如图3.2;
(4)->Output file->Override default,把PRESS.d51改成PRESS.hex。
(5)选择 Option 选项里的 Debugger,Device 中选择 Texas Instruments,如图3.3所示
{P0_0 = 1; //熄灭LED
P2_0 = 1;