单片机温控系统设计说明和程序
- 格式:doc
- 大小:171.50 KB
- 文档页数:15
单片机使用系统的软件设计 通常单片机使用系统的系统软件由主程序,定时中断服务程序和若干个子程序构成。根据系统各操作的性质,指定哪些操作由中断服务程序完成,哪些操作 由主程序完成。 通常主程序完成显示及键盘处理,实现人机对话功 能。其现场参数采样、控制输出等则由定时中断完成。下面以微电脑温度控制器为例,介绍单片机使用系统的软件设计流程。 一、温度控制器技术要求: 1、控温范围:0ºc-125ºc 2、控温精度:±1ºc 3、控温工艺曲线: 工艺分4步 第1步:全速升温 第2步:速率升温 第3步:保温 第4步:全速降温
二、软件设计的有关参数 1、键盘及显示安排: 命令键: 输入(0AH)、工作(0BH)、 确认(0CH) 继续(0DH) 、显示(0EH)、 退出(0FH) 数字键: 0-9 个 显示管: 8 个 显示符: 开机符:P Good 输入符: I n 工作符:BE 输入显示: 步号(2)、时间(3)、温度(3) 设定值 工作显示: 步号(2)、时间(3)、温度(3) 显标0: 实测值 1: P L(2)、时间(3)、温度(3) 设定值 2、采样周期: 考虑到现场温度变化缓慢,确定采用T0定时,定时时间100ms,温度采样周期为1秒,控温输出周期为8秒. 3、P1口的安排: P1.0: 7279-CS P1.4: 加热 P1.1: 7279-CLK P1.5: 冷却 P1.2: 7279-DATA P1.6: 升温灯 P1.3: 报警灯 P1.7: 保温灯 P3.2: 降温灯 P3.3 结束灯 4、I/O端口地址安排: 6264RAM: 0000H-1FFFH ADC0804: 2000H 5、内存单元安排: 标志位:00H 键标志 09H 显示标志 01H 输入标志 0AH 结束标志 02H 工作标志 0BH 退出标志 03H 数入标志 0CH 04H 修改标志 0DH 升温标志 05H 报警标志 0EH 降温标志 06H 半秒标志 0FH 保温标志 07H 1秒标志 08H 8秒标志 显缓区: 40H---47H 显示指针: 22H 计时单元: 24H(100ms) 25H(0.5s) 26H(1s) ΔU单元: 35H 实时时钟: 31H (秒) 32H(分) 工艺参数: 50H---5FH 工艺步号: 23H 采样值: 60H-65H 实测值: 38H-3AH 误差值: 3BH-3FH (ei-2 , ei-1 , ei ) 控制输出: 36H (加热) 37H (冷却) 堆栈区: 68H-7FH 三、微电脑温度控制器软件框图 1、开机引导程序 2、工艺输入程序 3、工作主程序 4、中断服务程序
四、微电脑温度控制器软件清单 1、开机引导程序: A、MAIN-1: ORG 0000H LJMP MAIN-1 MAIN-1:MOV SP, #67H MOV P1,#FDH ACALL INT-7279 MOV R7,#48H (清工作单元) MOV R0,#20H M-0: CLR A MOV @R0, A INC R0 DJNZ R7,M-0 ACALL MOV-0 (开机符-显缓区) AJMP MAIN-2 ORG 000BH LJMP IT-O
B、 MAIN_2: MAIN-2: ACALL DIR ACALL KEY CJNE A,#FFH,M-1 SJMP MAIN-2 M-1: CJNE A,#0AH,M-2 M-2: JNC M-3 ACALL SKEY 数键 SJMP MAIN-2 M-3: CJNE A,#0AH,M-4 ACALL MKEY-1 输入 SJMP MAIN_2 M-4: CJNE A,#0BH,M-5 ACALL MKEY-2 工作 SJMP MAIN-2 M-5: CJNE A,#0CH,M-6 ACALL MKEY-3 确认 M-6: CJNE A,#0FH,M-7 AJMP 0000H 退出 M-7: SJMP MAIN-2
a.SKEY:(数键处理) SKEY: JNB 03H,S-2 MOV R0,22H MOV @R0,A INC 22H MOV A,22H CJNE A,#48H,S-1 S-1: JC S-2 MOV 22H,#46H S-2: RET
b.MKEY-1(输入键处理) MKEY-1:SETB 01H SETB 03H MOV 22H, #46H MOV DPTR,#TAB-1 ACALL MOV-1 RET c.MKEY-2(工作键处理) MKEY-1:SETB 02H SETB 03H MOV 22H, #46H MOV DPTR,#TAB-2 ACALL MOV-1 RETd.MKEY-3(确认键处理) MKEY-3: JNB 01H,MK-0 LJMP SR-0 MK-0: JNB 02H,MK-1 LJMP GZ-0 MK-1: RET
2、工艺输入程序: A、SR-0: SR-0:MOV 23H,#01H MOV A, 23H MOV R0,#41H ACALL Z2-10-0 MOV A,52H MOV R0,#44H ACALL Z2-10-1 MOV A,53H MOV R0,#47H ACALL Z2-10-1 MOV 22H,#42H AJMP SR-1 B、 SR-1: SR-1:ACALL DIR ACALL KEY CJNE A,#FFH,S-1 SJMP SR-1 S-1:CJNE A,#0AH,S-2 S-2:JNC S-3 ACALL SKEY-1 数键 SJMP SR-1 S-3:CJNE A,#0CH,S-4 ACALL SKEY-2 确认 SJMP SR-1 S-4:CJNE A,#0DH,S-5 ACALL SKEY-3 继续 SJMP SR-1 S-5:CJNE A,#0FH,SR-1 ACALL SKEY-4 退出 SJMP SR-1
a.SKEY-1:(数键处理) SKEY-1: JNB 03H,S-2 MOV R0,22H MOV @R0,A INC 22H MOV A,22H CJNE A,#48H,S-1 S-1: JC S-2 MOV 22H,#42H S-2: RET
b.SKEY-2(确认键处理)SKEY-2: MOV A, 23H ADD A, 23H ADD A,#50H MOV R1, A MOV R0,#42H ACALL Z10-2 MOV @R1,A INC R1 MOV R0,#45H ACALL Z10-2 MOV @R1,A MOV 22H,#42H RET
c.SKEY-3(继续键处理) SKEY-3:INC 23H MOV A, 23H MOV R0,#40H ACALL Z2-10-0 MOV A, 23H ADD A, 23H ADD A,#50H MOV R1, A MOV A,@R1 MOV R0,#42H ACALL Z2-10-1 INC R1 MOV A,@R1 ACALL Z2-10-1 MOV 22H,#42H RETd.SKEY-4(退出键处理) SKEY-4:INC 23H MOV A, 23H ADD A, 23H ADD A,#50H MOV R1, A MOV @R1,#FFH (建立结束标志) LCALL MOV-2 (保存工艺) AJMP MAIN-1
3、工作主程序:GZ-0:LCALL MOV-3(取工艺) MOV 23H,#01H LCALL SBZ-0 (设置升降保标志) LCALL SCZ-0(设置步工艺初值) MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#B0H SETB TR0 MOV IE,#82H SETB 06H CLR P1.4 GZ-1:JNB 06H,G2 CLR 06H LCALL DL-0 (灯显示) JB 09H,G1 LCALL XS-0 (实测值-显缓区) SJMP G2 G1:LCALL XS-1(理论值-显缓区) G2:LCALL DTR ( 显示 ) LCALL KEY ( 键扫 ) CJNE A,#FFH,G3 SJMP G6 G3:CJNE A,#0EH,G4(显示键) CPL 09H SJMP G6 G4:CJNE A,#0FH,G5(退出键) SETB 0BH SJMP G6 G5:CJNE A,#0CH,G6(确认键) JNB 0BH,G6 SETB 0AH G6:LCALL BJ-0(报警处理) SJMP GZ-14、中断服务程序 IT-0:PUSH A PUSH B PUSH DPH PUSH DPL MOV PSW,#08H MOV TH0,#3CH MOV TL,#B0H LCALL SZJ-0 (设时标和时计) JNB 0FH,L2 MOV A,32H CJNE A,52H,L1 L1:JC IT-1 (转控制处理) SJMP IT-3 (转步结束处理) L2:JNB 0EH,L4 MOV A,3AH CJNE A,53H,L3 L3:JNC IT-1 SJMP IT-3 L4:JNB 0DH,IT-4 MOV A,3AH CJNE A,53H,L5 L5:SJMP L1IT-1:JNB 07H,IT-3 (控制处理) CLR 07H LCALL AD-0 采样 LCALL LB-0 滤波 LCALL CZ-0 计差值e(i) JNB 08H,IT-4 CLR 08H MOV A,52H JZ IT-2 LCALL JSC 计ΔU LCALL SZC-0 设置输出参数 SJMP IT-4IT-2:MOV 36H,#00H 设全速升降 L2:JNB 0DH,IT-4 MOV 37H,#00H 温输出参数 MOV36H,#7FH JNB 0EH,L2 SJMP IT-4 MOV 37H,#7FH SJMP IT-4 IT-3:INC 23H (步结束处理) LCALL MOV-4 步工艺传送 MOV A,52H CJNE A,#FFH,L6 SETB 0AH L6:JB 0AH,IT-5 转工艺结束处理 LCALL SBZ-0 设置升降保标志 LCALL SCZ-0 设置步工艺初值IT-4:JB 0AH,IT-5 退出转结束处理 LCALL KSC-0 控制输出 POP DPL POP DPH POP DPB POP DPA RETI 工艺结束处理IT-5:POP DPL POP DPH POP DPB POP DPA POP A POP A MOV A,#00H PUSH A MOV A,#10H PUSH A RETI ORG 1000H JSCL:MOV IE,#00H MOV P1,#FDH SETB P3.2 CLR P3.3 MOV R5,#C8H L7:MOV R6,#C8H