⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wendudongzhi.txt

📁 温度控制的闭环程序 电子工程课设的阶段成果
💻 TXT
字号:
;闭环温度控制程序
;第九组

;参数定义
DA_ADDR         EQU	0BFFFH
AD_ADDR		EQU	0D000H

DP_ADDR1	EQU	0E000H
DP_ADDR2	EQU	0E100H
DP_ADDR3	EQU	0E200H
DP_ADDR4	EQU	0E300H

KEY_READ1	EQU	0e400H
KEY_READ2	EQU	0e500H
KEY_READ3	EQU	0e600H
KEY_READ4	EQU	0e700H

DP_L		EQU	60H
DP_H		EQU	61H
LR_H            EQU     63H
LR_L            EQU     65H
L_BUF		EQU	30H
H_BUF		EQU	31H


;程序初始化
START:          ;清除显示;
        	MOV	      A,#0FFH
		MOV	      DPTR,#DP_ADDR1
		MOVX   @DPTR,A
		MOV	      DPTR,#DP_ADDR2
		MOVX   @DPTR,A
                MOV	      DPTR,#DP_ADDR3
		MOVX   @DPTR,A
		MOV	      DPTR,#DP_ADDR4
		MOVX   @DPTR,A 
                MOV          A,#00H


         

;键盘
                MOV     R4,#00H
                MOV     R4,#1
		MOV	A,#0FFH
		MOV	DPTR,#DP_ADDR3
		MOVX	@DPTR,A
		MOV	DPTR,#DP_ADDR4
		MOVX	@DPTR,A

JP2:
                ;键盘读取
JPDQ1:		MOV	R7,#-1
		INC	R7
		MOV	DPTR,#KEY_READ1
		MOVX	A,@DPTR
		ORL	A,#0E0H
		CPL	A
		JZ	JPDQ2
		MOV	R5,#5
		MOV	R6,#-1
JPDQ1_1:	INC	R6
		RRC	A
		JC	LP1
		DJNZ	R5,JPDQ1_1
		JMP	JPDQ2
LP1:		CALL    JPCL
                CALL    DISJP
                CALL    DELAY2
                JMP     JP2

JPDQ2:		INC	R7	
		MOV	DPTR,#KEY_READ2
		MOVX	A,@DPTR
		ORL	A,#0E0H
		CPL	A
		JZ	JPDQ3
		MOV	R5,#5
		MOV	R6,#-1
JPDQ2_2:	INC	R6
		RRC	A
		JC	LP2
		DJNZ	R5,JPDQ2_2
		JMP	JPDQ3
LP2:		CALL    JPCL
                CALL    DISJP
                CALL    DELAY2
                JMP     JP2 

JPDQ3:		INC	R7
		MOV	DPTR,#KEY_READ3
		MOVX	A,@DPTR
		ORL	A,#0E0H
		CPL	A
		JZ	JPDQ4
		MOV	R5,#5
		MOV	R6,#-1
JPDQ3_1:	INC	R6
		RRC	A
		JC	LP3
		DJNZ	R5,JPDQ3_1
		JMP	JPDQ4
LP3:		CJNE    R6,#1,LP3_1
                MOV     A,#0C0H
                MOV	DPTR,#DP_ADDR3
		MOVX	@DPTR,A
		MOV	DPTR,#DP_ADDR4
		MOVX	@DPTR,A
                MOV     R4,#1
                JMP     JP2
LP3_1:          JMP     QD

JPDQ4:		
                JMP       JP2
                


JPCL:          ;键值处理
               MOV      A,#00H
               CJNE     R7,#1,JPCL_1
               MOV      A,#5
JPCL_1:        ADD      A,R6
               MOV      R6,A
               RET


DISJP:         ;键盘显示
               MOV      A,R6
               MOV      DPTR,#TAB
               MOVC     A,@A+DPTR
               CJNE     R4,#1,DISJP1
               MOV	DPTR,#DP_ADDR3      
               MOVX	@DPTR,A
               DEC      R4
               MOV	H_BUF,R6
               RET
DISJP1:
               MOV	DPTR,#DP_ADDR4      
               MOVX	@DPTR,A
               MOV      R4,#1
               MOV	L_BUF,R6
               RET
               

DELAY2:         ;键盘显示延迟程序
		MOV	R5,#00H
D2:		MOV	R6,#0H
		DJNZ	R6,$
		DJNZ	R5,D2
		RET

               

QD:             MOV     A,H_BUF
                MOV     LR_H,A
                MOV     A,L_BUF
                MOV     LR_L,A



MAIN:
;温度数据采集
;CW:             
		MOV       DPTR,#AD_ADDR
		MOVX    @DPTR,A
		CALL      DELAY1
		MOVX     A,@DPTR
		;温度数值计算;
		MOV	  B,#100
		MUL	  AB
		MOV       A,B
		;二进制到十进制转换;
		CALL      BCD
		;温度数值显示;
		CALL      DISCW
		;延时等待;		
		CALL      DELAY1
		CALL      DELAY1
		CALL      DELAY1
		CALL      DELAY1
		CALL      DELAY1
		CALL      DELAY1
		CALL      DELAY1
		CALL      DELAY1
		CALL      DELAY1
		CALL      DELAY1

                CALL      CORE

               
                JMP       MAIN
		;RET
		
CORE:             ;启动闭环控制
                CLR A
                CLR C
                MOV A,LR_H
                CJNE  A,DP_H,CORE1
                CLR A
                CLR C
                MOV A,LR_L
                CJNE  A,DP_L,CORE2
                MOV   A,85H
                JMP   LPDA
CORE1:          JC  COLD1      ;设定温度高位低     
                MOV R1,A
                MOV A,#0FFH
                JMP  LPDA
CORE2:          JC  COLD2      ;设定温度低位低     
                MOV R1,A
                MOV A,#0E0H
                JMP  LPDA      
                
COLD1:         MOV R1,A
                MOV A,#00H
                JMP  LPDA
                
COLD2:        MOV R1,A
                MOV A,#20H
                JMP  LPDA

LPDA:           MOV DPTR,#DA_ADDR
                MOVX @DPTR,A
                CALL DELAY3
                RET
                

DELAY3:	        MOV R5,#0FH
D3:	        MOV R6,#0FH
	        DJNZ R6,$
	        DJNZ R5,D3
                RET				

BCD:		;二进制到十进制转换
		MOV          B,#10
		DIV	     AB
		MOV	     DP_H,A
		MOV	     DP_L,B
		RET	
		
DISCW:          ;采集温度数值显示
	        MOV       A,DP_H
		;个位显示数值转换为段码数据:	
		CALL     DECODE
		;个位段码数据;
		MOV	      DPTR,#DP_ADDR1
		MOVX   @DPTR,A
		MOV	     A,DP_L
		;十位显示数值转换为段码数据:	
		CALL    DECODE
		;送十位段码数据; 		
		MOV	     DPTR,#DP_ADDR2
		MOVX   @DPTR,A
                MOV       A,#00H
		RET

DECODE:		;  换码程序;	
	        MOV	DPTR,#TAB
		MOVC	A,@A+DPTR
		RET
		    
DELAY1:         ;测温显示延时程序;
	        MOV	R5,#80H
D1:		MOV	R6,#0H
		DJNZ	R6,$
		DJNZ	R5,D1
	        RET




TAB:		;换码数据表;
		DB	0C0H,0F9H,0A4H,0B0H,099H
		DB	092H,082H,0F8H,080H,090H
		END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -