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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2921|回復: 2
收起左側

求助,溫度傳感器液晶顯示加蜂鳴器報警,有段程序不會寫

[復制鏈接]
ID:325185 發表于 2018-5-8 16:34 | 顯示全部樓層 |閱讀模式
溫度傳感器液晶顯示加蜂鳴器報警,網上找的電路圖和程序,電路圖加了蜂鳴器部分,蜂鳴器段的程序不知道怎么寫,有人會嗎? QQ圖片20180423110212.png
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code disp[]="0123456789";
  5. uchar code disp2[]="Tempreture";
  6. uchar code disp3[]="^C";
  7. sbit lcden=P2^0;
  8. sbit lcdrw=P2^1;
  9. sbit lcdrs=P2^2;
  10. sbit tempt=P2^3;
  11. uint u_temp;//定義無符號整型形參
  12. float f_temp;//定義浮點型形參


  13. void delay(uint x)//延時500ms程序
  14. {
  15. uint i,j;
  16. for(i=0;i<x;i++)
  17. for(j=0;j<130;j++);
  18. }

  19. void write_com(uchar com)//液晶寫命令
  20. {
  21. lcdrs=0;
  22. P0=com;
  23. delay(5);
  24. lcden=1;
  25. delay(5);
  26. lcden=0;
  27. delay(5);
  28. }

  29. void write_data(uchar date)//液晶寫數據
  30. {
  31. lcdrs=1;
  32. P0=date;
  33. delay(5);
  34. lcden=1;
  35. delay(5);
  36. lcden=0;
  37. delay(5);
  38. }


  39. void lcd_init()//液晶初始化
  40. {
  41. lcden=0;
  42. lcdrw=0;
  43. write_com(0x38);
  44. write_com(0x0c);
  45. write_com(0x06);
  46. write_com(0x01);
  47. }

  48. void display_tempt(uint date)//溫度數據顯示
  49. {
  50. uchar i,j,k;
  51. i=date/100;//十位
  52. j=date%100/10;//個位
  53. k=date%100%10;//小數位
  54. write_com(0x80+0x40+5);
  55. write_data(disp[i]);
  56. write_data(disp[j]);
  57. write_data('.');
  58. write_data(disp[k]);

  59. }



  60. void reset_tempt()//DS18B20復位,初始化
  61. {
  62. uint i;
  63. tempt=0;
  64. i=90;//延時
  65. while(i>0)i--;
  66. tempt=1;
  67. i=4;//延時
  68. while(i>0)i--;
  69. }


  70. bit read_bit()//讀一位DS18B20數據
  71. {
  72. uint i;
  73. bit dat;
  74. tempt=0;
  75. i++;//延時
  76. tempt=1;
  77. i++;//延時
  78. i++;
  79. dat=tempt;
  80. i=8;//延時
  81. while(i>0)i--;
  82. return dat;
  83. }


  84. uchar read_tempt()//讀一個字節DS18B20數據
  85. {
  86. uchar i,j,dat;
  87. dat=0;
  88. for(i=1;i<=8;i++)
  89. {
  90. j=read_bit();
  91. dat=(j<<7)|(dat>>1);//將讀取的數據位按讀取先后順序,
  92. }//從低位到高位(從右往左)排列保存到dat
  93. return dat;
  94. }


  95. void write_byte(uchar dat)//寫一個字節數據到DS18B20
  96. {
  97. uint i;
  98. uchar j;
  99. bit testbit;
  100. for(j=1;j<=8;j++)
  101. {
  102. testbit=dat&0x01;//每次只寫一位數據
  103. dat=dat>>1;
  104. if(testbit)
  105. {
  106. tempt=0;
  107. i++;//延時
  108. tempt=1;
  109. i=8;//延時
  110. while(i>0)i--;
  111. }
  112. else
  113. {
  114. tempt=0;
  115. i=8;//延時
  116. while(i>0)i--;
  117. tempt=1;
  118. i++;//延時
  119. i++;
  120. }
  121. }
  122. }


  123. void convert_tempt()//DS18B20開始獲取溫度并進行轉換
  124. {
  125. reset_tempt();
  126. delay(1);
  127. write_byte(0xcc);
  128. write_byte(0x44);
  129. }
  130. uint get_tempt()//讀取DS18B20寄存器中的溫度數據
  131. {
  132. uchar a,b;
  133. reset_tempt();
  134. delay(1);
  135. write_byte(0xcc);
  136. write_byte(0xbe);
  137. a=read_tempt();
  138. b=read_tempt();
  139. u_temp=b;
  140. u_temp<<=8;
  141. u_temp=u_temp|a;
  142. f_temp=u_temp*0.0625;//精度為12位,所以分辨率為0.0625
  143. u_temp=f_temp*10;//乘以10,將實際溫度擴大10倍
  144. return u_temp;//返回的u_temp是整型數據
  145. }



  146. void display()//靜態文字顯示
  147. {
  148. uchar i,j;
  149. write_com(0x80+3);
  150. for(i=0;i<10;i++)
  151. {
  152. write_data(disp2[i]);
  153. }
  154. write_com(0x80+0x40+10);
  155. for(j=0;j<2;j++)
  156. {
  157. write_data(disp3[j]);
  158. }
  159. }



  160. void main()//主函數
  161. {
  162.   uchar i;
  163.   lcd_init();
  164.   display();
  165.   while(1)
  166. {
  167.   convert_tempt();
  168.   for(i=0;i<10;i++)
  169.   {display_tempt(get_tempt());}
  170.   }
  171.   }
復制代碼



回復

使用道具 舉報

ID:158375 發表于 2018-5-9 09:47 | 顯示全部樓層
程序懶得看。
好好看看原理圖,你的蜂鳴器怎么報警?
回復

使用道具 舉報

ID:325185 發表于 2018-5-9 17:40 | 顯示全部樓層
笨笨兔 發表于 2018-5-9 09:47
程序懶得看。
好好看看原理圖,你的蜂鳴器怎么報警?

怎么看?我第一次做,電路圖已經覺得會了,但是程序對我來說太難了,不知道溫度傳感器怎么讀取溫度并顯示,然后溫度超過50度蜂鳴器報警
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕成人在线 | 亚洲国产精品suv | 97国产在线观看 | 自拍偷拍3p | 久久大陆 | 99久久久久久99国产精品免 | 精品视频在线一区 | 欧美中文字幕一区二区三区亚洲 | 国产精品网址 | 国产午夜精品一区二区三区嫩草 | 久久综合国产 | 婷婷综合色 | 日韩精品一区二区三区在线观看 | 亚洲精品久久久9婷婷中文字幕 | 亚洲一区视频 | 日韩在线播放第一页 | 久久久久久久91 | 亚洲三区在线 | 久久精品亚洲精品国产欧美 | 亚洲视频中文字幕 | 亚洲精品国产成人 | 亚洲性综合网 | 国产成人aⅴ | 免费一级欧美在线观看视频 | 成人国产午夜在线观看 | 欧美极品在线观看 | 男女羞羞的网站 | 久久人爽| av日日操 | 久久久久久91香蕉国产 | 福利网址 | 蜜月aⅴ国产精品 | 精品国产乱码久久久久久a丨 | 欧美精品一区二区三区一线天视频 | 黄篇网址 | 国产日韩欧美精品一区二区三区 | 欧美日韩高清在线观看 | 亚洲综合大片69999 | 成人国产精品久久久 | 免费在线视频精品 | 国产99久久精品一区二区300 |