OLED
ADXL345
msp430g2553
ds18b20
//OLED 接线 oled 是7针 0.96寸
OLED VCC接3.3V
OLED GND接GND
其他五根线:
P2.0 CS
P2.1 DC
P2.2 RES
P2.3 D1 SDA
P2.4 D0
//ADXL345 接线
//只需要接五根线,其余乱七八糟的不用接
//P1.4接SCL
//P1.5接SDA
//3.3接3.3V
//CS接3.3V
//GND接GND
//
//执行到while1之后,会循环读取传感器,跟新全局变量x y z,即是三个加速度的值。
//如果平放传感器并且静止,x和y趋于0或者很小的数值,z趋于1100。即是重力加速度。
//ds18b20 接线
//vcc 接 vcc 3.3V
//gnd 接gnd
// 数据引脚接 P1.7
cpp OLED_Init(); /* OLED初始化 */
//OLED_ShowString(0, 0, "123123123123");
ADXL345_Init(); //初始化时钟
ADXL345_GetValue(); //更新x y z三个加速度 可以仿真设置断点查看
ADXL345_GetValue(); //更新x y z三个加速度 可以仿真设置断点查看
ADXL345_GetValue(); //更新x y z三个加速度 可以仿真设置断点查看
//key
P1DIR &= ~BIT3;
P1REN |= BIT3;
P1OUT |= BIT3;
while (1)
{
if ((P1IN & BIT3) == 0)
{
delay_ms(5);
if ((P1IN & BIT3) == 0)
{
display_mode = !display_mode;
OLED_ShowString(0, 0, " ");
OLED_ShowString(0, 2, " ");
OLED_ShowString(0, 4, " ");
OLED_ShowString(0, 6, " ");
while ((P1IN & BIT3) == 0)
;
}
}
if (display_mode == 0)
{
temp_value = get_one_temperature(); //读取温度
dis[0] = temp_value % 1000 / 100 + '0';
dis[1] = temp_value % 100 / 10 + '0';
dis[2] = '.';
dis[3] = temp_value % 10 + '0';
dis[4] = 'C';
dis[5] = 0;
OLED_ShowString(0, 0, "ds18b20:");
OLED_ShowString(0, 2, dis);
delay_ms(200);
}
if (display_mode == 1)
{
ADXL345_GetValue(); //更新x y z三个加速度 可以仿真设置断点查看
x_temp = x;
y_temp = y;
z_temp = z;
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
dis[0] = 'x';
dis[1] = ' ';
if (x_temp < 0)
{
dis[2] = '-';
x_temp = -x_temp;
}
else
{
dis[2] = ' ';
}
dis[3] = x_temp % 10000 / 1000 + '0';
dis[4] = x_temp % 1000 / 100 + '0';
dis[5] = x_temp % 100 / 10 + '0';
dis[6] = x_temp % 10 + '0';
dis[7] = 0;
OLED_ShowString(0, 2, dis);
//yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
dis[0] = 'y';
dis[1] = ' ';
if (y_temp < 0)
{
dis[2] = '-';
y_temp = -y_temp;
}
else
{
dis[2] = ' ';
}
dis[3] = y_temp % 10000 / 1000 + '0';
dis[4] = y_temp % 1000 / 100 + '0';
dis[5] = y_temp % 100 / 10 + '0';
dis[6] = y_temp % 10 + '0';
dis[7] = 0;
OLED_ShowString(0, 4, dis);
//zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
dis[0] = 'z';
dis[1] = ' ';
if (z_temp < 0)
{
dis[2] = '-';
z_temp = -z_temp;
}
else
{
dis[2] = ' ';
}
dis[3] = z_temp % 10000 / 1000 + '0';
dis[4] = z_temp % 1000 / 100 + '0';
dis[5] = z_temp % 100 / 10 + '0';
dis[6] = z_temp % 10 + '0';
dis[7] = 0;
OLED_ShowString(0, 6, dis);
OLED_ShowString(0, 0, "ADXL345:");
}
delay_ms(200);
}
}
cpphttps://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!