单片机控制加热炉温度系统_第1页
单片机控制加热炉温度系统_第2页
单片机控制加热炉温度系统_第3页
单片机控制加热炉温度系统_第4页
单片机控制加热炉温度系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、黑龙江农业经济职业学院机电工程系毕业论文黑龙江农业经济职业学院毕业论文单片机控制加热炉温度系统设计姓 名: 杜 海 龙 指导教师: 闫 瑞 涛 专 业: 机电一体化技术 班 级 0 8 2 2010年7月20日目 录摘 要 1前 言21方案选择32器件选择33电路原理图4 3.1单片机最小系统部分4 3.2四位LED数码管显示部分43.3单片机串口通信电路64.工作原理65.实验中遇到的问题及分析11 5.1实验的扩展12 5.2心得体会12参考文献13结 论14谢 辞15- 16 -单片机控制加热炉温度系统设计摘 要: 本课题通过对单片机控制温度系统的分析,设计了单片机控制加热炉温度系统。详

2、细地叙述了单片机的应用性,整体方案的选择,重要零件型号的选择与程序编写,并对单片机的总体设计及单片机工作过程作了介绍。关键词: 单片机,温度,控制器前 言我设计的加热炉就是为了达到温度控制要求而进行设计的。我所采用的控制芯片为89C51,此芯片功能强大,能够满足设计要求。通过对电路的设计,对芯片的外围扩展,来达到对加热炉温度的控制和调节功能。单片机温度控制系统主电路采用89C51单片机实现温度控制,加热部分由于条件限制,只采用模拟的方式。电路可实现温度的显示,设置上下限温度,超出范围报警功能系统测量精度和控制精度良好。在检查程序时可以发现设计的不足,并找出原因给予纠正,并对各种辅助零进行适当的

3、调整和修理。 1方案选择(1)方案一 此方案是传统的一位式模拟控制方案,选用模拟电路,用电位器设定给定值,反馈的温度值和设定值比较后,决定加热或不回热。系统受环境影响大,不能实现复杂的控制算法,不能用数码显示,不能用键盘设定。(2)方案二 此方案是传统的二位式模拟控制方案,其基本思想与方案一相同,但由于采用上下限比较电路,所以控制精提高。这种方法还是模拟控制方式,因此也不能实现复杂的控制算法使控制精度做得较高,而且仍不能用数码显示和键盘设定(3)方案三 此方案采用89C51单片机系统来实现。单片机软件编程灵活、自由度大,可用软件编程实现各种控制看法和逻辑控制。可实现数码显示和键盘设定等多种功能

4、,系统电路框图如下:键盘设定89C51 单片机数码显示控制电路串行接口数据采集电源电路 电源电路 图 1 数码管和键盘电路框图方案一和方案二是传统的模拟控制方式,而模拟控制系统难以实现复杂控制规律,控制方案的修改也较麻烦。而方案三是采用以89C51为控制核心的单片机控制系统,尤其对温度控制,它可达到模拟控制所达不到的控制效果,并且可实现显示、键盘设定等多种功能,又易于扩展,大大提高了系统的智能化,也使得系统所测结果精度大大提高。故选择方案三。 2器件选择由于单片机最小系统板采用的是去年省赛的板子,所以受到了很多限制。如对系统精度至关重要的A/D转换换器,板子上采用的是ADC0809。因为是八位

5、的,所以精度不高,最多只能达到0.4度左右。但考虑到已有现成的板子,采用0809同样可达到实验的目的,所以A/D部分暂不作更改。传感器部分既可采用热敏电阻,也可采用集成的温度传感器。但由于热敏电阻的精度、重复性、可靠性都比较差,所以我们采用的集成的LM35,LM35是一个三端器件(电源、地、输出),的是NS公司生产的集成电路温度传感器系列产品之一,它具有很高工作精度和较宽的线性工作范围,该器件输出电压与摄氏温度线性成比例。LM35与用开尔文标准的线性温度传感器相比更有优越之处,LM35无需外部校准或微调,可以提供±1/4的常用的室温精度。其灵敏度为+10.0mV/,精度在+25时为0

6、.5。精度较高,并且价格较低,每片仅售6元。较之性能较好的AD590K便宜许多,性价比高。故采用LM35而舍弃AD590K。3电路原理图单片机最小系统电路:由于去年大赛的板子(旧板)是07级的学生设计的,故存在许多缺陷,具体表现在单片机和ADC0809之间的读写线接反,单片机P0口和ADC0809的数据线高低位接反。显示部分的74LS245多接了一个排阻。经过多次的检查,找出了错误。 最终的电路图如图示:3.1单片机最小系统部分 图 2 单片机最小系统 3.2四位LED数码管显示部分: 图 3 LED数码管显示3.3单片机串口通信电路RXDTXD: 3.3温度采集部分 图 4 串口通信 图 5

7、 报警电路 图 6 温控模拟4工作原理具体电路原理详见本组另一成员的报告,在此仅介绍系统的软件部分,我们总共写了两份程序,其中一份为我个人独立完成。下面为程序的主要流程图。主程序显示程序开始开始设初值设初值显示第一位?启动A/D转换是否调整?扫描三位扫描四位否是 退出显示数据转换程序开始显示否取数中断完毕?是转换送显缓串口通信程序转ASCII是否超限?TI为?超上限超下限清零未超报警送数返回返回 图 7 程序原理图;=下限温度调整=LOOP2: CLR EX0 JNB P1.3,$ MOV 62H,2BH MOV 61H,2AH MOV 60H,29H JB P1.2,L2 MOV A,2BH

8、 ADD A,#01 DA A MOV 2BH,A CJNE A,#10H,L1 MOV 2BH,#00L1: JNB P1.2,$L2: JB P1.1,L4 MOV A,2AH ADD A,#01H DA A MOV 2AH,A CJNE A,#10H,L3 MOV 2AH,#00L3: JNB P1.1,$L4: JB P1.0,L5 MOV A,29H ADD A,#01 DA A MOV 29H,A CJNE A,#10H,L5 MOV 29H,#00L5: JNB P1.0,$ SETB 30H ;是否显示第一位的标示位 MOV 63H,#0FH ;显示“下” MOV 62H,2B

9、H MOV 61H,2AH MOV 60H,29H LCALL DELAY JNB P1.4,TUI ;再次中断时,退出 LJMP LOOP2 TUI: MOV A,2BH CLR C CJNE A,2EH,AA ;比较上限是否低于下限 MOV A,2AH CJNE A,2DH,AA CJNE A,60H,E1 LJMP E2E1: JC SHANG_BAO LJMP E2;=超上限温度报警=SHANG_BAO: SETB P1.7 SETB P1.6 CLR P1.5 LJMP X2E2: CLR P1.5 CLR P1.6 CLR P1.7X1: MOV A,2BH CJNE A,62H,

10、E3 MOV A,2AH CJNE A,61H,E3 MOV A,29H CJNE A,60H,E3 LJMP E4E3: JNC XIA_BAO LJMP E4;=低于下限温度报警=XIA_BAO:SETB P1.7 SETB P1.5 CLR P1.6 LJMP X2E4: CLR P1.5 CLR P1.6 CLR P1.7X2: CLR 30H ACALL DELAY;=串口通信= MOV R3,#30H ;转ASCII码 MOV A,62H ADD A,R3 DA AMLP3: JBC TI,MLP2 ;当TI为时清 SJMP MLP3MLP2: MOV SBUF,A MOV A,6

11、1H ADD A,R3 DA A MLP5: JBC TI,MLP4 TT: MOV DPTR,#0FAFFHD2: MOVX DPTR,A DJNZ 30H,D2 ;十位 MOV 30H,#40 MOV DPTR,#TAB0 MOV A,60H MOVC A,A+DPTR MOV DPTR,#0FBFFHD3: MOVX DPTR,A DJNZ 30H,D3 ;个位 RETTAB0:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,; 0 1 2 3 4 5 6 7 7FH,6FH,77H,7CH,39H,5EH,79H,71H ; 8 9 A B C D E F DB 7

12、6H,78H,38H,6EH,00H ,77H,; H K L Y 无 RDELAY12: MOV R4,00H MOV R5,00H X3: DJNZ R4,$ DJNZ R5,X3 RET;-中断服务程序-INT0: PUSH A PUSH PSW MOV DPTR,#0BFFFH MOVX A,DPTR ;读A/D转换结果 MOV 2FH,#0FFH CLR CY ;程序调整高低位 RLC A JC N1 CLR 78H MOV A,29H CJNE A,2CH,AA LJMP XXX ;正常AA: JNC ERRO ;上限低于下限,跳转 XXX: SETB EX0 MOV A,R0 L

13、CALL XUAN LJMP WAITERRO: MOV 63H,#0EH ;显示“ERRO“ MOV 62H,#15H MOV 61H,#15H MOV 60H,#0H SETB 30H SETB 01HEEEE: LCALL DELAY JNB P1.3,XX1 ;是否重新调整 JNB P1.4,XX2 LJMP EEEEXX1: LJMP LOOP1XX2: LJMP LOOP2;=显示数据转换=Xian: MOV A,R0 MOV B,#100 MUL AB MOV R3,A MOV A,B MOV B,#10 DIV AB MOV R1,#62H MOV R1,A DEC R1 MO

14、V R1,B MOV A,R3 MOV B,#10 MUL AB DEC R1 MOV R1,B CLR 30H ACALL DELAY MOV A,2EH CJNE A,62H,E1 MOV A,2DH CJNE A,61H,E1 MOV A,2CHSJMP MLP5 MLP4: MOV SBUF,A MOV A,#46 ;小数点MLP8: JBC TI,MLP9 SJMP MLP8MLP9: MOV SBUF,A MOV A,60H ADD A,R3 DA AMLP7: JBC TI,MLP6 SJMP MLP7MLP6: MOV SBUF,A MOV A,#32MLP10: JBC TI

15、,MLP11 SJMP MLP10MLP11: MOV SBUF,A RET;=延时加显示=DELAY: MOV R3,#0A0HD00: ACALL DISPLAY DJNZ R3,D00 RETDISPLAY:JNB 30H,DD MOV 30H,#40 MOV DPTR,#TAB0 MOV A,63H MOVC A,A+DPTR MOV DPTR,#0F8FFHD0: MOVX DPTR,A DJNZ 30H,D0 ;千位DD: MOV 30H,#40 MOV DPTR,#TAB0 MOV A,62H MOVC A,A+DPTR MOV DPTR,#0F9FFHD1: MOVX DPTR

16、,A DJNZ 30H,D1 ;百位 MOV 30H,#40 MOV DPTR,#TAB0 MOV A,61H MOVC A,A+DPTR JB 01H,TT ADD A,#80HN1: RLC A JC N2 CLR 79HN2: RLC A JC N3 CLR 7AHN3: RLC A JC N4 CLR 7BHN4: RLC A JC N5 CLR 7CHN5: RLC A JC N6 CLR 7DHN6: RLC A JC N7 CLR 7EHN7: RLC A JC N8 CLR 7FHN8: MOV A,2FH MOV R0,A SETB 00H POP PSW POP A RET

17、I;=延时=DELAY1: MOV R6,#60DE1: MOV R7,#248 MOV R7,$ DJNZ R6,DE1 RET END5.实验中遇到的问题及分析()单片机最小系统方面由于是去年7级的同学设计的,我们用的又是旧板,故存在很多缺陷,一方面我们没有正确的原理图,只有一张其他同学随便画的图,就算有了原理图,也不知道板上错在哪里,所以只能用万用表一个个的找。通过我们的认真检查,结果发现不管是板上还是图纸上都出了相当大的错误,图上很多引脚都标注错误了,而板上就更是离谱了,居然把单片机和ADC0809的读写线接反,把单片机的P0口和ADC0809的数据线高低位接反,74LS245上还多接

18、了一个排阻,造成LED显示不正常。诸如上面的错误给我们造成了相当大的麻烦,因此我们花了相当长的时间在查错上。()由于传感器LM35的灵敏度是+10.0mV/,因此LM35的输出电压为毫伏级,温度为100时,输出也只有1V。而ADC0809的参考电压为伏,所以增益为才能满足要求,易于编程。本系统采用超低温漂移高精度运算放大器OP07将电压放大,再经电压跟随器LM310输出,以便有大的输入阻抗。由于买不到LM310,于是便将OP07接成电压跟随器替代LM310。而电路中的RW1调为K就满足增益为的要求。即(R1+Rf)/R1,其中Rf是反馈电阻,也就是RW1。()程序设计方面,因为是自己头一次尝试

19、独立完成一份相对规模较大程序,因些也遇到了不少的麻烦。第一是程序地址空间分配问题,因为单片机片内资源有限,往往会发生冲突,此时保护就显得相当的重要。第二因为汇编可读性较差,写程序时由于多采用跳转指令,所以往往会把自已搞糊涂掉。要克服这个,需要大量的编程经验,又需要有足够的耐心。第三是汇编的效率问题,虽然就那么几条指令,但是用法却相当的灵活,这学期以来的编程经历让我深有体会,若能写出高效率的代码,将是一件相当有成就感的事。51实验的扩展该设计可再有很多扩展功能,如加热器断线报警、测温元件断电监测、加热容器缺水报警等众多功能。本系统已通过串口线与PC机相连,可在此基础上再与打印机相连,实时打印温度

20、变化曲线。可在PC机上写后序软件,通过串口监视,完成一系列复杂功能,也可通过串口通信给系统发出指令,完成远程控制。52心得体会(1)硬件装焊方面要有足够的耐心和细心,就算电路设计的再好,在焊接时出一点小差错,也是不允许的,往往电路的错误都是由于一些小问题引起的,如短路等,将造成不可预测的后果。(2)软件方面注意的细节也很多,下面简单介绍一下这阵子写程序得到的一些经验:(3)写较大的程序时一定要事先做好资源分配。(4)堆栈指针SP应设初值。(5)R1、R0也应规定好用哪一区的,即设PSW.3和PSW.4。(6)进入中断时一定要记得保护ACC和PSW(视情况而定)。(7)不止进中断时要保护,有时候在正常程序下也要对某些值进得保护。可用堆栈式的保护也可先赋值给其他地址,过后再赋回来。(8)妥善使用位地址,位地址可做为一些标志位,可以给编程带来很大的方便。在本程序中,我就用了三个位地址,使程序大大的简化了。 结 论设计叙述了基于单片机对加热炉温度的控制与设计,包括硬件组成和软件的设计,该系统在硬件设计上主要是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论