【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 小时前
最小硬件系统概念及其组成
单片机·嵌入式硬件
啵啵学习5 小时前
Linux 里 su 和 sudo 命令这两个有什么不一样?
linux·运维·服务器·单片机·ubuntu·centos·嵌入式
可乐鸡翅好好吃6 小时前
通过BUG(prvIdleTask、pxTasksWaitingTerminatio不断跳转问题)了解空闲函数(prvIdleTask)和TCB
c语言·stm32·单片机·嵌入式硬件·bug·keil
才鲸嵌入式7 小时前
01 Ubuntu20.04下编译QEMU8.2.4,交叉编译32位ARM程序,运行ARM程序的方法
linux·c语言·单片机·嵌入式·arm·qemu·虚拟机
广药门徒9 小时前
我认为STM32输入只分为模拟输入 与 数字输入
stm32·单片机·嵌入式硬件
天月风沙12 小时前
PX4 | 无人机关闭磁力计罗盘飞行(yaw estimate error报错解决方法)
单片机·嵌入式硬件·mcu·无人机
想搞嵌入式的小白16 小时前
STM32 NVIC中断控制器
stm32·单片机·嵌入式硬件·nvic
深圳市尚想信息技术有限公司16 小时前
【深尚想】OPA855QDSGRQ1运算放大器IC德州仪器TI汽车级高速8GHz增益带宽的全面解析
单片机·嵌入式硬件
代码总长两年半17 小时前
STM32----IAP远程升级
stm32·单片机·嵌入式硬件
广药门徒18 小时前
STM32手册上标称的18MHz GPIO翻转速度和你实际测量到的速度之间的差异是预期之内且合理的
单片机·嵌入式硬件