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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3803|回復: 6
打印 上一主題 下一主題
收起左側(cè)

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

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:488831 發(fā)表于 2019-5-21 22:02 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
ds18b20測水溫,利用三個繼電器控制三個加熱棒加熱(這里用電燈代替加熱棒仿真,暫設計控溫溫度為36度),三個加熱棒功率為大中小三個。當?shù)陀?0度時,三個加熱棒同時工作,當溫度在30~35度時,小中兩個加熱棒工作,到達35度時只有小功率加熱棒工作,36度時加熱棒全部不工作。
注意:繼電器的選擇,恒溫控需考慮PID,防止繼電器震蕩而加熱棒溫度猛烈增高不受控制,實驗時也請使用小功率的加熱棒實驗,防止發(fā)生意外,切記。道路千萬條,安全第一條,行車不規(guī)范,親人兩行淚(特別是使用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; //定時器節(jié)拍
  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轉(zhuǎn)換*/
  55.                  value=Get_ADC_Value(ADC_Channel_11,30);     //光電傳感器,在沒有放書的情況下,不會觸發(fā),只要放到上面有書籍,就要觸發(fā)。
  56.                    vol=(float)value*(3.3/4096);    //轉(zhuǎn)換完成之后的值
  57.            i=(int)vol;    //數(shù)據(jù)類型需要強制轉(zhuǎn)換         
  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波輸出,調(diào)節(jié)燈光亮度
  99.                                 if( timer_tick_count>=TIME_1MS)     //頻率為1K    產(chǎn)生PWM波形                       
  100.                                   {        timer_tick_count=0;                   //周期值清零                                   
  101.                                   }                  
  102.                                 if( timer_tick_count<PWM_TAB[a])     //調(diào)節(jié)占空比
  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波輸出,調(diào)節(jié)燈光亮度
  115.                                 if( timer_tick_count>=TIME_1MS)     //頻率為1K    產(chǎn)生PWM波形                       
  116.                                   {        timer_tick_count=0;                   //周期值清零                                   
  117.                                   }                  
  118. ……………………

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

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


評分

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

查看全部評分

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

使用道具 舉報

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

使用道具 舉報

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

對的,pcb還不熟
回復

使用道具 舉報

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

謝謝指教。
回復

使用道具 舉報

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

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区日 | 视频在线观看一区二区 | 亚洲精品国产a久久久久久 午夜影院网站 | 色婷婷精品国产一区二区三区 | 九九在线 | 亚洲色欲色欲www | 九九热精品在线 | 精品久久久久一区二区国产 | 日韩久久久久 | 色综合一区 | 日韩高清av | 一区二区不卡高清 | 久久久久久久久一区 | 欧美精品一区二区在线观看 | 欧洲精品一区 | 亚洲 欧美 日韩在线 | 老外黄色一级片 | 免费a级毛片在线播放 | 99亚洲精品| 国产一区二区三区不卡av | 欧洲亚洲精品久久久久 | 久久亚洲综合 | 日操夜操| 九九精品在线 | 天天夜天天操 | 日本一区二区三区视频在线 | 亚洲日日夜夜 | 日韩一区二区三区av | 欧美三区视频 | 免费观看黄色片视频 | 午夜精品久久久久久久久久久久久 | 天堂久久天堂综合色 | 欧美黄色录像 | 日韩在线一区二区三区 | 久久午夜国产精品www忘忧草 | 一级黄色裸片 | 最近最新中文字幕 | 久久久成 | 日本福利视频免费观看 | 视频二区| 久热国产在线 |