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


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