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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)NTC溫度控制C語言程序 業(yè)余級(jí)別,只能編成這個(gè)樣子了

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
30黑幣
NTC熱敏電阻溫度控制程序C 業(yè)余級(jí)別,只能編成這個(gè)樣子了,根據(jù)這個(gè)神貼改的!已改好!控制口還沒設(shè)置!

51hei截圖20210902143658858.jpg (167.32 KB, 下載次數(shù): 133)

51hei截圖20210902143658858.jpg

NTC10K溫度計(jì)NTC.rar

2.35 MB, 下載次數(shù): 73

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

使用道具 舉報(bào)

沙發(fā)
ID:155507 發(fā)表于 2021-9-2 15:48 | 只看該作者
麻煩你清楚的描述你的要求可以嗎

問問題要提供背景資料  用啥單片機(jī)? 有啥外設(shè)? 用什么電源? 代碼怎么寫?
如果有問題,必須說出是什么樣子,又要達(dá)到什么樣子?




http://www.zg4o1577.cn/bbs/dpj-57255-1.html

回復(fù)

使用道具 舉報(bào)

板凳
ID:366464 發(fā)表于 2021-9-2 16:55 來自手機(jī) | 只看該作者
angmall 發(fā)表于 2021-9-2 15:48
麻煩你清楚的描述你的要求可以嗎

問問題要提供背景資料  用啥單片機(jī)? 有啥外設(shè)? 用什么電源? 代碼怎 ...

STC15w408as添加按鍵控制溫度上下限,調(diào)節(jié)上下限后閃爍后保存后顯示實(shí)際溫度!按鍵已定義好!所有文件在壓縮包里!業(yè)余級(jí),添加按鍵程序不顯示!
回復(fù)

使用道具 舉報(bào)

地板
ID:161164 發(fā)表于 2021-9-2 18:01 | 只看該作者
本帖最后由 lkc8210 于 2021-9-2 18:03 編輯
zuiqf1978 發(fā)表于 2021-9-2 16:55
STC15w408as添加按鍵控制溫度上下限,調(diào)節(jié)上下限后閃爍后保存后顯示實(shí)際溫度!按鍵已定義好!所有文件在 ...
  1.             for(i=0; i<2; i++)                        //設(shè)定溫度閃爍顯示,用來指示設(shè)定溫度過程
  2.             {   //實(shí)際溫度常量

  3.                 if( i==0 )                                //設(shè)定溫度顯示
  4.                     for(j=0; j<20; j++)
  5.                     {
  6.                         diplay_data (4,disdata[SetT/100]);//溫度十位//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  7.                         diplay_data (3,disdata[SetT/10]);//溫度十位//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  8.                         diplay_data (2,disdata[SetT%10]);//溫度個(gè)位//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  9.                         diplay_data (1,disdata[17]);//溫度符號(hào)℃
  10.                     }

  11.                 if( i==1 )                                   //設(shè)定溫度不顯示
  12.                     for(j=0; j<20; j++)
  13.                     {
  14.                         delay1ms();
  15.                         delay1ms();
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

5#
ID:366464 發(fā)表于 2021-9-2 21:00 | 只看該作者

不能顯示,無顯示!原貼KEX可以顯示溫度!但無按鍵!

  1. #define MAIN_Fosc 24000000L
  2. #include <STC15W.h>//STC15W408AS頭文件
  3. #include <intrins.h>
  4. sbit Key_Tup = P3^1;
  5. sbit Key_Tdown = P3^2;
  6. sbit Key_Confirm = P3^3;
  7. unsigned int NTC_R;//定義熱敏電阻阻值變量
  8. unsigned char temperature;//定義溫度存儲(chǔ)變量
  9. unsigned int code Ttable[106][2]={//溫度與電阻阻值對應(yīng)關(guān)系表格
  10. 0,3274,//0度對應(yīng)阻值32.74k
  11. 1,3111,//1度對應(yīng)阻值31.11k
  12. 2,2957,//2度對應(yīng)阻值29.57k
  13. 3,2812,//
  14. 4,2674,//
  15. 5,2545,
  16. 6,2422,
  17. 7,2306,
  18. 8,2196,
  19. 9,2092,
  20. 10,1993,
  21. 11,1900,
  22. 12,1811,
  23. 13,1728,
  24. 14,1648,
  25. 15,1573,
  26. 16,1501,
  27. 17,1433,
  28. 18,1369,
  29. 19,1308,
  30. 20,1250,
  31. 21,1194,
  32. 22,1142,
  33. 23,1092,
  34. 24,1045,
  35. 25,1000,//25度對應(yīng)阻值10k               
  36. 26,957,//26度對應(yīng)阻值9.57k
  37. 27,916,
  38. 28,877,
  39. 29,840,
  40. 30,805,
  41. 31,771,
  42. 32,739,
  43. 33,709,
  44. 34,679,
  45. 35,652,
  46. 36,625,
  47. 37,600,
  48. 38,576,
  49. 39,553,
  50. 40,531,
  51. 41,510,
  52. 42,490,
  53. 43,471,
  54. 44,453,
  55. 45,435,
  56. 46,418,
  57. 47,402,
  58. 48,387,
  59. 49,372,
  60. 50,358,
  61. 51,345,
  62. 52,332,
  63. 53,320,
  64. 54,308,
  65. 55,297,
  66. 56,286,
  67. 57,276,
  68. 58,266,
  69. 59,256,
  70. 60,247,
  71. 61,238,
  72. 62,230,
  73. 63,222,
  74. 64,214,
  75. 65,207,
  76. 66,199,
  77. 67,193,
  78. 68,186,
  79. 69,180,
  80. 70,174,
  81. 71,168,
  82. 72,162,
  83. 73,157,
  84. 74,        152,
  85. 75,        147,
  86. 76,        142,
  87. 77,        137,
  88. 78,        133,
  89. 79,        128,
  90. 80,        124,
  91. 81,        120,
  92. 82,        116,
  93. 83,        113,
  94. 84,        109,
  95. 85,        106,
  96. 86,        102,//86度對應(yīng)阻值1.02k
  97. 87,        99,//87度對應(yīng)阻值0.99k
  98. 88,        96,
  99. 89,        93,
  100. 90,        90,
  101. 91,        88,
  102. 92,        85,
  103. 93,        82,
  104. 94,        80,
  105. 95,        78,
  106. 96,        75,
  107. 97,        73,
  108. 98,        71,
  109. 99,        69,
  110. 100,67,
  111. 101,65,
  112. 102,63,
  113. 103,61,
  114. 104,59,
  115. 105,58//105度對應(yīng)阻值0.58k
  116.          

  117. };        
  118. #include<4LED_YIN.H>//數(shù)碼管驅(qū)動(dòng)顯示程序
  119. #include <BandGap.H>//包含讀單片機(jī)內(nèi)部BandGap基準(zhǔn)電壓值
  120. void T_dis(){//溫度處理函數(shù)采集到的阻值與二維數(shù)組的阻值進(jìn)行比較,
  121.                //從而獲得相對應(yīng)的溫度值。
  122.          unsigned char i;
  123.          for(i=105;i<106;i--)  {
  124.                 if(NTC_R >= Ttable[i][1] && NTC_R < Ttable[i-1][1]){
  125.                    temperature=(Ttable[i][0]+1);
  126.                    break;
  127.                 }
  128.         }
  129. }
  130. char SetT = 40;                           //設(shè)定溫度初始化為 40 攝氏度1!!!
  131. float RealT = 25;                          //實(shí)際溫度初始化為 25 攝氏度2!!!
  132. void SetTemperature();                //設(shè)定溫度 3!!!
  133. void KeyScan();                                  //按鍵掃描 4!!!
  134. void SetTdisp();                           //設(shè)定溫度顯示5!!!
  135. void RealTdisp();                        //實(shí)際溫度顯示6!!!

  136. /********************************/
  137. void main (void)
  138. {        Delay20ms();//待系統(tǒng)穩(wěn)定
  139.     InitADC();//初始化ADC
  140.     P1M1=0X80;//P1.7高阻輸入
  141.         init();//IO口設(shè)置初始化
  142.         SetTdisp();                        //設(shè)定溫度顯示10!!!
  143.     while (1)
  144.    {
  145.    
  146.             SetTemperature();        //設(shè)定溫度8!!!
  147.                
  148.         ShowResult(7);//測量NTC熱敏電阻上的電壓并根據(jù)電壓計(jì)算出阻值
  149.                 T_dis();//測量到的阻值進(jìn)行查表對比找到阻值對應(yīng)的溫度值
  150.                 disp();        //數(shù)碼管顯示溫度值
  151.                
  152.                 RealTdisp();                //實(shí)際溫度顯示11!!!
  153.     }
  154.           }
  155.   void SetTemperature()                                        //設(shè)定溫度
  156. {
  157.         if( !(Key_Tup & Key_Tdown) )                 //檢測 升溫/降溫 按鍵是否按下
  158.         {                                                                        //進(jìn)入設(shè)定溫度過程
  159.                 uchar i,j;
  160.                 do
  161.                 {
  162.                         KeyScan();                                           //按鍵掃描

  163.                         

  164.                         for(i=0;i<2;i++)                        //設(shè)定溫度閃爍顯示,用來指示設(shè)定溫度過程
  165.                         {                                                        //實(shí)際溫度常量

  166.                                 if( i==0 )                                //設(shè)定溫度顯示
  167.                                         for(j=0;j<20;j++)
  168.                                         {
  169.             diplay_data (4,disdata[SetT/100]);//溫度十位
  170.                 diplay_data (3,disdata[SetT/10]);//溫度十位
  171.                 diplay_data (2,disdata[SetT%10]);//溫度個(gè)位
  172.                 diplay_data (1,disdata[17]);//溫度符號(hào)℃
  173.                                         }
  174.                                 
  175.                                 if( i==1 )                                   //設(shè)定溫度不顯示
  176.                                         for(j=0;j<20;j++)
  177.                                         {
  178.                                                 delay1ms();
  179.                                                 delay1ms();
  180.                 diplay_data (4,disdata[SetT/100]);//溫度十位
  181.                 diplay_data (3,disdata[SetT/10]);//溫度十位
  182.                 diplay_data (2,disdata[SetT%10]);//溫度個(gè)位
  183.                 diplay_data (1,disdata[17]);//溫度符號(hào)℃        
  184.             
  185.             
  186.         
  187.                                         }
  188.                                                         
  189.                         }

  190.                 }while(Key_Confirm);                        //直到確認(rèn)鍵按下,退出設(shè)定溫度過程

  191.         }

  192.         return;
  193. }

  194.     void KeyScan()                                                         //按鍵掃描
  195. {
  196.         static uchar flag = 0;                                   //設(shè)置標(biāo)志位

  197.         if( !(Key_Tup & Key_Tdown) )                   //檢測 升溫/降溫 按鍵是否按下
  198.         {
  199.                 if(!flag)                                                   //標(biāo)志位為0時(shí)才進(jìn)行 升溫/降溫,產(chǎn)生延時(shí)效果
  200.                 {                                                                   //防止按鍵按下過程中        升溫/降溫 多次,同時(shí)不占用CPU
  201.                         if(!Key_Tup)                                   //升溫
  202.                         {
  203.                                 SetT++;
  204.                                 if(SetT > 99)
  205.                                         SetT = 0;
  206.                         }

  207.                         if(!Key_Tdown)                                   //降溫
  208.                         {
  209.                                 SetT--;
  210.                                 if(SetT < 0)
  211.                                         SetT = 0;
  212.                         }
  213.                 }
  214.                
  215.                 flag++;                                                        //標(biāo)志位加一

  216.                 if(flag == 15);                                        //標(biāo)志位加到15清零
  217.                         flag = 0;
  218.         }                        
  219.         else                                                                //無按鍵按下,標(biāo)志位清零
  220.                 flag = 0;

  221.         return;
  222. }
  223.     void SetTdisp()                                                        //設(shè)定溫度顯示
  224. {                        unsigned int i;
  225.                  for(i=0;i<50;i++)
  226.     {
  227.                 diplay_data (4,disdata[SetT/100]);//溫度十位
  228.                 diplay_data (3,disdata[SetT/10]);//溫度十位
  229.                 diplay_data (2,disdata[SetT%10]);//溫度個(gè)位
  230.                 diplay_data (1,disdata[17]);//溫度符號(hào)℃        
  231.                 }
  232.         return;
  233. }

  234. void RealTdisp()                                                //實(shí)際溫度顯示
  235. {
  236.         unsigned int i;
  237.          for(i=0;i<50;i++){
  238.             diplay_data (4,disdata[temperature/100]);//溫度十位
  239.                 diplay_data (3,disdata[temperature/10]);//溫度十位
  240.                 diplay_data (2,disdata[temperature%10]);//溫度個(gè)位
  241.                 diplay_data (1,disdata[17]);//溫度符號(hào)℃
  242.         }
  243.         return;
  244. }        
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

6#
ID:366464 發(fā)表于 2021-9-2 21:13 | 只看該作者

修改了,還是不顯示!
回復(fù)

使用道具 舉報(bào)

7#
ID:366464 發(fā)表于 2021-9-2 22:48 | 只看該作者
已改好!
回復(fù)

使用道具 舉報(bào)

8#
ID:161164 發(fā)表于 2021-9-3 00:58 | 只看該作者

有原貼檔案嗎?

原貼是三位數(shù)碼管
你改為四位
新加那位用了P17
正好就是原來接NTC的ADC腳
那你現(xiàn)在用什么來收NTC?

新的數(shù)碼管顯示實(shí)在太啰嗦了

#define light 12         //設(shè)置LED顯示的亮度(值域:1~9)
注釋已經(jīng)寫著1到9,你改成12結(jié)果就死循環(huán)了
回復(fù)

使用道具 舉報(bào)

9#
ID:366464 發(fā)表于 2021-9-3 07:33 來自手機(jī) | 只看該作者
發(fā)現(xiàn)了,太著急容易出錯(cuò)!謝謝,第四位在3.3上
回復(fù)

使用道具 舉報(bào)

10#
ID:366464 發(fā)表于 2021-9-3 07:35 來自手機(jī) | 只看該作者
15w404As  20腳 IO口緊張,以前的手工板試試看!NTc是小黑頭!
回復(fù)

使用道具 舉報(bào)

11#
ID:213173 發(fā)表于 2021-9-3 08:21 | 只看該作者
給你一個(gè)示例,把DS18B20溫度值獲取函數(shù)用ADC替換即可滿足樓主意圖。
DS18B20溫度上下限報(bào)警STC1T單片機(jī).zip (161.99 KB, 下載次數(shù): 29)

回復(fù)

使用道具 舉報(bào)

12#
ID:366464 發(fā)表于 2021-9-19 19:29 | 只看該作者
通過ikc8210大神指導(dǎo)已改好!膜拜眾大師!
回復(fù)

使用道具 舉報(bào)

13#
ID:366464 發(fā)表于 2021-9-23 01:59 | 只看該作者
#define SET  P34                            //定義調(diào)整鍵
#define ADD  P35                            //定義增加鍵
#define DEC  P32                            //定義減少鍵
#define BEEP P23                            //定義蜂鳴器
#define limit_H P30                                //定義上限燈光報(bào)警
#define limit_L P31                                //定義下限燈光報(bào)警
#define DU   P20
#define WE   P21
uchar code  LEDData[]={                        //共陰數(shù)碼管段碼0~f-.
        0x3f,0x06,0x5b,0x4f,
        0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,
        0x39,0x5e,0x79,0x71,
        0x40,0x80};
uchar code  wela[]={0xfe,0xfd,
0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//共陰數(shù)碼管位碼
請問大師:DU  P20   WE  P21    是不是在段選和位選分別加了一個(gè)總開關(guān)?
回復(fù)

使用道具 舉報(bào)

14#
ID:366464 發(fā)表于 2021-9-23 02:15 | 只看該作者
位和段的解釋74HC573     附鏈接!https://blog.csdn.net/qq_38391994/article/details/107296514
回復(fù)

使用道具 舉報(bào)

15#
ID:366464 發(fā)表于 2021-10-15 21:58 | 只看該作者
非常感謝!   lkc8210    問題已解決!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: a欧美| 日韩久久精品 | 欧美日韩一区不卡 | 成人免费视频网站 | 中文字幕在线不卡 | 污片在线观看 | 国精产品一品二品国精在线观看 | 草久视频| 美女福利网站 | 免费毛片网 | 成人精品一区二区三区中文字幕 | 国产精品美女视频 | 午夜羞羞 | 999久久久久久久久 国产欧美在线观看 | 国产精品极品美女在线观看免费 | 亚洲视频三| 国产精品久久免费观看 | www.成人在线视频 | 产真a观专区 | 国产精品久久久久久久久久久免费看 | 国产精品久久久久久婷婷天堂 | 欧美一区二区精品 | 男人阁久久 | 三级黄色片在线观看 | 亚洲高清视频在线 | av网站免费 | 国产午夜精品视频 | 亚洲成人国产 | 午夜免费在线观看 | 亚洲影视在线 | av天空| 色综合视频 | 精品二区视频 | 精品国产一区二区三区性色av | 欧美成人精品在线 | 成人在线免费观看视频 | 欧美精品在线播放 | 超碰在线人人干 | 成人免费在线播放 | www日本在线观看 | 国产精品国产三级国产aⅴ无密码 |