当前位置:   article > 正文

vscode 上使用 SDCC 工具链开发 8051(DHT11温湿度传感器示例)_sdcc 8051

sdcc 8051

使用 DHT11 温湿度传感器完成测量,并打印结果到串口;使用 SDCC 工具链编译


1. 下载并安装 SDCC,在 EIDE 上设置好安装路径

下载链接:SDCC
在这里插入图片描述


2. 使用 EIDE 新建一个 C51 项目

在这里插入图片描述


3. 编写代码

main.c

#include "dht11.h"
#include "stdio.h"
#include "soft_uart.h"

/**
 * 
 * 使用 DHT11 温湿度传感器完成测量,并打印结果到串口;使用 SDCC 工具链编译
 * 
 * 时钟频率 16 Mhz,要修改时钟频率,更改宏 CLOCK 的值即可;
 * 注意:CLOCK 的值为:晶振频率/一条指令所需周期数,如 12M 晶振的 89c52 单片机:CLOCK=1
 * 
 * -------------------- 引脚配置 ---------------------
 * 
 * DHT11 DATA 引脚:P11
 * 
 * 串口输出引脚 TX:P10
 * 
 * ---------------------- 串口配置 ------------------------
 * 
 * 波特率:9600,位宽度:8,停止位:1
 * 
 * 
*/

void main()
{
   
    DHT11_Data dhtData;
    DHT11_Init();

    while (1)
    {
   
        switch (DHT11_Measure(&dhtData))
        {
   
        case DHT11_CONNECT_ERR:
            printf("connect DHT11 failed !\n");
            break;
        case DHT11_VERIFY_ERR:
            printf("data verify error !\n");
            break;
        default:
            printf("temp: %d, humidity: %d%%\n", (uint8_t)dhtData.temperature, dhtData.humidity);
            break;
        }

        Delay(2000);
    }
}

int putchar(int c)
{
   
    TxSend((uint8_t)c);
    return c;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

dht11.h

#ifndef _H_DHT11
#define _H_DHT11

#include "stdint.h"

/**
 * Interface define
*/

#include "mcs51/8051.h"
#include "delay.h"

#define DATA_WRITE(val) P1_1 = (val)
#define DATA_READ() P1_1

#define _Delay(ms) Delay(ms)

void<
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号