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

📄 shuzi.asm

📁 数字多用表程序,供大家学习参考,使用时根据自己的系统修改.
💻 ASM
📖 第 1 页 / 共 2 页
字号:
ORG   0000H
AJMP  MAIN
            
ORG  0013H
AJMP  DUSHU 
ORG   0030H
MAIN: 
       A8279_1 EQU    0FF82H
       A8279_2 EQU    0FF80H
  
       MOV      DPTR,#A8279_1
       MOV      A,#0D1H
       MOVX     @DPTR,A
  WAIT:MOVX     A,@DPTR
       JB       ACC.7,WAIT  
       MOV      A,#00H
       MOVX     @DPTR,A
       MOV      A,#2CH
       MOVX     @DPTR,A
       
       CLR     09H
       CLR     01H
       CLR	   02H
       CLR     03H
       CLR     04H
       CLR	   05H
      
  
 START:MOV      DPTR,#A8279_1
       MOVX     A,@DPTR
       ANL A,#07H
       JZ  RETUN
       LCALL    KEY
       JBC     09H,RETUN 
       JBC     01H,DIANYA
       JBC     02H,DIANLIOU 
       JBC     03H,SHGY 
       JBC     04H,YOUGY  
       JBC     05H,GYYSH 
              
RETUN:AJMP  START
DIANYA:LJMP DIANYA1
DIANLIOU:LJMP DIANL1
SHGY:LJMP  SHGY1 
YOUGY:LJMP YOUGY1
GYYSH:LJMP  GYYSH1

DIANYA1:LCALL DIANYA2
       MOV  R6,50H
       MOV  R7,51H
       LCALL  HB2                        ;;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
       MOV  50H,R3
       MOV  51H,R4
       MOV  52H,R5 
       MOV  53H,#58H
       LCALL      TRANS
       MOV   53H,#58H
       LCALL  LED_1 
       MOV  54H,#3EH
       MOV  55H,#40H
       MOV  56H,#40H
        MOV  57H,#40H
       ORL 59H,#80H
       LCALL   LED
       LCALL   SEACH 
       JBC   09H,RETUN20 
        JBC   01H,RETUN21 
       JBC   02H,RETUN22
       JBC   03H,RETUN23 
        JBC   04H,RETUN24
        JBC  05H,RETUN25 
       AJMP  DIANYA1
RETUN20:LJMP  MAIN
RETUN21:LJMP  DIANYA1     
RETUN22:LJMP  DIANL1 
RETUN23:LJMP   SHGY1 
RETUN24:LJMP YOUGY1
RETUN25:LJMP   GYYSH1     
        
DIANYA2:CLR P1.0
       MOV  R0,#30H 
       LCALL ADC0809
       LCALL PINJUN
       MOV  50H,R4
       MOV  51H,R5
       MOV  R6,50H
       MOV  R7,51H
       MOV  R2,#4CH
       MOV  R3,#4BH
       LCALL  MULD                 ; 乘积在R2、R3、R4、R5中。
       MOV   R6,#03H
       MOV   R7,#0E8H 
       LCALL  DIVD                  ;:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
       MOV  50H,R2 
       MOV  51H,R3 
       RET 
DIANL1:LCALL DIANL2   
       MOV  R6,50H
       MOV  R7,51H
       LCALL  HB2                        ;;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
       MOV  50H,R3
       MOV  51H,R4
       MOV  52H,R5 
       MOV  53H,#59H
       LCALL      TRANS
       MOV   53H,#59H
       LCALL  LED_1 
       MOV  54H,#39H
       MOV  55H,#40H
       MOV  56H,#40H
       MOV  57H,#40H
       MOV  58H,#40H
       ORL 5AH,#80H
       LCALL   LED
      
       LCALL   SEACH 
       JBC   09H,RETUN30 
 
       JBC   01H,RETUN31 
       JBC   02H,RETUN32
       JBC   03H,RETUN33 
       JBC   04H,RETUN34
       JBC  05H,RETUN35 
       AJMP  DIANL1
RETUN30:LJMP  MAIN
RETUN31:LJMP  DIANYA1     
RETUN32:LJMP  DIANL1 
RETUN33:LJMP   SHGY1 
RETUN34:LJMP YOUGY1
RETUN35:LJMP   GYYSH1    
                                                 
DIANL2:SETB   P1.0
       MOV  R0,#30H 
       LCALL ADC0809
       LCALL PINJUN
       MOV  50H,R4
       MOV  51H,R5
       MOV  R6,50H
       MOV  R7,51H
       MOV  R2,#4CH
       MOV  R3,#4BH
       LCALL  MULD                 ; 乘积在R2、R3、R4、R5中。
       MOV   R6,#27H
       MOV   R7,#10H 
       LCALL  DIVD                  ;:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
       MOV  50H,R2 
       MOV  51H,R3 
       RET 
       
SHGY1:LCALL  DIANYA2
     MOV    66H,50H
     MOV    67H,51H
     LCALL     DIANL2
     MOV  R2,50H
     MOV  R3,51H
     MOV  R6,66H
     MOV  R7,67H
     LCALL    MULD      ;出口信息:乘积在R2、R3、R4、R5中。
     MOV   R7,#100
     MOV   R6,#00H
     LCALL  DIVD               ;:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
     MOV  50H,R2
     MOV  51H,R3
     MOV  R6,50H
     MOV  R7,51H
     
     LCALL  HB2
     MOV  50H,R3
     MOV  51H,R4
     MOV  52H,R5  
     MOV  53,#57H
     LCALL      TRANS
     MOV  53H,#57H
      LCALL  LED_1 
      MOV  56H,#40H
      MOV  55H,#40H
      MOV  54H,#73H
      LCALL   LED
       
       LCALL   SEACH
       JBC   09H,RETUN70 
        JBC   01H,RETUN71 
       JBC   02H,RETUN72
       JBC   03H,RETUN73 
        JBC   04H,RETUN74
        JBC  05H,RETUN75 
       AJMP   SHGY1
RETUN70:LJMP  MAIN
RETUN71:LJMP  DIANYA1     
RETUN72:LJMP  DIANL1 
RETUN73:LJMP   SHGY1 
RETUN74:LJMP YOUGY1
RETUN75:LJMP   GYYSH1


YOUGY1:LCALL  DIANYA2
     MOV    66H,50H
     MOV    67H,51H
     LCALL     DIANL2
     MOV  68H,50H
     MOV  69H,51H
     LCALL GYYSH2
     LCALL   BH2
     MOV  R6,68H
     MOV  R7,69H
     LCALL    MULD      ;出口信息:乘积在R2、R3、R4、R5中。
     MOV R6,#00H
     MOV R7,#100
     LCALL  DIVD          ; OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
     MOV  R6,66H
     MOV  R7,67H
     LCALL   MULD        ;乘积在R2、R3、R4、R5中。
     MOV  R6,#27H
     MOV  R7,#10H
     LCALL   DIVD           ; OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
     MOV   50H,R2
     MOV   51H,R3
     
     
       MOV  R6,50H
       MOV  R7,51H
       LCALL  HB2                        ;;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
       MOV  50H,R3
       MOV  51H,R4
       MOV  52H,R5 
       MOV  53H,#57H
       LCALL      TRANS
       MOV   53H,#57H
       LCALL  LED_1 
       MOV  54H,#6EH
       MOV  55H,#40H
       MOV   56H,#40H
       
       
       LCALL   LED
      
       LCALL   SEACH 
       JBC   09H,RETUN90 
 
       JBC   01H,RETUN91 
       JBC   02H,RETUN92
       JBC   03H,RETUN93 
       JBC   04H,RETUN94
       JBC  05H,RETUN95 
       AJMP  YOUGY1
RETUN90:LJMP  MAIN
RETUN91:LJMP  DIANYA1     
RETUN92:LJMP  DIANL1 
RETUN93:LJMP   SHGY1 
RETUN94:LJMP YOUGY1
RETUN95:LJMP   GYYSH1    
   
     
   
GYYSH1: LCALL  GYYSH2
        MOV  50H,#00H
        MOV  51H,R2 
        MOV  52H,R3  
        MOV  53H,#57H
        LCALL      TRANS
       MOV   53H,#57H
       LCALL  LED_1 
       MOV  54H,#6EH
       MOV  55H,#73H
       MOV  56H,#40H
       MOV  5BH,#0BFH
 
    
       LCALL   LED
      
       LCALL   SEACH 
       JBC   09H,RETUN80 
 
       JBC   01H,RETUN81 
       JBC   02H,RETUN82
       JBC   03H,RETUN83 
       JBC   04H,RETUN84
       JBC  05H,RETUN85 
       AJMP  GYYSH1  
RETUN80:LJMP  MAIN
RETUN81:LJMP  DIANYA1     
RETUN82:LJMP  DIANL1 
RETUN83:LJMP   SHGY1 
RETUN84:LJMP YOUGY1
RETUN85:LJMP   GYYSH1    
                                             

GYYSH2:   ;LCALL  ZHQI
       ;MOV   51H,TL0
      ; MOV   50H,TH0
        LCALL  XWCH 
            
        MOV		R2,TH1
		MOV		R3,TL1
		MOV		R6,#00H		    	;计数值-查表偏移量计算
		MOV		R7,#0AH
		ACALL	MULD                   ;出口信息:乘积在R2、R3、R4、R5中。
		MOV		R6,#00H
		MOV		R7,#7DH
		ACALL	DIVD  
		MOV		60H,R3
		
		
    	MOV		DPTR,#TAB1		;查表得余弦值
		MOV		A,60H
		MOVC	A,@A+DPTR
		MOV		R3,A
		MOV		DPTR,#TAB2
		MOV		A,60H 
MOVC	A,@A+DPTR
		MOV		R2,A
        MOV  60H,R2
        MOV  61H,R3                   	;	ACALL	BH2				;余弦值BCD转为HEX
		 
		RET 

           
       
          
   
 ZHQI:                   ;0.1hz_1khz测量,测周期 ;16进制
       MOV     TMOD,#01H
       MOV     TL0,#00H
       MOV     TH0,#00H
       
       
       SETB    P3.5
    GDP1:   MOV     C,P3.5
       JC     GDP1
   DDP1: MOV   C,P3.5
       JNC  DDP1
       SETB  TR0

 GDP2:   MOV     C,P3.5
       JC     GDP2
                    ; DDP2: MOV   C,P3.5
                    ;    JNC  DDP2
       CLR   TR0
       RET     
     
 XWCH:                   ;0.1hz_1khz测量,测周期 ;16进制
       MOV     TMOD,#10H
       MOV     TL1,#00H
       MOV     TH1,#00H
       
       
       SETB    P3.5
   GDP6:   MOV     C,P3.5
       JC     GDP6    
   DDP6: MOV   C,P3.5
       JNC  DDP6
  
       SETB  TR1 

 GDP7:   MOV     C,P3.5
      JC     GDP7
  ; DDP2: MOV   C,P3.5
     ;  JNC  DDP2
       CLR   TR1 
       RET           
        

 KEY:MOV  DPTR ,#A8279_1
	MOV  A,#40H
	MOVX @DPTR,A
	MOV DPTR,#A8279_2
	MOVX A,@DPTR
	ANL A,#3FH

    CJNE A,#09H,KEY1
        SETB 09H
        LJMP RETUN1
   KEY1:CJNE A,#01H,KEY2
        SETB 01H
        LJMP RETUN1
  KEY2:CJNE  A,#02H,KEY3
       SETB  02H
       AJMP  RETUN1
 KEY3:CJNE A,#03H,KEY4
        SETB 03H
        LJMP RETUN1

 KEY4:CJNE A,#04H,KEY5
        SETB 04H
        LJMP RETUN1
  KEY5:CJNE A,#05H,RETUN1 
        SETB 05H
       
        RETUN1:RET      


     
     
ADC0809:
      
        CLR 06H
        
        MOV R7,#18H
        SETB EA 
        SETB IT1
        SETB EX1
        MOV DPTR,#8200H     ;;DAC0809首址
        MOVX @DPTR,A        ;;启动AD转换
  HERE:JBC 06H,RETUN56 
         SJMP HERE
 RETUN56:CLR  EA

⌨️ 快捷键说明

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