资源描述
. . . . 课程设计题目:冷库单片机控制系统学校:理工大学学院:机电工程学院专业:机械工程与自动化年级:2005级学生:亚松指导老师: 单位:理工大学 :马武兴 职位:讲师摘要随着现代工业的逐步发展,在工业生产中,温度、压力、流量和液位是种最常见的过程变量。其中,温度是一个非常重要的过程变量。例如:在冶金工业、化工工业、电力工业、机械工业和食品工业等许多领域,都需要对各种加热炉、热处理炉、反应炉和锅炉的温度进行控制。然而,用常规的控制方法,潜力是有限的,难以满足较高的性能要求。利用单片机8031对中型冷库进行自动化改造,使得控制系统自动化程度大大提高,温度控制精确,节约了能源,提高了库存产品质量,降低了值班人员的工作强度。冷库单片机控制系统,是利用单片机8031作为系统的主控制器,测量电路中的温度反馈信号经A/D变换后,送入单片机中进行处理,经过一定的算法和比较运算后,由单片机的输出来控制继电器的动作,从而控制执行元件以达到对电阻阀和压缩机进行驱动控制,最终实现对冷库温度的控制。本冷库单片机控制系统的技术指标是,对冷库冷藏温度控制围为50.50;冷冻间:.;温度显示精度:.,控制能力:通道制冷控制,实际路控制。控制方式:降温,快速,恒温,自然升温。软件设计须能进行人机对话和结果轮流显示。关键词: 单片机、 冷库、 自动化、 改造AbstractAlong with the gradual modern industrial devejopment,in industrial production, temperature, pressure, flow and level four is the most common process variables. Within this total, the temperature is a very important process variables. For example: in the metallurgical industry, chemical industry, power industry, machinery processing, and food processing and many other areas, the need for various furnace, heat treatment furnace, furnace and boiler temperature control. However, the use of the conventional control methods, the potential is limited, to meet higher performances.Using singlechip-8031 to carry on automational reform for the moderate model cold-storeroom, which improves the level of control-systems automation, also the precision of temperatural control,save on the resouce, enhance the quantity of product in the storeroom, boost the work-condition and decrease the labor strength of the watch.The control system of cold-storeroom singlechip, which use singlechip by way of the principal controller in the system, to measure the temperatural feedback signal, after which via A/D converser carry on tackle in singlechip, pass definite arithmetic and compare operation, make the result of singlechips export to control the act of the relay, thereby control the execute element to realize the drival control of the resistance valve and compressor, consequently realize the control of the cold-storeroom.The requirements of technique index of cold-storeroom singlechip are:The control range of the temperature: during cold store: 50.5; during cold freeze: -180.5; the display precision of temperature: 0.2; control capability: eight accesses of refrigeration control, in fact five accesses control; control mode: drop in temperature, quick drop in temperature, constant temperature, spontaneous rise in temperature. The design of software must could carry on person-computer dialog and turn to show the result.Keywords: singlechip cold-storeroom automation reform冷库单片机控制系统的设计系统总体设计根据所要实现的功能特点,本系统选用了MCS51系列8031单片机,扩展一片74LS373地址锁存器,扩8kb的EEPROM2864A。温度传感器采用对30+40线性良好的半导体集成温度传感器,将温度转换为电流,长距离传送到两级运算放大器,8路模拟开关4051,经12位模数转换器ADC7153转换成数字信号供单片机处理控制。控制系统采用4键键盘和6位LED数码显示器进行输入参数和显示库温与状态,6路中间继电器电器作为控制制冷电磁阀的执行元件。冷库冷藏与冷冻功率为100350W,电源为交流220V,调温围在195,升温速度1/min温度控制精度为0.2。本系统考虑到冷库系统的工作环境对单片机的特殊要求,在此采用了MCS51系列8031单片机。它具有抗干扰能力强,工作可靠稳定,完全满足高性能的冷库单片机系统的控制要求。冷库单片机控制系统介绍1、 冷库单片机控制系统的组成与工作原理在工业生产中,对温度控制系统的要求,主要是保证库温按一设定温度变化,超调小或无超调,稳定性好,不振荡,对系统的要求不是太高。以下浅析了冷库单片机控制系统设计过程与实现方法。系统由8031单片机最小系统、人机对话系统、温度检测控制系统、执行单元组成。控制系统为闭环工作状态。如图所示。库温T经传感器变成电流,经传送转化成电压并放大、滤波,再经A/D转换、软件滤波,得到与库温T相应的温度数字信号。该温度一方面送LED显示供值班人员观察和送温度记录仪打印,另一方面与设定温度值比较运算,CPU根据比较结果对相应库房发出制冷、强制冷、停电或通电,从而开启或关闭电磁阀,进行制冷、强制冷、停止制冷等相关操作,并根据所需功率调节压缩机开启的台数,即达到了库温精确控制的目的,又达到了节约能源的效果。由单片机的定时器产生时钟中断,定时扫描5个通道,进行分时控制使每个库室工作于不同的工作状态。单片机是一种集CPU、RAM、ROM、I/O接口和中断系统于一体的器件,只需外加电源和晶振就可以实现对数字信号的处理和控制。本设定运用MCS51系列单片机中的8031单片机为主控制器,对冷库的温度进行自动化控制,最终通过软件设计来实现人机对话功能,实现对冷库温度的控制。2、电路的特点信号放大与滤波如图所示,传感器为恒流源形式的高精度的半导体温度传感器,在其两端上加上一定的工作电压,则其输出电流随温度变化而变化,其线性电流为1A/,用双绞线经长距离(50150m)传送后不影响测量精度。随温度变化的电流经高精度的运算放大器0P07变成电压参量,调节R3,R4的比例可使输出电压值符合A/D转化器,W用于温度调节校正。模拟开关用4051作8路输入、1路输出的模拟开关,实际只使用其中的5路即可,以便8031对5个库室的温度轮流采样,分别控制。由于模拟开关有一定的阻,而温度传感器的温度电压非常小,如先经过模拟开关再经放大则使测量精度大大降低,故对信号先进行放大,增加电路的成本获得更高的精度。模拟开关后的电平变换采用光电隔离,因为光电隔离抗干扰性好、但反应速度较慢,采用晶体管或COMS-TTL变换芯片则速度较快。A/D转换系统采用双积分型的A/D转换芯片7153,转换精度高,抗干扰能力强。虽然其转换速度慢,但由于冷库库室温度变化是大惯性变化系统,时间常数很大,因此用该芯片能满足系统要求。7153的输出为14位二进制数,其分辨率为温度量程的0.005,为整个系统的高精度创造了条件,且价格较低。人机对话系统控制系统选用4键键盘和6位LED显示器。4键分别是功能键、增加键、减少键和确认证。采用软件消抖动,键盘输入采用中断方式进行工作,节约CPU的工作时间提高系统响应速度。6位LED数码显示器的作用如下:第1位显示库房编号;第2位显示通道工作状态;第3位显示温度正负号;最后3位显示额度值,其中1位小数。制冷控制执行部件与压缩机控制部件由于本控制系统控制的是制冷剂的通断和压缩机的启停,启动和关闭的频率不高,故采用传统的交流接触器控制交流电磁阀的通断和控制压缩机的启停运行。为增加系统的 可靠性,压缩机采用自动和人工强行控制2种模式。制冷有自动和手动2种方式且保留原系统的人工机械闸阀,从而增加系统的灵活性和可靠性。系统的硬件设计根据要实现的功能特点,本系统选用了MCS-51系列8031单片机,扩展一片EEPROM 2864A程序存储器、一片RAM6116数据存储器、一片I/O接口8255、一片A/D转换芯片ADC7153和一片8通道模拟开关4051构成基本系统,另外功能键和LED显示由串行口扩展n片74LS614实现。还有一些附加电路如:时钟电路、复位电路、温度检测电路等。1、 系统结构图2、 冷库单片机系统电路原理图3、 主控制芯片8031 8031引脚说明 8031单片机引脚与其功能包括电源引脚VCC、VSS、时钟引脚XTAL1、XTAL2。VCC(40脚):接+v电源;VSS(20脚):接地。时钟引脚外接晶体时与片的反相放大器构成一个振荡器,它提供单片机的时钟控制信号。时钟引脚也可以接外晶体振荡器。XTAL1(19脚):接外部晶体的一个引脚。在单片机部,它是一个反相放大器的输入端。当采用外接晶体振荡器时,此引脚应接地。XTAL2(18脚):接外部晶体的另一端,在单片机部接至反相放大器的输出端。若采用外部振荡时,该引脚接收振荡器的信号,即把此信号直接接至部时钟发生器的输入端。控制引脚 包括RESET(即RST)、ALE、PSEN、EA,此类引脚具有复用功能。RST/VPD(9脚):当振荡运行时,在此引脚加上两个机器周期的高电平将使单位机复位。复位后应使此引脚电平为0.5v的低电平,以保证单片机正常工作。 ALE/PROG(30脚):当单片机访问外部存储器时,ALE输出脉冲的下降沿用于锁存16位地址的低8位。即使不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1/6。但是,每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。ALE端可以驱动8个TTL负载。 PSEN(29脚):此输出为单片机访问外部程序存储器的读选通信号。在从外部程序存储器取指令期间,每个机器周期PSEN两次有效。但在此期间,每个访问外部数据存储器时,这两次有效的PSEN信号将不在出现。PSEN同样可以驱动8个TTL负载。EA/VPP(31脚):当EA端保持到电平时,单片机访问部程序存储器,但在PC(程序计数器)值超过OFFFH时,将自动转向执行外部程序存储器的程序。当EA端保持低电平时,则只访问外部程序存储器,不管是否有部程序存储器。输入/输出引脚输入/输出(I/O)口引脚包括P0口、P1口、P2口和P3口。P0口:双向8位三态I/O口,此口为地址总线低8位与数据总线分时复用口,可带8个LS TTL负载。P1口:8位准双向I/O口(作为输入时,口锁存器置1),可带4个LS TTL负载。P2口:8位准双向I/O口,与地址总线高8位复用,可驱动4个LS TTL负载。P3口:8位准双向I/O口,为双功能复用口,可带4个LS TTL负载。8031具有以下几个特点:8位CPU,工作频率为112MHz。128BRAM数据存储器,4KBROM程序存储器。5V电源,40引脚双列直插式封装。12MHz工作频率时机器周期为1s,所有指令的执行为14个机器周期。外部可分别扩展64KB数据存储器和程序存储器。2级中断,5个中断源。21个专用寄存器,有位寻址功能。两个16位定时/计数器,1个全双工串行通信口。4组8位I/O口。4、 芯片74LS373引脚: 74LS73功能表OEGDiQiLLLHHHLHLHLQi不变高阻5、 EEPROM2864A的引脚配置EEPROM2864A的工作方式EEPROM2864A方式 引脚-CE-OE-WE输入/输出引脚号(20)(22)(27)(1113,1519)待机VIH任意任意高阻读VILVILVIHDOUT写VILVIH负脉冲DIN-DATA查询VILVILVIH-DOUT6、 芯片ADC7153的引脚6、扩展I/O8255A8255A端口的操作状态A1A0-RD-WR-CS操作001010000111000输入操作(读)端口A数据总线端口B数据总线端口C数据总线00110101111100000000输出操作(写)数据总线端口A数据总线端口B数据总线端口C数据总线控制字寄存器110111100断开功能数据总线为三态非法状态数据总线为三态8255A的结构和工作方式8255A是一种可编程并行输入/输出接口芯片,它具有3个8位的并行I/O口,分别称为A口、B口和C口,其中C口又分为高4(PC7PC4)位口和低4(PC3PC0)位口,它们都可以通过软件编程来改变工作方式。8255A可以与单片机直接接口。1、 数据端口A、B、C8255A有三个8位并行口,即A、B和C,都可以选择作为输入或输出工作模式。但在功能和结构上有些差异。 A口:具有一个8位数据输出锁存器/缓冲器;一个8位数据输入锁存器。B口:具有一个8位数据输出锁存器/缓冲器;一个8位数据输入缓冲器(不锁存)。C口:具有一个8位数据输出锁存器/缓冲器;一个8位数据输入缓冲器(不锁存)。通常A口、B口作为输入端口或输出端口使用;C口既可作为输入端口或输出端口使用,又可在软件的控制下,分为两个4位的端口,作为A口、B口选通方式操作时的控制信号。2、 A组和B组控制电路这是两组根据CPU写入的控制字控制8255A工作方式的控制电路。A组控制A口和C口的高半部;B组控制B口和C口的低半部,并可根据控制字对C口的每一位实现按置位或复位。3、 双向三态数据总线缓冲器这是8255A和CPU数据总线的接口,CPU和8255A之间的命令、数据和状态的传递都是通过这个双向三态数据总线缓冲器传送的,D7D0接CPU的数据总线。4、 读/写控制逻辑对A组和B组控制电路实施控制,管理所有的数据、控制字或状态字的传送。8255A有三种工作方式:方式0基本输入输出方式;方式1选通输入输出方式;方式2双向传送方式(仅A口)。系统的软件设计系统软件由主程序、定时器T0中断服务程序、键盘识别中断服务程序和显示子程序组成。 1、主程序包括定时器0、定时器1、多位标志位、温度存储器、设定值存储器的初始化、显示缓冲区清零、温度状态显示、时钟计数单元初值、键盘状态值初始化、设定堆栈指针容。流程图如图所示。 2、 定时器T0中断服务程序 T0中断服务程序是温度控制系统的主体程序,用于启动A/D转换、读入采样数据、数字滤波、温度差值运算、继电器控制与通道和压缩机开关控制、显示定时器的增1与时间判断,如图所示。在T0中断服务程序中要用到一系列子程序,如温度采样子程序、数字滤波子程序、标度转换子程序、功率判断子程序等。每个通道的状态参数寄存器组:工作方式寄存器、工作状态寄存器、库温寄存器、温度上限寄存器、温度下限寄存器。3、键盘识别中断服务程序本系统采用4键键盘结构,即功能键、增键、减键和确认键便可以完成系统参数的设定、开关机等操作,实现人机对话功能。键盘操作过程如下:通道号:1,2,3,4,5,6,7,8(15为库房通道号,68为压缩机通道号)。状态值:0为手动停止,1为手动开启,2为自动停止,3为自动开启,4为设定温度上限,5为设定温度下限。符号:,()正号不显示。温度:测量值,设定值。;设键盘为P3.0到P3.3四位,依次为功能键,增键,减键,确认键.;所修改的数据单元为74H79H显示数据单元,同时,置80H为1;在AD采集的数据显示前,需要先检测80H位,如为1,则相应做出采集数据处理, 并将80H清零. ;键值存于 81H ;功能开始标志存于 82H;当前处理的单元放于83H.4、显示子程序6位LED数码管,其中第一位显示制冷的库房号或通道号,第二位显示通道的工作状态,第三位显示温度的正负值,最后3位显示温度值和设定值,其中1位小数。显示子程序由3个模块组成:显示容更新模块、字形码查表转换模块、字形码送串行口显示模块。显示方式有2种:自动轮流显示各通道工作状态温度方式和功能设定状态显示方式。;显示代码函数.使用方式为 call DisPlay 或者是 jmp DisPlay ;只假设做为子程序,单独编译不会成功. ;显示数据放于74H,75H,76H,77H,78H,79H 5、软件滤波程序为使经A/D转换后的波形不含干扰值,特地使用限幅消抖法进行滤波。此方法相当于“限幅滤波法”+“消抖滤波法”,其原理是先限幅,后消抖。即设置一个滤波计数器,将每次采样值与当前有效值比较:如果采样值当前有效值,则计数器清零;如果采样值当前有效值,则计数器+1,并判断计数器是否=上限N(溢出)如果计数器溢出,则将本次值替换当前有效值,并清计数器。它对于变化缓慢的被测参数有较好的滤波效果,可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动。附程序:DIS5 EQU 79HFLAG EQU 80HVALUE EQU 81HENABLE EQU 82HCUR EQU 83H ;初始化.MOV CUR,#74H ;此函数为子函数.调用时用jmp 或 call 来处理 ORG 0000H AJMP MAIN ;转入主程序 ORG 001BH ;定时器中断T1口地址 LJMP T_1 ;转T1中断服务程序 ORG 0030H ;以下是冷库房测量温度的初始化程序 MAIN: SETB P2.5 ;P2.5 降温控制位,启动制冷降温 CLR P2.6 ;P2.6制冷完控制位,关闭电磁阀SETB P2.0 ;P2.0控制压缩机位 MOV SP,#30H ;设置堆栈指针 MOV P3.3,#00H ;初始化显示为0 MOV TMOD,#16H ;T0计数状态、方式2,T1定时状态、方式1 MOV TL0,#00H ;T0计数初值设定 MOV TH0,#00H MOV TH1 ,#0BH ;T1定时初值,1S,6MHZMOV TH0 ,#0DCH MOV R2,#8 ;设置软计数器 MOV 20H,#EEH ;初始设置温度-18度,装入20H MOV 21H,#05H ;初设冷藏温度5度,装入21HLOOP: SETB IT0 ;外部中断边沿触发 SETB EX0 ;外部中断0允许 SETB EA ;开总中断SETB ET0 ;定时器T0中断允许 SETB ET1 ;定时器T1中断允许 ORL TCON,#01010000B ;同时启动定时器1和定时器0 SJMP $ ;等待中断;以下是T_1中断程序启动定时扫描5通道 T_1: PUSH PSW ;保护PSW PUSH ACC ;保护ACCMOV R1,#30H ;初设指针 MOV DPTR,#07FF8H ;指向通道0 MOV R5,#05H ;设通道数 ;以下是启动ADC0809采集数据程序LOOP1: MOVX DPTR,A ;启动AD转换 MOVX A,DPTR ;转换结束,A接受数据P0口为转换数据输入端MOV R1,A ;存储于数据区 MOV 22H,R1 ;寄存数据于22H INC DPTR ;指向下一个通道 INC R1 ;修改数据区指针 DJNZ R5,LOOP1 ;5个通道转换完否? RET ;以下程序是比较采样数据,采样冷库房温度与设置温度比较 MOV A,22H CLR C SUBB A,20H ;和-18度比较 JNC SH ;若大于-18度,转入上限处理程序 LJMP YSJ ;转向压缩机 ;以下是低于-18度的处理程序 XI: CLR P2.6 ;停止或是关闭 ;以下是上限处理程序 SH: SETB P2.5 ;发出制冷信号,打开电磁阀 YSJ: SETB P2.0 ;开启压缩机,压缩机自动控制;保护压缩机 BH: MOV A,21H ANL A,#00001110B ;屏蔽除13位的其他位 JNZ BH ;判断有无键闭合若没有则继续判断;压缩机自动控制开关 MOV A,21H JNB ACC.3,BH ;判断确定设置键是不是断开,若不是则继续判断LJMP FH ;若确定设置键断开则返回;中断返回FH: POP PSW POP ACC RETI ;以下是调用BCD码转换和显示程序显示当前温度 MOV R0,22H LCALL BCD ;调用BCE码转换程序 LCALL P3.3 ;调用显示程序显示,供工作人员观察和打印 ;以下是程序循环采样一轮数据后返回 LJMP LOOP;键盘初始化程序KeyCtrl: MOV VALUE,P3.3 ANL VALUE,#0FH ;保留低四位,进行检测 MOV R0,VALUE DJNZ R0,KEYFUNEXIT: RETKEYFUN:WAIT: MOV R1,P3.3 ANL R1,#0FH DJNZ R1,WAIT ;一次按键有效 CJNE R0,#01H,ACTIVE ;功能键 CJNE 82H,#01H,EXIT ;功能键开户前,不处理其它键 CJNE R0,#02H,KEY_INC ;增 CJNE R0,#04H,KEY_DEC ;减 CJNE R0,#08H,KEY_ENTER ;确认 JMP EXIT ;都不是,可能出现同时按下多键,那么,返回ACTIVE: MOV ENABLE,#01H ;使其它键可处理 JMP EXITKEY_INC: MOV R1,CUR ;存储需要修改的单元 INC R1 JMP EXITKEY_DEC: MOV R1,CUR DEC R1 JMP EXITKEY_ENTER: INC CUR CJNZ CUR,#79H,NEXT MOV CUR,#74H MOV ACTIVE,#00H MOV FLAG,#01HNEXT: JMP EXITDIS5 EQU 79HFLAG EQU 80HVALUE EQU 81HENABLE EQU 82HCUR EQU 83HORG 0000HAJMP MAINORG 0030HMAIN:INITIAL:MOV SP,#30HMOV CUR,#74HCALL DisPlayCALL KeyCtrlENDDisPlay:DIR: MOV SCON,#00H MOV R1,#06H MOV R0,#DIS5 ;初始化结束 DIR0: MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI DEC R0 DJNZ R1,DIR0 RET;-TAB: DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H DB 82H,0F8H,80H DB 90H,88H,83H DB 0C6H,0A1H,86H DB 8EH,0FFH;- KeyCtrl: MOV VALUE,P3 ANL VALUE,#0FH ;保留低四位,进行检测 MOV R0,VALUE DJNZ R0,KEYFUNEXIT: RETKEYFUN:WAIT: MOV R1,P3 ANL R1,#0FH DJNZ R1,WAIT ;一次按键有效 CJNE R0,#01H,ACTIVE ;功能键 CJNE 82H,#01H,EXIT ;功能键开户前,不处理其它键 CJNE R0,#02H,KEY_INC ;增 CJNE R0,#04H,KEY_DEC ;减 CJNE R0,#08H,KEY_ENTER ;确认 JMP EXIT ;都不是,可能出现同时按下多键,那么,返回ACTIVE: MOV ENABLE,#01H ;使其它键可处理 JMP EXITKEY_INC: MOV R1,CUR ;存储需要修改的单元 INC R1 JMP EXITKEY_DEC: MOV R1,CUR DEC R1 JMP EXITKEY_ENTER: INC CUR CJNZ CUR,#79H,NEXT MOV CUR,#74H MOV ACTIVE,#00H MOV FLAG,#01HNEXT: JMP EXITDisPlay:DIR: MOV SCON,#00H MOV R1,#06H MOV R0,#DIS5;初始化结束DIR0: MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI DEC R0 DJNZ R1,DIR0 RET;-TAB: DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H DB 82H,0F8H,80H DB 90H,88H,83H DB 0C6H,0A1H,86H DB 8EH,0FFH;-滤波程序如下:#define A 10#define N 12char value;char filter() char count=0; char new_value; new_value = get_ad(); while (value !=new_value);count+; if (count=N) return new_value; delay(); new_value = get_ad(); return value; charnew_value; new_value = get_ad(); if ( ( new_value - value A ) | ( value - new_value A ) return value; return new_value;参考文献:1、机电一体化系统设计曾励主编2、单片微型计算机接口技术与其应用淑清 万录等编著3、C语言程序设计耿植林等编著4、单片机典型模块设计实例导航科技编著5、单片机原理与接口技术胡健主编.玉宾 朱焕立等编著20 / 20
展开阅读全文