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

📄 speed3.asm

📁 通过测试一圈的时间来测算速度
💻 ASM
字号:

ORG 0
LJMP MAIN
ORG 000BH
LJMP WT0
ORG 30H

MOV SP,#30H
MAIN:
	DATA_IN EQU P0.3
	SHCP EQU P0.0
	STCP EQU P0.1
	SDI EQU P0.2
	MOV TMOD,#01H
	SETB EA
	NOP
	NOP
INITIAL:
	MOV R0,#0	
	MOV R1,#0
	MOV R2,#0
	MOV R3,#0
	MOV R4,#0
	MOV R5,#0
	MOV R6,#0
	MOV R7,#0

MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
      ;LJMP TIAOSHI-----------



	CLR TR0
	CLR ET0
	MOV TH0,#0D8H
	MOV TL0,#0EFH





      

WAIT0:
	JB DATA_IN,$
	SETB TR0
	SETB ET0
  	LCALL DELAY0

	JNB DATA_IN,$
	LCALL DELAY0


WAIT1:	JB DATA_IN,$
	CLR TR0


	CLR C
        MOV A,R4
	ADDC A,TL0
	MOV 0FH,A
	
	MOV A,R3
	ADDC A,TH0
	MOV 0EH,A

	MOV A,R2
	ADDC A,#0
	MOV 0DH,A

	MOV A,R1
	ADDC A,#0
	MOV 0CH,A
;	MOV R4,#0
;	MOV R5,#0
;	MOV R6,TH0
;	MOV R7,TL0
;
;;	MOV R2,#0
;	MOV R3,#64H
;	LCALL DIVX
;
;   LJMP TIAOSHI 
;	MOV R4,TH0
;	MOV R5,TL0
;	MOV R7,#64H
	
;	LCALL D457 ;THOTLO/100->R3

;ADD_0:	CLR C
;	MOV A,R2
;	ADDC A,R7
;	MOV R3,A

;	MOV A,R1
;	ADDC A,R6
;	MOV R2,A   ;COUNT+THOTLO/100


	;MOV A,R2
	;MOV R3,A
	;MOV A,R1
;	MOV R2,A   ;GET R2R3

;MOV R4,#0
;MOV R5,#9H
;MOV R6,#27H
;MOV R7,#0C0H
	;ACALL DIV60

;======================================================================
	MOV R4,#0
	MOV R5,#0
	MOV R6,#0
	MOV R7,#0
          MOV 08H, #03H;60 000 000高字节
          MOV 09H, #93H
          MOV 0AH, #87H
          MOV 0BH, #00H
         

;4字节除4字节商为4字节除法子程序CHU40
;被除数放在内部08H.09H.0AH.0BH 单元中,除数放在0C.0D.0E.0F单元中
;商数放在内部R4.R5.R6.R7单元中,余数放在10H.11H.12H.13H单元中.
;溢出时商为零。余数为被除数
;资源影响;R0--16H共24字节  PSW      运行总时间1.977毫秒
CHU40:    MOV R0, #20H
          MOV 10H, #00H
          MOV 11H, #00H
      MOV 12H, #00H
          MOV 13H, #00H
CHU47:    CLR C
          MOV A, 0BH
          RLC A
          MOV 0BH, A
          MOV A, 0AH ;被除和扩充位左移
          RLC A
          MOV 0AH, A
          MOV A, 09H
          RLC A
          MOV 09H, A
          MOV A, 08H
          RLC A
          MOV 08H, A
      MOV A, 13H
          RLC A
          MOV 13H, A
          MOV A, 12H
          RLC A
          MOV 12H, A
          MOV A, 11H
          RLC A
          MOV 11H, A
          MOV A, 10H
          RLC A
          MOV 10H, A
          MOV A, R7 ;商数左移
          RLC A
          MOV R7, A
          MOV A, R6
          RLC A
          MOV R6, A
          MOV A, R5
          RLC A
          MOV R5, A
          MOV A, R4
          RLC A
          MOV R4, A
          CLR C
          MOV A, 13H ;判断
          SUBB A, 0FH
          MOV R1, A
          MOV A, 12H ;判断
          SUBB A, 0EH
          MOV 14H, A
          MOV A, 11H
          SUBB A, 0DH
          MOV 15H, A
      MOV A, 10H ;判断
          SUBB A, 0CH
          MOV 16H, A
          JC  LOP490
          INC R7
          MOV 13H,R1 ;建立余数
          MOV 12H,14H 
          MOV 11H,15H 
          MOV 10H,16H
LOP490:  DJNZ R0, CHU47
;======================================================================





LCALL DEPART


LCALL HC595_DISP
LCALL DELAY0
LJMP INITIAL
 

;=================================================================
;	DEPART DIVX RESULT TO FOUR DIGITS
;	IN:R6R7
;	OUT:25H,26H,27H,28H
;=================================================================
DEPART:


QIAN:	MOV A,R6
	MOV R4,A
	MOV A,R7
	MOV R5,A
SUB10:
	CLR C
	MOV A,R7
	
	SUBB A,#0E8H
	MOV R7,A
	MOV A,R6
	
	SUBB A,#3H;减去一千判断符号
	MOV R6,A
	JNB ACC.7,SUB11
	AJMP BAI0 
	
SUB11:	
	INC 25H
	LJMP QIAN
;-----------------------------------------------------
BAI0:	MOV A,R5
	MOV R7,A
	MOV A,R4
	MOV R6,A
BAI:	MOV A,R6
	MOV R4,A
	MOV A,R7
	MOV R5,A

SUB20:
	CLR C
	MOV A,R7

	SUBB A,#64H
	MOV R7,A
	MOV A,R6

	SUBB A,#0H;减去一千判断符号
	MOV R6,A
	JNB ACC.7,SUB21
	AJMP SHI0
	
SUB21:	
	INC 26H
		
	LJMP BAI
;------------------------------------------------------------
SHI0:	MOV A,R5
	MOV R7,A
	MOV A,R4
	MOV R6,A
SHI:	MOV A,R6
	MOV R4,A
	MOV A,R7
	MOV R5,A

SUB30:
	CLR C
	MOV A,R7

	SUBB A,#0AH
	MOV R7,A
	MOV A,R6

	SUBB A,#0H;减去一千判断符号
	MOV R6,A
	JNB ACC.7,SUB31
	AJMP GEWEI0
	
SUB31:	
	INC 27H

	LJMP SHI
;-------------------------------------------------------
GEWEI0:	MOV A,R5
	MOV R7,A
	MOV A,R4
	MOV R6,A
GEWEI:	MOV A,R6
	MOV R4,A
	MOV A,R7
	MOV R5,A

SUB40:
	CLR C
	MOV A,R7

	SUBB A,#1
	MOV R7,A
	MOV A,R6

	SUBB A,#0H;减去一千判断符号
	MOV R6,A
	JNB ACC.7,SUB41
	AJMP SUBEND
	
SUB41:	
	INC 28H
	
	LJMP GEWEI
SUBEND:
	RET





;==============================================================
  ;hc595老树开发板 四位LED显示
  ; 入口:25H,26H,27H,28H
   ;占用R0  
;==============================================================
HC595_DISP:



HC595_INITIAL:
	CLR SHCP
	CLR STCP
HC595_CLEAR:
	MOV R0,#32
	SETB C
HC595_C0:
	MOV SDI,C
	SETB SHCP
	NOP
	NOP
	CLR SHCP
	DJNZ R0,HC595_C0
	



HC595_1:MOV R0,#8
HC595_10:
        CLR C
        MOV A,28H
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
HC595_100:
        RLC A
        MOV SDI,C 

        SETB SHCP
	NOP
	NOP
	CLR SHCP

        DJNZ R0,HC595_100


HC595_2:MOV R0,#8
HC595_20:
        CLR C
        MOV A,27H
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
HC595_200:
        RLC A
        MOV SDI,C
 
        SETB SHCP
	NOP
	NOP
	CLR SHCP

        DJNZ R0,HC595_200




HC595_3:MOV R0,#8
HC595_30:
        CLR C
        MOV A,26H
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
HC595_300:
        RLC A
        MOV SDI,C
 
        SETB SHCP
	NOP
	NOP
	CLR SHCP

        DJNZ R0,HC595_300


HC595_4:MOV R0,#8
HC595_40:
        CLR C
        MOV A,25H
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
HC595_400:
        RLC A
        MOV SDI,C 

        SETB SHCP
	NOP
	NOP
	CLR SHCP

        DJNZ R0,HC595_400
HC595_LATCH:
	SETB STCP
	NOP
	NOP
	CLR STCP

	RET;-------------------不能放在DB后啊
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,0FFH
	

;==============================================================
;    10Ms的中断
;==============================================================
WT0:	;PUSH ACC
	;PUSH PSW

	MOV TH0,#0D8H
	MOV TL0,#0EFH

	CLR C
	MOV A,R4;R1R2R3R4 EQU COUNT
	ADDC A,#10H;+10 000
	MOV R4,A

	MOV A,R3
	ADDC A,#27H
	MOV R3,A

	MOV A,R2
	ADDC A,#0
	MOV R2,A

	MOV A,R1
	ADDC A,#0
	MOV R1,A
	

	;POP PSW
	;POP ACC

	RETI



;==============================================================
;      占用R 0    DELAY 160US
;==============================================================
DELAY0:	MOV R0,#20H
DELAY:	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	DJNZ R0,DELAY
	RET

DELAY1: MOV R6,#200
DELAY1_1:	
	MOV R7,#20
	DJNZ R7,$
	DJNZ R6,DELAY1_1



	END

⌨️ 快捷键说明

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