




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘要 2一概述 2二方案选择 5三器件选择 6四电路原理图 6五工作原理 9六实验中遇到的问题及分析 17七实验的扩展 18八心得体会 18
摘要该系统主电路采用89S51单片机实现温度控制,加热和制冷部分由于条件限制,只采用模拟的方式。电路可实现温度的显示,设置上下限温度,超出范围报警以及和PC机通信的功能。系统测量精度和控制精度良好。我们为本系统共设计了两套程序,我主要负责其中一套程序的编写和单片机最小系统板的组建。关键词:89S51单片机温度控制程序模拟一概述实现温度控制的方法有多种,可以用工控机作为控制器,用热电阻测量温度;也可以用单片机作为控制器,用热电偶进行温度测量。当然每一种方案都有其各自的优点。本章详细列举、说明了基于89C2051单片机的温度控制的方案、并画出了其原理方框图,对方案的优缺点进行了分析。
2.1设计思想
方案
(1)硬件组成:单片机、A/D转换器、LED显示器、集成的热电偶温度变送器、固态继电器、大功率发热器。
(2)工作原理:由集成的热电偶变送器对系统温度进行检测,并完成信号标准化、变送功能。单片机执行控制功能、由固态继电器控制大功率发热器电源的导通与断开,从而达到控制温度的目的。
(3)系统原理框图
2.2论证分析
最终方案论述:很显然,方案较其它相比无论在经济上和实现容易程度上都要好。
方案在实行控制的时候不像其它采用D/A转换后再控制调节阀的方法,而是直接外接一个固态继电器,通过内部改变定时器的中断时间来调节一个周期内电子开关的导通和断开时间。这样既节省了材料也可以很大程度上减少硬件电路的结构。
综上所述方案有如下的特点:
(1)在完成所要求的任务的基础之上还有着结构简单、明了的特点,很容易实现,而且在一定的程度上节约成本。
(2)由于采用了离线的方法,很大程度上的减少了编程的麻烦,实现起来较容易。
(3)采用了无污染能源,保护环境。同时也省去了为建造燃料供应子系统的费用,节约了成本。采用了模拟的PWM变换,和固态继电器。可以将采样频率提高到很多的水平,使控制结果更准确,实时性、控制效果更好。
在系统的运行过程中可能出现各种干扰,如信号不稳定、电路板搞干扰能力差、程序跑飞等,也可能在搬运或者使用过程中对电路板或者原器件的磨损等。所以在设计过程中应做好搞干扰设计,以求将干扰对系统产生的影响降到最低。
3.3.1硬件抗干扰设计
在硬件设计过程中为了减少外部信号对系统的影响采用了以下几种抗干扰措施。
1
I/O口外接滤波电容和上拉电阻,减小信号干扰。
2制作PCB板时对重点信号线实行地线包络,并于导线集中的地方和过孔处补上泪滴,加强连接。
3.
PCB板的双面分别填充电源层与地线层,并对没有并线的地方进行覆铜
2.
PCB板布局实行模块化分离,模块之间进行信号隔离,对电源变压器进行隔离。
3.3.2软件抗干扰措施
软件抗干扰就有投资低的优点,本文采用的软件抗干扰措施如下:
(1)指令冗余
当CUP受到干扰后,往往将一些操作数当作指令码来执行,引起程序的混乱,我们首先要尽快将程序纳入正轨,也就是让程序弹飞到某一个单字节指令NOP,这就是指令冗余,自此,常在一些对程序的流向起决定作用的指令之前插入两条NOP指令,以保证弹飞的程序迅速纳入正确的控制轨道。在某些对系统工作状态至关重要的指令前也可插入两条NOP指令,以保证被正确执行。
(2)软件陷阱
当弹飞的程序落到非程序区(如ROM中未使用的空闲和程序中的数据表格区)时,就形成了死循环,解决的办法就是用一条引导指令强行将捕获的程序印象到一个指定的地址,为了加强捕获的效果,一般还在其前面加两条NOP指令。因此,软件陷阱由三条指令组成:
NOP
NOP
LJIMPSTART
a.未使用的中断向量区
当干扰未使用的中断开放,并激活这些中断时,就会进一步引起混乱,如果我们在这些地方布上陷阱,就能及时捕获到中断。可在中断入口处加入RETI指令。
b.未使用的大片ROM空间
对于剩下的ROM空间,一般在每隔一段设置一个陷阱(02H00H00H)从头开始,此时前两个00H即是设置陷阱的地址,又是NOP指令,起到双重的作用。
3.3.3软件调试
1.模糊表的求取
在软件设计部分中已经说明,运算中由于单片机的运算能力有限,所以将矩阵的运算部分采用了离线的方式,进行求取。其体的求取过程如下:
(1)
将熟练操作人员得出的关系得出关系R。如图3-20。
(2)运行编好的程序,求出控制量。
依次输入各种情况下的隶属度,并进行解求出控制表。二方案选择本系统若根据赛题要求可有多种实现方案。(1)方案一此方案是传统的一位式模拟控制方案,选用模拟电路,用电位器设定给定值,反馈的温度值和设定值比较后,决定加热或不回热。系统受环境影响大,不能实现复杂的控制算法,不能用数码显示,不能用键盘设定。(2)方案二此方案是传统的二位式模拟控制方案,其基本思想与方案一相同,但由于采用上下限比较电路,所以控制精提高。这种方法还是模拟控制方式,因此也不能实现复杂的控制算法使控制精度做得较高,而且仍不能用数码显示和键盘设定(3)方案三此方案采用89S51单片机系统来实现。单片机软件编程灵活、自由度大,可用软件编程实现各种控制看法和逻辑控制。可实现数码显示和键盘设定等多种功能,系统电路框图如下:数码显示电源电路键盘设定键盘设定89S51单片机数码显示电源电路键盘设定键盘设定89S51单片机控制电路串行接口电源电路数据采集控制电路串行接口电源电路数据采集方案一和方案二是传统的模拟控制方式,而模拟控制系统难以实现复杂控制规律,控制方案的修改也较麻烦。而方案三是采用以89S51为控制核心的单片机控制系统,尤其对温度控制,它可达到模拟控制所达不到的控制效果,并且可实现显示、键盘设定等多种功能,又易于扩展,大大提高了系统的智能化,也使得系统所测结果精度大大提高。故选择方案三。三器件选择由于单片机最小系统板采用的是去年省赛的板子,所以受到了很多限制。如对系统精度至关重要的A/D转换换器,板子上采用的是ADC0809。因为是八位的,所以精度不高,最多只能达到0.4度左右。但考虑到已有现成的板子,采用0809同样可达到实验的目的,所以A/D部分暂不作更改。传感器部分既可采用热敏电阻,也可采用集成的温度传感器。但由于热敏电阻的精度、重复性、可靠性都比较差,所以我们采用的集成的LM35,LM35四电路原理图单片机最小系统电路:由于去年大赛的板子(旧板)是03级的学生设计的,故存在许多缺陷,具体表现在单片机和ADC0809之间的读写线接反,单片机P0口和ADC0809的数据线高低位接反。显示部分的74LS245多接了一个排阻。经过多次的检查,找出了错误。最终的电路图如图示:单片机最小系统部分:ADC0809的A/D采样部分:四位LED数码管显示部分:单片机串口通信电路RXDTXD:RXDTXD 温度采集部分:报警电路:温控模拟部分:五工作原理具体电路原理详见本组另一成员的报告,在此仅介绍系统的软件部分,我们总共写了两份程序,其中一份为我个人独立完成。下面为程序的主要流程图。主程序显示程序开始开始开始开始设初值设初值设初值设初值显示第一位?启动显示第一位?启动A/D转换是否调整?是否调整?扫描三位扫描四位否 扫描三位扫描四位否是调上限调下限调上限调下限退出退出显示数据转换程序开始显示开始显示否否取数中断完毕?取数中断完毕?是是转换转换送显缓串口通信程序送显缓转转ASCII是否超限?送显缓是否超限?送显缓TI为1?超上限TI为1?超上限=1超下限=1超下限=0清零未超=0清零未超报警报警送数送数返回返回返回返回;;显示区地址分别为63H,62H,61H,60H;上限温度地址分别为2EH,2DH,2CH;下限温度地址分别为2BH,2AH,29H;用到的位地址有00H,01H,30H;===============主程序===============ORG0000HLJMPMAINORG0003HLJMPINT0ORG0030HMAIN:MOVSP,#70H;置初值CLRP1.7MOVR0,#40HSETBPSW.4SETBPSW.3SETBIT0SETBEASETBEX0MOVTMOD,#20H;波特率9600MOVTH1,#0FDHMOVTL1,#0FDHSETBTR1MOVSCON,#50HSETBTICLR30HCLR01HSETBP1.7CLRP1.6CLRP1.5MOVDPTR,#0BFFFHMOVA,#00HMOV2EH,#0MOV2DH,#0MOV2CH,#0MOV2BH,#0MOV2AH,#0MOV29H,#0MOV62H,#0LOOP:MOVDPTR,#0BFFFHMOVX@DPTR,A;启动A/D转换CLR00HWAIT:LCALLXUANCHAXUN:JNBP1.3,LOOP1;调整JNBP1.4,LOOP2JNB00H,GG;判断是否再启动LJMPLOOPGG:LJMPWAIT;===========上限温度调整===========LOOP1:CLREX0LCALLDELAY1JNBP1.3,$MOV62H,2EHMOV61H,2DHMOV60H,2CHJBP1.2,M2MOVA,2EHADDA,#01DAAMOV2EH,ACJNEA,#10H,M1MOV2EH,#00M1:JNBP1.2,$M2:JBP1.1,M4MOVA,2DHADDA,#01HDAAMOV2DH,ACJNEA,#10H,M3MOV2DH,#00M3:JNBP1.1,$M4:JBP1.0,M5MOVA,2CHADDA,#01DAAMOV2CH,ACJNEA,#10H,M5MOV2CH,#00M5:JNBP1.0,$SETB30H;是否显示第一位的标志位MOV63H,#11H;显示“上”MOV62H,2EHMOV61H,2DHMOV60H,2CHLCALLDELAYJNBP1.3,TUI;再次中断时,退出LJMPLOOP1;==========下限温度调整===========LOOP2:CLREX0JNBP1.3,$MOV62H,2BHMOV61H,2AHMOV60H,29HJBP1.2,L2MOVA,2BHADDA,#01DAAMOV2BH,ACJNEA,#10H,L1MOV2BH,#00L1:JNBP1.2,$L2:JBP1.1,L4MOVA,2AHADDA,#01HDAAMOV2AH,ACJNEA,#10H,L3MOV2AH,#00L3:JNBP1.1,$L4:JBP1.0,L5MOVA,29HADDA,#01DAAMOV29H,ACJNEA,#10H,L5MOV29H,#00L5:JNBP1.0,$SETB30H;是否显示第一位的标示位MOV63H,#0FH;显示“下”MOV62H,2BHMOV61H,2AHMOV60H,29HLCALLDELAYJNBP1.4,TUI;再次中断时,退出LJMPLOOP2TUI:MOVA,2BHCLRCCJNEA,2EH,AA;比较上限是否低于下限MOVA,2AHCJNEA,2DH,AACJNEA,60H,E1LJMPE2E1:JCSHANG_BAOLJMPE2;======超上限温度报警======SHANG_BAO:SETBP1.7SETBP1.6CLRP1.5LJMPX2E2:CLRP1.5CLRP1.6CLRP1.7X1:MOVA,2BHCJNEA,62H,E3MOVA,2AHCJNEA,61H,E3MOVA,29HCJNEA,60H,E3LJMPE4E3:JNCXIA_BAOLJMPE4;======低于下限温度报警======XIA_BAO:SETBP1.7SETBP1.5CLRP1.6LJMPX2E4:CLRP1.5CLRP1.6CLRP1.7X2:CLR30HACALLDELAY;========串口通信=========MOVR3,#30H;转ASCII码MOVA,62HADDA,R3DAAMLP3:JBCTI,MLP2;当TI为1时清0SJMPMLP3MLP2:MOVSBUF,AMOVA,61HADDA,R3DAAMLP5:JBCTI,MLP4TT:MOVDPTR,#0FAFFHD2:MOVX@DPTR,ADJNZ30H,D2;十位MOV30H,#40MOVDPTR,#TAB0MOVA,60HMOVCA,@A+DPTRMOVDPTR,#0FBFFHD3:MOVX@DPTR,ADJNZ30H,D3;个位RETTAB0:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,;012345677FH,6FH,77H,7CH,39H,5EH,79H,71H;89ABCDEFDB76H,78H,38H,6EH,00H,77H,;HKLY无RDELAY12:MOVR4,00HMOVR5,00HX3:DJNZR4,$DJNZR5,X3RET;中断0服务程序INT0:PUSHAPUSHPSWMOVDPTR,#0BFFFHMOVXA,@DPTR;读A/D转换结果MOV2FH,#0FFHCLRCY;程序调整高低位RLCAJCN1CLR78HMOVA,29HCJNEA,2CH,AALJMPXXX;正常AA:JNCERRO;上限低于下限,跳转XXX:SETBEX0MOVA,@R0LCALLXUANLJMPWAITERRO:MOV63H,#0EH;显示“ERRO“MOV62H,#15HMOV61H,#15HMOV60H,#0HSETB30HSETB01HEEEE:LCALLDELAYJNBP1.3,XX1;是否重新调整JNBP1.4,XX2LJMPEEEEXX1:LJMPLOOP1XX2:LJMPLOOP2;==========显示数据转换=========Xian:MOVA,@R0MOVB,#100MULABMOVR3,AMOVA,BMOVB,#10DIVABMOVR1,#62HMOV@R1,ADECR1MOV@R1,BMOVA,R3MOVB,#10MULABDECR1MOV@R1,BCLR30HACALLDELAYMOVA,2EHCJNEA,62H,E1MOVA,2DHCJNEA,61H,E1MOVA,2CHSJMPMLP5MLP4:MOVSBUF,AMOVA,#46;小数点MLP8:JBCTI,MLP9SJMPMLP8MLP9:MOVSBUF,AMOVA,60HADDA,R3DAAMLP7:JBCTI,MLP6SJMPMLP7MLP6:MOVSBUF,AMOVA,#32MLP10:JBCTI,MLP11SJMPMLP10MLP11:MOVSBUF,ARET;==========延时加显示=========DELAY:MOVR3,#0A0HD00:ACALLDISPLAYDJNZR3,D00RETDISPLAY:JNB30H,DDMOV30H,#40MOVDPTR,#TAB0MOVA,63HMOVCA,@A+DPTRMOVDPTR,#0F8FFHD0:MOVX@DPTR,ADJNZ30H,D0;千位DD:MOV30H,#40MOVDPTR,#TAB0MOVA,62HMOVCA,@A+DPTRMOVDPTR,#0F9FFHD1:MOVX@DPTR,ADJNZ30H,D1;百位MOV30H,#40MOVDPTR,#TAB0MOVA,61HMOVCA,@A+DPTRJB01H,TTADDA,#80HN1:RLCAJCN2CLR79HN2:RLCAJCN3CLR7AHN3:RLCAJCN4CLR7BHN4:RLCAJCN5CLR7CHN5:RLCAJCN6CLR7DHN6:RLCAJCN7CLR7EHN7:RLCAJCN8CLR7FHN8:MOVA,2FHMOV@R0,ASETB00HPOPPSWPOPARETI;=======延时=======DELAY1:MOVR6,#60DE1:MOVR7,#248MOVR7,$DJNZR6,DE1RETEND六实验中遇到的问题及分析1、单片机最小系统方面由于是去年03级的同学设计的,我们用的又是旧板,故存在很多缺陷,一方面我们没有正确的原理图,只有一张其他同学随便画的图,就算有了原理图,也不知道板上错在哪里,所以只能用万用表一个个的找。通过我们的认真检查,结果发现不管是板上还是图纸上都出了相当大的错误,图上很多引脚都标注错误了,而板上就更是离谱了,居然把单片机和ADC0809的读写线接反,把单片机的P0口和ADC0809的数据线高低位接反,74LS245上还多接了一个排阻,造成LED显示不正常。诸如上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁路班组管理班组设备管理课件
- 铁路工程安全技术石家庄铁路96课件
- 《GB 17621-1998大中型水电站水库调度规范》(2025版)深度解析
- 中国书法英文教学课件
- 工程采购合同英语案例分析
- 餐饮服务咨询顾问合同范本
- 四川省攀枝花市2025届高三下学期3月二模试题 地理 含解析
- 临时租赁场地合同书样本
- 专利情况介绍课件
- 昭通市绥江县2025届六年级下学期调研数学试卷含解析
- 2025-2030中国汽车金融行业市场深度调研及发展策略与投资前景研究报告
- 成人脑室外引流护理-中华护理学会团体 标准
- BS EN ISO 15848-1-2015 工业阀-逸散性排放的测量、试验和鉴定程序(中文)
- 英阿马岛战争
- 办公生活区临时设施施工方案
- GB∕T 40262-2021 金属镀膜织物 金属层结合力的测定 胶带法
- 视频监控vcn3000系列技术白皮书
- 小学三年级西师大版数学下册计算题专题练习题
- 基于三菱plc的电力系统无功补偿设计说明
- 五金冲压车间质量管理规范(含表格)
- 病媒生物防制PPT课件
评论
0/150
提交评论