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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 76783|回復: 331
收起左側

基于DHT11的溫濕計設計 OLED12864顯示

  [復制鏈接]
ID:362076 發表于 2018-7-12 14:33 | 顯示全部樓層 |閱讀模式
本作品采用STC15F104W單片機和OLED12864(IIC)設計,配合B站上傳的視頻更佳。
B站搜索基于DHT11的溫濕計(UP凌凈清河)即可查到相關視頻(預計2018年7月13日前會審核完畢)。

主要亮點:
1.自定義的顯示函數以滿足顯示需求
2.簡化的字庫以滿足單片機4K Flash的容量需求
次要亮點:
1.使用小巧的STC15F104W單片機

請注意!為防止低成本盜用(雖然寫的不怎么樣),僅展示主程序文件源碼,在附件中有完整版。
圖片.jpg
  1. #include<STC15.H>
  2. #include "intrins.h"
  3. #include "OLED_Contrul_Hygrothermograph.c"
  4. sbit YLED=P3^1;
  5. sbit RLED=P3^0;
  6. sbit DHT=P3^5;
  7. unsigned int Temperature[3]={1,1,1};
  8. unsigned int Humidity[2]={1,1};
  9. unsigned char Data_Receive[5];
  10. /*#################################################################################
  11. 設計名稱:基于DHT11的溫濕度計(Hygrothermograph)
  12. 設計者:清河

  13. 平臺:STC15F104W
  14. 硬件部分
  15. 顯示:采用OLED12864顯示溫度和濕度
  16. 測量,采用DHT11模塊,模塊信息如下:
  17. ASATR
  18. -----
  19. NA:DHT11
  20. OC:3.3-5.5V
  21. U1:5-95%RH
  22. U2:-20-60℃
  23. U3:±5%RH±2℃
  24. SN:A1712882A

  25. 為保證延時準確,晶振設置為12MHz

  26. 借用了<a href="http://www.zg4o1577.cn/bbs/dpj-38067-1.html" target="_blank">http://www.zg4o1577.cn/bbs/dpj-38067-1.html</a>上的部分程序,在此表示感謝
  27. #################################################################################*/
  28. void Delay30us()
  29. {unsigned char i;i=87;while(--i);}

  30. void Delay20ms()
  31. {unsigned char i,j,k;i=1;j=234;k=113;do{do{while(--k);}while(--j);}while(--i);}

  32. void Delay1s()
  33. {unsigned char i,j,k;i=46;j=153;k=245;do{do{while(--k);}while(--j);}while(--i);}

  34. void OLED_Display()
  35. {OLED_DataDisplay_T(56,4,Temperature);OLED_DataDisplay_H(56,6,Humidity);}

  36. void DHT_Collect()
  37. {unsigned char i,j;unsigned char t;unsigned char dat8=0;unsigned int CheckValue=0;
  38. DHT=0;Delay20ms();DHT=1;Delay30us();
  39. t=80;while(DHT&&t--);if(t==0){DHT=1;}t=250;while(!DHT&&t--);
  40. if(t==0){DHT=1;}t=250;while(DHT&&t--);if(t==0){DHT=1;}
  41. for(j=0;j<5;j++)
  42. {for(i=0;i<8;i++){t=150;while(!DHT&&t--);if(t==0){DHT=1;}t=0;
  43. while(DHT&&++t);dat8<<=1;if(t>30)dat8+=1;}Data_Receive[j]=dat8;}
  44. Delay30us();Delay30us();DHT=1;
  45. for(i=0;i<4;i++){CheckValue+=Data_Receive[i];}
  46. if((unsigned char)CheckValue==Data_Receive[4])
  47. {Temperature[0]=Data_Receive[2]/10;Temperature[1]=Data_Receive[2]%10;Temperature[2]=Data_Receive[3]%10;
  48. Humidity[0]=Data_Receive[0]/10;Humidity[1]=Data_Receive[0]%10;}}

  49. void sys_init()
  50. {YLED=1;RLED=1;OLED_Init();OLED_CLS();
  51. OLED_FormTitle(0,0);OLED_FormName(0,2);OLED_FormLine(0,3);OLED_FormTemp(8,4);OLED_FormHumi(16,6);
  52. OLED_AnyChar_16X16(96,4,TempChar);OLED_AnyChar_8X16(88,6,HumiChar);OLED_AnyChar_8X16(72,4,PointChar);}

  53. void main()
  54. {sys_init();while(1){DHT_Collect();YLED=1;RLED=0;OLED_Display();RLED=1;YLED=0;Delay1s();Delay1s();}}
復制代碼
帶注釋版以及OLED控制文件、字庫文件、底層通信文件在附件中,上面的為主程序文件無注釋緊縮版。
所有代碼排版嚴謹,分級之間使用TAB件,無多余空格,使用Notpad++以c文件形式打開即可正常觀看。

新礦城學習基地 凌凈清河

Keil代碼下載: 基于DHT11的溫濕計 凌凈清河.zip (45.51 KB, 下載次數: 581)

評分

參與人數 3黑幣 +87 收起 理由
aiober + 30 很給力!
hbnpmw + 7
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:60663 發表于 2018-8-15 21:58 | 顯示全部樓層
樓主,我仿制了一個,我想把數字的字體加大到16*32,程序怎么改,我試了多次,提示void OLED_Set_Pos(unsigned char x, unsigned char y) 這里出錯,請樓主幫忙,謝謝了。 旋轉 QQ圖片20180815215345.jpg

評分

參與人數 1黑幣 +70 收起 理由
admin + 70 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:362076 發表于 2018-8-27 09:25 | 顯示全部樓層
kodak0818 發表于 2018-8-26 17:51
樓主,感謝分享,順便問一下,怎么鑒定oled12864是不是壞的,我燒你的hex,oled不顯示啊

確定連線都是按照程序中位定義連接的么?OLED的初始化操作正確執行了么?這兩步完成程序應該會有顯示了。OLED對延時要求不是很高呀。和DHT相關的部分倒是要改一下精準延時函數。
回復

使用道具 舉報

ID:362076 發表于 2018-8-27 09:27 | 顯示全部樓層
kodak0818 發表于 2018-8-26 17:51
樓主,感謝分享,順便問一下,怎么鑒定oled12864是不是壞的,我燒你的hex,oled不顯示啊

如果不是按照程序中的引腳定義連線的,要改一下OLED_Hygrothermograph.h中的串行數據/時鐘的定義,應該是沒有改吧?
回復

使用道具 舉報

ID:362076 發表于 2018-9-5 12:27 | 顯示全部樓層
twelveboy 發表于 2018-8-15 21:58
樓主,我仿制了一個,我想把數字的字體加大到16*32,程序怎么改,我試了多次,提示void OLED_Set_Pos(unsig ...

不好意思,之前瀏覽回復的時候竟然沒有注意到你的問題。但是我并沒能想清楚你的問題出現在哪里,OLED_Set_Pos的作用類似于打印機將打印頭移動到要寫入數據的位置處。本不應該出現錯誤的,推測是你的上級調用函數出了問題?
增大字號的話,先是擴充取模數組,對應著取模的方式重寫顯示函數,要考慮到每一個字符占的位置大小,每一個字節的顯示順序等等,當需要開始新一行(8個縱點)的時候就要重新設置Pos,如此分行多次寫完一個字模。
回復

使用道具 舉報

ID:362076 發表于 2018-9-5 12:31 | 顯示全部樓層
kodak0818 發表于 2018-8-27 22:25
線序是對的,燒了好多hex 都沒有反應,自己也寫了一些全屏顯示的代碼,沒有反應,估計屏幕是壞的。放棄了 ...

OLED12864在淘寶上最便宜有12塊錢包郵的,小貓芯城價格15元,15元也是大多數“便宜”賣家給出的價格,至于20塊左右或者更高價格的,直接pass吧,我買過幾個便宜的,用著也沒什么問題。
回復

使用道具 舉報

ID:362076 發表于 2018-9-5 12:33 | 顯示全部樓層
pk可樂 發表于 2018-8-28 15:56
謝謝,想學習一下12864與單片機的鏈接

連接...IIC的話除了P0要加上拉之外,SDA和SCL隨便連接哪一個IO都可以啊~
回復

使用道具 舉報

ID:362076 發表于 2018-9-12 10:04 | 顯示全部樓層

不大,如果是用我的程序直接燒錄的話,難度就是5個IO和器件的連接,因為屏幕是IIC的,所以連接起來較SPI的更方便。
制作成本的話,按主要的算,屏幕13+洞洞板0.8元+DTH11 5.7+microUSB小板0.8+STC15F104W 1.8+雜項,大約不到25元。
回復

使用道具 舉報

ID:102963 發表于 2018-7-13 13:57 | 顯示全部樓層
不錯的設計,新穎的單片機,好!
回復

使用道具 舉報

ID:87193 發表于 2018-7-17 14:46 | 顯示全部樓層
回復看看咯,希望有驚喜
回復

使用道具 舉報

ID:373734 發表于 2018-7-18 00:51 | 顯示全部樓層
謝謝樓主
回復

使用道具 舉報

ID:163705 發表于 2018-7-18 09:29 | 顯示全部樓層
不錯,學習了
回復

使用道具 舉報

ID:44037 發表于 2018-7-18 10:13 | 顯示全部樓層
謝謝分享  回復看看咯,希望有驚喜
回復

使用道具 舉報

ID:373808 發表于 2018-7-18 10:56 | 顯示全部樓層
厲害了樓主
回復

使用道具 舉報

ID:256485 發表于 2018-7-19 15:27 | 顯示全部樓層
謝謝分享!
回復

使用道具 舉報

ID:374973 發表于 2018-7-19 16:25 來自手機 | 顯示全部樓層
謝謝分享~
回復

使用道具 舉報

ID:75461 發表于 2018-7-24 00:05 | 顯示全部樓層
謝謝分享,學習中
回復

使用道具 舉報

ID:371205 發表于 2018-7-24 13:44 | 顯示全部樓層
你好  您的基于DHT1112864顯示   我能下載嗎”
回復

使用道具 舉報

ID:104846 發表于 2018-7-24 17:06 | 顯示全部樓層
好,學學兮兮
回復

使用道具 舉報

ID:362076 發表于 2018-7-24 20:50 | 顯示全部樓層
hjklk 發表于 2018-7-24 13:44
你好  您的基于DHT1112864顯示   我能下載嗎”

這算是試探性的回復么?>v<
只要回帖就可以下載的。
回復

使用道具 舉報

ID:242127 發表于 2018-7-24 22:54 | 顯示全部樓層
很好的代碼
回復

使用道具 舉報

ID:199210 發表于 2018-7-24 23:13 | 顯示全部樓層
牛人
回復

使用道具 舉報

ID:375381 發表于 2018-7-25 18:59 來自手機 | 顯示全部樓層
可以可以,很好
回復

使用道具 舉報

ID:60663 發表于 2018-8-5 18:06 | 顯示全部樓層
正找這個呢
回復

使用道具 舉報

ID:201191 發表于 2018-8-8 12:10 | 顯示全部樓層
看看如何
回復

使用道具 舉報

ID:163046 發表于 2018-8-8 16:14 | 顯示全部樓層
不錯的設計
回復

使用道具 舉報

ID:383124 發表于 2018-8-8 16:39 來自手機 | 顯示全部樓層
多謝分享
回復

使用道具 舉報

ID:379563 發表于 2018-8-13 10:01 | 顯示全部樓層
正嘗試STM32的DHT11溫濕度 前來參考參考
回復

使用道具 舉報

ID:272158 發表于 2018-8-13 14:53 | 顯示全部樓層
收藏學習一下,研究一下小發明
回復

使用道具 舉報

ID:82738 發表于 2018-8-15 07:45 來自手機 | 顯示全部樓層
不錯的設計;下載學習
回復

使用道具 舉報

ID:228731 發表于 2018-8-15 09:01 | 顯示全部樓層
不錯 謝謝分享!
回復

使用道具 舉報

ID:229445 發表于 2018-8-15 19:44 | 顯示全部樓層
想要學習oled遂來討教
回復

使用道具 舉報

ID:358930 發表于 2018-8-15 23:33 來自手機 | 顯示全部樓層
很好,簡單的就好
回復

使用道具 舉報

ID:387116 發表于 2018-8-17 09:44 | 顯示全部樓層
很好的資料
回復

使用道具 舉報

ID:371023 發表于 2018-8-17 13:58 | 顯示全部樓層
回復看看咯,希望有驚喜
回復

使用道具 舉報

ID:57896 發表于 2018-8-18 18:28 | 顯示全部樓層
謝謝分享,51黑有你更精彩
回復

使用道具 舉報

ID:57896 發表于 2018-8-18 18:29 | 顯示全部樓層
謝謝分享,支持原創
回復

使用道具 舉報

ID:246638 發表于 2018-8-23 21:25 | 顯示全部樓層
不錯的資料
回復

使用道具 舉報

ID:366539 發表于 2018-8-24 22:03 | 顯示全部樓層
謝謝樓主
回復

使用道具 舉報

ID:142687 發表于 2018-8-25 00:26 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:374724 發表于 2018-8-25 06:49 來自手機 | 顯示全部樓層
菜鳥來學習一下
回復

使用道具 舉報

ID:243394 發表于 2018-8-26 12:38 | 顯示全部樓層
不錯,學習了
回復

使用道具 舉報

ID:159122 發表于 2018-8-26 12:57 | 顯示全部樓層
感謝樓主分享,學習了e
回復

使用道具 舉報

ID:159122 發表于 2018-8-26 17:51 | 顯示全部樓層
樓主,感謝分享,順便問一下,怎么鑒定oled12864是不是壞的,我燒你的hex,oled不顯示啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品久久一区二区三区 | 天天插天天舔 | 午夜天堂 | av永久免费 | 欧美久久一级特黄毛片 | 天天操操 | 国产精品久久久久久一区二区三区 | 欧美精品在欧美一区二区少妇 | 精品一区二区av | 日本人做爰大片免费观看一老师 | 玖玖在线免费视频 | 亚洲 欧美 另类 综合 偷拍 | 成人精品一区 | 四虎成人免费视频 | 别c我啊嗯国产av一毛片 | 久久国产区 | 日韩欧美字幕 | 亚洲欧美一区二区三区国产精品 | 午夜精品久久久久久久久久久久久 | 国产视频中文字幕 | 久久国产一区二区三区 | 国产清纯白嫩初高生视频在线观看 | 国产日韩一区 | 国产成人99久久亚洲综合精品 | 午夜影院中文字幕 | 国产高清精品一区二区三区 | 日韩av一区在线观看 | www.玖玖玖| 亚洲精品一级 | 成年人在线电影 | 国产精品日韩欧美一区二区 | 中文字幕免费在线 | 福利视频网 | 高清国产午夜精品久久久久久 | 亚洲免费久久久 | 久久综合九色综合欧美狠狠 | 国产精品九九视频 | 青青草一区二区 | 久久久久无码国产精品一区 | 狠狠综合久久av一区二区小说 | 天天躁日日躁狠狠的躁天龙影院 |