本文主要是介绍【TB作品】msp430g2553,读取ADXL345+读取DS18B20,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
硬件
OLED
ADXL345
msp430g2553
ds18b20
功能
//OLED 接线
/* NEW
- 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
部分代码
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三个加速度 可以仿真设置断点查看//keyP1DIR &= ~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;//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdis[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);//yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyydis[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);//zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzdis[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);}
}
全部代码
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
这篇关于【TB作品】msp430g2553,读取ADXL345+读取DS18B20的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!