亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4367|回復: 6
打印 上一主題 下一主題
收起左側

利用ds18b20制作恒溫水浴鍋的單片機程序+Proteus仿真

[復制鏈接]
跳轉到指定樓層
樓主
ds18b20測水溫,利用三個繼電器控制三個加熱棒加熱(這里用電燈代替加熱棒仿真,暫設計控溫溫度為36度),三個加熱棒功率為大中小三個。當低于30度時,三個加熱棒同時工作,當溫度在30~35度時,小中兩個加熱棒工作,到達35度時只有小功率加熱棒工作,36度時加熱棒全部不工作。
注意:繼電器的選擇,恒溫控需考慮PID,防止繼電器震蕩而加熱棒溫度猛烈增高不受控制,實驗時也請使用小功率的加熱棒實驗,防止發生意外,切記。道路千萬條,安全第一條,行車不規范,親人兩行淚(特別是使用220v供電加熱棒)。

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


單片機源程序如下:
  1. /*板子引腳說明
  2. X0  PC7
  3. X1  PC6
  4. X2  PB15
  5. X3  PA1
  6. X4  PA0
  7. X5  PC4
  8. X6  PB12
  9. X7  PB14

  10. Y0  PC9
  11. Y1  PA8
  12. Y2  PA11
  13. Y3  PA12
  14. Y4  PD2
  15. Y5  PC12

  16. AD0 PC1
  17. AD1 PC2
  18. */

  19. #include "system.h"
  20. #include "SysTick.h"
  21. #include "led.h"
  22. #include "pwm.h"
  23. #define TIME_1MS 1000
  24. #define TIME_3min 36000000
  25. #define TRUE  1
  26. #define FALSE 0
  27. volatile  u32  timer_tick_count = 0; //定時器節拍
  28. volatile u32  timer_tick_count1 = 0; //建立任務池
  29. volatile u32  timer_tick_count2 = 0; //建立任務池
  30. static u16 Key_Value=0;
  31. static u16 Key_Value1=0;
  32. static u8 light_FG= FALSE;
  33. static u8 P_FG= FALSE;
  34. u16 value=0;
  35. u8 a=0;
  36. u8 i ;
  37. float vol=0;               
  38. int  PWM_TAB[10]={0,                 //白天不工作
  39.                                    200,             //晚上無人20%亮度
  40.                               1000             //有人亮度100%
  41.                              };
  42. u8 pwm=0;
  43. u8 key_SCAN;
  44. #define X0    PCin(7)                                                           
  45. //程序入口
  46. int main()
  47. {       
  48.         Output_GPIO_Init();   //輸出GPIO 初始化。
  49.     ADCx_Init();       //AD初始化
  50.         TimerInit();//定時器初始化
  51.         while(1)
  52.         {
  53.                 /*Y0  PC9 Y1  PA8 Y2  PA11 Y3  PA12 Y4  PD2  Y5  PC12*/
  54.             /*ADC轉換*/
  55.                  value=Get_ADC_Value(ADC_Channel_11,30);     //光電傳感器,在沒有放書的情況下,不會觸發,只要放到上面有書籍,就要觸發。
  56.                    vol=(float)value*(3.3/4096);    //轉換完成之后的值
  57.            i=(int)vol;    //數據類型需要強制轉換         
  58.               if(i>=1) //天黑的情況
  59.                   {
  60.                       light_FG= TRUE;
  61.                           a=1;   //占空比20%
  62.                           if(P_FG==TRUE)
  63.                           { light_FG= FALSE;
  64.                                   a=2;
  65.                           }
  66.                                   
  67.                           if(timer_tick_count1>2000)      //設置天黑有人的情況   紅外識別   可認為是按鍵檢測
  68.                           {timer_tick_count1=0;
  69.                   if(X0==1)
  70.                                   {
  71.                                   Key_Value=1;
  72.                                   }
  73.                                     if(X0==0)
  74.                                   {
  75.                                   Key_Value=0;
  76.                                   }
  77.                                   
  78.                              if(Key_Value== Key_Value1)
  79.                                  {
  80.                                           if( Key_Value==0)     //邊沿處理
  81.                                           {Key_Value1= Key_Value;
  82.                                            light_FG= FALSE;
  83.                                            P_FG=TRUE;
  84.                                                 timer_tick_count2=0;
  85.                                a=2;
  86.                                           }
  87.                                  }  
  88.                           }
  89.                   }
  90.                    else
  91.                  {
  92.              GPIO_SetBits(GPIOC,GPIO_Pin_9);     //高電平無效   PC9對應Y0
  93.         //                 GPIO_ResetBits(GPIOC,GPIO_Pin_9);
  94.                           light_FG= FALSE;
  95.                   }  
  96.                  if( light_FG==TRUE)  
  97.            {                
  98.                            //PWM波輸出,調節燈光亮度
  99.                                 if( timer_tick_count>=TIME_1MS)     //頻率為1K    產生PWM波形                       
  100.                                   {        timer_tick_count=0;                   //周期值清零                                   
  101.                                   }                  
  102.                                 if( timer_tick_count<PWM_TAB[a])     //調節占空比
  103. //                                   GPIO_SetBits(GPIOC,GPIO_Pin_9);     //高電平無效   PC9對應Y0
  104.                                  {         GPIO_ResetBits(GPIOC,GPIO_Pin_9);   //低電平有效   PC9對應Y0
  105.                                   }               
  106.                                   else
  107.                                   { GPIO_SetBits(GPIOC,GPIO_Pin_9);     //高電平無效   PC9對應Y0
  108.                                
  109.                                    }
  110.                    }                 
  111.                   
  112.          if( P_FG==TRUE)  
  113.            {                
  114.                            //PWM波輸出,調節燈光亮度
  115.                                 if( timer_tick_count>=TIME_1MS)     //頻率為1K    產生PWM波形                       
  116.                                   {        timer_tick_count=0;                   //周期值清零                                   
  117.                                   }                  
  118. ……………………

  119. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
完成版 - 副本.rar (235.3 KB, 下載次數: 47)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:65956 發表于 2019-5-22 08:16 | 只看該作者
如果按你畫的PCB板去作成品,肯定危險太大,而且肯定老會死機,一是你的繼電器設計控制接口沒有進行強弱電隔離措施,二是你的單片機晶振離單片機太遠,一干擾單片機就掛了,看來是個布板新手
回復

使用道具 舉報

板凳
ID:488831 發表于 2019-5-22 20:25 | 只看該作者
aking991 發表于 2019-5-22 08:16
如果按你畫的PCB板去作成品,肯定危險太大,而且肯定老會死機,一是你的繼電器設計控制接口沒有進行強弱電 ...

對的,pcb還不熟
回復

使用道具 舉報

地板
ID:488831 發表于 2019-5-22 20:32 | 只看該作者
aking991 發表于 2019-5-22 08:16
如果按你畫的PCB板去作成品,肯定危險太大,而且肯定老會死機,一是你的繼電器設計控制接口沒有進行強弱電 ...

謝謝指教。
回復

使用道具 舉報

5#
ID:488831 發表于 2019-5-22 20:38 | 只看該作者
aking991 發表于 2019-5-22 08:16
如果按你畫的PCB板去作成品,肯定危險太大,而且肯定老會死機,一是你的繼電器設計控制接口沒有進行強弱電 ...

強弱電隔離措只要把220v的獨立一塊和其他線幾乎沒有交集就可以了吧?
回復

使用道具 舉報

6#
ID:543840 發表于 2019-6-23 09:50 | 只看該作者
請問這個的PCB圖和原理圖有嗎,你發的文件里面貌似沒有
回復

使用道具 舉報

7#
ID:488831 發表于 2019-6-24 15:30 | 只看該作者
浮夢先森 發表于 2019-6-23 09:50
請問這個的PCB圖和原理圖有嗎,你發的文件里面貌似沒有

原理圖按照Proteus仿真圖照搬過來加上電源模塊就行了,加一下封裝就可以畫pcb了,因為這個的pcb當時我是剛剛學,隨便畫的,不怎么好,還是自己畫一個吧。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表