传感器实验四讲课稿Word格式.docx
《传感器实验四讲课稿Word格式.docx》由会员分享,可在线阅读,更多相关《传感器实验四讲课稿Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
![传感器实验四讲课稿Word格式.docx](https://file1.bdocx.com/fileroot1/2023-2/1/bf374e22-7652-420c-94a1-bda81d795d5a/bf374e22-7652-420c-94a1-bda81d795d5a1.gif)
(2)掌握七段数码管显示控制程序的编程方法。
2.实验内容
在IAR集成开发环境中编写七段数码管显示控制程序。
3.相关电路图
4.程序
5.实验现象
按下S2后数码管从0-F以400ms间隔循环递增,S1按住后暂停,松开后数码管显示的数字是加上按住的间隔时间。
比如按住时显示6,800ms松开后数码管会直接显示8。
(2)温湿度传感器采集实验
(1)掌握温湿度传感器的操作方法。
(2)掌握温湿度传感器采集程序的编程方法。
在IAR集成开发环境中编写定时器中断程序。
4.程序
在设置的间隔时间内开始循环显示温度和湿度的值,在传感器周边吹气,温度和湿度的值会改变。
(3)压力传感器实验
(1)掌握压力传感器的工作原理。
(2)掌握压力传感器采集程序的编程方法。
在IAR集成开发环境中编写定时器中断程序
#include"
ioCC2530.h"
#defineuint8unsignedchar
#defineuint16unsignedint
#defineuint32unsignedlong
externvoidSensor_PIN_INT(void);
externuint16ReadAdcValue(uint8ChannelNum,uint8DecimationRate,uint8RefVoltage);
charuart_buffer;
voiddelay(void)
{
unsignedinti;
unsignedcharj;
for(i=0;
i<
1500;
i++)
{
for(j=0;
j<
200;
j++)
{
asm("
NOP"
);
}
}
}
voidUartTX_Send_String(unsignedchar*Data,intlen)//串口发送函数
intj;
for(j=0;
len;
U0DBUF=*Data++;
while(UTX0IF==0);
UTX0IF=0;
}
voidUartTX_Send_Data(unsignedcharData,intlen)//串口发送函数
U0DBUF=Data;
#pragmavector=URX0_VECTOR//uart0中断函数
__interruptvoiduart0(void){
URX0IF=0;
//清中断标志
P0_0=~P0_0;
uart_buffer=U0DBUF;
//UartTX_Send_String("
welcome"
10);
UartTX_Send_Data(uart_buffer,1);
voidmain(void)
unsignedcharbuf[8];
uint16temp;
P0DIR|=0x01;
//设置P0.0为输出方式;
P0.4和P0.5为输入方式
P2DIR|=0x01;
//设置P2.0为输出方式
P0_0=1;
P2_0=1;
//熄灭LED
CLKCONCMD&
=~0x40;
//选择32M晶振
while(!
(SLEEPSTA&
0x40));
//等待XSOC稳定
CLKCONCMD=0xb8;
//TICHSPD128分频,CLKSPD不分频
SLEEPCMD|=0x04;
//关闭不用的RC振荡器
PERCFG=0x00;
//位置1P0口
P0SEL=0x3c;
//P0用作串口
U0CSR|=0x80;
//UART方式
U0GCR|=10;
//baud_e=10;
U0BAUD|=216;
//波特率设为57600
UTX0IF=1;
U0CSR|=0X40;
//允许接收
IEN0|=0x84;
//开总中断,接收中断
Sensor_PIN_INT();
UartTX_Send_String("
Testing...\r\n"
12);
while
(1){
P2_0=~P2_0;
temp=ReadAdcValue(7,3,0x2);
//P0.7采集气象或血压值,12bit,AVDD5作为参考
temp=(temp>
>
4);
buf[0]=(uint8)(temp&
0xff);
buf[1]=(buf[0]>
4)&
0xf;
buf[2]=buf[0]&
if(buf[1]>
0x9)
buf[1]=buf[1]-0XA+'
A'
;
else
buf[1]=buf[1]+'
0'
if(buf[2]>
buf[2]=buf[2]-0XA+'
buf[2]=buf[2]+'
Pressure="
11);
UartTX_Send_String(&
buf[1],1);
UartTX_Send_String(&
buf[2],1);
"
4);
\r\n"
2);
delay();
}//endofmain()
在设置的间隔时间内串口循环显示压力的值,改变压力串口输出发生变化。
(4)三轴加速度实验
(1)掌握三轴加速度传感器的工作原理。
(2)掌握三轴加速度传感器采集程序的编程方法。
在IAR集成开发环境中编写睡眠定时器程序。
在设置的间隔时间内循环显示加速度的值。
三:
心得体会
虽然在打开下载串行口助手调试时,有点小问题不能正常运行结果,但是仔细检查后找到原因。