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

使用 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;
}


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
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 单片机使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。 [1] 从二十世纪九十年代开始,单片机技术就已经发展起来,随着时代的进步与科技的发展,目前该技术的实践应用日渐成熟,单片机被广泛应用于各个领域。现如今,人们越来越重视单片机在智能电子技术方面的开发和应用,单片机的发展进入到新的时期,无论是自动测量还是智能仪表的实践,都能看到单片机技术的身影。当前工业发展进程中,电子行业属于新兴产业,工业生产中人们将电子信息技术成功运用,让电子信息技术与单片机技术相融合,有效提高了单片机应用效果。作为计算机技术中的一个分支,单片机技术在电子产品领域的应用,丰富了电子产品的功能,也为智能化电子设备的开发和应用提供了新的出路,实现了智能化电子设备的创新与发展。 [2] 单片机也被称为单片微控器,属于一种集成式电路芯片。在单片机中主要包含CPU、只读存储器ROM和随机存储器RAM等,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。 由此可见,单片机凭借着强大的数据处理技术和计算功能可以在智能电子设备中充分应用。简单地说,单片机就是一块芯片,这块芯片组成了一个系统,通过集成电路技术的应用,将数据运算与处理能力集成到芯片中,实现对数据的高速化处理。
基于51单片机DHT11湿度监测系统设计可以分为硬件设计和软件设计两个方面。 硬件设计方面,首先需要选择合适的单片机,至少需要引出一个串口以便与电脑进行数据传输。然后需要选择合适的传感器,这里使用DHT11数字湿度传感器。为了方便观察数据,可以选择OLED显示屏,同时还需要一些连接器和电容电阻等元件。 接下来进行软件设计,首先需要进行51单片机开发环境的搭建,通常使用Keil或SDCC开发工具。然后需要进行DHT11传感器的驱动程序的编写。通过PWM周期和脉冲时间,可以将湿度信息变成数字信号进行传输,可以利用单片机的定时器进行读取和计算。将测得的数据通过串口输出,发送到电脑上进行数据展示和存储。 在湿度监测系统的设计中,需要考虑到数据的采集、处理和传输,以及如何将数据进行分析和存储,同时还需要设计合适的界面展示。一般来说,还需要考虑到系统的可靠性和稳定性,保证数据的准确性和稳定性。在实际应用中可以为湿度监测系统加入报警功能,一旦度或湿度超过预设值,系统将会自动发送报警信号,保证实时监测数据的可用性。 总之,基于51单片机DHT11湿度监测系统设计,需要考虑到硬件和软件的协同设计,从传感器选择到驱动程序的编写和数据的采集、处理和传输等方面进行设计,同时保证系统的可靠性和稳定性,为用户带来更好的使用体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值