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

📄 wd.asm

📁 用2051加热敏电阻做的温度计!有很多不足的地方!请大家修改!
💻 ASM
字号:
    	SHD BIT  19H
	WRM BIT	 1AH
	CU1 DATA 38H
	CU2 DATA 39H
	CT2 DATA 3AH
	CT1 DATA 3BH
	CT0 DATA 3CH
	CR1 DATA 3DH
	CR2 DATA 3EH
	CM1 DATA 40H
	CM2 DATA 41H
	CM3 DATA 42H
	KT DATA 43H
	WDS DATA 44H
	WDG DATA 45H
	CNT DATA 46H
	DYM BIT 20H
	FW  BIT 21H
	RX EQU P1.5
	TX EQU P1.6
	ORG 00H
	AJMP MAIN
  
       	ORG 0030H
 MAIN:	MOV TMOD,#01H    	;主程序开始.定时器T0方式1.
       	SETB EA          	;开放总中断.
	SETB ET0         	;开放T0中断.
       	CLR DYM
	CLR FW
	CLR WRM
	SETB SHD
	MOV CNT,#0
	CLR P1.2
	MOV KT,#25
 START:	LCALL FD
	LCALL RMCD
	LCALL FD
	LCALL RCCD
	LCALL RMR 
	LCALL SHA
	LCALL WD
	JB FW,ST1
	CLR P1.2
	LCALL ZWD
   	LCALL WDXS
	AJMP START
   ST1:	SETB P1.2
	LCALL FWD
   	LCALL WDXS
	AJMP START
   
;//放电子程序//

    FD:	SETB P3.4
	SETB P3.7
	CLR P1.1
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	RET
;//RC充电计时子程序2脚//
  RCCD:	MOV TH0,#0
	MOV TL0,#0
  	SETB P3.7
	CLR P3.4
	SETB P1.0
	SETB P1.1
	SETB P3.6
	SETB TR0
	CLR DYM
   RC1:	JNB P3.6,RC2
       	LCALL WDXS
	JB DYM,RC2
       	JB P3.6,RC1
   RC2:	CLR TR0
   	MOV CR1,TL0
	MOV CR2,TH0
	MOV CNT,#0
	CLR DYM
	RET
;//RM充电计时子程序1脚//
  RMCD:	MOV TH0,#0
	MOV TL0,#0
  	CLR P3.7
	CLR P3.4
	SETB P1.0
	SETB P1.1
	SETB P3.6
	SETB TR0
	CLR DYM
   RM0:	JNB TF0,RM1
	INC CNT
	CLR TF0
	CLR WRM
	MOV A,CNT
	CJNE A,#3,RM4
   RM5:	JNB P1.1,RM3
   RM1:	JNB P3.6,RM2
       	LCALL WDXS
    	JB DYM,RM2
   	JB P3.6,RM0
   RM2:	CLR TR0
      	CLR DYM
   	MOV CM1,TL0
	MOV CM2,TH0
	MOV CM3,CNT
	MOV CNT,#0
	RET
   RM3:	SETB WRM
  	RET
   RM4: JNC RM5
 	AJMP RM1	
;//乘10子程序//
  MUL0:	MOV A,CM1
	MOV B,#10
	MUL AB
	MOV CM1,A
	MOV R3,B
	MOV A,CM2
	MOV B,#10
	MUL AB
	MOV R4,#0
	ADDC A,R3
	MOV CM2,A
	JNC MUL1
	INC R4
  MUL1:	MOV A,B
	ADDC A,R4
	MOV CM3,A
	RET
;//RM电阻计算子程序//
   RMR:	MOV CT0,#0
	MOV R0,#30H
	MOV R7,#6
  RMR0:	MOV A,CM1
	SUBB A,CR1
	MOV R6,A
  	MOV A,CM2
	SUBB A,CR2
	MOV R5,A
	JC RMR2
  RMR1:	INC CT0
  	MOV A,R5
	MOV CM2,A
	MOV A,R6
	MOV CM1,A
	AJMP RMR0
  RMR2:	MOV A,CM3
	JZ RMR3
	DEC A
	MOV CM3,A
	INC R6
	AJMP RMR1
  RMR3:	MOV A,CT0
	MOV @R0,A
	MOV CT0,#0
	DJNZ R7,RMR4
	LCALL AD1
	RET
  RMR4:	LCALL MUL0
	INC R0
	AJMP RMR0
 
;//4舍5入子程序//
   AD1:	MOV A,R6
   	RLC A
	MOV R6,A
	MOV A,R5
	RLC A
	JC AD3
	SUBB A,CR2
	JC AD2
	JNZ AD3
	MOV A,R6
	SUBB A,CR1
	JNC AD3
   AD2:	RET
   AD3:	INC 35H
   	RET
;//算出3位SHA1,SHA2,SHA3//
  SHA:	MOV R1,#47H
	MOV R0,#30H
	MOV R5,#3
 SHA0:	MOV A,@R0
	MOV B,#10
	MUL AB
	INC R0
	ADD A,@R0
	MOV @R1,A
	INC R0
	INC R1
	DJNZ R5,SHA0
	RET
;//求温度正负//
    WD: MOV A,47H
    	CLR FW
	CJNE A,#17,WD0
	SETB FW		;温度正负标志,为1表示负
	RET
   WD0:	JC WD1   	;大于17,为负
	SETB FW
   WD1:	RET
   

  
 ;//查表求温度正值//   
   ZWD: MOV CU1,#0
	MOV CU2,#80
  ZWD0:	MOV A,CU1
	MOV DPTR,#TAB2
	MOVC A,@A+DPTR
	CJNE A,47H,ZWD1
	LCALL BJ
	RET
  ZWD1: JNC ZWD2	;47H大于第一个数
	MOV KT,CU1	;A<47H
	RET
  ZWD2: INC CU1		;A>47H
	DJNZ CU2,ZWD0
	RET
    BJ:	MOV A,CU1
	MOV DPTR,#TAB3
	MOVC A,@A+DPTR
	CJNE A,48H,BJ0
        LCALL BJ2
	RET
   BJ0: JNC BJ1
   	MOV KT,CU1	;A<48H
	RET
   BJ1: INC CU1		;A>48H
	DJNZ CU2,ZWD0
	MOV KT,#80
	RET
   BJ2: MOV A,CU1
	MOV DPTR,#TAB4
	MOVC A,@A+DPTR
	CJNE A,49H,BJ3
	MOV KT,CU1
	RET
   BJ3: JNC BJ4
	MOV KT,CU1	;A<49H
	RET
   BJ4: INC CU1
	MOV KT,CU1	;A>49H
	RET
;//查表求温度F负值//  
   FWD: MOV CU1,#0
	MOV CU2,#30
  FWD0:	MOV A,CU1
	MOV DPTR,#TAB
	MOVC A,@A+DPTR
	CJNE A,47H,FWD1
	LCALL FWD3	;A=47H
	RET
  FWD1: JNC FWD2	;47H大于第一个数
	MOV KT,CU2	;A<47H
	RET
  FWD2: INC CU1		;A>47H
	DJNZ CU2,FWD0
	RET
  FWD3:	MOV A,CU1
	MOV DPTR,#TAB0
	MOVC A,@A+DPTR
	CJNE A,48H,FWD4
        LCALL FWD6	;A=48H
  FWD4: JNC FWD5
	MOV KT,CU2	;A<48H
	RET
  FWD5: INC CU1		;A>48H
	DJNZ CU2,FWD0
	MOV KT,#1
	RET
  FWD6: MOV A,CU1
	MOV DPTR,#TAB1
	MOVC A,@A+DPTR
	CJNE A,49H,FWD7
	MOV KT,CU2
	RET
  FWD7: JNC FWD8	
	MOV KT,CU2	;A<49H
	RET
  FWD8: DEC CU2		;A>49H
  	MOV KT,CU2
  	RET

  WDXS:	JB WRM,WDXS1
  	MOV A,KT
	MOV B,#10
	DIV AB
	MOV WDS,A
	MOV WDG,B
	JZ WDXS0
 	LCALL DIS2
	LCALL DIS3
 WDXS0:	LCALL DIS1
	LCALL DIS
	RET
 WDXS1:	SETB P1.4
	CLR P3.1
	CLR P1.3
	CLR P1.2
     	MOV A,#03H
	LCALL DIS5
	RET

   DIS: MOV A,WDG
        CLR P1.4
	SETB P1.3
	CLR P3.1
  	MOV DPTR,#TAB5
	LCALL DIS4
	RET
 
  DIS1: MOV A,WDG
	SETB P1.4
	CLR P3.1
	CLR P1.3
  	MOV DPTR,#TAB7
	LCALL DIS4
	RET

  DIS2: MOV A,WDS
	CLR P1.4
	CLR P1.3
	SETB P3.1
  	MOV DPTR,#TAB5
      	LCALL DIS4
	RET
  DIS3:	MOV A,WDS 
	SETB P1.4
	CLR P3.1
	CLR P1.3
  	MOV DPTR,#TAB6
	LCALL DIS4
	RET	
  DIS4: MOVC A,@A+DPTR
  DIS5:	MOV R3,#08H
  TL4:	RRC A
     	MOV RX,C
	SETB TX
	CLR TX
	DJNZ R3,TL4
	LCALL DELS
	RET
  DELS:	MOV R6,#20    	 ;1mS延时子程序.
    K1:	MOV R7,#25
    K2: JNB TF0,K3
	INC CNT
	CLR TF0	
	CLR WRM
	MOV A,CNT
	CJNE A,#3,K0
    K5:	JB P1.1,K3
	SETB WRM
	RET
    K0: JNC K5
    K3:	JB P3.6,K4
	CLR TR0
	SETB DYM
    K4:	DJNZ R7,K2
        DJNZ R6,K1
       	RET
   TAB:	DB 96,80,75,71,66,62,58,54,51,48
	DB 45,43,40,38,36,35,33,31,29,28
	DB 27,25,24,23,21,20,19,18,17,17
  TAB0:	DB 55,97,80,00,54,39,52,93,58,46
	DB 55,17,94,84,87,00,23,56,97,46
	DB 02,66,37,14,97,87,82,83,89,00
  TAB1:	DB 12,97,80,47,09,04,91,47,72,78
	DB 94,40,30,74,22,56,82,23,19,19
	DB 77,57,24,47,98,49,74,46,42,38
  TAB2:	DB 16,15,14,13,13,12,11,11,10,10
  	DB 9,9,8,8,8,7,7,7,6,6,6,5,5,5,5
	DB 5,4,4,4,4,4,3,3,3,3,3,3,3,2,2
	DB 2,2,2,2,2,2,2,2,1,1,1,1,1,1,1
	DB 1,1,1,1,1,1,1,1,1,1,1,1,0,0,0
	DB 0,0,0,0,0,0,0,0,0,0,0
  TAB3:	DB 16,36,60,89,21,58,97,40,86,35
  	DB 86,41,97,56,17,80,45,12,80,50
	DB 22,95,69,45,22,00,78,58,39,21
	DB 04,87,71,56,41,28,14,02,90,78
	DB 67,57,47,37,28,19,11,03,95,88
	DB 81,74,67,61,55,50,44,39,34,30
	DB 25,21,17,13,09,05,02,98,95,92
	DB 89,86,83,80,78,75,73,70,68,66,64
  TAB4:	DB 08,30,83,43,90,02,60,46,40,24
  	DB 83,01,61,51,56,64,64,43,90,92
	DB 54,52,83,39,14,00,92,83,68,43
	DB 02,41,55,42,97,16,98,38,34,33
	DB 83,31,25,63,43,63,22,16,45,08
	DB 03,24,79,64,79,20,86,75,87,18
	DB 69,37,23,24,41,72,17,76,46,29
	DB 23,28,44,70,08,52,07,70,43,24,12
  TAB5:	DB 03H,9FH,4BH,0FH,97H
	DB 27H,23H,8FH,03H,07H
  TAB6:	DB 0FH,0FH,0BH,0BH,0BH
 	DB 0BH,0BH,0FH,0BH,0BH
  TAB7:	DB 0FH,0FH,07H,07H,07H
 	DB 07H,07H,0FH,07H,07H
	END
	

⌨️ 快捷键说明

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