




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
偶然弄了两根T12的烙铁芯。学习了它的相关知识自己瞎捣鼓了一下,利用一个杂牌936焊台的主机壳子用3d打印机打了一个面板。这个山寨版的控制器大致功能如下:1.按键调节温度高低并用数码管显示出来,按键短按依次加减,按键长按快速加减。本次开机后默认上次关机前的调节温度。(正在弄还没有实现)带有休眠功能,烙铁放在烙铁架上一段时间后自动降温到一设定值,达到休眠目的。从烙铁架上拿起来后恢复到原来设定的温度。慢慢再补充。先从电路做起描述:STC15F204T12温控焊台电路图图片:电路.gif制作过程图片:01.jpg图片:02.jpg图片:03.jpg电路基本搞定,再来面板。CAD初学,简单弄的面板图片:面板02.png图片:面板01.png简易3D打印机图片:11(6).jpg图片:12(5).jpg按键,用红色材料图片:按键01.png图片:14.jpg图片:15(4).jpg打好,去掉毛边和支撑物图片:16.jpg图片:17(3).jpg还挺匹配的图片:18(2).jpg临时装上去,看看效果图片:20.jpg数码管看着不犀利有办法,找了一条深颜色的汽车贴膜贴上去图片:13.jpg果然帅多了图片:11.jpg装好图片:10.jpg开烧。。。。图片:02.jpg电路稍微做了调整,LM358放大倍数调整为200多倍。描述:STC15F204T12温控焊台电路图图片:1.jpgSTC15F204_T12_C.rar(45K)下载次数:2C程序如下。头文件、源程序、电路图上面附件中也有,初学阶段仅供参考。待机状态温度显示基本稳定上下浮动1、2度,使用状态遇到大焊点会偏差几度,这个以后慢慢学习改进。#include"STC15F204EA.h"#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitbaiwei=P3八7;sbitshiwei=P3A6;sbitgewei=P3A5;sbitdanwei=P3A4;sbitdian=P2A3;sbitout=P3A3;sbitup=P3A2;sbitdown=P3A1;sbitxiumian=P1A0;ucharcodeled[]={0xd7,0x42,0xe5,0xe6,0x72,0xb6,0xb7,0xc2,0xf7,0xf6};//定义数码管0-9数组uintADC_result6,shan_sz,shan_dw,wendu,sheding,aa,tt01,tt_xm1,tt_xm2,tt_aj,js_xm;ucharsheding_bz,jiare_bz,bz1,bz2,qieh_w,tt00,jiareshu,bz_xs,tt1,ab1,ab2,fen,miao;//定义变量voiddelay(uintz)//延时{uintx,y;for(x=z;x>0;x--)for(y=100;y>0;y--);}/*********AD转换,得出热电偶被放大后的电压值*x**x*/*Y**Y**y**Y**Y**y**Y**Y**y*1uintget_ad_result(ucharchannel){ucharad_finished=0;//存储A/D转换标志ADC_RES=0;//高8位清零ADC_RESL=0;//低2位清零channel&=0x07;//00000111清零高5位
ADC_CONTR=0x60;//转换速率为70个时钟周期转换1次_nop_();ADC_CONTR|=channel;//选择A/D当前通道_nop_();ADC_CONTR|=0x80;〃启动A/D电源delay(1);//延时一下使输入电压达到稳定ADC_CONTR|=0x08;//0000,1000令ADCS=1,启动A/D转换,//等待//等待while(ad_finished==0)A/D转换结束{ad_finished=(ADC_CONTR&0x10);//0001,0000测试A/D转换结束否
}ADC_CONTR&=0xE7;//1111,0111清ADC_FLAG位,关闭A/D转换,return(ADC_RES*256+ADC_RESL);//返回A/D高8位+低2位转换结果}/*********初始化*********/voidinit(){TMOD=0x11;//设定定时器工作方式EA=1;//开总中断ET0=1;//开定时器0TR0=1;//启动定时器01ms1msTH0=(65536-1000)/256;//高TH0=(65536-1000)/256;//高8位装初值TL0=(65536-1000)%256;//低8位装初值ET1=1;//开定时器1TR1=1;//启动定时器1TH1=(65536-2000)/256;2msTL1=(65536-2000)%256;//低8位装初值}/********EEPROM读写程序*******/voidOPEN_IAP()//开启ISP/IAP{EA=0;//关闭总中断避免中断影响IAP_CONTR=0x82;〃允许ISP/IAP,系统时钟<20Mhz时,}voidCLOSE_IAP()//关闭ISP/IAP//高8//高8位装初值设置等待时间IAP_CONTR=0x00;//禁止ISP/IAPIAP_ADDRH=0xFF;IAP_ADDRL=0xFF;EA=1;}uintREAD_IAP_BYTE(ucharaddr)〃从EEPROM指定单元中读数据{IAP_CMD=0x01;IAP_ADDRH=(addr&0xFF00)>>8;IAP_ADDRL=addr&0x00FF;IAP_TRIG=0x5A;IAP_TRIG=0xA5;〃对IAP_TRIG先写0x5A再写0xA5,命令才会生效returnIAP_DATA;}voidERASE_IAP_SECTOR(intaddr)//写数据前要先擦除扇区{IAP_CMD=0x03;IAP_ADDRH=(addr&0xFF00)>>8;IAP_ADDRL=addr&0x00FF;IAP_TRIG=0x5A;IAP_TRIG=0xA5;〃对IAP_TRIG先写Ox5A再写OxA5,命令才会生效}voidWRITE_IAP_BYTE(intaddr,ucharwriteval)//把一个字节写入指定单元{IAP_CMD=0x02;IAP_ADDRH=(addr&0xFF00)>>8;IAP_ADDRL=addr&0x00FF;IAP_DATA=writeval;IAP_TRIG=0x5A;IAP_TRIG=0xA5;〃对IAP_TRIG先写Ox5A再写0xA5,命令才会生效}/*********主程序********/voidmain(){init();P1ASF=0x40;//01000000将P1.6置为模拟口//0000AUXR1|=0x04;//00000100令ADRJ=1,10位A/D转换结果的最高2位放在ADC_RES寄存器,低8位放在ADC_RESLADC_CONTR|=0x80;//打开A/D转换电源启动A/D转换P3M0=0xf8;//11111000设定P3.3/4/5/6/7口为强推挽输出模式P2M0=0xff;//11111111设定P2口为强推挽输出模式jiare_bz=1;out=0;sheding_bz=0;delay(500);〃初始化后适当延时后再读写EEPROM,保证有效性OPEN_IAP();ab1=READ_IAP_BYTE(0x0001);//读出保存的百位ab2=READ_IAP_BYTE(0x0002);//读出保存的十位、个位CLOSE_IAP();sheding=ab1*100+ab2;//算出上次的设定值,高两位*100+低两位if(sheding<2000)sheding=2000;//如果设定值过低默认成2000while(1){if(sheding_bz)〃写入EEPROM,每次更改设定值后写入一次{out=0;OPEN_IAP();//开启ERASE_IAP_SECTOR(0x0001);//擦除扇区WRITE_IAP_BYTE(0x0001,sheding/100);//设定值的百位写入0001地址WRITE_IAP_BYTE(0x0002,sheding%100);//设定值的十位、个位写入0002地址CLOSE_IAP();//关闭sheding_bz=0;//标志置0,使得写EEPROM操作运行一次即可jiare_bz=1;}}}voidtimer0()interrupt1//定时器0中断程序1ms{TH0=0xfc;//(65536-1000)/256TL0=0x18;//(65536-1000)%256/**************按键检测、测温、加热程序***************/if((up&down)==0){bz_xs=1;//显示切换标志置1tt01=0;//计时变量tt01置0bz2=1;//标志2置1jiare_bz=0;//加热标志置0miao=0;fen=0;//按键按下清除休眠计时shan_dw=0;shan_sz=0;if(tt_aj<1000)tt_aj++;if(tt_aj>500)//超过500ms说明是长按,1ms—次快速加减{if(up==0){if(sheding<4500)sheding++;}if(down==0){if(sheding>200)sheding--;}}else{if(bz1==0)//根据标志位情况短按自加减一次{if(up==0){if(sheding<4500)sheding+=10;}if(down==0){if(sheding>200)sheding-=10;}bz1=1;}}}else//按键抬起,测温、加热步骤{tt_aj=0;bz1=0;if(tt01<2000)tt01++;if(tt01>1500)//按键弹起1.5秒后显示标志置0显示实际温度{if(bz2)//标志2为1,设定标志置1,让新数值写入EEPROM{sheding_bz=1;bz2=0;//同时标志2置0,目的是让只写入一次即可
}bz_xs=0;}//加热标志为1时才启动加热动作{tt00++;if(jiareshu>tt00)elseif(wendu>4500)//超温停止加热if(tt00>=200)//加热200ms之后断电测温{if(jiare_bz)out=1;out=0;out=0;if(jiare_bz)out=1;out=0;out=0;if(tt00<205){out=0;if(tt00>203)//断电延时后采集热电偶温度数据ADC_result6=get_ad_result(6);//A/D转换6通道//wendu=ADC_result6*4.8;wendu=ADC_result6*8.0;//热电偶电压经过运放放大200多倍后采样显示,模拟大概温度if(fen<2)//休眠计时不到设定值时加热温度为设定温度aa=sheding+5;elseif(fen<5)//2-5分钟内温度降低为250度{if(sheding>2500)aa=2500;}elseif(fen<10){{//5-10分钟内降低为200度if(sheding>2000)aa=2000;if(fen<20)为150度if(sheding>1500)aa=1500;//超过20分钟为0}else//10-20分钟内}else//10-20分钟内{}elseaa=0;//烙if(aa-wendu>200)else}elseif(aa-wendu>200)else}elseif(a//逐渐逼近式加elseelseif(wendu-aa<=30)jiareshu=wendu-aa;jiareshu=0;//温度低于设定温度{a-wendu>400)热方式jiareshu=200;if(aa-wendu>300)jiareshu=180;
jiareshu=150;elsejiareshu=150;elseif(aa-wendu>100)elsejiareshu=130;elsejiareshu=aa-wendu+aa/100;}}else//加热、断电测量温度后充值计数变量tt00tt00=0;}}elseout=0;}}voidtimer1()interrupt3//定时器1服务程序2msTH1=0xf8;//(65536-2000)/256TL1=0x30;//(65536-2000)%256/***********显示程序************/if(bz_xs)//按键按下显示正在调整的数值wendu=sheding;//显示设定时的数值if(qieh_w>=3)〃位切换标识变量,2ms轮流显示一位休眠时数字闪亮qieh_w=0;elseqieh_w++;switch(qieh_w){case0:baiwei=0;//P2=led[wendu%10];P2=0x9d;//10011101显示单位°C度if(shan_dw<250)〃烙铁离开烙铁架时°C闪亮danwei=1;//显示单位elsedanwei=0;break;case1://4位数实际显示3位,最右一位不显示。比如1234显示123danwei=0;if(wendu>4500)P2=0x20;//温度超过4500显示---CelseP2=led[wendu%100/10];//显示个位if(shan_sz<250)//休眠时几位数字闪烁gewei=1;elsegewei=0;break;case2:gewei=0;if(wendu>4500)P2=0x20;elseP2=led[wendu%1000/100];//显示十位if(wendu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CHTS 10157-2024公路桥隧混凝土表观病害远程图像检测技术指南
- T/CHES 98-2023取水口设施标准化建设与管理技术规程
- T/CHC 1-2020电热保健功能桶(屋)
- T/CECS 10247-2022绿色建材评价刚性防水材料
- T/CECS 10117-2021湿气固化型缓粘结预应力钢绞线
- T/CECS 10095-2020户式辐射系统用新风除湿机
- T/CCT 013-2023兰炭生产业二氧化碳排放核算技术规范
- T/CCSAS 032-2023化学反应单元操作机械化、自动化设计方案指南
- T/CCMA 0149-2023旋挖钻机用液压缸技术要求
- T/CATCM 022-2023鹿茸片质量规范
- 全国爱眼日科学用眼预防近视9
- 2025 年上海社区工作人员招聘考试模拟卷
- 2025年医疗器械全国总策划代理协议书
- 《数据网组建与维护》课件-8.1任务1 WLAN基本配置
- 9.2 法律保障生活课件(共13张)-2024-2025学年统编版道德与法治七年级下册
- 《装备测试性工作要求GJB 2547B-2024》知识培训
- 形势与政策(2025春)超星尔雅学习通答案满分章节测试
- 外科学-上肢骨、关节损伤
- 单片机原理及应用知到智慧树章节测试课后答案2024年秋温州医科大学
- 《宁静住宅评价标准》
- 2025新人教版七年级下册英语Unit7知识点梳理及语法讲义(教师版)
评论
0/150
提交评论