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

📄 wenduji.asm

📁 实现单片机对外界温度的检测,可以设置预定的值,并报警
💻 ASM
字号:
		ORG   0000H
        JMP   START
	    ORG   0040H
START:
	LCALL  	ZHUANHUAN
      	SETB   	P3.0
      	SETB   	P3.1
      	SETB   	P3.2
      	SETB   	P2.0
      	SETB   	P2.1
      	SETB   	P2.2
      	LCALL   DELAY1
      	MOV 	34H,#05
      	MOV 	35H,#05
      	MOV 	28H,#05
      	MOV 	29H,#05
LLL:
	LCALL   ZHUANHUAN
     	MOV    	31H,A
     	LCALL   DELAY4
    	LCALL   ZHUANHUAN
    	MOV    	32H,A
     	LCALL   DELAY4
    	LCALL   ZHUANHUAN
     	MOV    	33H,A
     	LCALL   FILTER
     	LCALL   CHNTER
     	LCALL   SHOW
    
KEY0: 
      	JB 	P2.4,LLL
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL   DELAY4
KEY1: 
	    JB      P2.5,KEY51
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL   DELAY4
KEY2:
      	JB 	P2.7,KEY3
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	DEC 	34H
      	MOV 	A,34H
      	MOV 	35H,34H
      	CJNE 	A,#0FFH,KEY22 
      	MOV 	34H,#05H 
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW  
      	LCALL   DELAY4
KEY22: 
	    LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	AJMP 	KEY2

KEY51:
	    LJMP   	KEY5
KEY3: 
      	JB 	P2.6,KEY02
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL   DELAY4
      	INC 	35H 
      	MOV 	A,35H
      	MOV 	34H,35H
      	LCALL   DELAY4
      	CJNE 	A,#0AH,KEY33
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL   DELAY4
     	MOV 	35H,#04
      	LCALL   DELAY4
KEY33: 	
	    LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	AJMP 	KEY3
KEY02:
	    LJMP  	KEY0
KEY5: 
	    JB 	P2.7,KEY6
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	DEC 	28H
     	MOV 	A,28H
      	MOV 	29H,28H
      	CJNE 	A,#0FFH,KEY55 
      	MOV 	28H,#05 
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW  
      	LCALL   DELAY4
KEY55: 
	    LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	AJMP 	KEY5
KEY6: 
      	JB 	P2.6,KEY01
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL 	SHOW
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL   DELAY4
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL   DELAY4
      	INC 	29H 
      	MOV 	A,29H
      	MOV 	28H,29H
      	LCALL   DELAY4
      	CJNE 	A,#9,KEY66
      	MOV 	29H,#04
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	LCALL   DELAY4 
      	LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW  
      	LCALL   DELAY4  
KEY66: 
	    LCALL   ZHUANHUAN
      	LCALL   CHNTER
      	LCALL 	SHOW
      	AJMP 	KEY6     
KEY01:
	    LJMP    KEY0         


 
SHOW:	
		LCALL	SHIFT
     	MOV   	A,@R1
     	INC   	R1
     	MOV   	DPTR,#TAB
     	MOVC   	A,@A+DPTR
     	MOV    	P1,A
     	SETB   	P3.0
     	LCALL   DELAY3
     	CLR    	P3.0  
     	LCALL   DELAY3

     	MOV   	A,@R1
     	SWAP  	A
     	ANL  	A,#0FH
     	MOVC   	A,@A+DPTR
     	MOV   	P1,A
     	SETB   	P3.1
     	LCALL   DELAY3
     	CLR   	P3.1
    	LCALL   DELAY3

     	MOV  	A,@R1 
     	INC    	R1 
     	ANL   	A,#0FH
     	MOVC   	A,@A+DPTR
     	MOV   	P1,A
     	SETB   	P3.2
     	LCALL   DELAY3
     	CLR  	P3.2
     	LCALL   DELAY3
	
     	MOV   	A,@R1
     	INC    	R1
     	MOVC   	A,@A+DPTR
     	MOV    	P1,A
     	SETB   	P2.3
     	LCALL   DELAY3
     	CLR    	P2.3
     	LCALL   DELAY3

     	MOV   	A,@R1
     	SWAP   	A
     	ANL   	A,#0FH
     	MOVC   	A,@A+DPTR
     	MOV   	P1,A
     	SETB   	P2.1
     	LCALL   DELAY3
     	CLR   	P2.1
     	LCALL   DELAY3

     	MOV  	A,@R1  
     	ANL   	A,#0FH
     	MOVC   	A,@A+DPTR
     	MOV   	P1,A
     	SETB   	P2.2
     	LCALL   DELAY3
     	CLR   	P2.2
     	LCALL   DELAY3
   
      	CLR    P2.4
 		CLR    P2.5
		CLR    P2.6
		CLR    P2.7
    	SETB   P2.4
 		SETB   P2.5
		SETB   P2.6
		SETB   P2.7
     	LCALL   DELAY3
; 数字代码表
TAB:    DB  	3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
     	RET

SHIFT:
		MOV   	R1,#3DH
      	MOV   	A,25H
      	MOV   	B,#100
      	DIV   	AB
      	MOV   	@R1,A
      	INC   	R1
      	MOV   	A,#10
      	XCH   	A,B
      	DIV   	AB
      	SWAP   	A
      	ADD   	A,B
      	MOV   	@R1,A
      	INC    	R1
      	MOV   	A,28H
      	MOV   	@R1,A
      	INC   	R1
      	MOV   	A,34H
      	MOV   	B,#10
      	DIV   	AB
      	SWAP   	A
      	ADD   	A,B
      	MOV   	@R1,A
      	DEC   	R1
      	DEC   	R1
      	DEC   	R1
      	RET

DELAY1: 
		MOV  	R5,#10
DE11 :  
		MOV  	R4,#80
DE12:   
		DJNZ   	R4,DE12
        DJNZ   	R5,DE11
        RET

DELAY2: 
		MOV	R5,#20
DE21:   
		MOV     R4,#80
DE22:   
		DJNZ   	R4,DE22
        DJNZ  	R5,DE21
        RET

DELAY3: 
		MOV     R5,#30
DE31:   
		MOV     R4,#30
DE32:   
		DJNZ    R4,DE32
        DJNZ    R5,DE31
        RET

DELAY4: 
		MOV     R5,#100
DE41:   
		MOV     R4,#60
DE42:   
		DJNZ   	R4,DE42
        DJNZ  	R5,DE41
        RET

CHNTER: 
		MOV   	21H,#101    
        MOV   	22H,#0
        MOV   	A,@R0
        MOV   	B,21H
        MUL   	AB
        ADD   	A,22H
        MOV   	24H,A
        MOV   	A,B
        ADDC  	A,23H
        MOV   	25H,A
        RET

FILTER: 
		MOV   	A,31H
        CJNE   	A,32H,CMP1
        AJMP   	CMP2
CMP1:
		JNC	CMP2
     	XCH     A,32H
     	XCH     A,31H
CMP2:
		MOV     A,32H
     	CJNE    A,33H,CMP3
     	MOV     38H,A
     	RET
CMP3:
		JC      CMP4
     	MOV     38H,A
     	RET
CMP4: 
		MOV   	A,33H
      	CJNE    A,31H,CMP5
      	MOV     38H,A
      	RET
CMP5:
		JC      CMP6
     	XCH     A,31H
CMP6:
		MOV     38H,A
     	RET

MULT1:
		MOV	A,39H                
      	XRL    	A,#00H
      	JB     	ACC.7,NEGFU1
      	LJMP   	POS1
NEGFU1:
		MOV    	A,39H
      	CPL    	A
      	ADD    	A,#01H
      	MOV    	B,#02H
      	MUL    	AB
      	MOV    	3CH,A
		CPL    	A
      	ADD    	A,#01H
      	MOV    	36H,A
	RET
POS1: 
		MOV    	A,39H
      	MOV    	B,#02H
      	MUL   	AB
      	MOV    	36H,A 
      	RET             

MULT2:
		MOV    	A,3BH                
      	XRL    	A,#00H
      	JB     	ACC.7,NEGFU2
      	LJMP   	POS2
NEGFU2: 
		MOV    	A,3BH
        CPL    	A
        ADD     A,#01H
        MOV     B,#2
        MUL     AB
        MOV     2CH,A
        MOV     A,3BH
        CPL     A
        ADD     A,#01H
        MOV     B,#2
		DIV     AB
		MOV     2DH,A
		MOV     B,2CH
		ADD     A,B  
        MOV     3CH,A
        CPL     A
        ADD     A,#01H
		MOV     37H,A
	RET
POS2: 
		MOV     A,3BH
    	MOV     B,#2
		MUL     AB
		MOV     2CH,A
		MOV     A,3BH
		MOV     B,#2
		DIV     AB
		MOV     2DH,A
		MOV     B,2CH
		ADD     A,B  
		MOV    	37H,A
      	RET



ZHUANHUAN:
 		SETB  	P3.3  
 		NOP
 		NOP
 		CLR   	P3.3 		; 将地址传送到ADC
 		NOP
 		NOP
 		SETB  	P2.0 
 		NOP
 		NOP
 		CLR   	P2.0 		; 启动转换
 		NOP
 		NOP
WAIT:
 		JB    	P3.7, MOVD 	; 结束转换
 		AJMP   	WAIT      	; 等待转换结束
MOVD:
 		CLR   	P3.6
 		NOP
 		NOP
 		SETB  	P3.6       	; 在ADC端口输出转换数据
 		NOP
 		NOP
 		MOV   	A,P0	  	; 将ADC中的数据保存到Acc
		MOV   	@R0,A	  	; 将Acc暂存到R0
		CLR   	P3.6	  	; DAC输出浮点数	
 		NOP
 	NOP
 	RET
END

⌨️ 快捷键说明

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