- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(空调自动控制系统软件设计及调试
空调自动控制系统软件设计及调试
1.空调自动控制系统软件程序设计思想
在硬件电路设计好以后,软件设计则是最重要的一个设计部分,由于空调自动控制的大部分智能化功能都是软件来完成,这样就使得硬件电路设计的简化和成本低可以得到实现。然而,8051单片机采用的是与其物理地址联系非常紧密地汇编语言来进行编程的。我们知道汇编语言相对于高级语言而言,它的速度是比较快的,而且它的指令代码也非常简单,但前提是编程人员要对8051单片机内部硬件电路非常熟悉。这对编程人员的要求是比较高的。
8051单片机的软件资源及内部寄存器资源,这样可以提高其运行速度。
2.主程序的设计及流程图
本课题的主要思想就是检测温度,控制制冷压缩机对室温进行恒定控制。并且将温度显示在七段码显示器上,还可通过键盘控制设定温度的增加和减少。主程序通常包括可编程硬件、输入、输出端口和参数的初始化,自诊断管理模块以及实时中断管理和处理模块等。我们采用“自顶向下”结构化设计,它属于该设计中的第一层次,除了初始化和自诊断外,主程序一般总是把其余部分联接起来,构成一个无限循环图,空调温度的自动控制的所有功能都在这一循环圈中周而复始地、或有选择地执行,除非掉电或按复位键,它不会跳出这一循环圈。对于主程序,由于本设计设有键盘和显示子程序,实验结果一目了然。
本主程序从整个系统的上电复位开始运行,然后对各种可编程器件及单片机堆栈和参数进行初始化。接着对各软、硬件模块进行自诊断,并同时判断有无中断,等待是哪儿硬件或软件出错。一旦发生这种出错情况,则判明后进行相应的服务模块,然后进一步自诊断,以达到运行正常,否则就跳出,进行出错处理;若无中断请求,我们开始进行实时处理状态,调用A/D转换子程序,同时我们采用BCD码运算,这样进行十六位二进制数转换为BCD的子程序。这样,进行各种功能处理模块,数据融合技术子程序或多线段逼近温补子程序,处理完毕,我们判断是子程序,恢复二进制数码,同时,判断误差程度,若满足,输出启动D/A子程序。整个测量过程是否结束,若结束,则返回,若误差过大,则重新调用数据融合技术进行计算处理。若没有完成,则回到初始化阶段循环再做。这就是整个空调温度控制的主程序的设计思想。
MAIN:MOV SP,#30H
MOV TEP0L,#08H ;设定温度低位
MOV TEP0H,#01H ;设定温度高位
LCALL REST
LP: LCALL START
MOV R1,#5CH
MOV R0,#2CH
MOV R2,#03H
LP1: LCALL GET_TEP
LCALL IN_TEP
DJNZ R2,LP1
LCALL FILTER ;数字滤波
MOV TEP1L,R7 ;室内温度低位
MOV TEP1H,R6 ;室内温度高位
LCALL PID ;PID运算
LCALL OV_DO
LCALL TEP_A
JMP LP
3.温度测量的子程序
DS18B20数字温度传感器测量室内温度,将室内温度值转化为数字量接入MSC-51单片机中,并将对应的数字量储存在TEP1L、TEP1H中。在通过与控制温度比较对压缩机运转进行控制。
GET_TEMP: LCALL INT ;调用初使化子程序
MOV A,#0CCH
LCALL WRITE ;送入跳过ROM命令
MOV A, #44H
LCALL WRITE ;送入温度转换命令
LCALL INT ;温度转换完全,再次初使化
MOV A,#0CCH
LCALL WRITE ;送入跳过ROM命令
MOV A,#0BEH
LCALL WRITE ;送入读温度暂存器命令
LCALL READ
MOV R7,A ;读出温度值低字节存入R7
LCALL READ
MOV R6,A ;读出谩度值高字
文档评论(0)