1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1413|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

有沒有大佬能幫我把這個單片機(jī)程序多加點(diǎn)注釋,看不懂

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:818973 發(fā)表于 2020-9-14 17:28 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#include "STC12C5A60S2.h"
#include"HW_Printf.h"
#include "BH1750.h"
#include"Sys_Setting.h"
#include "HW_iic.h"
#include <intrins.h>
#include <math.h>
#include<stdio.h>


void delaytime(u16 ms)
{
    u16 i=0;
    u16 j=0;
    for(i=0;i<ms;i++)
    {
        for(j=0;j<110;j++);
    }
}

void delay(unsigned int i)
{
    while(i--);
}
void delay_ms(unsigned int i)
{
    while(i--)
    delay(90);
}


void Delay10u()
{
    unsigned char i;
    _nop_();
    _nop_();
    _nop_();               
    i = 24;
    while (--i);
}

void Delay18ms()                //@11.0592MHz
{
    unsigned char i, j, k;

    _nop_();
    _nop_();
    i = 1;
    j = 194;
    k = 159;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    }while (--i);
}

sbit TRH = P2^0;//溫濕度傳感器DHT11數(shù)據(jù)接入
int TH_temp,TL_temp,RH_temp,RL_temp,CK_temp,respond,com_data,temp;

//-------dht11函數(shù)區(qū)---------
char DHT11_rec_byte()
{   
    char i;
    com_data=0;
    for(i=0;i<=7;i++)   
    {
        respond=2;
        while((!TRH)&&respond++);
        Delay10u();
        Delay10u();
        Delay10u();
        if(TRH)
        {
            temp=1;
            respond=2;
            while((TRH)&&respond++);
        }
        else
        temp=0;

        com_data<<=1;
        com_data|=temp;   
    }
    return(com_data);  
}

/****************************************************************************/
//濕度讀取子程序
//溫度高8位== TH_data
//溫度低8位== TL_data
//濕度高8位== RH_data
//濕度低8位== RL_data
//校驗(yàn) 8位 == CK_data
//調(diào)用的程序有 delay();, Delay_5us();,RECEIVE();
/***************************************************************************/
void DHT11_receive()
{
    //主機(jī)拉低18ms
    TRH=0;
    Delay18ms();
    TRH=1;
    //DATA總線由上拉電阻拉高 主機(jī)延時50us
    Delay10u();
    Delay10u();
    //delay_us();delay_us();delay_us();delay_us();
    //主機(jī)設(shè)為輸入 判斷從機(jī)響應(yīng)信號
    TRH=1;
    //判斷DHT11是否有低電平響應(yīng)信號 如不響應(yīng)則跳出,響應(yīng)則向下運(yùn)行   
    if(!TRH)   
    {
        respond=2;
        //判斷DHT11發(fā)出 80us 的低電平響應(yīng)信號是否結(jié)束
        while((!TRH)&& respond++);
        respond=2;
        //判斷從機(jī)是否發(fā)出 80us 的高電平,如發(fā)出則進(jìn)入數(shù)據(jù)接收狀態(tài)
        while(TRH && respond++);
        //數(shù)據(jù)接收狀態(tài)   
        RH_temp = DHT11_rec_byte();
        RL_temp = DHT11_rec_byte();
        TH_temp = DHT11_rec_byte();
        TL_temp = DHT11_rec_byte();
        CK_temp = DHT11_rec_byte();
        TRH=1;
    }                                                                        
}         

void main()
{
    u16 Rec_Val = 0;
    Uart1_Init();
    Init_BH1750();      
    delaytime(100);
    DHT11_receive();   //溫濕度讀取
    while(1)
    {
        Single_Write_BH1750(0x01);   // power on
        Single_Write_BH1750(0x10);   // H- resolution mode
        delay(500);
        Rec_Val = Multiple_read_BH1750();
        DHT11_receive();   //溫濕度讀取
        delay(100);

        printf("**************************\n");        
        printf("The light value is %d \n",Rec_Val);
        delaytime(2000);

        printf("The tempature is:%d\n",(int)TH_temp);
        delaytime(2000);

        printf("The humdity is:%d\n",(int)RH_temp);   
        delaytime(2000);
        printf("**************************\n");
        
        delaytime(8000);                             
    }

}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:819009 發(fā)表于 2020-9-16 15:05 來自觸屏版 | 只看該作者
雖然我也看不懂,但是我猜是一個單片機(jī)控制的溫濕度計(jì)
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表