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

📄 text2.asm

📁 利用DS18B20采集温度
💻 ASM
字号:
		ORG		0000H
		LJMP	MAIN
		ORG		0100H
MAIN:	MOV		SP,#60H
		LCALL	LED_00
		LCALL	LED_0
		LCALL	OW_REST
		MOV		30H,#0CCH
		LCALL	WRITE_BYTE
		MOV		30H,#44H
		LCALL	WRITE_BYTE
MAIN0:  SETB	F0
		LCALL	READ_TEMP
		LCALL	WORK_TEMP
		LCALL	LED_11
		LCALL	LED_1
		AJMP	MAIN0
OW_REST:	NOP	
   LOOP:	SETB	P3.7
   			NOP
			NOP
			CLR		P3.7
			LCALL	DElAY550US
			SETB	P3.7
			LCALL	DELAY65US
			JB		P3.7,LOOP1
			LCALL	DElAY550US
			SETB	P3.7
			RET
  LOOP1:	AJMP	LOOP
WRITE_BYTE:	MOV		R1,#08H
	LOOP2:	SETB	P3.7
			NOP
			NOP
			CLR		P3.7
			NOP
			NOP
			NOP
			MOV		A,30H
			ANL		A,#01H
			RRC		A
			MOV		P3.7,C
			MOV		A,30H
			RR		A
			MOV		30H,A
			LCALL	DELAY65US
			DJNZ	R1,LOOP2
			LCALL	DELAY65US
			SETB	P3.7
			RET
READ_BYTE:	MOV		R2,#08H
	LOOP3: 	SETB	P3.7
			MOV		A,40H
			RR		A
			CLR		P3.7
			NOP
			NOP
			NOP
			SETB	P3.7
			NOP
			NOP
			NOP
			NOP
			JB		P3.7,LOOP4
			ANL		A,#7FH 
			AJMP	LOOP5
   LOOP4:	ORL		A,#80H
   LOOP5:	MOV		40H,A
            LCALL	DELAY65US
			DJNZ	R2,LOOP3
			LCALL	DELAY65US
			SETB	P3.7
			RET
READ_TEMP:	LCALL	OW_REST
			MOV		30H,#0CCH
			LCALL	WRITE_BYTE
			MOV		30H,#0BEH
			LCALL	WRITE_BYTE
			LCALL	READ_BYTE
			MOV		50H,40H
			LCALL	READ_BYTE
			MOV		51H,40H
			LCALL	OW_REST
			MOV		30H,#0CCH
			LCALL	WRITE_BYTE
			MOV		30H,#044H
			LCALL	WRITE_BYTE
			RET
WORK_TEMP:	MOV		A,51H
			CJNE	A,#127,LOOP7
			JC		LOOP7
			MOV		A,51H
			CPL		A
			MOV		51H,A
			MOV		A,50H
			CPL		A
			ADD		A,#01H
			MOV		50H,A
			CLR		F0

   LOOP7:	MOV		A,50H
   			ANL		A,#0FH
			MOV		52H,A ;				存小数
			MOV		A,50H
			ANL		A,#0F0H
			RR		A
			RR		A
			RR		A
			RR		A
			MOV		53H,A
			MOV		A,51H
			ANL		A,#0FH
			RL		A
			RL		A
			RL		A
			RL		A
			ORL		A,53H
			MOV		B,#64H
			DIV		AB
			MOV		54H,A;				存百位
			MOV		A,B
			MOV		B,#0AH
			DIV		AB
			MOV		55H,A ;				存十位
			MOV		56H,B;				存个位
			RET
LED_0:		MOV	R4,#04H
			MOV	R0,#0EFH
			MOV	DPTR,#TABLE
  LED_01:	CLR	A
			MOVC	A,@A+DPTR
			MOV		P0,A
			MOV		P2,R0
			MOV		A,R0
			RL		A
			MOV	R0,A
			INC	DPTR
			LCALL	DELAY1MS
			DJNZ	R4,LED_01
			RET

LED_1:		MOV		R3,#03H
LOOP11:		MOV		R5,#0FFH
LOOP00:		LCALL	LED_BAIWEI
			LCALL	LED_SHIWEI
			LCALL	LED_GEWEI
			LCALL	LED_XIAOSHU
			DJNZ	R5,LOOP00
			DJNZ	R3,LOOP11
			RET
LED_XIAOSHU:	MOV		DPTR,#TABLE1
				MOV		A,52H
				MOVC	A,@A+DPTR
				MOV		R7,A
				MOV		DPTR,#TABLE2
				MOV		A,R7
				MOVC	A,@A+DPTR
				MOV		P2,#0EFH
				MOV		P0,A
				LCALL	DELAY1MS
				RET
LED_GEWEI:		MOV		DPTR,#TABLE3
				MOV		A,56H
				MOVC	A,@A+DPTR
				MOV		P2,#0DFH
				MOV		P0,A
				LCALL	DELAY1MS
				RET
LED_SHIWEI:		MOV		A,57H
				CJNE	A,#12H,LOOP21
				MOV		A,55H
 				CJNE	A,#00H,LOOP25
				MOV		P2,#0BFH
				MOV		P0,#00H
				RET
LOOP25:			JB		F0,LOOP21
				MOV		P2,#0BFH
				MOV		P0,#00H
				RET
LOOP21:			MOV		DPTR,#TABLE2
				MOV		A,55H
				MOVC	A,@A+DPTR
				MOV		P2,#0BFH
				MOV		P0,A
				LCALL	DELAY1MS
				RET
LED_BAIWEI:		JB		F0,LED_BAIWEI0
				MOV		P2,#7FH
				MOV		P0,#40H
				LCALL	DELAY1MS
				RET
LED_BAIWEI0:	MOV		A,54H
				CJNE	A,#00H,LOOP20
				MOV		P2,#7FH
				MOV		P0,#00H
				MOV		57H,#12H
				RET
LOOP20:			MOV		DPTR,#TABLE2
				MOVC	A,@A+DPTR
				MOV		P2,#7FH
				MOV		P0,A
				LCALL	DELAY1MS
				RET
LED_00:	LCALL	DELAY15MS;						初始化LED
		 MOV	P1,#38H
		 MOV	P3,#0F4H
		 CLR	P3.2
		 LCALL	DELAY5MS
		 MOV	P1,#38H
		 MOV	P3,#0F4H
		 CLR	P3.2
		 LCALL	DELAY5MS
		 MOV	P1,#38H
		 MOV	P3,#0F4H
		 CLR	P3.2
		 LCALL	DELAY5MS
		 MOV	P1,#38H
		 MOV	P3,#0F4H
		 CLR	P3.2
		 LCALL	DELAY5MS
		 MOV	P1,#08H
		 MOV	P3,#0F4H
		 CLR	P3.2
		 LCALL	DELAY5MS
		 MOV	P1,#01H
		 MOV	P3,#0F4H
		 CLR	P3.2
		 LCALL	DELAY5MS
		 MOV	P1,#06H
		 MOV	P3,#0F4H
		 CLR	P3.2
		 LCALL	DELAY5MS
		 MOV	P1,#0CH
		 MOV	P3,#0F4H
		 CLR	P3.2
	   	 LCALL	DELAY5MS
		 MOV		P1,#54H
		 MOV		P3,#0F5H
		 CLR		P3.2

		 LCALL	DELAY5MS
		 MOV		P1,#65H
		 MOV		P3,#0F5H
		 CLR		P3.2

	   	 LCALL	DELAY5MS
		 MOV		P1,#6DH
		 MOV		P3,#0F5H
		 CLR		P3.2

	   	 LCALL	DELAY5MS
		 MOV		P1,#70H
		 MOV		P3,#0F5H
		 CLR		P3.2

	   	 LCALL	DELAY5MS
		 MOV		P1,#65H
		 MOV		P3,#0F5H
		 CLR		P3.2

	   	 LCALL	DELAY5MS
		 MOV		P1,#72H
		 MOV		P3,#0F5H
		 CLR		P3.2

	   	 LCALL	DELAY5MS
		 MOV		P1,#61H
		 MOV		P3,#0F5H
		 CLR		P3.2

	   	 LCALL	DELAY5MS
		 MOV		P1,#74H
		 MOV		P3,#0F5H
		 CLR		P3.2

	   	 LCALL	DELAY5MS
		 MOV		P1,#75H
		 MOV		P3,#0F5H
		 CLR		P3.2

	   	 LCALL	DELAY5MS
		 MOV		P1,#72H
		 MOV		P3,#0F5H
		 CLR		P3.2

	   	 LCALL	DELAY5MS
		 MOV		P1,#65H
		 MOV		P3,#0F5H
		 CLR		P3.2
         RET
LED_11:	 JB		    F0,LOOP8
		 LCALL		LED_FUHAO1
LOOP8:	 MOV		R7,54H
		 LCALL		LED_BAIWEI1
		 MOV		R7,55H
		 LCALL		LED_SHIWEI1
		 MOV		R7,56H
		 LCALL		LED_GEWEI1
		 LCALL		LED_DIAN
		 LCALL		LED_XIAOSHU1
		 RET
LED_FUHAO1:	LCALL	DELAY5MS
			MOV		P1,#0C5H
			MOV		P3,#0F4H
			CLR		P3.2
			LCALL	DELAY5MS
			MOV		P1,#2DH
			MOV		P3,#0F5H
			CLR		P3.2
			RET
LED_BAIWEI1:CJNE	R7,#00H,LOOP9
			MOV		57H,#0A1H
			RET
LOOP9:		LCALL	DELAY5MS
			MOV		P1,#0C5H
			MOV		P3,#0F4H
			CLR		P3.2
			LCALL	DELAY5MS
			MOV		A,R7
			ADD		A,#30H
			MOV		P1,A
			MOV		P3,#0F5H
			CLR		P3.2
			RET
LED_SHIWEI1:CJNE	R7,#00H,LOOP10
			MOV		A,#57H
			CJNE	A,#0A1H,LOOP10
			RET
LOOP10:		LCALL	DELAY5MS
			MOV		P1,#0C6H
			MOV		P3,#0F4H
			CLR		P3.2
			LCALL	DELAY5MS
			MOV		A,R7
			ADD		A,#30H
			MOV		P1,A
			MOV		P3,#0F5H
			CLR		P3.2
			RET
LED_GEWEI1:	LCALL	DELAY5MS
			MOV		P1,#0C7H
			MOV		P3,#0F4H
			CLR		P3.2
			LCALL	DELAY5MS
			MOV		A,R7
			ADD		A,#30H
			MOV		P1,A
			MOV		P3,#0F5H
			CLR		P3.2
			RET
LED_DIAN:	LCALL	DELAY5MS
			MOV		P1,#0C8H
			MOV		P3,#0F4H
			CLR		P3.2
			LCALL	DELAY5MS
			MOV		P1,#2EH
			MOV		P3,#0F5H
			CLR		P3.2
			RET
LED_XIAOSHU1:MOV		A,52H
			CJNE	A,#00H,A0
			MOV		R6,#00H
			LCALL	LED
			RET
	   A0:	CJNE	A,#01H,A1
			MOV		R6,#01H
			LCALL	LED
			RET
	   A1:  CJNE	A,#02H,A2
			MOV		R6,#01H
			LCALL	LED
			RET
	   A2:	CJNE	A,#03H,A3
			MOV		R6,#02H
			LCALL	LED
			RET
	   A3:	CJNE	A,#04H,A4
			MOV		R6,#03H
			LCALL	LED
			RET
	   A4:	CJNE	A,#05H,A5
			MOV		R6,#03H
			LCALL	LED
			RET
	   A5:	CJNE	A,#06H,A6
			MOV		R6,#04H
			LCALL	LED
			RET
	   A6:	CJNE	A,#07H,A7
			MOV		R6,#04H
			LCALL	LED
			RET
	   A7:	CJNE	A,#08H,A8
			MOV		R6,#05H
			LCALL	LED
			RET
	   A8:	CJNE	A,#09H,A9
			MOV		R6,#06H
			LCALL	LED
			RET
	   A9:	CJNE	A,#0AH,AA
			MOV		R6,#06H
			LCALL	LED
			RET
	   AA:	CJNE	A,#0BH,AAA
			MOV		R6,#07H
			LCALL	LED
			RET
	  AAA:	CJNE	A,#0CH,AAC
			MOV		R6,#08H
			LCALL	LED
			RET
	  AAC:	CJNE	A,#0DH,AD
			MOV		R6,#08H
			LCALL	LED
			RET
	  AD:	CJNE	A,#0EH,AE
	  AE:	MOV		R6,#09H
			LCALL	LED
			RET
LED:		LCALL	DELAY5MS
			MOV		P1,#0C9H
			MOV		P3,#0F4H
			CLR		P3.2
			LCALL	DELAY5MS
			MOV		A,R6
			ADD		A,#30H
			MOV		P1,A
			MOV		P3,#0F5H
			CLR		P3.2
			RET
DELAY5MS:        MOV    R5,#100
DEL50:           MOV    R4,#24
DEL51:           DJNZ   R4,DEL51
                 DJNZ   R5,DEL50
   	             RET
DELAY15MS:       MOV    R5,#255
DEL150:          MOV    R4,#24
                 NOP
DEL151:          DJNZ   R4,DEL151
                 DJNZ   R5,DEL150
   	             RET
DELAY1MS:		 MOV	R7,#50
	D1:		   	 MOV	R6,#8
	D2:		     DJNZ	R6,D2
			     DJNZ	R7,D1
			     RET
DELAY65US:		 MOV		R5,#30
 DEL65:			 DJNZ	R5,DEL65
				 RET
DELAY550US:		 MOV		R5,#245
 DEL550:		 DJNZ	R5,DEL550
 				 ACALL	DELAY65US
				 RET
DELAY1S:         MOV    R5,#150
DEL5000:         MOV    R4,#24
                 ACALL	DELAY10MS
DEL5111:         DJNZ   R4,DEL5111
                 DJNZ   R5,DEL5000
   	             RET
DELAY10MS:       MOV    R7,#100
DEL100:          MOV    R6,#24	
DEL101:          DJNZ   R6,DEL101
                 DJNZ   R7,DEL100
   	             RET
TABLE:	DB 7FH,0FFH,7FH,7FH
TABLE1:	DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,06H,06H,07H,08H,08H,09H,09H
TABLE2: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
TABLE3: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH
		END

⌨️ 快捷键说明

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