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

📄 hexbcd.lst

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 LST
字号:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 1





       MCS-51 Family Macro Assembler   A S E M - 5 1   V 1.3
       =====================================================



	Source File:	D:\Electronics\MiCrOConTroller\MCS51\Micro Programming\M-IDE\2Byte2-5DEC\HEXBCD.asm
	Object File:	D:\Electronics\MiCrOConTroller\MCS51\Micro Programming\M-IDE\2Byte2-5DEC\HEXBCD.hex
	List File:	D:\Electronics\MiCrOConTroller\MCS51\Micro Programming\M-IDE\2Byte2-5DEC\HEXBCD.lst



 Line  I  Addr  Code            Source

    1:				$MOD51
    2:				; 2 BYTE HEX TO 5 DIGITS BCD
    3:				;----------------------------------------------------------------------------------------
    4:				; Author:  Slobodan Mandaric, Serbia & Montenegro
    5:				; June 3rd, 2005.
    6:				; Modify: Jan 14th, 2008
    7:				; Author:  Herlambang Aribowo, Indonesia
    8:
    9:				;----------------------------------------------------------------------------------------
   10:				; 149 cycles for 2 bytes,  77 cycles for 1 byte
   11:				; Result:  <R3...R7>
   12:				; All 8 registers are used, and also A and B
   13:
   14:				;----------------------------------------------------------------------------------------
   15:				;Iki routine kanggo inputan 16 byte sing arep di konversi
   16:				;Input di <R1&R2>
   17:	  0000	79 AF			MOV	r1,#0AFH	; 175d
   18:	  0002	7A 91			MOV	r2,#91H		; 91AFH = 37295d
   19:				;----------------------------------------------------------------------------------------
   20:				; R7=3, R6=7, ..., R3=5
   21:				;----------------------
   22:	  0004	7D 00			MOV	R5,#0
   23:	  0006	7E 00			MOV	R6,#0
   24:	  0008	7F 00			MOV	R7,#0
   25:
   26:	  000A	E9			MOV	A,R1
   27:	  000B	75 F0 0A		MOV	B,#10
   28:	  000E	84			DIV	AB
   29:
   30:	  000F	AB F0			MOV	R3,B		; Lower byte, in R1, is transformed into 2 decade digits,
   31:	  0011	FC			MOV	R4,A		; it's OK that the higher one can be greater than 9
   32:
   33:	  0012	EA			MOV	A,R2		; Higher byte is in R2
   34:	  0013	60 0E			JZ	SPRING		; Spring over if 0
   35:	  0015	75 F0 0A		MOV	B,#10
   36:	  0018	84			DIV	AB
   37:
   38:	  0019	AD F0			MOV	R5,B		; Same as for lower byte
   39:	  001B	FE			MOV	R6,A
   40:
   41:				; Value in R5 is 256 times higher than value standing in R3, R4. Mply R5 with 6,
   42:				; add to R3, mply R5 with 5, add to R4, mply R5 with 2 and replace itself in R5
   43:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  001C	78 05			MOV	R0,#05		; Point to R5
   45:	  001E	11 29			ACALL	TRANSF		; Transform R5 to 3 lower positions
   46:
   47:	  0020	08			INC	R0		; Repeat from R6, now all registers are 1 higher
   48:	  0021	11 29			ACALL	TRANSF		; Transform R6 to 3 higher positions
   49:
   50:	  0023	78 03		SPRING:	MOV	R0,#03		; Point to lowest digit
   51:
   52:				; Adjust to decimal, everything higher than 9 should be, as 1 tenth, added to higher.
   53:				; Starting from the lowest digit, divide with 10, keep the rest, and add the 1/10th to
   54:				; first higher place (eg. 145, leave 5 and add 14 to the next higher)
   55:
   56:	  0025	11 41			ACALL	DECADJ
   57:
   58:	  0027	80 FE			SJMP	$
   59:
   60:	  0029	E6		TRANSF:	MOV	A,@R0
   61:	  002A	75 F0 06		MOV	B,#6
   62:	  002D	A4			MUL	AB
   63:	  002E	18			DEC	R0
   64:	  002F	18			DEC	R0
   65:	  0030	26			ADD	A,@R0
   66:	  0031	F6			MOV	@R0,A
   67:
   68:	  0032	08			INC	R0
   69:	  0033	08			INC	R0
   70:	  0034	E6			MOV	A,@R0
   71:	  0035	75 F0 05		MOV	B,#5
   72:	  0038	A4			MUL	AB
   73:	  0039	18			DEC	R0
   74:	  003A	26			ADD	A,@R0
   75:	  003B	F6			MOV	@R0,A
   76:
   77:	  003C	08			INC	R0
   78:	  003D	E6			MOV	A,@R0
   79:	  003E	23			RL	A		; Mply with 2
   80:	  003F	F6			MOV	@R0,A
   81:
   82:	  0040	22			RET
   83:
   84:	  0041	E6		DECADJ:	MOV	A,@R0
   85:	  0042	75 F0 0A	DECLOP:	MOV	B,#10
   86:	  0045	84			DIV	AB
   87:	  0046	A6 F0			MOV	@R0,B
   88:	  0048	08			INC	R0
   89:	  0049	26			ADD	A,@R0
   90:	  004A	F6			MOV	@R0,A
   91:
   92:	  004B	B8 07 F4		CJNE	R0,#7,DECLOP
   93:	  004E	22			RET
   94:
   95:				END





ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 3




                     register banks used:  ---

                     no errors




ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 4





	       L I S T   O F   S Y M B O L S
	       =============================


SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
??ASEM_51			  NUMBER    8051
??VERSION			  NUMBER    0130
AC				  BIT	      D6
ACC				  DATA	      E0
B				  DATA	      F0
CY				  BIT	      D7
DECADJ				  CODE	    0041	  84
DECLOP				  CODE	    0042	  85
DPH				  DATA	      83
DPL				  DATA	      82
EA				  BIT	      AF
ES				  BIT	      AC
ET0				  BIT	      A9
ET1				  BIT	      AB
EX0				  BIT	      A8
EX1				  BIT	      AA
EXTI0				  CODE	    0003
EXTI1				  CODE	    0013
F0				  BIT	      D5
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INT0				  BIT	      B2
INT1				  BIT	      B3
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
OV				  BIT	      D2
P				  BIT	      D0
P0				  DATA	      80
P1				  DATA	      90
P2				  DATA	      A0
P3				  DATA	      B0
PCON				  DATA	      87
PS				  BIT	      BC
PSW				  DATA	      D0
PT0				  BIT	      B9
PT1				  BIT	      BB
PX0				  BIT	      B8
PX1				  BIT	      BA
RB8				  BIT	      9A
RD				  BIT	      B7
REN				  BIT	      9C
RESET				  CODE	    0000
RI				  BIT	      98
RS0				  BIT	      D3
RS1				  BIT	      D4
RXD				  BIT	      B0
SBUF				  DATA	      99
SCON				  DATA	      98

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 5



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
SPRING				  CODE	    0023	  50
T0				  BIT	      B4
T1				  BIT	      B5
TB8				  BIT	      9B
TCON				  DATA	      88
TF0				  BIT	      8D
TF1				  BIT	      8F
TH0				  DATA	      8C
TH1				  DATA	      8D
TI				  BIT	      99
TIMER0				  CODE	    000B
TIMER1				  CODE	    001B
TL0				  DATA	      8A
TL1				  DATA	      8B
TMOD				  DATA	      89
TR0				  BIT	      8C
TR1				  BIT	      8E
TRANSF				  CODE	    0029	  60
TXD				  BIT	      B1
WR				  BIT	      B6

⌨️ 快捷键说明

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