2024-09-01
售卖作品
00

目录

硬件
功能
部分代码
全部代码

硬件

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); } }

全部代码

cpp
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!