📄 speed3.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 + -