版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、长安大学单片机原理及接口技术课程设计题目:简易温度控制系统学院:电子与控制工程学院专业:电气工程及其自动化学号:3204080113姓名:孟川指导老师:段晨东时间:2010年12月27号-1月6号目录一、要求 . 3二、摘要 . 4三、前言 . 5四、方案分析. 6五、实现 . 10六、结论 . 14七、附录 . 15一、要求简易温度控制系统设计并制作一个简易的单片机温度自动控制系统(见图一)。控制对象为自定。图一 恒温箱控制系统设计要求如下(1)温度设定范围为4090,最小区分度为1(2)用十进制数码显示实际温度。(3)被控对象温度采用发光二极管以光柱形式和数码形式显示。(4)温度控制的静态
2、误差2。扩充功能:控制温度可以在一定范围内设定,并能实现自动调整,以保持设定的温度基本保持不变(测量温度时只要求在现场任意设置一个检测点)。二、摘要本次设计的主要目的是实现对温度的控制,其主要思路是通过温度传感器感应物体的温度,通过数码管显示出来,由于本此设计的温度设定范围是在40度到90度之间,因此如果物体的温度不在这个设定范围内,那么就需要通过加热或降温使物体的温度达到这个范围。另外本次设计设定了键盘,通过键盘输入设定的数,然后通过调温使该物体的温度达到设定的数值。本次设计采用单片机原理,共有温度感应模块、显示模块、键盘输入模块、比较模块四大块。通过温度动态显示,可以显示被测物体的温度,而
3、通过键盘扫描可以求出设定的温度值,通过温度传感器可以感应物体的温度。那么,本次设计所能实现的功能就是可以测定物体的温度并能实现自动调整和手动键盘调整。三、前言随着社会的发展和科技的进步以及测温仪器在各个领域的应用,智能化是现代温控系统发展的主流方向,特别是今年来,温度控制系统已应用到生活的各个方面,但是温度控制一直是一个未开发的领域,是与人们息息相关的一个问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景和实际意义。温度是科学技术中最基本的物理量之一。物理、化学、生物等学科都离不开温度,在工业生产等许多领域,温度常常是表征对象和过渡状态的重要物理量。各行各业对温度的要求越来越高,
4、可见温度的测量和控制是非常重要的。单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。随着温度控制器应用越来越广泛,各种试用于不同场和的温度控制器应运而生。四、方案分析本次设计主要版块分为温度感应模块,温度显示模块,键盘设定模块以及温度比较模块。一、方案的选择1.对于温度感应模块有两种方案:一种是使用普通温度传感器pt100再结合电压放大器和AD转换器将感应到的温度数值转换为数字量存储在某一单元内。但由于该方案电路繁多,线路冗长,所以舍之不用。 第二种是使用温度传感器18B20感应温度,由于该温度传感器内含AD转换器,因此连接简单,应用方便,故选用该方案。2.
5、对于温度显示模块有两种方案:一种是使用静态显示,通过数码管显示被测温度和设定温度。该方案程序简单,但硬件连接复杂,所需元件数量多,不适合设计应用。第二种是使用动态显示,通过数码管显示被测温度和设定温度。该方案程序复杂,但硬件连接简单,所需元件少,适合设计应用。3.对于键盘设定模块有两种方案:一种是使用线反转法,通过矩阵键盘,一次求出行数和列数,然后求出设定的数值。由于该方案不具有扫描功能,因此不适用于一般的键盘程序,而适用于键盘中断程序。第二种是使用键盘扫描法,通过矩阵键盘,求出设定的数值,由于该方案具有扫描功能,因此在不使用中断的情况下,使用键盘扫描程序是十分恰当的,本次设计采用的是键盘扫描
6、程序。4.对于温度比较模块,是通过比较程序,直接决定进行升温还是降温。二、硬件的说明本次设计硬件用到了单片机89C52、温度传感器18B20、三八译码器74LS138、驱动74LS245、数码管、矩阵式键盘、灯泡等。单片机89C52是常用的单片机之一,单片机上有32个P口,其中P0、P1、P2、P3各8个。温度传感器18B20接到单片机的一个P口上,本次设计是P1.3,因为温度传感器18B20可以直接将数据传输给单片机,因此可直接连接。三八译码器74LS138出线端用于连接驱动74LS245,入线端ABC连接到单片机的P1口上的P1.0、P1.1、P1.2,通过调节P1口上的这三端的值进而控制
7、出线端0到7哪个为低电平。本次设计用到2个74LS245,它的输出端接数码管,输入端一个接P0口,一个接74LS138,它们分别控制数码管的字型码输出和数码管选择。矩阵式键盘采用3×3式,分别表示1到9。通过将6个出线端接到P2口上,然后通过P2口控制键盘,键盘的行拉高电阻和5伏电压。三、软件的说明对于温度感应模块,调用18B20程序,直接在某一单元存储温度的数值。其中18B20程序见附录。对于温度显示模块,一共有静态和动态两种显示,静态显示时,各个LED数码管相互独立,公共端接地,每个数码管的8个显示字段控制端分别与一个8位并行输出口相连,只要输出口输出字型码,LED数码管就立即显
8、示出相应的字符,并保持到输出口输出新的字型码。采用静态显示,用较小的电流便可获得较高的亮度,而且占用CPU时间少,编程简单,显示便于检测和控制,但其占用的口线多,硬件电路复杂,成本较高。动态显示时,是各个LED数码管一位一位轮流显示。在硬件电路上,各个数码管的显示字段控制端并联到一起,有一个8位并行输出口控制,各个LED数码管的公共端作为显示位的位选线,由另外的输出口控制,动态显示节省I/O口,硬件电路简单。本次设计采用的是动态显示,实现方法是温度显示程序的流程图为对于键盘设定模块,键盘是由多个按键组成。它可以分成独立式和矩阵式2种形式。独立式键盘是一组相互独立的按键,他们分别直接与I/O口电
9、路连接,每个按键占用一根输入口线。独立式键盘比较灵活,软件结构简单,但当按键较多时,输入口线浪费较大。因此在应用系统中,按键较多时,一般不采用。矩阵式键盘也称为行列式键盘,用输入和输出口线组成行列结构,按键设置在行和列的交叉点上,按键闭合时,接通输入和输出口线。矩阵式键盘在按键较多时可以节省I/O口线。本次设计采用矩阵式键盘,并且按键识别的方法是扫描法。在按键识别过程中,依次使行线输出低电平,然后检查列线的输入电平,如果所有列线的输入全为高电平,则该行无按键按下;如果不全为高电平,则被按下的按键在本行,且在输入电平变为低电平的列的交叉点上。本次设计没有用线反转法是由于本次设计没有用到中断,而没
10、有中断的情况下就要求我们必须不停地扫描键盘,因此线反转法在本次设计中并不是最好的按键识别方法。键盘程序的流程图为:、对于温度比较模块,通过比较传感器温度和键盘温度,然后对被控对象作出调整。由于本次设计采用的加热装置是灯泡,降温装置是自然冷却,因此如果单纯地令传感器温度和键盘温度相等,就会出现灯泡一闪一灭的抖动状态,本次的消抖方略是在设定温度上下各加2度。使最终温度在这个范围内来回波动。四、软硬件的总体概述本次设计的主题思路如下:本次设计的温度控制系统为手动、自动双重输入系统。如果键盘没有按下键值,则系统自动将温度设定在40度到90度。如果键盘输入数据,但数据不在40度到90度的范围之内,那么按
11、没有输入键值处理。如果键盘输入的数据在40度到90度范围内,那么系统会将被控对象的温度控制在设定温度左右,且误差不超过2度。五、实现本次设计的功能板块分为四块,分别是温度传感器显示功能、键盘输入显示功能、无键盘输入自动调整功能、有键盘输入温度调整功能。1.温度传感器显示功能温度传感器18B20能自动感应温度,并且内含AD转换器,能够直接输出一个温度值,并将它存储在单片机某一个单元内。功能如图所示2.键盘输入显示功能键盘输入数值,数码管会显示输入的数值。功能如图所示3.无键盘输入自动调整功能在没有键盘输入的情况下,被控对象的温度会被控制在40到90度以内。功能如图所示4.有键盘输入温度调整功能当
12、有键值输入且键值在40度到90度范围内时,被控对象的温度将被控制到设定温度左右,误差不超过2度。功能如图所示调试过程中,出现过不少问题,诸如:1.发现在仿真开始后,数码管不亮原因:发现继电器用的不好解决方法:换了一个继电器2.发现温度传感器的温度并不能有效地显示在数码管上原因:温度传感器的程序有问题,其中31H和32H单元错写成了#31H和#32H。解决方法:将31H和32H前面的#号去掉,温度开始正常显示。3.发现键盘的数字按下后,键盘没有反应。原因:程序中键盘的按键识别方法是线反转法,键盘的键值所对应的行与列不能有效接通。 解决方法:改用扫描法,键盘有了反应。4.发现数码管显示的温度在不停
13、地跳动。原因:数码管显示程序中先输出字型码后选显示位置。解决方法:数码管程序中先选显示位置后输出字型码。5.在连接外电路灯泡时,发现接好后灯泡不亮。原因:继电器的开关接线端接错解决方法:将继电器的接线端接好6.发现实物中当电灯泡的温度达到设定温度时,灯泡开始一亮一闪不停闪烁。 原因:灯泡的温度不停地升降,导致灯泡不停的抖动解决方法:在设定的温度上下各加2度,使温度在这个范围内来回波动。六、结论本次设计的题目是温度控制系统,其主要思想是将温度控制在某一个设定的温度左右,误差不超过2度。本次设计所包含的基本功能如下:当没有键值输入时,被控对象的温度将被设定在40到90度内,来回往复波动。当有按键按
14、下时,如果按键设置的温度不在40到90度内,那么按照没有按键输入来处理。如果按键设置的温度在40到90度内,那么就将物体的温度设定在按键温度左右,且误差不超过2度。本次设计中不足之处就是温度变化比较慢,可能原因是箱子的密封性不太好,传感器与灯泡距离远等原因。改进方法是换一个密封性好一点的箱子,且箱子不要太大。本次设计历时3周左右,花费了大量的精力和时间,可以说其中包含了诸多的汗水和付出。通过翻阅书籍和不停地写程序调试,既增长了知识,又增加了经验。其过程中有苦有甜,不足道也。最后感谢老师的指导和同学的帮助。七、附录1原理图附录2元件明细单片机89C52温度传感器18B20 驱动74LS245 三
15、线八线译码器数码管键盘 继电器附录3电路程序ORG 0000HLJMP STATORG 0100HSTAT:CLR EA ;关闭中断MOV SP,#70H ;开辟栈区CLR 00H ;DS18B20标志位SETB P3.3 ;关闭加热MOV R1,#00H ;清R1MOV 31H,#00HMOV 32H,#00HMOV 41H,#00H ;设置键盘设定温度的高位 MOV 42H,#00H ;设置键盘设定温度的低位 MOV 51H,#00H ;设置测量温度高位 MOV 52H,#00H ;设置测量温度低位 MOV 55H,#00HMOV 61H,#00HMOV 62H,#00HLCALL INI
16、T ;消除上电抖动BCDH:LCALL LOOP ;测温LCALL LOW1 ;显示测量温度 LCALL LOW2 ;显示键盘设定温度 LCALL KEYB ;扫描键盘LCALL LOW1 ;显示测量温度LCALL LOW2 ;显示键盘设定温度 LCALL COMP ;比较温度LJMP BCDH ;返回键盘程序:KEYB:MOV P2,#00011111B ;置输入为1,输出为0 18MOV A,P2 ;读P2口的引脚状态ANL A,#00011111BXRL A,#00011111BJZ NOKEY ;判断有无按键按下ACALL DL20MS ;延时20MS消抖ANL A,#00011111
17、B ;重读键盘XRL A,#00011111BJZ NOKEY ;再次判断有无按键按下MOV R2,#11101111B ;行扫描初始值,从第一行开始 SCAN: MOV A,R2MOV P2,AMOV A,P2ANL A,#00001111BMOV R3,A ;取列线的引脚状态CJNE A,#00001111B,KEYP ;有键按下MOV A,R2RL A ;产生下次的行线输出 MOV R2,AXRL A,#11111110BJNZ SCAN ;扫描完否,未完继续 NOKEY:MOV R5,#0FFH ;无按键按下RETKEYP:MOV A,R2 ;取行扫描值ANL A,#11110000B
18、 ;计算行特征码ORL A,R3 ;计算按键特征码MOV R4,A ;按键特征码暂存在R4中 MOV R5,#00H ;设置按键键值初始值 MOV DPTR,#KEY_TAB ;特征码表首地址 CALV:MOV A,R5 ;计算按键键值 MOVC A,A+DPTRXRL A,R4JZ FIXEDINC R5SJMP CALVFIXED:MOV A,P2 ;判断键值是否释放 ANL A,#1FHXRL A,#1FHJNZ FIXEDACALL DL20MSMOV A,P2ANL A,#1FHXRL A,#1FHJNZ FIXEDINC R5CJNE R1,#1,TURNMOV A,R5MOV 4
19、2H,AINC R1RETTURN:CJNE R1,#2,RNUOMOV A,R5MOV 41H,AMOV 42H,#00HDEC R1RETRNUO:MOV A,R5MOV 41H,AMOV 42H,#00HINC R1RET;延时消抖 ;判断是否是第二次按键 ;若是第二次按键,则将数存在42H中,且R1加1 ;若不是第二次按键,则判断是否是第三次按键 ;若是第三次按键,则将数存在41H中,42H清0 且R1减1 41H中,42H清0 且R1加1 20 ;若是第一次按键,则数存在比较程序:COMP:MOV A,41H ;判断是否有键按下, 若有,跳到NEXT CJNE A,#00H,NEXT
20、SGD: MOV A,51H ; 无键按下时,判断是否在40到90度范围 CJNE A,#4,GOOD 内MOV A,52HCJNE A,#00H,HUPCLR P3.3RETGOOD:JC NEQMOV A,51HCJNE A,#9,HUPSETB P3.3RETNEQ: CLR P3.3RETHUP: RETNEXT:MOV A,41HCJNE A,#4,KJHDRT: MOV A,41HCJNE A,51H,ROMOV A,42HCJNE A,52H,RORETKJH: JC QDSMOV A,41HCJNE A,#9,DRTMOV A,42HCJNE A,#00H,QDSLJMP DR
21、T40度,则加热 ;判断温度是否大于40度,若小于,则跳转 ;判断温度是否小于90度,若小于,则跳转 ;温度刚好为90度,关闭加热 ;启动加热 ;结束 ;当有键按下时,判断键值是否在40到90 度范围内 ;若在范围内,则比较键盘设定温度和测量温度;键盘设定温度和测量温度相同,不处理 ;判断设定温度是否大于40度,若小于,跳转 ;判断设定温度是否小于90度,若小于,跳转 ;等于90度,则跳转到DRT 21 ;若温度刚好在QDS: MOV 41H,#00HLJMP SGD ;小于40度,则跳转到SGDRETRO: JC GOON ;比较设定温度和测量温度,若设定温度小于测量 MOV A,41H 温
22、度,则跳转到GOONMOV 61H,AMOV A,42HMOV 62H,ACJNE A,#00H,QWEMOV 62H,#9DEC 61HPUO:MOV A,61HCJNE A,51H,WEQMOV A,62HCJNE A,52H,WEQRETWEQ:CLR P3.3RETQWE:MOV A,62HDEC AMOV 62H,ALJMP PUOGOON:MOV A,41HMOV 61H,AMOV A,42HMOV 62H,ACJNE A,#9,XCZMOV 62H,#00HINC 61HYEC: MOV A,61H;令设定温度减1度 ;重新比较设定温度和测量温度 ;相等,不处理 ;不相等,启动加
23、热 ;令设定温度加1度 22 ;重新比较设定温度和测量温度CJNE A,51H,LKPMOV A,62HCJNE A,52H,LKPRET ;若相等,不处理 LKP: SETB P3.3 ;若不等,关闭加热 RETXCZ: MOV A,62HINC AMOV 62H,ALJMP YECDL20MS:MOV R2,#100DEL3: MOV R3,#50DEL4: NOPNOPDJNZ R3,DEL4DJNZ R2,DEL3RET显示程序:LOW1:MOV R0,#51HMOV R2,#00000000BRED1:ACALL DISOMOV A,R2INC AMOV R2,AINC R0XRL
24、A,#00000010BJNZ RED120mS消抖 ;显示测量温度,显示缓冲区地址 ;显示起始位置 ;显示一位 ;计算下一个显示位置 ;修改缓冲区地址 ;2位显示完否 ;未完,继续显示 23 ;延时RET ;返回DISO:MOV A,R2 ;取显示位置MOV P1,A ;显示MOV DPTR,#LED_SEG ;字型码表首地址MOV A,R0 ;取显示数据MOVC A,A+DPTR ;求显示数据的字型码MOV P0,A ;输出字型码ACALL DL1MS ;稳定显示1MSRETLED_SEG:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;DB 7FH,6FH,77H,
25、7CH,39H,5EH,79H,71H; ;显示字型码表 DB 3EH,50H,40H,08H,00H,显示程序LOW2:MOV A,41HCJNE A,#00H,BNMMOV 42H,#00HBNM: MOV R0,#41H ;显示设定温度,显示缓冲区地址 MOV R2,#00000010B ;显示起始位置RED2:ACALL DISE ;显示一位MOV A,R2 ;计算下一个显示位置INC AMOV R2,AINC R0 ;修改显示缓冲区地址XRL A,#00000100B ;2位显示完否JNZ RED2 ;未完,继续显示RET ;返回DISE:MOV A,R2 ;取显示位置MOV P1,
26、A ;显示MOV DPTR,#LED_SEG ;字型码表首地址MOV A,R0 ;取显示数据MOVC A,A+DPTR ;求显示数据的字型码MOV P0,A ;输出字型码ACALL DL1MS ;稳定显示1MSRETDL1MS:MOV R5,#10 ;延时1MS子程序DEL1: MOV R6,#30DEL0: NOPNOPDJNZ R6,DEL0DJNZ R5,DEL1RETKEY_TAB:DB 77H,7BH,7DH,0B7H,0BBH,0BDH,0D7H ;键盘字型码表 DB 0DBH,0DDH温度传感器18B20程序:LOOP:LCALL RE ; 温度传感器程序,初始化18B20 LC
27、ALL GETLCALL CONVLCALL OBCDRETRE: JB 00H,RE1 ;若18B20存在,转RE1RETRE1: MOV A,#0CCH ;发SKIP ROM命令LCALL WRMOV A,#4EH ;发写暂存存储器命令LCALL WRMOV A,#00H ;TH(报警上限)中写入00H LCALL WRMOV A,#00H ;TL(报警下限)中写入00H LCALL WRRETGET: SETB P1.3 ;定时入口LCALL INITJB 00H,TSS1RET ;若18B20不存在,则返回 TSS1:MOV A,#0CCH ;跳过ROM匹配 LCALL WRMOV A,#44HLCALL WRMOV R0,#250TSS2:NOPDJNZ R0,TSS2LCALL INITMOV A,#0CCHLCALL WRMOV A,#0BEHLCALL WRLCALL READMOV 55H,ARETINIT:SETB P1.3NOPCLR P1.3MOV R0,#180TSR1:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 白酒制曲工安全培训效果水平考核试卷含答案
- 松焦油工岗位指挥能力考核试卷含答案
- 气体净化工岗位技能安全考核试卷含答案
- 戏服制作工岗位设备考核试卷含答案
- 糖汁过滤工个人技能评优考核试卷含答案
- 拖拉机涂装加工生产线操作调整工岗前深度考核试卷含答案
- 2026氢能源技术行业市场供需潜力挖掘及储能系统规划分析研究报告
- 2026中国光刻胶化学品行业安全生产标准与风险管理体系
- 2026金融科技行业市场深度研究及数字化转型趋势和金融服务创新分析报告
- 2026中国膜电容去离子技术产业化可行性论证报告
- 2026中国中医药国际化发展现状及市场准入壁垒分析报告
- 2026稀土储氢材料行业市场发展分析及前景趋势与投融资战略研究报告
- 2026年财政部高层财会人才中青年人才选拔笔试热及完整(附答案)
- 2026年高考全国1卷语文高考试题(原卷版)
- 消防报警主机移位施工方案及流程
- 2025年河南三支一扶(6月14日)真题(答案)
- GB/T 44693.3-2026危险化学品企业工艺平稳性第3 部分:标准操作程序编制与使用规范
- 妇产科妊娠糖尿病管理方案
- 《智能网联汽车规划与决策技术》课件 项目4 常见的行为决策方法
- 2026年智慧海洋产业园区规划:功能布局与产业协同设计
- 2026中车株洲电力机车研究所有限公司春季全球校园招聘考试参考题库及答案解析
评论
0/150
提交评论