空调自动控制系统软件设计及调试Word文档格式.docx
《空调自动控制系统软件设计及调试Word文档格式.docx》由会员分享,可在线阅读,更多相关《空调自动控制系统软件设计及调试Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
它所能容纳的程序能力也是有限的。
当然,我们可以采用各种技术进行优化,这样就可以最大限度的直至软件程序的出错运行。
各种子程序模块都挂接在该主程序上。
编制它时,我们尽可能充分利用8051单片机的软件资源及内部寄存器资源,这样可以提高其运行速度。
硬件和软件式空调温度控制的核心设讣方面,本课题把研究重点特别投向软件设讣,毕竟自动控制功能大部分都要靠软件程序来完成。
在本课题设计过程中,软件调试要花大量时间来调试运行,而硬件电路我们只需简单调试。
因此可见硬件设计和软件设计有很大区别,而且在总体调试中还要对其进行调整。
这都是本课题所研究的内容。
我们从总体上把握了空调自动控制系统的设计思路,初步了解到该研究项LI主要的研究丄作内容和其采用的优点。
倘若要具体进行各个细节方面的工作,我们能够发现这种总体设讣思路对具体电路的设计合理程序模块设计的重要指导意义,不管设计研究任何仪器仪表,这种总体设计思路总是必需的,而且是有利于我们从整体上把握该空调控制系统的性能和特点。
2.主程序的设计及流程图
本课题的主要思想就是检测温度,控制制冷压缩机对室温进行恒定控制。
并且将温度显示在七段码显示器上,还可通过键盘控制设定温度的增加和减少。
主程序通常包括可编程硬件、输入、输出端口和参数的初始化,自诊断管理模块以及实时中断管理和处理模块等。
我们采用“自顶向下”结构化设计,它属于该设计中的第一层次,除了初始化和自诊断外,主程序一般总是把其余部分联接起来,构成一个无限循环图,空调温度的自动控制的所有功能都在这一循环圈中周而复始地、或有选择地执行,除非掉电或按复位键,它不会跳出这一循环圈。
对于主程序,由于本设计设有键盘和显示子程序,实验结果一目了然。
本主程序从整个系统的上电复位开始运行,然后对各种可编程器件及单片机堆栈和参数进行初始化。
接着对各软、硬件模块进行自诊断,并同时判断有无中断,等待是哪儿硬件或软件出错。
一旦发生这种出错情况,则判明后进行相应的服务模块,然后进一步自诊断,以达到运行正常,否则就跳出,进行出错处理;
若无中断请求,我们开始进行实时处理状态,调用A/D转换子程序,同时我们采用BCD码运算,这样进行十六位二进制数转换为BCD的子程序。
这样,进行各种功能处理模块,数据融合技术子程序或多线段逼近温补子程序,处理完毕,我们判断是子程序,恢复二进制数码,同时,判断误差程度,若满足,输出启动D/A子程序。
整个测量过程是否结束,若结束,则返回,若误差过大,则重新调用数据融合技术进行计算处理。
若没有完成,则回到初始化阶段循环再做。
这就是整个空调温度控制的主程序的设计思想。
图4.1软件设计流程图主程序如下:
MAIN:
MOVSP.#30H
;
设定温度低位
设定温度高位
MOVTEPOL,#O8H
MOVTEPOH,#O1H
LCALLREST
LP:
LCALLSTART
MOVR1,#5CH
MOVR0,#2CH
MOVR2,#03H
LP1:
LCALLGET_TEP
LCALLIN_TEP
DJNZR2,LP1
数字滤波
室内温度低位
室内温度高位
PID运算
LCALLFILTER
MOVTEP1L,R7
MOVTEP1H,R6
LCALLPID
LCALLOV_DO
LCALLTEP_A
JMPLP
3.温度测量的子程序
温度测量通过DS18B20数字温度传感器测量室内温度,将室内温度值转化为数字量接入MSC-51单片机中,并将对应的数字量储存在TEP1L、TEP1H中。
在通过与控制温度比较对压缩机运转进行控制。
初始化
跳过ROM
J
变换温度
等待1S
设置DS18B20
匹配ROM
读存储器
图4.2温度测量流程图
温度测量子程序:
GET.TEMP:
LCALLINT;
调用初使化子程序
MOVA,#0CCH
LCALLWRITE;
送入跳过ROM命令
MOVA,#44H
LCALLWRITE
送入温度转换命令
LCALLINT
:
温度转换完全,再次初使化
MOVA,#0BEH
;
LCALLREAD
送入读温度暂存器命令
MOVR7,A
读出温度值低字节存入R7
MOVR6,A
SETBEA
读出谩度值高字节存入R6
RET
4.显示子程序
室内温度值和控制温度值都要通过七段码显示器显示出来,显示子程序必不可少,将要显示的室内温度和控制温度所对应的BCD码存入MSC-51中SEGDATA储存单元中,通过控制信号显示在相应的显示器上。
显示子程序:
DISPLAY:
MOVRO,#TEPOL
MOVR1,#01H
MOVR2,#04H
MOVDPTR,#TAB_NU
DIS1:
MOVA,@RO
MOVCA,@A+DPTR
MOVSEGDATA,A
SETBSEGD
NOP
CLRSEGD
INCRO
MOVSEGDATA,R1
SETBSEGB
CLRSEGB
显示内容首地址
显示数码管的起始位
显示内容位数
调用显示内容
调用显示位数
MOVA,R1
RLA
MOVR1,A
LCALLDELAY3MS;
防止软件干扰
DJNZR2,DIS1
5.D/A转换子程序
单片机通过DAC0832得到相应的启动电压,使压缩机能够根据单片机判断岀的信号进行运动,从而达到启动空调、降低室温的作用
D/A转换的子程序如下:
D/A_run:
MOVDPTR,#FF7FH
MOVA,CONTR
MOV@DPTR,A
6.PID运算子程序
加入PID运算可以提高温度测量的准确度和调节的质量,本课题采用PID运算正是为了提高运算结果,使之更精确,减少外界的干扰。
PID计算公式:
P(K)=P(K一1)+Kp[E(K)_E(K一1)]+«
•E(K)+KD[E(K)_2E(K一1)+E(K-2)]
=P(K-\)+Pp+Pi-Pd
一、PID算法子程序
PID算法子程序详细见附录PID子程序
下图为PID算法的流程图
图4.3PID算法流程图
二、PID算法中的求补过程
PID算法中存在着许多的数学算法子程序,举例说明求补过程是比较关键的一步子程序。
求补程序的设计流程如图4.4
图4.4求补子程序流程图
7.数字滤波子程序设计思想及其流程图
一、数字滤波设计思想及流程图
数字滤波是一种克服随机误差的软件算法。
因为随机误差是乂窜入仪表的随机干扰所引起的,这种误差是指在相同条件下测量同一量时,其大小和符号作无规则的变化而无法预测,但在多次测量中它是符合统汁规律的。
这样,我们根据统讣规律可消除误差,同时数字滤波还可以对信号进行必要的平滑处理,以保证仪表及系统的正常运行。
数字滤波有以下特点:
(1)数字滤波无需硬件,只是一个计算过程,因此可靠性高,不存在阻抗匹配问题;
(2)数字滤波实用软件算法实现的,因此可以使多个输入通过共用一个软件“滤波器”,从而降低仪表硬件成本;
(3)只要适当改变软件滤波器的滤波程序或运算参数,就能方便地改变滤波特性。
前面讨论到数字滤波的方法有很多,我们在设计智能型压力变送器是采用了较为常用的算术平均滤波法。
它就是连续取n个采样值进行算术平均,其数学表达式为:
显然,算术平均滤波对信号的平滑程度完全取决于N。
N较大时,平滑度高,但灵墩度低;
当N较小时,平滑度低,但灵墩度高。
二、数字滤波子程序
FILTER:
MOV
A,2CH
MOV
R3,5CH
CJNE
A,2DH,CMP1
R3,5DH,CMP1
AJMP
CMP2
CMP1:
JNC
XCH
A,2DH
A,2CH
R3,5DH
R3,5CH
CMP2:
A,2EH,CMP3
R3,5EH,CMP3
2AH,A
5AH,R3
CMP3:
JC
CMP4
CMP4:
A,2EH
MOVR3,5EH
CJNEA,2CH,CMP5
CJNER3,5CH,CMP5
MOV2AH,A
MOV5AH,R3
CMP5:
JCCMP6
XCHA,2CH
XCHR3,5CH
CMP6:
MOV2AH,A
MOV5AH,R3