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

📄 hexdec-lcd.a51.lst

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 LST
📖 第 1 页 / 共 5 页
字号:
  295:	    08								MOV		R2,#0
									^
			  @@@@@ only allowed in CODE segment @@@@@

					;&column,start from home pos.
  296:	    08			CStringSkip2:	INC		DPTR						;next chacter
						^
			  @@@@@ only allowed in CODE segment @@@@@

  297:	    08								AJMP		WriteCString
									^
			  @@@@@ only allowed in CODE segment @@@@@

  298:
  299:				;write a string from ram memory
  300:				;R0=address of string in ram memory
  301:				;R1=row number
  302:				;R2=column number
  303:	    08			WriteAString:	MOV		A,@R0						;first char from ram
						^
			  @@@@@ only allowed in CODE segment @@@@@

				 position to acc.
  304:	    08								CJNE		A,#0,WriteASkip1		;is it the e
									^
			  @@@@@ only allowed in CODE segment @@@@@

				nd code?
  305:	    08								RET
									^
			  @@@@@ only allowed in CODE segment @@@@@

  306:	    08			WriteASkip1:	MOV		R3,A
						^
			  @@@@@ only allowed in CODE segment @@@@@

  307:	    08								MOV		A,R0
									^
			  @@@@@ only allowed in CODE segment @@@@@

					;ro save
  308:	    08								PUSH		ACC
									^
			  @@@@@ only allowed in CODE segment @@@@@

  309:	    08								CALL		PutCharOnLCD			;display cha
									^
			  @@@@@ only allowed in CODE segment @@@@@

				r.
  310:	    08								POP		ACC
									^

ASEM-51 V1.3                                        Copyright (c) 2002 by W.W. Heinz                                         PAGE 17



 Line  I  Addr  Code            Source

			  @@@@@ only allowed in CODE segment @@@@@

					;r0 restore
  311:	    08								MOV		R0,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  312:	    08								INC		R2
									^
			  @@@@@ only allowed in CODE segment @@@@@

						;next column
  313:	    08								CJNE		R2,#LCDLineLength,AStringSkip2	;is it max n
									^
			  @@@@@ only allowed in CODE segment @@@@@

				umber of column?
  314:	    08								MOV		R2,#0
									^
			  @@@@@ only allowed in CODE segment @@@@@

					;yes,clear column number
  315:	    08								INC		R1
									^
			  @@@@@ only allowed in CODE segment @@@@@

						;and go to the next row
  316:	    08								CJNE		A,#LCDRowsNum,AStringSkip2	;is it the m
									^
			  @@@@@ only allowed in CODE segment @@@@@

				ax number of row?
  317:	    08								MOV		R1,#0
									^
			  @@@@@ only allowed in CODE segment @@@@@

					;yes,clear row number and
  318:	    08								MOV		R2,#0
									^
			  @@@@@ only allowed in CODE segment @@@@@

					;go to the first row
  319:	    08			AStringSkip2:	INC		R0							;increment p
						^
			  @@@@@ only allowed in CODE segment @@@@@

				ointer address
  320:	    08								JMP		WriteAString
									^
			  @@@@@ only allowed in CODE segment @@@@@

  321:
  322:				;3 bytes of hex number to decimal convertion routine
  323:				;number in r5,r6,r7 (r5-msb,..,r7-lsb), result in r4,r5,r6,r7
  324:				;the routine counts, how many times you can subtract the 1000000 from numer, then 100000,10000,1000,
				100,10,1

ASEM-51 V1.3                                        Copyright (c) 2002 by W.W. Heinz                                         PAGE 18



 Line  I  Addr  Code            Source

  325:				;each counter equals position of decimal number f.e.:
  326:				; 1E74 hex - you can subtract 1000 seven (7) times, 100 seven (7) times, 10 nine (9) times and the r
				est
  327:				;is six (6), so your result of conversion is 7796 (equals 1E74)
  328:	    08			Hex3DecConv:	CLR		C
						^
			  @@@@@ only allowed in CODE segment @@@@@

  329:	    08								MOV		R4,#0
									^
			  @@@@@ only allowed in CODE segment @@@@@

					;milion counter clear
  330:
  331:	    08			Hex3DecLoop1:	MOV		A,R7						;how many time we ca
						^
			  @@@@@ only allowed in CODE segment @@@@@

				n subtract 10000000 without carry (989680H)
  332:	    08								SUBB		A,#80H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  333:	    08								MOV		R7,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  334:	    08								MOV		A,R6
									^
			  @@@@@ only allowed in CODE segment @@@@@

  335:	    08								SUBB		A,#96H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  336:	    08								MOV		R6,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  337:	    08								MOV		A,R5
									^
			  @@@@@ only allowed in CODE segment @@@@@

  338:	    08								SUBB		A,#98H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  339:	    08								MOV		R5,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  340:	    08								JC			Hex3DecSkip1
									^
			  @@@@@ only allowed in CODE segment @@@@@

  341:	    08								INC		R4

ASEM-51 V1.3                                        Copyright (c) 2002 by W.W. Heinz                                         PAGE 19



 Line  I  Addr  Code            Source

									^
			  @@@@@ only allowed in CODE segment @@@@@

  342:	    08								JMP		Hex3DecLoop1
									^
			  @@@@@ only allowed in CODE segment @@@@@

  343:	    08			Hex3DecSkip1:	MOV		A,R4
						^
			  @@@@@ only allowed in CODE segment @@@@@

  344:	    08								PUSH		ACC
									^
			  @@@@@ only allowed in CODE segment @@@@@

					;push counter onto stack
  345:	    08								MOV		A,R7
									^
			  @@@@@ only allowed in CODE segment @@@@@

  346:	    08								ADD		A,#80H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  347:	    08								MOV		R7,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  348:	    08								MOV		A,R6
									^
			  @@@@@ only allowed in CODE segment @@@@@

  349:	    08								ADDC		A,#96H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  350:	    08								MOV		R6,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  351:	    08								MOV		A,R5
									^
			  @@@@@ only allowed in CODE segment @@@@@

  352:	    08								ADDC		A,#98H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  353:	    08								MOV		R5,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  354:	    08								CLR		C
									^
			  @@@@@ only allowed in CODE segment @@@@@

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



 Line  I  Addr  Code            Source

  355:	    08								MOV		R4,#0
									^
			  @@@@@ only allowed in CODE segment @@@@@

  356:	    08			Hex3DecLoop2:	MOV		A,R7						;how many times we c
						^
			  @@@@@ only allowed in CODE segment @@@@@

				an subtract 1000000 (F4240H) without carry
  357:	    08								SUBB		A,#40H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  358:	    08								MOV		R7,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  359:	    08								MOV		A,R6
									^
			  @@@@@ only allowed in CODE segment @@@@@

  360:	    08								SUBB		A,#42H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  361:	    08								MOV		R6,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  362:	    08								MOV		A,R5
									^
			  @@@@@ only allowed in CODE segment @@@@@

  363:	    08								SUBB		A,#0FH
									^
			  @@@@@ only allowed in CODE segment @@@@@

  364:	    08								MOV		R5,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  365:	    08								JC			Hex3DecSkip2
									^
			  @@@@@ only allowed in CODE segment @@@@@

  366:	    08								INC		R4
									^
			  @@@@@ only allowed in CODE segment @@@@@

  367:	    08								JMP		Hex3DecLoop2
									^
			  @@@@@ only allowed in CODE segment @@@@@

  368:	    08			Hex3DecSkip2:	MOV		A,R4
						^
			  @@@@@ only allowed in CODE segment @@@@@

ASEM-51 V1.3                                        Copyright (c) 2002 by W.W. Heinz                                         PAGE 21



 Line  I  Addr  Code            Source


  369:	    08								PUSH		ACC
									^
			  @@@@@ only allowed in CODE segment @@@@@

					;push counter onto stack
  370:	    08								MOV		A,R7
									^
			  @@@@@ only allowed in CODE segment @@@@@

  371:	    08								ADD		A,#40H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  372:	    08								MOV		R7,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  373:	    08								MOV		A,R6
									^
			  @@@@@ only allowed in CODE segment @@@@@

  374:	    08								ADDC		A,#42H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  375:	    08								MOV		R6,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  376:	    08								MOV		A,R5
									^
			  @@@@@ only allowed in CODE segment @@@@@

  377:	    08								ADDC		A,#0FH
									^
			  @@@@@ only allowed in CODE segment @@@@@

  378:	    08								MOV		R5,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  379:	    08								CLR		C
									^
			  @@@@@ only allowed in CODE segment @@@@@

  380:	    08								MOV		R4,#0
									^
			  @@@@@ only allowed in CODE segment @@@@@

  381:	    08			Hex3DecLoop3:	MOV		A,R7						;100000 (186A0H)?
						^
			  @@@@@ only allowed in CODE segment @@@@@

  382:	    08								SUBB		A,#0A0H
									^

ASEM-51 V1.3                                        Copyright (c) 2002 by W.W. Heinz                                         PAGE 22



 Line  I  Addr  Code            Source

			  @@@@@ only allowed in CODE segment @@@@@

  383:	    08								MOV		R7,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  384:	    08								MOV		A,R6
									^
			  @@@@@ only allowed in CODE segment @@@@@

  385:	    08								SUBB		A,#86H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  386:	    08								MOV		R6,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  387:	    08								MOV		A,R5
									^
			  @@@@@ only allowed in CODE segment @@@@@

  388:	    08								SUBB		A,#01H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  389:	    08								MOV		R5,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  390:	    08								JC			Hex3DecSkip3
									^
			  @@@@@ only allowed in CODE segment @@@@@

  391:	    08								INC		R4
									^
			  @@@@@ only allowed in CODE segment @@@@@

  392:	    08								JMP		Hex3DecLoop3
									^
			  @@@@@ only allowed in CODE segment @@@@@

  393:
  394:	    08			Hex3DecSkip3:	MOV		A,R4
						^
			  @@@@@ only allowed in CODE segment @@@@@

  395:	    08								PUSH		ACC		       		;onto stack
									^
			  @@@@@ only allowed in CODE segment @@@@@

  396:	    08								MOV		A,R7
									^
			  @@@@@ only allowed in CODE segment @@@@@

  397:	    08								ADD		A,#0A0H

ASEM-51 V1.3                                        Copyright (c) 2002 by W.W. Heinz                                         PAGE 23



 Line  I  Addr  Code            Source

									^
			  @@@@@ only allowed in CODE segment @@@@@

  398:	    08								MOV		R7,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  399:	    08								MOV		A,R6
									^
			  @@@@@ only allowed in CODE segment @@@@@

  400:	    08								ADDC		A,#86H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  401:	    08								MOV		R6,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  402:	    08								MOV		A,R5
									^
			  @@@@@ only allowed in CODE segment @@@@@

  403:	    08								ADDC		A,#01H
									^
			  @@@@@ only allowed in CODE segment @@@@@

  404:	    08								MOV		R5,A
									^
			  @@@@@ only allowed in CODE segment @@@@@

  405:
  406:	    08			Hex2DecConv:	MOV		R4,#0
						^
			  @@@@@ only allowed in CODE segment @@@@@

  407:	    08								CLR		C
									^
			  @@@@@ only allowed in CODE segment @@@@@

  408:	    08			Hex2DecLoop1:	MOV		A,R7						;10000 (2710h)?

⌨️ 快捷键说明

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