陕西国防学院机电工程系毕业论文 MOV 43H , A ;回存 CLR C ;
SUBB A , #32 ;320ms水温平均值余数累加值试减32 JC T320 ;余数累加值<32,余数累加值不变 INC 42H ;余数累加值>=32,320ms水温平均值加1 MOV 43H , A ;余数累加值减去32后的差值回存 T320: DJNZ R3 , T323 ;判320ms到否?未到返回 SETB 02H ;320ms到,置320标志 MOV R3 , #32 ;重置320ms计数器出值 MOV A , 43H ;读余数(余数四舍五入) CJNE A , #16 , T321 ;余数与32半数(16)比较 T321: JC T322 ;余数<16,“四舍” INC 42H ;余数>=16,“五入” T322: MOV 45H , 44H ;刷新上次水温
MOV 44H , 42H ;存320ms水温平均值(本次水温) MOV 42H , #0 ;320ms水温平均值累加器清0 MOV 43H , #0 ;320ms水温平均值余数累加器清0 T323: RET
有关寄存器和标志位说明: 32H:10ms水温A/D平均值; 42H:320ms水温平均值累加器; 43H:320ms水温平均值余数累加器; 44H:本次320ms水温A/D平均值; R3: 320ms计数器; 02H:320ms标。
3.2.3 水温设置上升、下降键子程序
水温设置上升、下降键子程序
KUP: JNB P1.6 , KUP1 ;按上升键,转记一次 JB 0CH , KUP0 ;已按下降键,互锁返回
CLR 09H ;未按上升键或上升键后释放,清长按钮标志 SETB P2.6 ;停嘟声
MOV R7 , #00H ;长按钮计数器清0
15
陕西国防学院机电工程系毕业论文 JBC 08H ,KUP2 ;有上升键按下标志,确认按一次上升键 KUP0: RET ;未按上升键,返回
KUP1: JB 08H , KUP10 ;已有上升键按下标志,转长按钮计数 SETB 08H ;无按下标志,置上升键按下标志 CLR P0.7 ;小数点亮(表示与水温显示的区别) CLR P2.6 ;发嘟声
KUP10: INC R7 ;长按钮0.2s计数
CJNE R7 , #20,KUP0 ;判长按钮0.2s满否?未满返回
DEC R7 ;满0.2s,长按钮0.2s计数器保持临界状态 JB 09H , KUP11 ;有长按钮标志,转100ms计数 SETB 09H ;无长按钮标志,置长按钮标志 MOV 33H ,#10 ;置100ms计数器初值 KUP11: DJNZ 33H , KUP0 ;判100ms满否?未满返回 MOV 33H , #10 ;满100ms,重置100ms计数器初值 KUP2: INC 46H ;设置整定值+1 MOV A , 46H ;
CJNE A , #85 ,KUP20 ;判设置整定值大于85℃否? KUP20: JC KUP3 ;<85℃
MOV 46H , #85 ;≥85℃,置最大整定值85℃ MOV A , 46H ;
KUP3: MOV 36H ,#10 ;置整定刷新显示保留时间(3220ms×10) SETB 06H ;置整定刷新显示控制标志 LCALL DIR ;刷新显示 RET ; 个标志位和寄存器说明: 08H:上升键按下标志;
09H:上升键长按钮标志(按上升键0.2s后建立); 0CH:下降键按下标志(与上升键互锁);
06H:整定刷新显示控制标志(在显示子程序中起整定刷新显示控制作用); P0.7:小数点显示控制端; P2.6:嘟声输出端;
R7:长按钮计数器,计数0.2s;
16
陕西国防学院机电工程系毕业论文 33H:100ms计数器,在确定长按钮后,每增加100ms,设置整定值加1; 46H:设置整定值寄存器;
36H:整定刷新显示保留时间计数器,保留显示10×320ms=3.2s。
3.2.4 温控子程序
温控子程序
CTRL: JNB 00H , CL1 ;非初始,转正常温控 LCALL BEGN ;初始,按初始状态控温 RET ;
CL1: LCALL UPDN ;判水温升降状态标志 LCALL HILW ;判水温高低状态标志
LCALL WORD ;根据水温升降、高低,求SCR控制字升降 RET ;
3.2.5 判水温升降状态子程序
判水温升降状态子程序
UPDN: MOV 23H , #0 ;清上升下降标志 CLR 0EH ;清水温不变标志 CLR C ;
MOV A , 44H ;读本次水温
SUBB A , 45H ;本次水温-上次水温 JC DN ;下降,转 JNZ UP ;上升,转
SETB 0EH ;不变,置水温不变标志 RET ;
UP: SETB 1FH ;置上升标志 UP1: CJNE A , #2 ,UP10 ;判上升1?
UP10: JNC UP2 ;非上升1,转判上升2 SETB 1CH ;置上升1标志 RET ;
UP2: CJNE A , #3 ,UP20 ;判上升2? UP20: JNC UP3 ;非上升2,转上升3 SERB 1DH ;置上升2标志
17
陕西国防学院机电工程系毕业论文 RET ;
UP3: SETB 1EH ;置上升3及以上标志 RET ;
DN: SETB 18H ;置下降标志 CLR C ; MOV A , 45H ;
SUBB A , 44H ;上次水温-本次水温 DN1: CJNE A , #2 ,DN10 ;判下降1?
DN10:JNC DN2 ;非下降1,转判下降2 SETB 19H ;置下降1标志 RET ;
DN2: CJNE A , #3 , DN20 ;判下降2
DN20:JNC DN3 ;非下降2,转下降3 SETB 1AH ;置下降2标志 RET ;
DN3: SETB 1BH ;置下降3标志 RET ; 有关寄存器及标志位说明:
23H:上升下降标志寄存器(位地址18H~1FH); 44H:本次水温寄存器; 45H:上次水温寄存器;
0EH:水温不变标志(本次水温与上次水温相比); 18H:水温下降标志; 19H:下降1标志; 1AH:下降2标志; 1BH:下降3标志; 1CH:上升1标志; 1DH:上升2标志; 1EH:上升3标志; 1FH:上升标志。
3.2.6 判水温高低状态子程序
18
陕西国防学院机电工程系毕业论文 判水温高低状态子程序
HILW: MOV 24H , #0 ;清水温高低状态标志 CLR 0DH ;清水温=整定值标志 MOV A , 44H ;读水温 CLR C ;
SUBB A , 47H ;水温值-整定值 JC JNZ SETB RET HI: SETB HI1: CJNE HI10: JNC SETB RET HI2: CJNE HI20: JNC SETB RET HI3: SETB RET LW: SETB MOV CLR SUBB LW1: CJNE LW10: JNC SETB RET LW2: CJNE LW20: JNC SETB LW ;水温值<整定值,转 HI ;水温值>整定值,转
0DH ;水温值等于整定值,置水温值等于整定值标志 ;
27H ;置水温值>整定值标志 A ,#4 , HI10 ;判水温高1℃
HI2 ;>1℃,转判高2℃及以上 24H ;≤1℃,置≤1℃标志 ;
A ,#7 ,HI20 ;判水温高2℃
HI3 ;>2℃,转高3℃及以上 25H ;≤2℃,置≤2℃标志 ;
26H ;置高3℃及以上标志 ;
20H ;置水温值<整定值标志 A ,47H ; C ;
A ,44H ;整定值-水温值 A ,#4 ,LW10 ;判水温低1℃?
LW2 ;低1℃及以上,转判低2℃ 21H ;低1℃及以内,置低1℃标志 ;
A ,#7 ,LW20 ;判水温低2℃
LW3 ;低2℃以上,转低3℃及以上 22H ;低2℃及以内,置低2℃标志
19