陕西国防学院机电工程系毕业论文 3.1.3 水温设置上升、下降键子程序流程图
经常在一些智能化设备中看到设置整定值采用上升键和下降键的方法,按一下上升键,设置整定值上升一位数,按住不放,快速上升;按一下下降键,设置整定值下降一位数,按住不放,快速下降。能实现这种效果的方法可能很多,下图为本设计的扫描上升键流程图。按键按一次释放,设置整定值加1并发短促嘟声(嘟声表示有效);按键超过0.2s开始计时,计时每增加0.1s,设置整定值加1,并刷新显示发出长嘟声。程序流程图如下:
10
陕西国防学院机电工程系毕业论文 开始 键按下否? 有按下标志否? 置按下标志 按钮计时 有按下标志否? 按钮超0.2s否? 有长按钮标志否? 置长按钮标志置100ms计数器 长按钮100ms计数 长按钮100ms满否? 确认长按钮一次100ms计数器重置初值 设置整定值+1 判设置整定值超限否? 置最大整定刷新显示 返回 图3—3
3.1.4 判水温升降状态子程序流程图
11
陕西国防学院机电工程系毕业论文 开始 请上升下降与水温不变标志 读本次水温 本次水温-上次水温 判差值>0否? 置上升标志 置下降标志 判上升1? 置上升1标志 判上升2? 上次水温-本次水温 判下降1? 置下降1标志 置上升2标志 判下降2? 置上升3及以上标志 置下降2标志 置下降3标志 返回 图3—4
3.1.5 判水温高低状态子程序流程图
12
陕西国防学院机电工程系毕业论文 开始 清水温高低状态、水温等于整定值标志 读水温 水温值-整定值>0? 置水温值>整定值标志 置水温值<整定值标志 判水温高1℃? 判水温低1℃? 置高1℃标志 置低1℃标志 判水温高2℃? 置高2℃标志 判水温低2℃? 置低2℃标志 置高3℃及以上标志 置低3℃及以上标志 返回 图3—5
3.1.6 求SCR控制字升降子程序流程图
3.2
主程序
程序设计
3.2.1 主程序
MAIN: LCALL STAT ; 初始化
WORK: JNB 01H , WORK ;等待交流电压过零或T02ms中断
13
陕西国防学院机电工程系毕业论文 CLR 01H ;有电压过零或T02ms中断,清中断标志 LCALL AD ;检测出水温(A/D转换)
JB TR0 , WORK ;T0未停,2ms中断未满4次,返回中断 WK1: LCALL TAV10 ;求10ms水温平均值
LCALL LOST ;检测漏电(若漏电,则0FH=1) JBC 0FH , WK ;漏电、转低功耗 LCALL CLOS ;检测开关
LCALL KUP ;扫描水温设置上升键 LCALL KDN ;扫描水温设置下降键 LCALL TAV320 ;求水温320ms平均值
JNB 02H , WK2 ;判320ms周期满否?(02H标志在TAV320中设
置)
CLR 02H ;320ms周期满,清320ms标志 LCALL DISP ;320ms刷新显示一次
LCALL CTRL ;控温320ms调整一次周期控制状态 LCALL EXP ;解码(周期控制状态转化为SCR控制字) WK2: JNB 03H , WORK ;未出水,返回循环(03H在出水中断INT1中置
位)
LCALL SCR ;出水,输出SCR控制字(10ms刷新一次) LJMP WORK ;返回循环
WK3: LCALL LOW ;转入低功耗睡眠状态
LJMP WORK ;跳出低功耗,返回正常工作循环
3.2.2 求320ms水温平均值子程序
求320ms水温平均值子程序
TAV320: MOV A , 32H ;读水温10ms平均值 MOV B , #32 ;置除数
DIV AB ;10ms水温平均值/32 ADD A , 42H ;320ms水温平均值累加 MOV 42H , A ;回存
MOV A , B ;读320ms水温平均值余数 ADD A , 43H ;320ms水温平均值余数累加
14