亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

51單片機(jī)OLED+dht11顯示溫度的源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:195329 發(fā)表于 2018-4-6 02:01 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
入門51單片機(jī)一個(gè)多月,參加一個(gè)比賽熬夜寫(xiě)出了OLED+DHT11程序。

單片機(jī)源程序如下:
  1. #include "REG51.h"
  2. #include "oled.h"
  3. #include<intrins.h>
  4. typedef unsigned char BYTE;
  5. typedef unsigned int WORD;
  6. #define uint unsigned int
  7. #define uchar unsigned char
  8. sbit io=P1^2;//dht11data端接單片機(jī)的P1^0口//
  9. sbit IN1 = P1^0;                        
  10. sbit IN2 = P1^1;  //輸入電機(jī)接口
  11. sbit K1  = P3^0;
  12. sbit K2  = P3^1;          //按鍵接口
  13. uchar data_byte;

  14. uchar RH,RL,TH,TL;

  15. int count1,a;
  16. void DelayUs2x(unsigned char t)

  17. {

  18.         while(--t);

  19. }

  20. void DelayMs(unsigned char t)

  21. {

  22.         while(t--)

  23.         {

  24. //大致延時(shí)1mS

  25.         DelayUs2x(245);

  26.         DelayUs2x(245);

  27.         }

  28. }

  29. void delay(uchar ms) //延時(shí)模塊//
  30. {

  31.   uchar i;

  32.   while(ms--)                 

  33. for(i=0;i<100;i++);

  34. }

  35. void delay1()//一個(gè)for循環(huán)大概需要8個(gè)多機(jī)器周期一個(gè)機(jī)器周期為1us晶振為12MHz也就是說(shuō)本函數(shù)延時(shí)8us多此延時(shí)函數(shù)必須德稍微精確一點(diǎn)

  36. {

  37.   uchar i;

  38.   for(i=0;i<1;i++);

  39. }

  40. //電機(jī)的程序
  41. void ZHUAN(){
  42.        
  43.           IN2=0;
  44.    }


  45. void speed(int cnt,int sd)
  46. {  
  47. if(cnt<sd)  
  48.         {
  49.         IN1=1;
  50.         }
  51. else  
  52.         {
  53.         IN1=0;
  54.         }

  55. }  
  56. void turn(int cnt,int sd)                                   
  57. {  
  58.     ZHUAN();          
  59.         speed(cnt,sd);
  60. }  



  61. void start()//開(kāi)始信號(hào)

  62. {

  63.   io=1;

  64.   delay1();

  65.   io=0;

  66.   delay(25);// 主機(jī)把總線拉低必須大于18ms保證DHT11能檢測(cè)到起始信號(hào)

  67.   io=1;    //發(fā)送開(kāi)始信號(hào)結(jié)束后拉高電平延時(shí)20-40us

  68.   delay1();//以下三個(gè)延時(shí)函數(shù)差不多為24us符合要求

  69.   delay1();

  70.   delay1();

  71. }
  72. uchar receive_byte()//接收一個(gè)字節(jié)//

  73. {

  74.   uchar i,temp;

  75.   for(i=0;i<8;i++)//接收8bit的數(shù)據(jù)

  76.   {

  77.         while(!io);//等待50us的低電平開(kāi)始信號(hào)結(jié)束

  78.         delay1();//開(kāi)始信號(hào)結(jié)束之后延時(shí)26us-28us以下三個(gè)延時(shí)函數(shù)

  79.          delay1();

  80.         delay1();

  81.         temp=0;//時(shí)間為26us-28us表示接收的為數(shù)據(jù)'0'

  82.         if(io==1)

  83.          temp=1; //如果26us-28us之后還為高電平則表示接收的數(shù)據(jù)為'1'

  84.     while(io);//等待數(shù)據(jù)信號(hào)高電平'0'為26us-28us'1'為70us

  85.         data_byte<<=1;//接收的數(shù)據(jù)為高位在前右移

  86.          data_byte|=temp;

  87.   }

  88.   return data_byte;

  89. }
  90. void receive()//接收數(shù)據(jù)//
  91. {

  92.   uchar T_H,T_L,R_H,R_L,check,num_check,i;

  93.   start();//開(kāi)始信號(hào)//

  94.   io=1;   //主機(jī)設(shè)為輸入判斷從機(jī)DHT11響應(yīng)信號(hào)

  95.   if(!io)//判斷從機(jī)是否有低電平響應(yīng)信號(hào)//

  96.   {  
  97.         while(!io);//判斷從機(jī)發(fā)出 80us 的低電平響應(yīng)信號(hào)是否結(jié)束//

  98.         while(io);//判斷從機(jī)發(fā)出 80us 的高電平是否結(jié)束如結(jié)束則主機(jī)進(jìn)入數(shù)據(jù)接收狀態(tài)

  99.         R_H=receive_byte();//濕度高位

  100.         R_L=receive_byte();//濕度低位

  101.         T_H=receive_byte();//溫度高位

  102.         T_L=receive_byte();//溫度低位

  103.         check=receive_byte();//校驗(yàn)位

  104.         io=0; //當(dāng)最后一bit數(shù)據(jù)接完畢后從機(jī)拉低電平50us//

  105.         for(i=0;i<7;i++)//差不多50us的延時(shí)

  106.         delay1();

  107.         io=1;//總線由上拉電阻拉高進(jìn)入空閑狀態(tài)

  108.         num_check=R_H+R_L+T_H+T_L;

  109.         if(num_check==check)//判斷讀到的四個(gè)數(shù)據(jù)之和是否與校驗(yàn)位相同

  110.         {

  111.    RH=R_H;

  112.    RL=R_L;

  113.    TH=T_H;

  114.    TL=T_L;

  115.    check=num_check;
  116.         }
  117.   }
  118. }

  119. int main(void)
  120. {       
  121.         TMOD=0x01;
  122.         EA=1;  
  123.         TH0=(65536-1000)/256;
  124.         TL0=(65536-1000)%256;
  125.         ET0=1;
  126.         TR0=1;
  127.        
  128.         a = 100;
  129.                 OLED_Init();                        //初始化OLED  
  130.                 OLED_Clear() ;
  131.                 OLED_ShowCHinese(36,0,0);
  132.                 OLED_ShowCHinese(54,0,1);
  133.                 OLED_ShowCHinese(72,0,2);
  134.                 OLED_ShowCHinese(0,2,3);
  135.                 OLED_ShowCHinese(18,2,5);
  136.                 OLED_ShowCHinese(0,4,4);
  137.                 OLED_ShowCHinese(18,4,5);
  138.                 OLED_ShowString(37,4,":",16);
  139.                   OLED_ShowString(37,2,":",16);
  140.         while(1)
  141.         {
  142.             turn(count1,a);

  143.                 if(K1==0)

  144.                 {

  145.                         DelayMs(100);

  146.                         if(K1==0)// 去抖動(dòng)

  147.                         {
  148.                            if(a>=0)
  149.                            a=a-10;
  150.                         }

  151.                         }
  152.                 if(K2==0)

  153. ……………………

  154. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
OLED_DHT11.zip (97.73 KB, 下載次數(shù): 462)


評(píng)分

參與人數(shù) 2黑幣 +55 收起 理由
zkele + 5 贊一個(gè)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:372098 發(fā)表于 2018-7-15 18:25 | 只看該作者
寫(xiě)的很好,大贊一個(gè)[em04][em04][em04][em04]
回復(fù)

使用道具 舉報(bào)

板凳
ID:104846 發(fā)表于 2018-7-24 15:19 | 只看該作者
贊一個(gè)
回復(fù)

使用道具 舉報(bào)

地板
ID:380115 發(fā)表于 2018-7-28 10:48 | 只看該作者
正在嘗試做gy-30數(shù)字光傳感器用oled顯示,有一定參考價(jià)值
回復(fù)

使用道具 舉報(bào)

5#
ID:412987 發(fā)表于 2018-11-24 22:48 | 只看該作者
為何我重新編譯以后,下載到單片機(jī)就不能用了
回復(fù)

使用道具 舉報(bào)

6#
ID:517217 發(fā)表于 2019-4-20 16:46 | 只看該作者
剛好用到,謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

7#
ID:575725 發(fā)表于 2019-7-1 15:44 | 只看該作者
最近正在看這些東西,感謝分享。
回復(fù)

使用道具 舉報(bào)

8#
ID:490458 發(fā)表于 2019-7-1 19:28 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

9#
ID:620057 發(fā)表于 2019-10-7 13:50 | 只看該作者
感謝樓主的分享,找的我焦頭爛額
回復(fù)

使用道具 舉報(bào)

10#
無(wú)效樓層,該帖已經(jīng)被刪除
11#
ID:692618 發(fā)表于 2020-2-13 00:17 | 只看該作者
是有字符串和數(shù)字都有嗎
回復(fù)

使用道具 舉報(bào)

12#
ID:258216 發(fā)表于 2020-2-21 14:48 | 只看該作者
為何編譯后下載到單片機(jī)就不能用了
回復(fù)

使用道具 舉報(bào)

13#
ID:704775 發(fā)表于 2020-4-20 10:31 | 只看該作者
這個(gè)電機(jī)入口,和led管腳不是重復(fù)了嗎
回復(fù)

使用道具 舉報(bào)

14#
ID:423286 發(fā)表于 2020-5-13 22:41 | 只看該作者
謝謝帶哥分享。
回復(fù)

使用道具 舉報(bào)

15#
ID:760870 發(fā)表于 2020-5-26 12:54 | 只看該作者
請(qǐng)問(wèn)能麻煩樓主發(fā)一下io接口嗎,我做不了
回復(fù)

使用道具 舉報(bào)

16#
無(wú)效樓層,該帖已經(jīng)被刪除
17#
無(wú)效樓層,該帖已經(jīng)被刪除
18#
ID:841232 發(fā)表于 2020-11-10 20:15 | 只看該作者
正好在學(xué)習(xí)這一塊,感謝分享
回復(fù)

使用道具 舉報(bào)

19#
ID:166284 發(fā)表于 2020-11-12 17:01 | 只看該作者
網(wǎng)頁(yè)上怎么沒(méi)有原理圖呢?  
回復(fù)

使用道具 舉報(bào)

20#
ID:834280 發(fā)表于 2020-11-16 14:04 | 只看該作者
HAO 給你點(diǎn)贊
回復(fù)

使用道具 舉報(bào)

21#
無(wú)效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

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

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