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

📄 con_t.asm

📁 MCS-51单片机实验 39个实用实验和源码
💻 ASM
字号:
;温度控制模块中的T-detect接第4模块的IN0 口,T-CON接13 模块74LS273的PO4。COOL接 13 模块74LS273的PO3。CS273接F200H。
;EOC接8032的P3.2(INT0中断),CS8279已接F238H,CS0809接F230H。
;若温度控制模块是插在扩展模块上,则须将温度控制模块上的+12V、-12V和主板上的+12V、-12V相连。
;*********************************
; Temperature control experiment *
;*********************************
;FOR    EAT598
ADCS	EQU	0F230H
CS273	EQU	0F200H
Com8279	EQU	0F239H
Dat8279	EQU	0F238H
READKB	EQU	40H
SET_V	EQU	50H
SET_VH	EQU	51H
SET_VL	EQU	52H
ADVAL	EQU	30H
CURTM   EQU	53H

	ORG	    0000H
	SJMP	40H
	ORG	    03H
	LJMP	INT0
	ORG	    40H
	MOV	    SP,#60H
	LCALL	INIT
	MOV     SET_V,#0FFH  	   ;初始化设置温度
	MOV	    DPTR,#ADCS 
	MOVX	@DPTR,A
	LCALL   DELAY
	MOVX	A,@DPTR
	MOV	    ADVAL,A            ;初始采样0809一次
	MOVX	@DPTR,A            ;启动A/D转换
    SETB	EX0                ;开中断 
	SETB	IT0
	SETB	EA
L1:
	LCALL	DIS_T	
	LCALL	SET_T
	LCALL	CON_T
	SJMP	L1
;*********************************
SET_T:
	LCALL	READ_KEY
	CJNE	A,#0,$+4
	RET
	MOV	    A,B
	CJNE	A,#0DH,END_ST		;If being 'D'key, start to set
ST_H:
	LCALL	READ_KEY
	CJNE	A,#0FFH,$-3
	MOV     A,B
	CJNE	A,#0EH,%H
	SJMP	END_ST
%H:
	MOV	    B,A
	SUBB	A,#9H
	JNC	    ST_H
	MOV	    SET_VH,B
	MOV  	R6,B
	MOV	    R7,#97H
	LCALL	DIS_CHAR
ST_L:
	LCALL	READ_KEY
	CJNE	A,#0FFH,$-3
	MOV	    A,B
	CJNE	A,#0EH,%L
	SJMP	END_ST
%L:
	MOV	    B,A
	SUBB	A,#09H
	JNC	    ST_L
	MOV	    SET_VL,B	
	MOV	    R6,B
	MOV	    R7,#96H
	LCALL	DIS_CHAR
	SJMP	ST_H
END_ST:
	MOV	    A,SET_VH
	MOV   	B,#0AH
	MUL	    AB
	ADD	    A,SET_VL
	MOV	    SET_V,A
	RET
;*********************************
READ_KEY:
     	MOV    DPTR,#Com8279
        MOVX   A,@DPTR          ;读8279状态
        ANL    A,#07H           ;屏蔽D7-D3
        JNZ    GETVAL           ;判断是否有键输入
        MOV    A,#0H            ;置标志(无键输入)
        SJMP   NKBHIT
GETVAL: MOV    A,#READKB        ;读 FIFO RAM 命令
        MOVX   @DPTR,A
        MOV    DPTR,#Dat8279
        MOVX   A,@DPTR          ;读键
        ANL    A,#3FH           ;屏蔽 SHIFT 和 CTRL 键
        MOV    B,A              ;置返回键值
        MOV    A,#0FFH          ;置标志(有键输入)
NKBHIT: 
        RET
;*********************************
CON_T:
	CLR	    C
	MOV 	R0,#43H
	MOV	    A,@R0
	MOV	    B,#0AH
	MUL	    AB
	INC	    R0
	ADD	    A,@R0
	MOV	    CURTM,A
	MOV	    A,SET_V
	CJNE    A,0FFH,CON_T1       ;若未设置键值,则不降温也不升温
	MOV     DPTR,#CS273   
	MOV     A,#10H
	MOVX    @DPTR,A
	JMP     END_CON_T
CON_T1:
	CJNE	A,CURTM,%CON0
	SJMP	%DOWN_T
%CON0:
	JNC  	%RISE_T
%DOWN_T:
	MOV	    DPTR,#CS273	;Down temp.
;	MOV	    A,#10H
	MOV	    A,#18H      ;开风扇
	MOVX	@DPTR,A
	SJMP	END_CON_T
%RISE_T:
	MOV	    DPTR,#CS273	;Up temp.
	MOV	    A,#00H
	MOVX	@DPTR,A	
END_CON_T:
	RET
;*********************************	
DIS_T:
    MOV	   A,ADVAL
	MOV	   B,#3H
	MUL	   AB
	MOV	   R4,B
	MOV	   R5,A
	MOV	   R0,#45H
	LCALL  %ITAB
	NOP
	NOP
	
	LCALL	LED
    RET
;*********************************
LED:
	MOV	    R0,#45H
	DEC	    R0
	MOV	    A,@R0
	MOV	    R6,A
	MOV	    R7,#92H
	LCALL	DIS_CHAR
	DEC	    R0
	MOV	    A,@R0
	MOV	    R6,A
	JZ	    LED_CLR
	CLR  	C
	SUBB	A,#9H
	JNC	    LED_CLR
	MOV	    A,@R0
	MOV	    R6,A
	MOV	    R7,#93H
	LCALL	DIS_CHAR
	SJMP	END_LED
LED_CLR:
	MOV	    R6,#00H
	MOV	    R7,#93H
	LCALL	DIS_CHAR
END_LED:
	RET
;*********************************
DIS_CHAR:
	MOV	    DPTR,#Com8279	
	MOV	    A,R7
	MOVX	@DPTR,A
	MOV	    A,R6
	MOV	    DPTR,#BCD
	MOVC	A,@A+DPTR
	MOV  	DPTR,#Dat8279
	MOVX	@DPTR,A
	RET
;*********************************	
INT0:
	PUSH	DPL
	PUSH	DPH
	PUSH	ACC
	MOV	    DPTR,#ADCS
	MOVX	A,@DPTR
	MOV	    ADVAL,A
	LCALL	DELAY
	MOVX	@DPTR,A
	POP	    ACC
	POP	    DPH
	POP	    DPL
	RETI	
;*********************************
INIT:
	MOV     DPTR,#CS273   ;将HEAT_ON灯和风扇关掉
	MOV     A,#10H
	MOVX    @DPTR,A


	MOV	    DPTR,#Com8279
	MOV	    A,#00H
	MOVX	@DPTR,A
	MOV	    A,#2FH
	MOVX	@DPTR,A
	MOV	    A,#0D1H
	MOVX	@DPTR,A
	LCALL	DELAY
	MOV	    R0,#30H
	MOV	    R1,#30H
	MOV	    A,#0
N_INIT:
	MOV	    @R1,A
	INC	    R1
	DJNZ	R0,N_INIT
	RET
;*********************************
DELAY:
	MOV	    20H,#7FH
DLY:
	MOV	    21H,#7FH
	DJNZ	21H,$
	DJNZ	20H,DLY
	RET
BCD:
	DB	3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
	END

⌨️ 快捷键说明

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