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

📄 bcd6.xsf

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 XSF
字号:
;"#C:\Program Files\Rigel\Reads51\Include\sfr51.inc"
; --- 8051 registers ---
ACC        data    0xE0
B          data    0xF0
DPH        data    0x83
DPL        data    0x82
IE         data    0xA8
IP         data    0xB8
P0         data    0x80
P1         data    0x90
P2         data    0xA0
P3         data    0xB0
PCON       data    0x87
PSW        data    0xD0
SBUF       data    0x99
SCON       data    0x98
SP         data    0x81
TCON       data    0x88
TH0        data    0x8C
TH1        data    0x8D
TL0        data    0x8A
TL1        data    0x8B
TMOD       data    0x89

; --- 8051 register bit fields ---
; IE
EA         bit     0xAF
ES         bit     0xAC
ET1        bit     0xAB
EX1        bit     0xAA
ET0        bit     0xA9
EX0        bit     0xA8
; IP 
PS         bit     0xBC
PT1        bit     0xBB
PX1        bit     0xBA
PT0        bit     0xB9
PX0        bit     0xB8
; P3
RD         bit     0xB7
WR         bit     0xB6
T1         bit     0xB5
T0         bit     0xB4
INT1       bit     0xB3
INT0       bit     0xB2
TXD        bit     0xB1
RXD        bit     0xB0
; PSW
CY         bit     0xD7
AC         bit     0xD6
F0         bit     0xD5
RS1        bit     0xD4
RS0        bit     0xD3
OV         bit     0xD2
P          bit     0xD0
; TCON
TF1        bit     0x8F
TR1        bit     0x8E
TF0        bit     0x8D
TR0        bit     0x8C
IE1        bit     0x8B
IT1        bit     0x8A
IE0        bit     0x89
IT0        bit     0x88
; SCON
SM0        bit     0x9F
SM1        bit     0x9E
SM2        bit     0x9D
REN        bit     0x9C
TB8        bit     0x9B
RB8        bit     0x9A
TI         bit     0x99
RI         bit     0x98


  ;*----------------------------------------------------------- 
;* 
;*   bin6bcd - routine compute from binary value to bcd 
;* 
;*   Entry:  reg_e:d - binary value (24 bit) 
;* 
;*   Exit:   reg_e:d - 8 bcd digits (0000:0000-1677:7215) 
;* 
;*----------------------------------------------------------- 
		H1	EQU	08H
		H2	EQU	09H
		H3	EQU	0AH
		
		D1	EQU	0BH
		D2	EQU	0CH
		D3	EQU	0DH
		D4	EQU	0EH
		
		TMP1	EQU	0FH
		TMP2	EQU	10H
		TMP3	EQU	11H
		TMP4	EQU	12H
		
		POINTER EQU	13H
		HOLD	EQU	14H

MOV 	H1,#0F2H  ;020A1B HEX
MOV 	H2,#0ABH  ;INPUT
MOV 	H3,#0FFH
;----------------------------------------------
MOV 	D1,#00H
MOV 	D2,#00H
MOV 	D3,#00H
MOV 	D4,#00H   ;OUTPUT
;----------------------------------------------
MOV 	TMP1,#00H ;TEMPORARI
MOV 	TMP2,#00H
MOV 	TMP3,#00H
MOV 	TMP4,#00H
;-------------------------------------------------------------------------------------
BIN6BCD:
	    MOV 	SP,#20H
	    MOV 	A,H3
	    MOV		R0,#8
	    CJNE        R0,#01H,DOWN
	    CLR 	C
	    RRC 	A
	    MOV 	HOLD,A
	    JNC 	DOWN
	    MOV 	A,R0
	    RL 		A
	    RL 		A
	    MOV 	POINTER,A
	    ACALL 	ADDITION
DOWN:
	    MOV 	A,HOLD
	DJNZ 		R0,BIN6BCD 
	
MULAI:      MOV 	A,H2
	    MOV		R0,#8
	
	    CLR 	C
	    RRC 	A
	    MOV 	HOLD,A
	    JNC 	DOWNH2
	    MOV 	A,R0
	    ADD 	A,#08H
	    RL 		A
	    RL 		A
	    MOV 	POINTER,A
	    ACALL 	ADDITION
DOWNH2:
	    MOV 	A,HOLD	    
	DJNZ 		R0,MULAI 
	   
TERUS:      MOV 	A,H1
	    MOV		R0,#8
	    CLR 	C
	    RRC 	A
	    MOV 	HOLD,A
	    JNC 	DOWNH3
	    MOV 	A,R0
	    ADD 	A,#10H	    
	    RL 		A
	    RL 		A
	    MOV 	POINTER,A
	    ACALL 	ADDITION
	    DOWNH3:
	    MOV 	A,HOLD	    
	DJNZ 		R0,TERUS 
	
	
BBBB: SJMP BBBB
;-------------------------------------------------------------------------------------
ADDITION:
		MOV 	DPTR,#BINBCDTAB
		DEC 	POINTER
		
		MOV 	A,POINTER
		MOVC 	A,@A+DPTR
		MOV 	TMP1,A
		
		MOV 	A,POINTER
		DEC 	A
		MOVC 	A,@A+DPTR
		MOV 	TMP2,A

		MOV 	A,POINTER
		DEC 	A
		DEC 	A
		MOVC 	A,@A+DPTR
		MOV 	TMP3,A
		
		MOV 	A,POINTER
		DEC 	A
		DEC 	A
		DEC 	A
		MOVC 	A,@A+DPTR
		MOV 	TMP4,A

;-------------- DO ADDITION TMP1 -------------------
		CLR 	C
		MOV 	A,TMP1
		ADD 	A,D4
		DA 	A
		MOV 	D4,A
		
		MOV 	A,TMP2
		ADDC 	A,D3
		DA 	A
		MOV 	D3,A
		
		MOV 	A,TMP3
		ADDC 	A,D2
		DA 	A
		MOV 	D2,A
		
		MOV 	A,TMP4
		ADDC 	A,D1
		DA 	A
		MOV 	D1,A
		
		CLR 	C
	
		RET
;-------------------------------------------------------------------------------------
HETE: 		SJMP HETE


BINBCDTAB: 
   DB   00H,00H,00H,01H      ; bit  0 
   DB   00H,00H,00H,02H      ; bit  1 
   DB   00H,00H,00H,04H      ; bit  2 
   DB   00H,00H,00H,08H      ; bit  3 
   DB   00H,00H,00H,16H      ; bit  4 
   DB   00H,00H,00H,32H      ; bit  5 
   DB   00H,00H,00H,64H      ; bit  6 
   DB   00H,00H,01H,28H      ; bit  7 
   DB   00H,00H,02H,56H      ; bit  8 
   DB   00H,00H,05H,12H      ; bit  9 
   DB   00H,00H,10H,24H      ; bit 10 
   DB   00H,00H,20H,48H      ; bit 11 
   DB   00H,00H,40H,96H      ; bit 12 
   DB   00H,00H,81H,92H      ; bit 13 
   DB   00H,01H,63H,84H      ; bit 14 
   DB   00H,03H,27H,68H      ; bit 15 
   DB   00H,06H,55H,36H      ; bit 16 
   DB   00H,13H,10H,72H      ; bit 17 
   DB   00H,26H,21H,44H      ; bit 18 
   DB   00H,52H,42H,88H      ; bit 19 
   DB   01H,04H,85H,76H      ; bit 20 
   DB   02H,09H,71H,52H      ; bit 21 
   DB   04H,19H,43H,04H      ; bit 22 
   DB   08H,38H,86H,08H      ; bit 23 
   
   END

⌨️ 快捷键说明

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