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

標題: 測控儀器項目,單片機溫度測量控制系統程序仿真 可調上下限 [打印本頁]

作者: 封誠    時間: 2021-7-8 15:47
標題: 測控儀器項目,單片機溫度測量控制系統程序仿真 可調上下限
綜合運用測控儀器設計相關章節基礎知識,設計一套溫度測量控制裝置。

2.思路分析
設計單片機(AT89C52)最小系統,并在此基礎上完成對溫度傳感器DS18B20的讀寫操作,實現溫度測量功能和實時顯示功能,并通過設計外部電路使系統具備溫度上下限設置、對超過(低于)設置溫度值的狀態進行報警和相應控制操作。
3.系統功能
  (1)采集溫度,并通過LED數碼管顯示當前溫度。LED數碼管顯示溫度格式為四位,精確度可達±0.1℃。例如:27℃顯示為27.0。
(2)通過按鍵可自由設定溫度的上下限,并能在LED數碼管顯示設定的溫度上下限值。
(3)通過控制三極管的導通與否來控制繼電器的通斷,繼而控制外部加熱(電烙鐵升溫)和制冷(電風扇降溫)裝置,使環境溫度保持在設定溫度范圍內。
(4)具有溫度報警裝置。當溫度高于上限值,紅燈亮起;或者低于下限值,黃燈亮起,并發出報警聲。

4.protues原理圖


仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. sbit DQ=P3^0;
  5. sbit en=P1^0;
  6. sbit add=P1^1;      //加1
  7. sbit jian=P1^2;      //減1
  8. sbit warm=P1^5;      //加熱
  9. sbit cool=P1^7;      //制冷
  10. uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}; //共陽極
  11. uchar code smg_we[]={0x08,0x04,0x02,0x01};
  12. uchar uflag,max=35,min=20,k;
  13. uint value,b_value;
  14. /***  小延時函數  ***/
  15. void delay(uint i)
  16. {
  17. while(i--);
  18. }
  19. /*** 延時函數  ***/
  20. void delay_ms(uint z)
  21. {
  22. uint x,y;
  23. for(x=z;x>0;x--)
  24. for(y=110;y>0;y--);
  25. }
  26. /***  DS18B20初始化函數  ***/
  27. void init_ds18b20()
  28. {
  29. uchar presence;
  30. DQ=0;
  31. delay(60);
  32. DQ=1;
  33. delay(5);
  34. presence=DQ;
  35. delay(20);   
  36. }
  37. /***  寫入一個字節  ***/
  38. void write_ds18b20(uchar value)
  39. {
  40. uchar i;
  41. for(i=0;i<8;i++)
  42. {
  43. DQ=0;
  44. DQ=value&0x01;
  45. delay(5);
  46. DQ=1;
  47. value>>=1;
  48. }
  49. delay(4);
  50. }
  51. /***  讀出一個字節函數 ***/
  52. uchar read_ds18b20()
  53. {
  54. uchar j,val;
  55. for(j=0;j<8;j++)
  56. {
  57. DQ=0;
  58. val>>=1;          //讀數先讀最低位,故右移
  59. DQ=1;   
  60. if(DQ)            
  61. val|=0x80;     
  62. delay(4);      
  63. }
  64. return val;   
  65. }
  66. /***  讀溫度函數  ***/
  67. uint read_temperature()
  68. {
  69. uchar a,a0,flag;
  70. uint b;
  71. uint temp;
  72. init_ds18b20();                //開始轉化數據
  73. write_ds18b20(0xcc);
  74. write_ds18b20(0x44);
  75. delay(300);
  76. init_ds18b20();      //每操作一次都初始化并且至少有一條ROM指令
  77. write_ds18b20(0xcc);
  78. write_ds18b20(0xbe);          //讀數據允許
  79. a=read_ds18b20();          //低8位
  80. a0=read_ds18b20();            //高8位
  81. flag=a0&0xf8;
  82. b=a0*256+a;
  83. if(flag==0xf8)
  84. {
  85. uflag=0;      
  86. temp=(~b+1)*0.625; // 負數取反再加1
  87. }
  88. else
  89. {
  90. uflag=1;
  91. temp=b*0.625;
  92. }
  93. return temp;
  94. }
  95. /***    顯示當前溫度  ***/
  96. void display()
  97. {
  98. uchar i;
  99. value=read_temperature();
  100. b_value=value/10;            //實時溫度
  101. if(uflag==1)
  102. {
  103. for(i=0;i<4;i++)
  104. {
  105. P2=smg_we[i];
  106. delay(10);
  107. switch(i)     
  108. {
  109. case 0:P0=smg_du[value/1000];break;
  110. case 1:P0=smg_du[value%1000/100];break;
  111. case 2:P0=smg_du[value%100/10]&0x7f;break;
  112. case 3:P0=smg_du[value%10];break;
  113. default: break;
  114. }
  115. delay(950);
  116. }   
  117. }
  118. else
  119. {
  120. for(i=0;i<4;i++)
  121. {
  122. P2=smg_we[i];
  123. delay(10);
  124. switch(i)
  125. {
  126. case 0:P0=smg_du[10];break;            //寫“-”號
  127. case 1:P0=smg_du[value%1000/100];break;
  128. case 2:P0=smg_du[value%100/10]&0x7f;break;
  129. case 3:P0=smg_du[value%10];break;
  130. default: break;
  131. }
  132. delay(950);
  133. }
  134. }
  135. if(b_value>max)    cool=0;      //降溫
  136. else cool=1;
  137. if(b_value<min)    warm=0;      //加熱
  138. else warm=1;
  139. }
  140. /***  按鍵處理  ***/
  141. void keyscan()
  142. {
  143. en=1;
  144. if(en==0)
  145. {
  146. delay_ms(6);        //5~10ms
  147. if(en==0)
  148. {
  149. k++;
  150. if(k==3) k=0;
  151. while(!en);   
  152. }
  153. }
  154. }
  155. /***  調節上下限時的顯示  ***/
  156. void con_display(uchar dat)
  157. {
  158. uchar i;
  159. for(i=2;i<4;i++)
  160. {
  161. P2=smg_we[i];
  162. delay(10);
  163. switch(i)     
  164. {
  165. case 2:P0=smg_du[dat/10];break;
  166. case 3:P0=smg_du[dat%10];break;
  167. default: break;
  168. }
  169. delay(950);
  170. }      
  171. }
  172. /***  加熱與降溫  ***/
  173. void control()
  174. {
  175. if(k==1)                           //控制MAX
  176. {
  177. con_display(max);
  178. add=1;                  //+1
  179. if(add==0)
  180. {
  181. delay_ms(6);    //5~10ms
  182. if(add==0)
  183. {
  184. max++;
  185. while(!add);
  186. }
  187. }
  188. jian=1;                  //-1
  189. if(jian==0)
  190. {
  191. delay_ms(6);    //5~10ms
  192. if(jian==0)
  193. {
  194. max--;
  195. while(!jian);
  196. }
  197. }
  198. }
  199. if(k==2)                               //控制MIN
  200. {
  201. con_display(min);
  202. add=1;                  //+1
  203. if(add==0)
  204. {
  205. delay_ms(6);          //5~10ms
  206. if(add==0)
  207. {
  208. min++;
  209. while(!add);
  210. }
  211. }
  212. jian=1;                  //-1
  213. if(jian==0)
  214. {
  215. delay_ms(6);    //5~10ms
  216. if(jian==0)
  217. {
  218. min--;
  219. while(!jian);
  220. }
  221. }
  222. }
  223. }
  224. /***  主函數  ***/
  225. void main()
  226. {
  227. while(1)
  228. {
  229. keyscan();
  230. if(k==0)
  231. display();            //顯示當前溫度
  232. else control();            //控制時顯示               
  233. }
  234. }
復制代碼

仿真程序51hei下載地址:
溫度測量控制.zip (146.09 KB, 下載次數: 36)


作者: 18878648063    時間: 2022-6-18 08:56
為什么我做的仿真 超溫了也不報警是怎么回事呀




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲国产精品99久久久久久久久 | 亚洲www.| 日韩一区二区三区精品 | 日韩一区二区久久 | 亚洲网站在线观看 | 亚洲综合久久网 | 亚洲欧美日本在线 | 久草新在线 | 欧美色a v | 色香婷婷 | 伊人色综合久久久天天蜜桃 | 国产一区二区电影网 | 国产女人叫床高潮大片免费 | 91精品国产综合久久国产大片 | 欧美free性 | 欧美久久精品一级c片 | 激情91| 久久久久久国产精品 | 久久久区 | 天堂av中文| 欧美综合久久久 | 国产一级片免费看 | 日韩三级电影一区二区 | 国产韩国精品一区二区三区 | 青青激情网 | 色橹橹欧美在线观看视频高清 | 精品免费国产一区二区三区四区 | 亚洲视频免费在线观看 | 成人激情视频在线播放 | 91久久精品国产91久久性色tv | 久久精品99国产精品 | 日日艹夜夜艹 | 亚洲综合二区 | 成人无遮挡毛片免费看 | 亚洲欧美综合 | 国产乱码精品一区二区三区五月婷 | 国产精品高潮呻吟久久av黑人 | 亚洲欧美精品在线 | 欧美一级视频 | 国产精品久久久久久福利一牛影视 | 噜噜噜噜狠狠狠7777视频 |