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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

簡簡單單加熱焊臺 附單片機程序

  [復制鏈接]
跳轉到指定樓層
樓主
因為要求不高 剛好需要的芯片有庫存   做了個簡單的加熱焊臺   也可以加熱金屬的水杯什么的
設定溫度最大280攝氏度,最小10度,可以在程序中修改,   程序很簡單沒有注釋,

12v供電  線盡量粗一點  我用的2.5平方的  開關電源200w以上吧   

單片機源程序如下:
  1. //#include <reg51.H>
  2. #include <STC12C5A60S2.H>

  3. #include <intrins.h>

  4. #define uchar unsigned char
  5. #define uint unsigned int
  6.         
  7. #define FOSC 11059200L

  8. uint MAX6675_Temper;


  9. unsigned char EC11_Dir = 0;//方向標志
  10. unsigned char TestValue = 0;
  11. sbit PIN_EC11_A = P1^6;
  12. sbit PIN_EC11_B = P1^4;

  13. sbit PIN_EC11_c = P1^5;
  14. sbit PIN_EC11_key = P1^7;

  15. sbit P2_0 = P2^0;
  16. sbit P2_1 = P2^1;
  17. sbit P2_2 = P2^2;
  18. sbit P2_3 = P2^3;        

  19. sbit sh=P3^0;
  20. sbit st=P3^1;
  21. sbit oe=P3^2;
  22. sbit ds=P3^3;



  23. sbit MAX6675_CS  = P3^5;
  24. sbit MAX6675_CLK = P3^6;
  25. sbit MAX6675_DAT = P3^4;


  26. sbit jiare = P3^7;

  27. sbit beep = P0^1;

  28. bit wdbg;//設定溫度變更標志位


  29. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};

  30. uint num;
  31. uint shedingwd,sdjs;
  32. uint shijiwd;


  33. void Delay2us()                //@11.0592MHz
  34. {
  35.         unsigned char i;

  36.         _nop_();
  37.         _nop_();
  38.         i = 2;
  39.         while (--i);
  40. }

  41. void Delay2ms()                //@11.0592MHz
  42. {
  43.         unsigned char i, j;

  44.         i = 22;
  45.         j = 128;
  46.         do
  47.         {
  48.                 while (--j);
  49.         } while (--i);
  50. }



  51. void Timer0Init(void)                //1毫秒@11.0592MHz
  52. {
  53.         //TMOD &= 0xF0;                //設置定時器模式
  54.         TMOD &= 0xF0;                //設置定時器模式
  55.         TMOD |= 0x01;                //設置定時器模式
  56.         TL0 = 0x91;                //設置定時初始值
  57.         TH0 = 0xFF;                //設置定時初始值
  58.         TF0 = 0;                //清除TF0標志
  59.         TR0 = 1;                //定時器0開始計時
  60. }

  61. void Timer1Init(void)                //1毫秒@11.0592MHz
  62. {
  63.         AUXR |= 0x40;                //定時器時鐘1T模式
  64.         TMOD &= 0x0F;                //設置定時器模式
  65.         TL1 = 0xCD;                //設置定時初始值
  66.         TH1 = 0xD4;                //設置定時初始值
  67.         TF1 = 0;                //清除TF1標志
  68.         TR1 = 1;                //定時器1開始計時
  69. }


  70. void HC595SendData(unsigned char Data)
  71. {
  72.         unsigned char i;

  73.         st=0;
  74.         sh=0;
  75.         for(i=0;i<8;i++)
  76.         {
  77.                 ds=Data&0x80;
  78.                 Data=Data<<1;
  79.                 sh=1;
  80.                 sh=0;
  81.         }
  82.         st=1;        
  83.         st=0;
  84. }



  85. uint MAX6675_ReadDat()
  86. {
  87.   uint d;
  88.         uchar i;

  89.   MAX6675_CS=0;
  90.         MAX6675_CLK=0;
  91.         
  92.         Delay2us();
  93.   for(i=0;i<16;i++)
  94.   {
  95.                 d<<=1;
  96.                 Delay2us();
  97.     MAX6675_CLK=1;
  98.                 if(MAX6675_DAT)
  99.      d++;
  100.                  Delay2us();
  101.                  MAX6675_CLK=0;
  102.   }
  103.   MAX6675_CS=1;
  104.   return d;
  105. }

  106. void MAX6675_ReadTemper()
  107. {
  108.   uint d;
  109.         
  110.   d=MAX6675_ReadDat();//讀取MAX6675當前的溫度值
  111.   MAX6675_Temper=((d>>3)&0x0fff)*0.25;
  112. }


  113. void display(void);

  114. void _ec11_drives(void);


  115. uint a,b;
  116. void delay(uchar t)                  // 延時函數
  117. {
  118.         uchar t1;
  119.         unsigned long t2;
  120.         for(t1=0;t1<t;t1++)
  121.         {
  122.                 for(t2=0;t2<b;t2++);
  123.         }
  124.         
  125. }

  126. uint sd;
  127. void beep2()
  128. {
  129.         b=11;
  130.         for(a=0;a<300;a++)
  131.         {
  132.         beep=~beep;
  133.                 delay(1);
  134.         }
  135. }
  136.         

  137.         /***************************************/
  138.         /***************************************/
  139.         /***************************************/
  140. void main()
  141. {
  142.         
  143.         
  144.                 b=25;
  145.         for(a=0;a<600;a++)
  146.         {
  147.         beep=~beep;
  148.                 delay(1);
  149.         }
  150.         
  151.                 b=20;
  152.         for(a=0;a<850;a++)
  153.         {
  154.         beep=~beep;
  155.                 delay(1);
  156.         }
  157.         
  158.         b=15;
  159.         for(a=0;a<1000;a++)
  160.         {
  161.         beep=~beep;
  162.                 delay(1);
  163.         }
  164.         
  165.         beep=1;
  166.         Timer0Init();
  167.         Timer1Init();
  168.         EA=1;
  169.         ET0=1;        

  170.         oe=0;
  171.                
  172.         shedingwd=20;
  173.                
  174.         jiare=1;
  175.                
  176.         PIN_EC11_c = 0;
  177.         sd=shedingwd;
  178.         while(1)
  179.         {
  180.                

  181.                
  182.                 if(wdbg==1)
  183.                 {
  184.                         ET1=1;
  185.                         num=shedingwd;
  186.                 }
  187.                 else
  188.                 {
  189.                         num= MAX6675_Temper;
  190.                 }
  191.                
  192.                 if(MAX6675_Temper+2<shedingwd)
  193.                         jiare=0;
  194.                 else
  195.                         jiare=1;
  196.                
  197.                 display();
  198.                
  199.                 if(!PIN_EC11_key)
  200.                 shedingwd=100;
  201.                
  202.                 if(shedingwd>=280)
  203.                         shedingwd=280;
  204.                 if(shedingwd<=10)
  205.                         shedingwd=10;

  206.                 if(sd!=shedingwd)
  207.                 {beep2();
  208.                         sd=shedingwd;
  209.                         beep=1;
  210.                 }

  211.         }        
  212.         
  213. }

  214. void time0(void) interrupt 1
  215. {
  216.         uint i;
  217.         TL0 = 0x91;                //設置定時初始值
  218.         TH0 = 0xFF;                //設置定時初始值

  219.                 _ec11_drives();
  220.         
  221.         i++;
  222.         if(i==5000)
  223.         {i=0;
  224.                 MAX6675_ReadTemper();
  225.         }

  226. }

  227. void time1(void) interrupt 3
  228. {
  229.         uint j,k;
  230.         TL1 = 0xCD;                //設置定時初始值
  231.         TH1 = 0xD4;                //設置定時初始值

  232.         
  233.         if(k++>1000)
  234.         {
  235.         k=0;
  236.                 sdjs++;
  237.                 j++;
  238.         
  239.         }
  240.         
  241.         if(j<3)
  242.                 oe=1;
  243.         else
  244.                 oe=0;
  245.         if(j>5)
  246.                 j=0;
  247.         
  248.         
  249.         if(sdjs>30)
  250.         {
  251.         sdjs=0;
  252.                 ET1=0;
  253.                 wdbg=0;
  254.                 oe=0;
  255.         }

  256. }


  257. void display(void)
  258. {
  259.         HC595SendData(table[num%10]);
  260.         P2_3=0;
  261.         Delay2ms();
  262.         P2_3=1;
  263.         
  264.         HC595SendData(table[num%100/10]);
  265.         P2_2=0;
  266.         Delay2ms();
  267.         P2_2=1;
  268.         HC595SendData(table[num%1000/100]);
  269.         P2_1=0;
  270.         Delay2ms();
  271.         P2_1=1;
  272.         HC595SendData(table[num/1000]);
  273.         P2_0=0;
  274.         Delay2ms();
  275.         P2_0=1;        

  276. }

  277. void _ec11_drives(void)//中斷10us中調用
  278. {
  279.         
  280.         static unsigned char CheckCnt,EC11Status=0;

  281.         if(PIN_EC11_A)
  282.         {
  283.                
  284.                 if(++CheckCnt > 10)//在中斷中調用 值為2即可,快速掃描,適當加長可提高防抖效果。
  285.                 {
  286.                         CheckCnt = 12;
  287.                         if(EC11Status==0)
  288.                         {
  289.                                 if(PIN_EC11_B)
  290.                                 {
  291.                                         EC11_Dir = 0x55;
  292.                                         shedingwd-=5;
  293.                                 }
  294.                         }
  295.                         EC11Status =1;
  296.                 }
  297.         }
  298.         else
  299.         {
  300.                 wdbg=1;sdjs=0;
  301.                 if(CheckCnt)
  302.                 {
  303.                         CheckCnt--;
  304.                 }
  305.                 else
  306.                 {
  307.                         if(EC11Status)
  308.                         {
  309.                                 EC11Status=0;
  310.                                 if(PIN_EC11_B)
  311.                                 {
  312.                                         EC11_Dir = 0xaa;
  313.                                         shedingwd+=5;
  314.                                 }
  315.                         }
  316.                 }
  317.         }
  318. }


復制代碼


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:57657 發表于 2022-7-17 11:34 | 只看該作者
最小10度,室溫多少度? 還帶制冷的嗎?
回復

使用道具 舉報

板凳
ID:88256 發表于 2022-7-17 12:34 | 只看該作者
12V供電的是什么加熱板?
回復

使用道具 舉報

地板
ID:8222 發表于 2022-7-17 17:43 | 只看該作者
如果能有300度的PTC就好了,感覺現在的270拆LED溫度有點低。
回復

使用道具 舉報

5#
ID:834389 發表于 2022-7-17 22:46 | 只看該作者
npn 發表于 2022-7-17 11:34
最小10度,室溫多少度? 還帶制冷的嗎?

額  沒這個功能  只能加熱不能制冷  
回復

使用道具 舉報

6#
ID:834389 發表于 2022-7-17 22:57 | 只看該作者
本帖最后由 735251 于 2022-7-17 23:22 編輯
溫xyz 發表于 2022-7-17 17:43
如果能有300度的PTC就好了,感覺現在的270拆LED溫度有點低。

實測 如果電源功率夠的話  溫度上升的蠻快的  ,
其實大佬說 最好加熱板最大溫度不宜超 260度    不然絲印層容易脫落,銅皮氧化造成加熱不均勻,斷路 等等
回復

使用道具 舉報

7#
ID:834389 發表于 2022-7-17 23:22 | 只看該作者
hhdsdy 發表于 2022-7-17 12:34
12V供電的是什么加熱板?

希爾伯特走線   開源平臺 搜下   
根據自己需要修改下   功率越大 加熱越快   
回復

使用道具 舉報

8#
ID:834389 發表于 2022-7-17 23:54 | 只看該作者
本帖最后由 735251 于 2022-7-17 23:58 編輯
溫xyz 發表于 2022-7-17 17:43
如果能有300度的PTC就好了,感覺現在的270拆LED溫度有點低。

實測  這片加熱板 不要控制板直接接12v電源 溫度在260度不會上升了  環境.電源功率,質量 等影響可能達不到,稍微提高電壓可以使溫度上升,但板子壽命會降低,或損壞
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日噜噜噜夜夜爽爽狠狠视频, | 91伦理片 | 在线免费观看色 | 国产精品久久久久久52avav | 久久中文网 | 国产一级免费在线观看 | 国产一区在线免费观看视频 | 久久夜夜 | 欧美久久一区 | 成人影院在线 | 日日夜夜天天久久 | 日韩欧美国产精品一区二区三区 | 国产区视频在线观看 | 性做久久久久久免费观看欧美 | 欧美一卡二卡在线 | 在线免费看91 | 91视视频在线观看入口直接观看 | 日韩精品成人网 | 日韩精品一区二区三区中文在线 | 女同久久另类99精品国产 | 欧美激情va永久在线播放 | 久久精品成人 | 欧美综合在线观看 | 亚洲免费视频在线观看 | 91在线精品一区二区 | 91久久国产综合久久91精品网站 | 日本精品一区二区三区在线观看视频 | 精品乱码一区二区 | 国产 欧美 日韩 一区 | 小川阿佐美pgd-606在线 | www.国产 | 国产美女在线观看 | 亚洲国产情侣 | 国产精品成人一区二区 | 久久精品一区二区三区四区 | 国产精品高潮呻吟久久 | 91免费看片 | 九九久久久 | 超碰地址 | 日韩伦理电影免费在线观看 | 国产99久久久久 |