【TB作品】msp430f5529单片机,读取DHT11温湿度,读取adc,oled显示

功能

msp430f5529单片机,读取DHT11温湿度,读取adc,oled显示

硬件

//OLED引脚分配 绿色板子

//DO(SCLK)------P4.3

//D1(DATA)------P4.0

//RES-----------P3.7

//DC------------P8.2

//CS------------P8.1

//mq135 P6.5

//DHT11 P4.1

部分代码

cpp 复制代码
unsigned int adcsignal;
unsigned char   disp[15];
unsigned char   count = 0;
void main( void )
{
    unsigned char t = 0;

    WDTCTL = WDTPW + WDTHOLD;                                       /* Stop WDT */
    initClock();

    OLED_Init();


    OLED_ShowString( 0, 0, "DHT11:" );
    OLED_ShowString( 0, 4, "mq135:" );

    while ( 1 )
    {
        delay_ms( 10 );
        t = (t + 1) % 30;
        if ( t == 1 ) /* 30 个10ms执行一次 */
        {
            if ( receive_init() == 1 )
            {
                /* 存入数组 */
                count       = 0;
                disp[count++]   = ' ';
                disp[count++]   = ' ';
                disp[count++]   = humdh % 100 / 10 + '0';
                disp[count++]   = humdh % 10 / 1 + '0';
                disp[count++]   = '%';
                disp[count++]   = 'R';
                disp[count++]   = 'H';
                disp[count++]   = ' ';
                disp[count++]   = ' ';
                disp[count++]   = temph % 100 / 10 + '0';
                disp[count++]   = temph % 10 / 1 + '0';
                disp[count++]   = 'C';
                disp[count++]   = 0;

                /* 显示屏上显示温湿度字符串 */
                OLED_ShowString( 0, 2, disp );

                ADC12CTL0 |= ADC12SC;                                                           /* Start sampling/conversion */
                while ( (ADC12IFG & BIT5) == 0 )
                    ;                                                                       /* MEM5触发IFG5  意味着有了新的转换结果 */
                adcsignal   = ADC12MEM5;
                adcsignal   = (unsigned int ) ( ( (float) adcsignal) * 3.3 * 100 / 4096);   /* 换算到伏特 并乘以100 */
                count       = 0;
                disp[count++]   = adcsignal % 1000 / 100 + '0';
                disp[count++]   = '.';
                disp[count++]   = adcsignal % 100 / 10 + '0';
                disp[count++]   = adcsignal % 10 / 1 + '0';
                disp[count++]   = 'V';
                disp[count++]   = 0;
                OLED_ShowString( 0, 6, disp );
            }
        }
    }
}

全部代码

cpp 复制代码
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
相关推荐
森焱森2 小时前
无人机三轴稳定控制(2)____根据目标俯仰角,实现俯仰稳定化控制,计算出升降舵输出
c语言·单片机·算法·架构·无人机
白鱼不小白2 小时前
stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
stm32·单片机·嵌入式硬件
S,D2 小时前
MCU引脚的漏电流、灌电流、拉电流区别是什么
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·硬件工程
芯岭技术5 小时前
PY32F002A单片机 低成本控制器解决方案,提供多种封装
单片机·嵌入式硬件
youmdt6 小时前
Arduino IDE ESP8266连接0.96寸SSD1306 IIC单色屏显示北京时间
单片机·嵌入式硬件
嘿·嘘6 小时前
第七章 STM32内部FLASH读写
stm32·单片机·嵌入式硬件
Meraki.Zhang6 小时前
【STM32实践篇】:I2C驱动编写
stm32·单片机·iic·驱动·i2c
几个几个n8 小时前
STM32-第二节-GPIO输入(按键,传感器)
单片机·嵌入式硬件
慕尘12 小时前
Clion配置51单片机开发环境
单片机
良许Linux14 小时前
32岁入行STM32迟吗?
stm32·单片机·嵌入式硬件