TT1 DJNZ R7,TT0;4次转换是否完成 CLR c;求4次AD转换的平均值 XCH A, B RRC A XCH A, B RRC A CLR XCH A, B RRC A XCH A, B RRC A MOV50H,A;平均值存50H RET 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
TT1: DJNZ R7,TT0 ;4次转换是否完成 CLR C ;求4次A/D转换的平均值 XCH A,B RRC A XCH A,B RRC A CLR C XCH A,B RRC A XCH A,B RRC A MOV 50H,A ;平均值存50H RET
温度控制子程序: TCONT: MOV A, 51H CLR SUBB A,50H;设定值一实测值 MOV RO, A JNC CCPR;小于设定温度,接通相应加热器 MOV P1, OFFH ;否则,关闭加热器 AJMP CONEND CCPR: MOV A, RO SUBB A, 19H JC CCPR1 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
温度控制子程序: TCONT: MOV A,51H CLR C SUBB A,50H ;设定值—实测值 MOV R0,A JNC CCPR ;小于设定温度,接通相应加热器 MOV P1,#0FFH ;否则,关闭加热器 AJMP CONEND CCPR: MOV A,R0 SUBB A,#19H JC CCPR1
MOP1,#0F8H;开三组加热器 AJMP CONEND CCPR1 MOV A, RO SUBB A, OCH JC CCPR2 MOVP1,#0FCH;开两组加热器 AJMP CONEND ccPR2:MovP1,#0FEH;开一组加热器 CONEND: RET 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
MOV P1,#0F8H ;开三组加热器 AJMP CONEND CCPR1: MOV A,R0 SUBB A,#0CH JC CCPR2 MOV P1,#0FCH ;开两组加热器 AJMP CONEND CCPR2: MOV P1,#0FEH ;开一组加热器 CONEND: RET
显示子程序: DISP. MOR2,#03H;显示数据的个数 MOVR1,#5DH;显示缓冲区首址 SETB P1.3 DLO: MoVA,@R1;取要显示的数 MOV DPTR, TAB MOVC A,@A+DPTR;查字型码 MOV SBUF, A ;送出数据 DL1 JNBT,DL1;是否输完一个字节 CLR ;清发送完标志 INC R1 DJNZ R2,DL0;三个数是否都显示完? RET TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H ;0~9字型码 DB 92H, 82H, 0F8H, 80H, 90H 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
显示子程序: DISP: MOV R2,#03H ;显示数据的个数 MOV R1,#5DH ;显示缓冲区首址 SETB P1.3 DL0: MOV A,@R1 ;取要显示的数 MOV DPTR,#TAB MOVC A,@A+DPTR ;查字型码 MOV SBUF,A ;送出数据 DL1: JNB TI,DL1 ;是否输完一个字节 CLR TI ;清发送完标志 INC R1 DJNZ R2,DL0 ;三个数是否都显示完? RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H ;0~9字型码 DB 92H,82H,0F8H,80H,90H
六、总结与提高 设计、调试大型程序时,应该: ◆先根据要求划分模块,优化结构; ◆再根据各模块特点确定何为主程序,何为子程序,何 为中断服务程序,相互间如何调用; ◆接着根据各模块性质和功能将各模块细化,设计出程 序流程图; ◆最后根据各模块流程图编制具体程序。 调试时应先调主程序,实现最基本最主要的功能, 在此基础上再将各模块功能往主程序上堆砌,直至各 模块联调、统调,实现全部功能。 十一五国家级规为教材(高职高专) 高等教育出版社 HIGHER EDUCATION PRESS
六、总结与提高 设计、调试大型程序时,应该: ◆先根据要求划分模块,优化结构; ◆再根据各模块特点确定何为主程序,何为子程序,何 为中断服务程序,相互间如何调用; ◆接着根据各模块性质和功能将各模块细化,设计出程 序流程图; ◆最后根据各模块流程图编制具体程序。 调试时应先调主程序,实现最基本最主要的功能, 在此基础上再将各模块功能往主程序上堆砌,直至各 模块联调、统调,实现全部功能