单片机花卉温室控制系统 第7页
五 系统软件设计
系统的操作过程和工作过程在程序的设计过程中起着很重要的指导作用,因此在软件设计之前应首先分析温室的工作流程。
1、工作流程
温室在上电复位后先处于停止加热状态,这时 用“+1”键设定预置温度,显示器显示预定温度;温度设定好后就可以按启动键启动系统工作了。温度检测系统不断定时检测当前温度,并送往显示器显示,达到预定值后停止加热并显示当前温度;当温度下降到下限(比预定值低于
根据上面对工作流程的分析,系统软件可以分位以下几个功能模块:
①键盘管理:监测键盘输入,接受温度预置,启动系统工作。
②显示:显示设置温度及当前温度。
③温度检测及温度值变换:完成A/D转换及数字滤波。
④温度控制:根据检测到的温度控制电炉工作。
⑤报警:当预置温度或当前温度越限时报警。
2、资源配置
为了便于阅读程序,首先给出单片机资源分配情况。7;数据存储器的分配与定义见表4。
表4 温度控制软件数据存储器分配表
地址 |
功能 |
名称 |
初始化值 |
51H |
当前检测温度 |
TEMP0 |
00H |
52H |
预置温度 |
ST0 |
00H |
53H,54H |
码显示缓冲区 |
T10,T |
00H |
55H |
二进制显示缓冲区 |
BT0 |
00H |
59H∽7FH |
堆栈区 |
|
|
PSW.5 |
报警允许标志 F0=0是禁止报警;F0=1允许报警 |
F0 |
0 |
程序存储器:EPROM2764的地址范围为0000H∽1FFFH
I/O口 :P1.0∽P1.3—键盘输入;P1.6、P1.7—报警控制和电炉控制。
A/D转换器0809:通道0∽通道7的地址为7FF8H∽7FFFH,使用通道0。
3、功能软件设计
(1)键盘管理模块
上电或复位后系统处于键盘管理状态,其功能是监测键盘输入,接收温度预置和启动键。程序设有预置温度合法检测报警,当预置温度超过
若图片无法显示请联系QQ752018766
图20 键盘管理子程序流程图
键盘管理子程序KIN:
KIN: ACALL CHK ; 预置温度合法性检测
MOV BT0,ST0 ; 预置温度送显示缓冲区
LCALL DISP ; 显示预置温度
KINO: ACALL KEY ; 读键值
JZ KIN0 ; 无键闭合和重新检测
ACALL DISP
ACALL DISP ; 二次调用显示子程序延时去抖
ACALL KEY ; 再检测有无键按下
JZ KIN0 ; 无键按下重新检测
JB ACC.1,S1
MOV A,#10 ; 十位键按下
AJMP SUM
S1: JB ACC.2,S0
SUM: ADD A,ST0 ; 预置温度按键+1
MOV ST0,A
KIN1: ACALL KEY ; 判断闭合键释放
JNZ KIN1 ; 未释放继续判断
AJMP KIN ; 闭合键释放继续扫描键盘
S0: JNB ACC.0 ; 无键按下重新扫描键盘
RET ; 启动键按下返回
KEY; MOV A,P1 ; 读键值子程序
CPL A
ANL A,#0FH
RET
预置温度合法性检测子程序CHK:
CHK: MOV A,#19H ; 预置温度上限送A
CLR C
SUBB A,ST0 ; 相减,借位CY
JC OUTA ; 预置温度越界,转报警
ET
OUTA: MOV ST0,#19H ; 将
CLR P1.6 ; 发报警信号0.6S
ACALL D0.6S
SETB P1.6 ; 停止报警
RET
(2)显示模块
显示子程序的功能是将缓冲区55H的二进制数据先转换成BCD码,分别存入个位和十位显示缓冲区53H,54H单元,然后通过串口送出显示。
显示子程序DISP:
DISP : ACALL HTB ;将显示数据转换成BCD码
若图片无法显示请联系QQ752018766 MOV SCON,#00H ;置串行口为方式1
MOV R2,#02H ;显示位数送R2
MOV R0,#T10 ;显示缓冲区首地址R0
LD : MOV DPTR,#TAB ;指向字形码表首地址
MOV A,@R0 ;取显示数据
MOVC A,@A+DPTR ;查表
MOV SUBF,A ;字形码送串行口
WAIT : JBC TI,NEXT ;发送结束转下一个数据并清中断标志
SJMP WAIT ;发送未完等待
NEXT : INC R0 ;修改显示缓冲区指针
DJNZ R2,LD ;判2位显示完毕,未完继续
RET
TAB : …
BCD码转换成子程序HTB:
HTB : MOV A,BT0 ;取二进制显示数据
XCH A,B
若图片无法显示请联系QQ752018766 DIV A,B
MOV T10,A ;十位数送53H
MOV T,B ;个位数送54H
RET
(3)温度检测模块
A/D转换采用查询方式。为提高数据采样的可靠性,对采样温度惊醒数字滤波。数字滤波的算法很多,这里采用4次采样取平均值的方法。如前所叙,本系统A/D转换结果乘2正好是温度值,因此,4次采样 的数字量之和除以2就是检测的当前温度。检测温度存入51H。温度检测子程序流程图如图21 所示。若图片无法显示请联系QQ752018766
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页