《《单片机及应用》课程设计报告书--消毒柜控制电路的设计.docx》由会员分享,可在线阅读,更多相关《《单片机及应用》课程设计报告书--消毒柜控制电路的设计.docx(51页珍藏版)》请在优知文库上搜索。
1、单片机及应用课程设计报告书课题名称消毒柜控制电路的设计摘要第一部分:题目要求(01)第二部分:方案论证与选择(02)第三部分:电路设计与参数选择(03)第四部分:系统软件设计(04)第五部分:系统调试与仪器使用(15)第六部分:使用说明书(16)总结(16)摘要本作品是以STC89C52RC芯片为核心,DS18B20温度传感器、LCD1602显示、电子开关管等电路构成的智能消毒柜控制电路。这种智能消毒柜控制电路具有温度测量、温度反馈、恒温控制、定时开启以及定时关闭等一系列功能。第一部分题目要求一、基本要求我们要设计一台消毒柜控制系统,要求:(1)显示消毒柜温度、保持时间;可以键盘设定消毒柜温度
2、、定时时间;可以实现实时中断功能;消毒后自动关机;测温误差:v.5;定时误差:20秒/月。;二、发挥与创新部分我们设计的消毒柜控制系统,摒弃了只有传统的开启与关闭功能,通过对STC89C52RC芯片的充分利用,给其增加了温度反馈和定时开启、关闭的功能,并且使其能在温度到达设定温度时自动恒温。而且能定时开启或定时关闭。第二部分方案论证与选择一、系统主要部分有:1:中央处理器电路:采用单片机芯片机外围电路构成最小系统。2:温度探测电路:DS18B20温度传感器3:人机接口电路:包括按键电路、LCDI602显示电路。4:信号处理电路:包括传感器、信号处理、等电路。5:执行部件电路:包括显示器、状态指
3、示灯。二、方案论证及选择1、加热管控制部分由于市场上有许多的消毒柜,从而想用单片机来实现消毒柜的恒温功能和定时功能,通过5个按键代替市场上消毒柜的按键,分别为开启,关闭、左右、上下设定。通过反馈的温度于设定温度进行比较,从而控制MOS管的导通与关闭。通过按按键可设定定时时间以及设定温度,从而可以控制定时开启或者定时关闭。2、测温部分测温部分是基于DS18B20温度传感器的探测,然后实时传输给1602显示器。并且设有恒温系统。当环境温度等于设定温度时状态指示灯灭,加热管断开。当环境温度低于设定温度时状态指示灯亮,加热管导通。第三部分电路设计与参数选择单片机最小系统电路设计和元件的选择产品说明书尹
4、运:连gen 藤攫济 瞄yfill- M :!: : SS* VWwWaftMW5fil少,余*秀,w(主电路图)主控MCU4pinSW-PBS7Pl.OUlPlGtD5V GND RXD TXDHC-O5蓝牙-口 11.0592MHZPLl2Pl 23PL3 4PL4 5Pl 56PL67Pl ;S9-11PC 二P3.313P3414P3 515C2 I30pf16 亘 逋 79 为01234567 Tol 234 5 67AIAIDIlIIIIIIS 33333333PppppppprppppppppxxgVCC P0.0 P0.1 P0.2 P0.3 P0.4 PO. 5 P0.6 P
5、0.7 EAALEPROG PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0,1M28P2.727 、P2 626P23Ti- P2.33322-Ti-GNDSTC89C52+5V L3T P3.5470R (主控)J2-5V31GNDDS18B20GNDLCDl602液晶显示屏温度传感器VDDIOGND(温度检测电路)(显示电路)制冷电机与散热电机驱动电路(外围控制电路)第四部分软件设计部分一、/*/*产品名称:消毒柜控制电路的设计/*成员:吴延、夏昕、苏梦野、郭美辰/*日期:2017.12.6*/Sinclude#includeSincludedef
6、ineuintunsignedintdefineucharunsignedcharSdefineulunsignedlong/*键盘使用o口*/sbitkeyl=P00;sbitkey2=P0l;sbitkey3=P02;sbitkey4=P03;sbitkey5=P04;/*制冷设备使用o口*/sbitmotorcoldled=P35;定时指示灯sbitSCP=P27;加热管(散热电机口)sbitDQ=P23;DS18B20温度传感器/*液晶使用I/O*/sbitLCDRS=P34;液晶数命选择端sbitLCDRW=P33;/液晶读写选择端sbitLCDEN=P3,2;定义使能端ucharn
7、um,numl,num2,gel,bail,shi1,ge2,shi2,count,s,m,h,ms,bai3,shi3,ge3;定义全局变量ucharflag=0;ON/OFF标志位ucharwendu2=125;设定温度ucharkey_flag=0;按键标志位ucharTimejflag=I;显示(+)显示(一)标志位UChartime_flag=O;判断是否进入了定时模式标志位。为无,1为有uintwendu;uchara=0;亳秒ucharb=0;秒uintc=0;分钟ucharflag2=0;开始后是否进入模式二标志位ucharflag_T2_2=0;进入模式二voiddispla
8、y();voidspeed();voidopenO;voidstar();voidsto();voidTimeO;voidTimerchoseO;uintGet_Tmp();获取温度gettheWendueraturevoidDisplay(uintwendu);voidspeedO;voidif_time();判断是否进入定时模式voidkayscan();按键函数voiddelajns(uinttime)延时函数uintx,y;for(x=time;x0;x-)for(y=110;y0;y-);void motor_init()指示灯初始化P2=0X00;motor_cold_led=l;
9、count=0;进入时间设定时候的延时ms=0;毫秒s=0;秒m=0:分钟h=0;小时voidinit()初始化子程序/AUXR&=0x7F;定时器时钟12T模式TMOD&=OxFO;设置定时器模式TMODI=0x11;设置定时渊模式TLO=0x00;设置定时初值IOmsTHO=OxDC;设置定时初值TLl=0x00;设置定时初值20msTHl=0xB8;设置定时初值ETO=1;打开定时器TO中断ETl=1;打开定时器TI中断TFO=0;TFl=0;EA=1;开总中断voidT0_time(void)interrupt1(TLO=0x00;设置定时初值IOmsTHO=OxDC;设置定时初值ms
10、+;if(ms=50)motor_coldIed=I;if(ms=100)如果记到100次说明IS已到InS=0;/num清0重新计数motor_cold_led=O;s+;)if(s=60)(s=O;m+;)if(m=30)(m=0;h=h+5;)if(h=num2)(h=0;TRO=O;if(Timerflag=I)(StopO:if(TimerfIag=O)star();voidTltimeOinterrupt3定时器1(TLl=0x00;设置定时初值20msTHl=0xB8;设置定时初值a+;if(a=50)(a=0;亳秒b+;秒if(b=60)(b=0;秒c+;分钟if(c=999)
11、TRl=O;)/*液晶显示部分*/voidwrite_com(ucharcom)指令函数(LCDRS=O;LCDRW=O;Pl=com;delayms(5);LCDEN=I;delans(5);LCDEN=O;voidwirtcdat(uchardat)数据函数(LCDRS=I;LCDRW=O;Pl=dat;delayms(5);LCDEN=I;delayms(5);LCDEN=O;voidlcd_init()液晶初始化(LCDEN=O;write_com(0x38);write_com(OxOc);各种指令write_com(0x06);write_com(0x01);voidLCD_P0S
12、(ucharPOS)(writecom(POS+0X80);地址函数voiddisplay_init()显示函数初始化(固定不变的字)(LCD_P0S(0X0a);Wirtedat(T);Wirtedat(;LCD_POS(0X46);Wirtedat(T);wirtedat(,i,);wirte_dat(m);wirte_dat(e);wirtedatdisplayO;)/Welcome ToiControl systemvoiddisplay2_init()(LCD_POS(0X00);wirtedat();Wirtjdat(,);wirte_datCW,);wirtedat(e);wirte_dat(,);wirte_dat(c);wirtedat(o);wirte_dat(,m,);wirte_dat(e);LCDPOS(OXOB);wirte_dat(T);wirte_dat(o);wirtedatLCD_P0S(0X41);wirte_dat(C);wirte_dat(o);wirtedat(n);wirte_dat(t);wirte_dat(r);wirtedat(,o,);Wirtedat(,);LCD_P0S(0X49);Wirtedat(S);