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

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

QQ登錄

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

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

DHT11溫濕度檢測(cè)+時(shí)鐘 51單片機(jī)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
幫別人做了個(gè)畢設(shè),順便把資料分享一下把,可以實(shí)現(xiàn)DHT11溫濕度檢測(cè)以及電子時(shí)鐘在LCD1602上的顯示,時(shí)鐘可以調(diào)整分,時(shí),日,月四項(xiàng),有需要的可以自己加入年的調(diào)整

  1. #include<reg52.h>  
  2. #include<intrins.h>  //包含_nop_()函數(shù)定義的頭文件
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. typedef unsigned char BYTE;
  6. typedef unsigned int WORD;
  7. typedef bit BOOL;
  8. uchar data_byte;
  9. uchar RH,RL,TH,TL;
  10. uchar deda=0;
  11. uchar hour=0,min=0,sec=0,date=1,month=3,year=17;
  12. //uchar string[]="WeiHongmouzhizuo";
  13. uchar string2[]="0123456789";//要顯示的字符串

  14. sbit DHT11=P1^0;  //DHT11數(shù)據(jù)位
  15. sbit RS=P2^5;    //寄存器選擇位
  16. sbit RW=P2^6;    //讀寫選擇位
  17. sbit E=P2^7;     //使能信號(hào)位
  18. sbit BF=P0^7;    //忙碌標(biāo)志位
  19. sbit k4=P2^4;         //調(diào)整時(shí)間
  20. sbit k3=P2^3;
  21. sbit k2=P2^2;
  22. sbit k1=P2^1;
  23. //const uchar string1[ ]={"    mazirong     "};
  24. //const uchar string2[ ]={"TEL:13297961386  "};
  25. /*****************************************************
  26. 函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)
  27. 返回值:result。result=1,忙碌;result=0,不忙
  28. ***************************************************/

  29. //*********************延時(shí)1ms
  30. void delay(uchar z)                  
  31. {
  32. unsigned int x,y;
  33. for(x=z;x>0;x--)
  34. for(y=123;y>0;y--);
  35. }
  36. //*********************延時(shí)10us
  37. void delay1()         
  38. {
  39. uchar i;
  40. i--;
  41. i--;
  42. i--;
  43. i--;
  44. i--;
  45. i--;
  46. }
  47. //******************走時(shí)函數(shù)
  48. void init_timer()
  49. {
  50.   TMOD=0x01;
  51.   TH0=-(4800/256);
  52.   TL0=-(4800%256);
  53.   IE=0x82;
  54.   TR0=1;
  55. }
  56. ////用延時(shí)函數(shù)代替檢測(cè)STA7狀態(tài)的函數(shù)
  57. void check()
  58. {
  59. uint a;
  60. for(a=0;a<1200;a++);
  61. }
  62. //**************各月份天數(shù)
  63. /*void inter_month()
  64. {
  65.      switch(month)
  66.          {
  67.           case1:
  68.           case3:
  69.           case5:
  70.           case7:
  71.           case8:
  72.           case10:
  73.           case12:if(date==32)
  74.                     {
  75.                       date=1;
  76.                       month++;
  77.                       if(month==13)
  78.                           {
  79.                             month=1;
  80.                             year++;
  81.                           }
  82.                     };
  83.           break;//若是大月,則有31天
  84.           case4:
  85.           case6:
  86.           case9:
  87.           case11:if(date==31)
  88.                     {
  89.                       date=1;
  90.                       month++;
  91.                       if(month==13)
  92.                           {
  93.                             month=1;
  94.                             year++;
  95.                           }
  96.                     };
  97.           break;//若是小月,則有30天
  98.           case2:if(year%4==0)
  99.                     {
  100.                       if(date==30)
  101.                          {
  102.                           date=1;
  103.                           month++;
  104.                           if(month==13)
  105.                             {
  106.                               month=1;
  107.                               year++;
  108.                             }
  109.                          }
  110.                     }//閏年二月有29天
  111.            else
  112.            if(date==29)
  113.                  {
  114.                     date=1;
  115.                     month++;
  116.                     if(month==13)
  117.                          {
  118.                            month=1;
  119.                            year++;
  120.                          }
  121.                  };//平年二月28天
  122.                  break;
  123.                  default:break;
  124.           }
  125. }
  126. */
  127. //*******************時(shí)間、日期走時(shí)單元
  128. void conv()
  129. {
  130. if(sec==60)
  131. {
  132. min++;
  133. sec=0;
  134. if(min==60)
  135. {
  136. min=0;
  137. hour++;
  138. if(hour==24)
  139. {
  140. hour=0;
  141. date++;
  142. //inter_month();
  143. if(month==13)
  144. {
  145. year++;
  146. month=1;
  147. if(year==100)year=0;
  148. }
  149. }
  150. }
  151. }
  152. }

  153. //*********************50ms定時(shí)中斷
  154. void T0_srv(void)interrupt 1
  155. {
  156. TH0=-(50000/256);
  157. TL0=-(50000%256);
  158. deda++;
  159. if(deda==20)
  160. {
  161. sec++;
  162. deda=0;
  163. conv();
  164. }
  165. }
  166. //****************時(shí)間調(diào)整函數(shù)
  167. void set_time()
  168. {
  169. if(!k4)//min
  170. {
  171. delay(20);
  172. if(!k4)
  173. {
  174. min++;
  175. if(min==61)
  176. {
  177. min=0;
  178. }
  179. }
  180. }
  181. if(!k3)//hour
  182. {
  183. delay(20);
  184. if(!k3)
  185. {
  186. hour++;
  187. if(hour==25)
  188. {
  189. hour=0;
  190. }
  191. }
  192. }
  193. if(!k2)//date
  194. {
  195. delay(20);
  196. if(!k2)
  197. {
  198. date++;
  199. if(date==32)
  200. {
  201. date=1;
  202. }
  203. }
  204. }
  205. if(!k1)//month
  206. {
  207. delay(20);
  208. if(!k1)
  209. {
  210. month++;
  211. if(month==13)
  212. {
  213. month=1;
  214. }
  215. }
  216. }
  217. }


  218. //測(cè)試忙碌狀態(tài)
  219. uchar lcd_bz()
  220. {
  221.     bit result;
  222.     RS=0;       //根據(jù)規(guī)定,RS為低電平,RW為高電平時(shí),可以讀狀態(tài)
  223.     RW=1;
  224.     E=1;        //E=1,才允許讀寫
  225.     _nop_();   //空操作
  226.     _nop_();
  227.     _nop_();
  228.     _nop_();   //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
  229.     result=BF;  //將忙碌標(biāo)志電平賦給result
  230.     E=0;
  231.     return result;
  232. }
  233. //********************寫指令
  234. void write_cmd(uchar cmd)
  235. {  
  236. check();
  237. //while(lcd_bz()==1);
  238. RS=0;                  //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫入指令
  239. RW=0;  
  240. E=0;                   //E置低電平(寫指令時(shí),E為高脈沖)
  241. _nop_();
  242. _nop_();                            // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"
  243. P0=cmd;            //將數(shù)據(jù)送入P0口,即寫入指令或地址
  244. _nop_();
  245. _nop_();
  246. _nop_();
  247. _nop_();
  248.   E=1;                   //E置高電平
  249.   _nop_();
  250.   _nop_();
  251.   _nop_();
  252.   _nop_();               //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間
  253.    E=0;                  //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開(kāi)始執(zhí)行命令
  254. }
  255. //*********************寫地址
  256. void write_addr(uchar addr)
  257. {
  258. write_cmd(addr|0x80);
  259. }
  260. //*********************寫數(shù)據(jù)
  261. void write_byte(uchar dat)
  262. {
  263.   check();
  264. //while(lcd_bz()==1);   
  265. RS=1;   //RS為高電平,RW為低電平時(shí),可以寫入數(shù)據(jù)
  266. RW=0;
  267. E=0;            //(寫指令時(shí),E為高脈沖)
  268.                     // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"
  269. _nop_();
  270. _nop_();
  271. P0=dat;         //將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊
  272. _nop_();
  273. _nop_();
  274. _nop_();
  275. _nop_();
  276.   E=1;          //E置高電平
  277.   _nop_();
  278.   _nop_();



  279. …………余下代碼請(qǐng)下載附件…………
復(fù)制代碼

下載:
溫度顯示.rar (2.75 KB, 下載次數(shù): 61)

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

使用道具 舉報(bào)

沙發(fā)
ID:188601 發(fā)表于 2017-5-13 16:07 | 只看該作者
下載顯示都是00怎么回事啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区久久久 | 91亚洲精品在线 | 超碰精品在线 | 在线观看视频亚洲 | 91精品国产色综合久久 | 欧美精品一二三 | 成人特级毛片 | 国产在线激情视频 | 日韩色视频 | 国产视频久久 | 国产精品中文字幕在线播放 | 日韩欧美一级精品久久 | 日韩精品在线一区二区 | 在线四虎 | 91精品导航| 欧美三级电影在线播放 | 亚洲成人激情在线观看 | 亚洲欧美一区二区三区国产精品 | 午夜免费看 | 日操夜操 | 亚洲一区二区三区久久 | 日本午夜在线视频 | 国产一二三区在线 | 久色网| 国产精品毛片久久久久久 | 久久精品一区二区三区四区 | www.三级| 51ⅴ精品国产91久久久久久 | 国产精品区二区三区日本 | 日韩成人中文字幕 | www.久久久| 欧美一级淫片免费视频黄 | 久久精品欧美一区二区三区不卡 | 久草院线 | 国产精品久久久久久久久久妞妞 | chinese中国真实乱对白 | 国产精品伦一区二区三级视频 | 亚洲精品在线观 | 综合久久亚洲 | 91免费版在线观看 | 中文字幕亚洲精品 |