久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1787|回復: 0
收起左側

求助大佬,帶字庫的13寸oled怎么顯示變量值呀?

[復制鏈接]
ID:893081 發表于 2021-3-17 15:36 | 顯示全部樓層 |閱讀模式
#ifndef __DHT11_H_           
#define __DHT11_H_
#include "OLED.h"
#include <intrins.h> //用于提供_nop_();函數
#include <stdio.h>
//
//typedef unsigned char  U8;       /* defined for unsigned 8-bits integer variable           無符號8位整型變量  */
//typedef signed   char  S8;       /* defined for signed 8-bits integer variable                  有符號8位整型變量  */
//typedef unsigned int   U16;      /* defined for unsigned 16-bits integer variable           無符號16位整型變量 */
//typedef signed   int   S16;      /* defined for signed 16-bits integer variable           有符號16位整型變量 */
//typedef unsigned long  U32;      /* defined for unsigned 32-bits integer variable           無符號32位整型變量 */
//typedef signed   long  S32;      /* defined for signed 32-bits integer variable           有符號32位整型變量 */
//typedef float          F32;      /* single precision floating point variable (32bits) 單精度浮點數(32位長度) */
//typedef double         F64;      /* double precision floating point variable (64bits) 雙精度浮點數(64位長度) */
//
#define uchar unsigned char
#define uint unsigned int
//----------------------------------------------//
//----------------IO口定義區--------------------//
//----------------------------------------------//
sbit  DHT11=P2^0;
//----------------------------------------------//
//----------------定義區--------------------//
//----------------------------------------------//
uchar  U8FLAG,U8temp;
uchar  U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
uchar  U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
uchar  U8comdata;

void Delay_ms(uint j) //ms延時子函數 如:20000ms=2s
{     
        uchar i;
        for(;j>0;j--)
        {         
                for(i=0;i<27;i++);
        }
}

void  Delay_10us(void) //延時10us
{
        uint i;
        i--;
        i--;
        i--;
        i--;
        i--;
        i--;
}
        
void  COM(void)        //接收一個字節
{   
        uchar i;
        for(i=0;i<8;i++)//從高到低依次接收8位數據           
        {        
               U8FLAG=2;        
                   while((!DHT11)&&U8FLAG++); //等待50us的低電平開始信號結束
                Delay_10us(); //開始信號結束之后延時20us-30us
            Delay_10us(); //以下三個延時函數差不多為 30us 符合要求
                Delay_10us();
                  U8temp=0; //時間為20us-30us表示接收的為數據'0'
             if(DHT11==1)U8temp=1; //如果20us-30us之后還為高電平則表示接收的數據為'1'
            U8FLAG=2;
                 while((DHT11)&&U8FLAG++);//超時則跳出for循環                  
                   if(U8FLAG==1)break;
                   //判斷數據位是0還是1                     
                // 如果高電平高過預定0高電平值則數據位為1
                U8comdata<<=1; //接收的數據為高位在前右移
                U8comdata|=U8temp; //0
        }//rof           
}

//--------------------------------
//-----濕度讀取子程序 ------------
//--------------------------------
//----以下變量均為全局變量--------
//----溫度高8位== U8T_data_H------
//----溫度低8位== U8T_data_L------
//----濕度高8位== U8RH_data_H-----
//----濕度低8位== U8RH_data_L-----
//----校驗 8位 == U8checkdata-----
//----調用相關子程序如下----------
//---- Delay();, Delay_10us();,COM();
//--------------------------------

void RH(void) //接收數據
{  /*********DHT11開始信號***********/
          //DHT11=1; //電平拉高
        //Delay_10us(); //延時10us
        DHT11=0; //電平拉低
        Delay_ms(180);//主機把總線拉低必須大于18ms 保證DHT11能檢測到起始信號
        DHT11=1; //發送開始信號結束后 拉高電平延時 20-40us
        //總線由上拉電阻拉高 主機延時20us
        Delay_10us(); //延時20-40us
        Delay_10us(); //以下四個延時函數為 40us 符合要求
        Delay_10us();
        Delay_10us();        
        /*********DHT11開始信號***********/
        DHT11=1; //主機設為輸入 判斷從機響應信號                  
        if(!DHT11) //判斷從機是否有低電平響應信號 如不響應則跳出,響應則向下運行         
        {
                U8FLAG=2;
                //判斷從機是否發出 80us 的低電平響應信號是否結束         
                while((!DHT11)&&U8FLAG++);
                U8FLAG=2;
                //判斷從機是否發出 80us 的高電平,如發出則進入數據接收狀態
                while((DHT11)&&U8FLAG++);
                //數據接收狀態        
                COM();         
                U8RH_data_H_temp=U8comdata;        //濕度高位
                COM();
                U8RH_data_L_temp=U8comdata;        //濕度低位
                COM();
                U8T_data_H_temp=U8comdata;        //溫度高位
                COM();
                U8T_data_L_temp=U8comdata;        //溫度低位
                COM();
                U8checkdata_temp=U8comdata;        //校驗位
                //DHT11=0;  //拉低延時10us
                //Delay_10us();
                DHT11=1; //總線由上拉電阻拉高進入空閑狀態
                //數據校驗         
                U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
                //計算數據和
                if(U8temp==U8checkdata_temp)
                { //判斷讀到的四個數據之和是否與校驗位相同
                 U8RH_data_H = U8RH_data_H_temp; //濕度高位
                 U8RH_data_L = U8RH_data_L_temp; //濕度低位        (空的)

                 U8T_data_H = U8T_data_H_temp; //溫度高位
                 U8T_data_L = U8T_data_L_temp; //溫度低位  (空的)

                 U8checkdata = U8checkdata_temp; //校驗位
                 display_GB2312_string(6,10,"on");
                }//fi
                else if(U8temp!=U8checkdata_temp) //如果與校驗位不相同
                {        
                display_GB2312_string(6,10,"off");
                }
        }//fi
}

void dqwdz(void) //讀取溫度值處理
{
        uchar  str1[2],str2[2];  
        RH();  //調用溫濕度讀取子程序
        //濕度        
        str1[0]=U8checkdata/10; //濕度高位,十位
        str1[1]=U8checkdata%10; //濕度高位,個位
//        str2[0]=U8RH_data_L/10;
//        str2[1]=U8RH_data_L%10;
        //溫度
//        str2[0]=U8T_data_H;  //溫度高位,十位
//        str2[1]=U8T_data_H;        //溫度高位,個位
//        clear_screen(); //clear all dots         全屏清屏
        display_GB2312_string(0,10,str1);
//        //display_GB2312_string(2,10,str2);
        //讀取模塊數據周期不易小于 1S
        //注意:長時間的延時必須要有,不然會讀出0
        Delay_ms(20000); //延時2S        
}

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本视频一区二区 | www.日韩av.com| 在线免费观看黄色网址 | 毛片大全| 久久久久国产一区二区三区四区 | 99热国产精品 | 亚洲bt 欧美bt 日本bt | 99精品视频一区二区三区 | 久草在线 | 国产欧美视频一区二区 | 国产夜恋视频在线观看 | 男女午夜激情视频 | 国产精品亚洲二区 | 欧美在线观看一区二区 | 久久久久久久久久久久一区二区 | 91在线资源 | 日韩中文字幕 | 精品日韩一区二区三区av动图 | 成人欧美一区二区三区在线播放 | 粉嫩高清一区二区三区 | 亚洲高清视频在线观看 | 国产免费观看一区 | 精品视频在线播放 | 精品无码久久久久国产 | 久久99精品久久久 | 亚洲精品在线国产 | 国产精品日韩一区 | 男女网站免费观看 | 激情欧美日韩一区二区 | 国产欧美日韩一区二区三区在线观看 | 欧美日韩国产一区二区三区 | 亚洲国产精品人人爽夜夜爽 | 国产网站在线 | 国产乱码精品一区二区三区中文 | 欧美一区二区三区国产精品 | 一级网站 | 欧美精品久久 | 国产欧美精品一区 | 国产精品福利一区二区三区 | 中文福利视频 | 精品一区二区三区免费视频 |