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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stc15單片機(jī)hs1101溫濕度檢測程序問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
    用ds18b20顯示溫度,hs1101顯示濕度,但我寫的濕度程序編譯沒有錯誤,就是在lcd12864上不顯示,有沒有大神幫我看一下,會不會是我的定時器和計(jì)數(shù)器寫錯了。//main.c

單片機(jī)源程序如下:

/*主程序?yàn)槌绦虻娜肟冢糜谡{(diào)用各個子程序。注意一般將
“#include <STC15.H>”頭文件放在程序開始,這樣后面
的頭文件如#include "oled.h"和"Display.h"就不需包含“#include <STC15.H>”頭文件了。*/
#include "STC15.H"         
#include "OLED.h"
#include "Display.h"
#include "delay_ms.h"
#include "ds18b20.h"
#include "lcd12864cx.h"
#include "11.h"
#define uint unsigned int
#define uchar unsigned char
uchar tem0,tem1;
uchar code num[]={"0123456789."};
uchar dats;
void GPIO_Init();
void T0_Init();
void T1_Init();


void T1_Init()//計(jì)數(shù)器
{
        TMOD=0X40;              //0100 0000
        TH1=0x00;
        TL1=0x00;
        EA=1;
        ET1=1;
        TR1=1;
}
/*
T1 每50000us中斷一次
*/
void T0_Init()//定時器
{
        
  TMOD=0x00;              //0000 0000
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
}
void T1_ISR() interrupt 3
{
//EA =0;
//TR0=0;
//TR1=0;
//TR0=1;
//TR1=1;        
//EA=1;                  
}
void T0_ISR() interrupt 1
{
//        unsigned char m;
//  m++;
//        if(m>=20)
//        {m=0;
          tem0=TH1;
                tem1=TL1;        
//        }
}

void main()
{  
        
  uint temp;

        GPIO_Init();
        OLED_Clear();
        clrram ();
        OLED_Init();        
  hello_init();        
        display_init();
        delay_ms(200);
        delay_ms(200);
        delay_ms(200);
        delay_ms(200);
        delay_ms(200);
        OLED_Clear();
        T0_Init();
  T1_Init();
lcd_display();
oled_display();
        
        while(1)
        {        
//         tran();
         dats=tran();
         temp=read_temperature();
         co_disp(0,2,temp/100,temp%100/10,num);
         co_disp(0,3,10,temp%10,num);
         co_disp(1,3,dats/10,dats%10,num);
  //co_disp(1,4,dat/10,num2%10,num);
         //co_disp(3,2,num3/10,num3%10,num);
  // co_disp(3,6,num4/10,num4%10,num);
         if(flag==1)
                 
                 OLED_ShowString(28,0,"T:+",16);        
   if(flag==0)               
         {
                 if((temp/100==0)&&(temp%100/10==0)&&(temp%10==0))
                 OLED_ShowString(28,0,"T:0",16);//不顯示+00.0℃;而是顯示000.0℃。
                 else
                 OLED_ShowString(28,0,"T:-",16);
         }
         


         OLED_ShowNum(52,0,temp/10,2,16);
        
         OLED_ShowString(68,0,".",16);
         OLED_ShowNum(76,0,temp%100,1,16);
   OLED_ShowString(32,2,":+",16);
   OLED_ShowString(96,2,":-",16);
        
        }
        
        

               
         
        
  // OLED_ShowNum(48,2,num1,2,16);
         //OLED_ShowNum(112,2,num2,2,16);

        }


//這是hs1101的程序        
#include <STC15F2K60S2.H>
#include "11.h"
#define uint unsigned int
#define uchar unsigned char

uchar RH;
uint f=0;//初值
uchar tran()
{
        uchar p;         
        f=tem0*256+tem1;
        f=f*20;
        if((6805<=f)&&(f<=8292))//相對濕度在有效范圍內(nèi)0%--100%      RH=RH1+10*(Freq1-Freq)/(Freq1-Freq2)
        {
    if((6805<f)&&(f<=6977))              
{RH=90+10*(6977-f)/(6977-6805);}            
if( (6977 < f)&&(f<=7140))                     
{RH=80+10*(7140-f)/(7140-6977);}              
if((7140<f)&&(f<=7296))                     
{ RH=70+10*(7296-f)/(7296-7140);  }               
if((7296<f)&&(f<=7444))                     
{ RH=60+10*(7444-f)/(7444-7296);  }               
if((7444< f)&&(f<=7589))                     
{ RH=50+10*(7589-f)/(7589-7444);  }               
if((7589<f)&&(f<=7729))                     
{ RH=40+10*(7729-f)/(7729-7589);  }   
if((7729<f)&&(f<=7869))                     
{ RH=30+10*(7869-f)/(7869-7729);  }     
if((7869<f)&&(f<=8008))                     
{ RH=20+10*(8008-f)/(8008-7869);   }     
if((8008<f)&&(f<=8148))                     
{ RH=10+10*(8148-f)/(8148-8008);  }     
if((8148<f)&&(f<=8292))                     
{ RH=0+10*(8292-f)/(8292-8148);  }        

        }      
else      
{  
RH=0;      
  }

for (p=0;p<200;p++)                     
for (p=0;p<200;p++);           //延時                        
return RH;
}



Keil代碼下載:
新建文件夾 (13) - 副本.zip (124.68 KB, 下載次數(shù): 11)

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

使用道具 舉報

沙發(fā)
ID:123289 發(fā)表于 2022-2-26 14:00 | 只看該作者
1、不要扯上溫度,直接在對屏上顯示一個數(shù)字會不會?
2、將內(nèi)存中,某個單元中的數(shù)據(jù),送到屏上顯示會不會?
會做1、2后,再談溫度:
采到溫度后,將溫度值丟入內(nèi)存中,再調(diào)用“2、的程序”,不就OK了嗎?
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产午夜精品一区二区三区嫩草 | av在线播放网址 | 精品一级| 国产情侣激情 | 中文字幕一页二页 | 国产精品美女在线观看 | 殴美成人在线视频 | 中日字幕大片在线播放 | www午夜视频 | 免费国产网站 | 亚洲高清av | 伊人伊人伊人 | 国产99视频精品免费播放照片 | 精品一区久久 | 欧美一区二区三区在线观看 | 久久精品com| 免费黄色在线观看 | 天天干天天干 | 成人欧美一区二区三区黑人孕妇 | 91精品国产综合久久久久久蜜臀 | 国产精品久久久久一区二区三区 | 欧美一级在线观看 | 特级毛片 | 亚洲一区二区三区在线免费 | 热久久国产| 四虎影院在线播放 | 国产成人精品a视频一区www | 北条麻妃国产九九九精品小说 | 久久久精品一区二区 | 一区二区三区亚洲 | 亚洲精品久久久久国产 | 日韩在线视频观看 | 在线看片国产 | 亚洲精品小视频在线观看 | 国产乱人伦 | 台湾佬久久 | 久久国产精品亚洲 | 久久久久久久久99 | 精品久久久久久久久久久久 | 国产小视频自拍 | 亚洲一区二区免费看 |