hexdec-lcd.a51modif.lst

来自「Library for the 8051 microcontroller. s」· LST 代码 · 共 422 行

LST
422
字号

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:	E:\MiCrOConTroller\Coba_M-IDE\HEX-DEC_LCD\hexdec-lcd.a51modif.asm
	Object File:	E:\MiCrOConTroller\Coba_M-IDE\HEX-DEC_LCD\hexdec-lcd.a51modif.hex
	List File:	E:\MiCrOConTroller\Coba_M-IDE\HEX-DEC_LCD\hexdec-lcd.a51modif.lst



 Line  I  Addr  Code            Source

    1:				$MOD51
    2:
    3:				;---------------------------------------------------------------------------------------
    4:				; sistem konversi dari 3 bytes heksa ke desimal 8 digit
    5:				; max value : 10000000 <sepuluh juta>
    6:				; by: Herlambang Aribowo
    7:				; D3 Instrumentasi dan elektronika UNDIP, Semarang, Jawa tengah, Indonesia
    8:				; contact : cah_imuth@yahoo.com
    9:				; Phone : +6281328828042
   10:				;---------------------------------------------------------------------------------------
   11:
   12:	  0000	C3		Hex3DecConv:	CLR		C
   13:	  0001	7C 00							MOV		R4,#0		;bersihkan counter (jutaan)
   14:
   15:	  0003	EF		Hex3DecLoop1:	MOV			A,R7				;how many time we can subtra
				ct 10000000 (989680H) without carry
   16:	  0004	94 80							SUBB		A,#80H
   17:	  0006	FF							MOV		R7,A
   18:	  0007	EE							MOV		A,R6
   19:	  0008	94 96							SUBB		A,#96H
   20:	  000A	FE							MOV		R6,A
   21:	  000B	ED							MOV		A,R5
   22:	  000C	94 98							SUBB		A,#98H
   23:	  000E	FD							MOV		R5,A
   24:	  000F	40 03							JC		Hex3DecSkip1
   25:	  0011	0C							INC		R4
   26:	  0012	80 EF							JMP		Hex3DecLoop1
   27:	  0014	EC		Hex3DecSkip1:	MOV		A,R4
   28:	  0015	C0 E0							PUSH		ACC		 ;push counter onto stack
   29:	  0017	EF							MOV		A,R7
   30:	  0018	24 80							ADD		A,#80H
   31:	  001A	FF							MOV		R7,A
   32:	  001B	EE							MOV		A,R6
   33:	  001C	34 96							ADDC		A,#96H
   34:	  001E	FE							MOV		R6,A
   35:	  001F	ED							MOV		A,R5
   36:	  0020	34 98							ADDC		A,#98H
   37:	  0022	FD							MOV		R5,A
   38:	  0023	C3							CLR		C
   39:	  0024	7C 00							MOV		R4,#0
   40:	  0026	EF		Hex3DecLoop2:	MOV		A,R7					 ;how many times we can subt
				ract 1000000 (F4240H) without carry
   41:	  0027	94 40							SUBB		A,#40H

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   42:	  0029	FF							MOV		R7,A
   43:	  002A	EE							MOV		A,R6
   44:	  002B	94 42							SUBB		A,#42H
   45:	  002D	FE							MOV		R6,A
   46:	  002E	ED							MOV		A,R5
   47:	  002F	94 0F							SUBB		A,#0FH
   48:	  0031	FD							MOV		R5,A
   49:	  0032	40 03							JC		Hex3DecSkip2
   50:	  0034	0C							INC		R4
   51:	  0035	80 EF							JMP		Hex3DecLoop2
   52:	  0037	EC		Hex3DecSkip2:	MOV		A,R4
   53:	  0038	C0 E0							PUSH		ACC	          ;push counter onto stack
   54:	  003A	EF							MOV		A,R7
   55:	  003B	24 40							ADD		A,#40H
   56:	  003D	FF							MOV		R7,A
   57:	  003E	EE							MOV		A,R6
   58:	  003F	34 42							ADDC		A,#42H
   59:	  0041	FE							MOV		R6,A
   60:	  0042	ED							MOV		A,R5
   61:	  0043	34 0F							ADDC		A,#0FH
   62:	  0045	FD							MOV		R5,A
   63:	  0046	C3							CLR		C
   64:	  0047	7C 00							MOV		R4,#0
   65:	  0049	EF		Hex3DecLoop3:	MOV		A,R7					  ;100000 (186A0H)?
   66:	  004A	94 A0							SUBB		A,#0A0H
   67:	  004C	FF							MOV		R7,A
   68:	  004D	EE							MOV		A,R6
   69:	  004E	94 86							SUBB		A,#86H
   70:	  0050	FE							MOV		R6,A
   71:	  0051	ED							MOV		A,R5
   72:	  0052	94 01							SUBB		A,#01H
   73:	  0054	FD							MOV		R5,A
   74:	  0055	40 03							JC		Hex3DecSkip3
   75:	  0057	0C							INC		R4
   76:	  0058	80 EF							JMP		Hex3DecLoop3
   77:
   78:	  005A	EC		Hex3DecSkip3:	MOV		A,R4
   79:	  005B	C0 E0							PUSH		ACC		   ;onto stack
   80:	  005D	EF							MOV		A,R7
   81:	  005E	24 A0							ADD		A,#0A0H
   82:	  0060	FF							MOV		R7,A
   83:	  0061	EE							MOV		A,R6
   84:	  0062	34 86							ADDC		A,#86H
   85:	  0064	FE							MOV		R6,A
   86:	  0065	ED							MOV		A,R5
   87:	  0066	34 01							ADDC		A,#01H
   88:	  0068	FD							MOV		R5,A
   89:
   90:	  0069	7C 00		Hex2DecConv:	MOV		R4,#0
   91:	  006B	C3							CLR		C
   92:	  006C	EF		Hex2DecLoop1:	MOV		A,R7					    ;10000 (2710h)?
   93:	  006D	94 10							SUBB		A,#010H
   94:	  006F	FF							MOV		R7,A
   95:	  0070	EE							MOV		A,R6
   96:	  0071	94 27							SUBB		A,#27H
   97:	  0073	FE							MOV		R6,A

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

   98:	  0074	ED							MOV		A,R5
   99:	  0075	94 00							SUBB		A,#0
  100:	  0077	FD							MOV		R5,A
  101:	  0078	40 03							JC		Hex2DecSkip1
  102:	  007A	0C							INC		R4
  103:	  007B	80 EF							JMP		Hex2DecLoop1
  104:	  007D	EC		Hex2DecSkip1:	MOV		A,R4					     ;onto stack
  105:	  007E	C0 E0							PUSH		ACC
  106:	  0080	EF							MOV		A,R7
  107:	  0081	24 10							ADD		A,#010H
  108:	  0083	FF							MOV		R7,A
  109:	  0084	EE							MOV		A,R6
  110:	  0085	34 27							ADDC		A,#27H
  111:	  0087	FE							MOV		R6,A
  112:
  113:	  0088	C3							CLR		C
  114:	  0089	7C 00							MOV		R4,#0
  115:	  008B	EF		Hex2DecLoop2:	MOV		A,R7					     ;1000 (3E8h)?
  116:	  008C	94 E8							SUBB		A,#0E8H
  117:	  008E	FF							MOV		R7,A
  118:	  008F	EE							MOV		A,R6
  119:	  0090	94 03							SUBB		A,#03H
  120:	  0092	FE							MOV		R6,A
  121:	  0093	40 03							JC		Hex2DecSkip2
  122:	  0095	0C							INC		R4
  123:	  0096	80 F3							JMP		Hex2DecLoop2
  124:	  0098	EC		Hex2DecSkip2:	MOV		A,R4					      ;onto satck
  125:	  0099	C0 E0							PUSH		ACC
  126:	  009B	EF							MOV		A,R7
  127:	  009C	24 E8							ADD		A,#0E8H
  128:	  009E	FF							MOV		R7,A
  129:	  009F	EE							MOV		A,R6
  130:	  00A0	34 03							ADDC		A,#03H
  131:	  00A2	FE							MOV		R6,A
  132:
  133:	  00A3	C3							CLR		C
  134:	  00A4	7C 00							MOV		R4,#0
  135:	  00A6	EF		Hex2DecLoop3:	MOV		A,R7					      ;100 (64h)?
  136:	  00A7	94 64							SUBB		A,#064H
  137:	  00A9	FF							MOV		R7,A
  138:	  00AA	EE							MOV		A,R6
  139:	  00AB	94 00							SUBB		A,#0H
  140:	  00AD	FE							MOV		R6,A
  141:	  00AE	40 03							JC		Hex2DecSkip3
  142:	  00B0	0C							INC		R4
  143:	  00B1	80 F3							JMP		Hex2DecLoop3
  144:	  00B3	EC		Hex2DecSkip3:	MOV		A,R4					      ;onto stack
  145:	  00B4	C0 E0							PUSH		ACC
  146:	  00B6	EF							MOV		A,R7
  147:	  00B7	24 64							ADD		A,#064H
  148:	  00B9	FF							MOV		R7,A
  149:	  00BA	EE							MOV		A,R6
  150:	  00BB	34 00							ADDC		A,#0H
  151:	  00BD	FE							MOV		R6,A
  152:
  153:	  00BE	C3							CLR		C

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

  154:	  00BF	7C 00							MOV		R4,#0
  155:	  00C1	EF		Hex2DecLoop4:	MOV		A,R7					      ;10 (0Ah)?
  156:	  00C2	94 0A							SUBB		A,#0AH
  157:	  00C4	FF							MOV		R7,A
  158:	  00C5	40 03							JC		Hex2DecSkip4
  159:	  00C7	0C							INC		R4
  160:	  00C8	80 F7							JMP		Hex2DecLoop4
  161:	  00CA	EC		Hex2DecSkip4:	MOV		A,R4					      ;onto stack
  162:	  00CB	C0 E0							PUSH		ACC
  163:	  00CD	24 0A							ADD		A,#0AH	              ;1
  164:
  165:	  00CF	EF							MOV		A,R7		      ;tens & ones in w R7
  166:	  00D0	24 0A							ADD		A,#0AH
  167:	  00D2	FF							MOV		R7,A
  168:	  00D3	D0 E0							POP		ACC
  169:	  00D5	C4							SWAP		A
  170:	  00D6	2F							ADD		A,R7
  171:	  00D7	FF							MOV		R7,A
  172:	  00D8	D0 E0							POP		ACC		      ;thousands & hundreds
				in R6
  173:	  00DA	FE							MOV		R6,A
  174:	  00DB	D0 E0							POP		ACC
  175:	  00DD	C4							SWAP		A
  176:	  00DE	2E							ADD		A,R6
  177:	  00DF	FE							MOV		R6,A
  178:	  00E0	D0 E0							POP		ACC		      ;tens thousands & hund
				reds thousands in R5
  179:	  00E2	FD							MOV		R5,A
  180:	  00E3	D0 E0							POP		ACC
  181:	  00E5	C4							SWAP		A
  182:	  00E6	2D							ADD		A,R5
  183:	  00E7	FD							MOV		R5,A
  184:	  00E8	D0 E0							POP		ACC		      ;milins & tens milions
				 in R4
  185:	  00EA	FC							MOV		R4,A
  186:	  00EB	D0 E0							POP		ACC
  187:	  00ED	C4							SWAP		A
  188:	  00EE	2C							ADD		A,R4
  189:	  00EF	FC							MOV		R4,A
  190:	  00F0	22							RET
  191:
  192:				;konversi desimal ke ASCHII
  193:				;nilai desimal di r4(msb),r5,r6,r7(lsb),hasil terletak di ram buffer 20h-28h
  194:				;note:numbers are in correct order after hex2dec conversion routine
  195:				;routine mengambil semua nomor desimal (4 bits dari 8 bit register) dan menambahnya dengan 0 ascii c
				ode character
  196:				;contoh : 15 => '0'+1 -> '1' , '0'+5 -> '5'
  197:	  00F1	E5 20		Dec2AsciiConv:				MOV		A,20H
  198:	  00F3	F8							MOV		R0,A		      ;pointer to lcd_1
  199:	  00F4	EC							MOV		A,R4
  200:	  00F5	54 F0							ANL		A,#0F0H
  201:	  00F7	C4							SWAP		A
  202:	  00F8	24 30							ADD		A,#'0'
  203:	  00FA	F6							MOV		@R0,A
  204:	  00FB	08							INC		R0
  205:	  00FC	EC							MOV		A,R4

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 5



 Line  I  Addr  Code            Source

  206:	  00FD	54 0F							ANL		A,#0FH
  207:	  00FF	24 30							ADD		A,#'0'
  208:	  0101	F6							MOV		@R0,A
  209:	  0102	08							INC		R0
  210:	  0103	ED							MOV		A,R5
  211:	  0104	54 F0							ANL		A,#0F0H
  212:	  0106	C4							SWAP		A
  213:	  0107	24 30							ADD		A,#'0'
  214:	  0109	F6							MOV		@R0,A
  215:	  010A	08							INC		R0
  216:	  010B	ED							MOV		A,R5
  217:	  010C	54 0F							ANL		A,#0FH
  218:	  010E	24 30							ADD		A,#'0'
  219:	  0110	F6							MOV		@R0,A
  220:	  0111	08							INC		R0
  221:	  0112	EE							MOV		A,R6
  222:	  0113	54 F0							ANL		A,#0F0H
  223:	  0115	C4							SWAP		A
  224:	  0116	24 30							ADD		A,#'0'
  225:	  0118	F6							MOV		@R0,A
  226:	  0119	08							INC		R0
  227:	  011A	EE							MOV		A,R6
  228:	  011B	54 0F							ANL		A,#0FH
  229:	  011D	24 30							ADD		A,#'0'
  230:	  011F	F6							MOV		@R0,A
  231:	  0120	08							INC		R0
  232:	  0121	EF							MOV		A,R7
  233:	  0122	54 F0							ANL		A,#0F0H
  234:	  0124	C4							SWAP		A
  235:	  0125	24 30							ADD		A,#'0'
  236:	  0127	F6							MOV		@R0,A
  237:	  0128	08							INC		R0
  238:	  0129	EF							MOV		A,R7
  239:	  012A	54 0F							ANL		A,#0FH
  240:	  012C	24 30							ADD		A,#'0'
  241:	  012E	F6							MOV		@R0,A
  242:	  012F	08							INC		R0		       ;put the end of strin
				g code
  243:	  0130	74 00							MOV		A,#0
  244:	  0132	F6							MOV		@R0,A
  245:	  0133	22							RET
  246:
  247:				END





                     register banks used:  ---

                     no errors



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





	       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
DEC2ASCIICONV			  CODE	    00F1	 197
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
HEX2DECCONV			  CODE	    0069	  90
HEX2DECLOOP1			  CODE	    006C	  92
HEX2DECLOOP2			  CODE	    008B	 115
HEX2DECLOOP3			  CODE	    00A6	 135
HEX2DECLOOP4			  CODE	    00C1	 155
HEX2DECSKIP1			  CODE	    007D	 104
HEX2DECSKIP2			  CODE	    0098	 124
HEX2DECSKIP3			  CODE	    00B3	 144
HEX2DECSKIP4			  CODE	    00CA	 161
HEX3DECCONV			  CODE	    0000	  12
HEX3DECLOOP1			  CODE	    0003	  15
HEX3DECLOOP2			  CODE	    0026	  40
HEX3DECLOOP3			  CODE	    0049	  65
HEX3DECSKIP1			  CODE	    0014	  27
HEX3DECSKIP2			  CODE	    0037	  52
HEX3DECSKIP3			  CODE	    005A	  78
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

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 7



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
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
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
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
TXD				  BIT	      B1
WR				  BIT	      B6

⌨️ 快捷键说明

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