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

📄 boardkey.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:	E:\Electronics\MiCrOConTroller\Micro Programming\M-IDE\KEYBOARD\BOARDKEY.ASM
	Object File:	E:\Electronics\MiCrOConTroller\Micro Programming\M-IDE\KEYBOARD\BOARDKEY.hex
	List File:	E:\Electronics\MiCrOConTroller\Micro Programming\M-IDE\KEYBOARD\BOARDKEY.lst



 Line  I  Addr  Code            Source

    1:
    2:
    3:		N      0001	dispclr equ 00000001b
    4:		N      0038	funcset equ 00111000b
    5:		N      0006	entrmod equ 00000110b
    6:		N      000C	dispon equ 00001100b
    7:		B	 B2	KbdData bit P3.2
    8:		B	 B3	KbdClock bit INT1;P3.3
    9:		N      0030	DataKeyboard equ 30h
   10:				           ;
   11:		N      0000	           org 0h
   12:	  0000	00		           nop
   13:	  0001	11 62		           acall init_LCD
   14:				           ;
   15:	  0003			Forever:
   16:	  0003	20 B3 FD	           JB       KbdClock,$
   17:	  0006	11 0F		           acall    ambilKeyboard
   18:	  0008	50 F9		           jnc      Forever
   19:	  000A	11 39		           acall    LCD_Out
   20:	  000C	C3		           clr      C
   21:	  000D	80 F4		           sjmp     Forever
   22:				           ;
   23:				           ;============================================
   24:				           ;Subrutine AmbilKeyboard
   25:				           ;Subrutine berikut berfungsi untuk mendeteksi apakah keyboard
   26:				           ;sedang ditekan atau dilepas. Bila tombol tidak dilepas maka
   27:				           ;akan menuju pada subrutine ;Kybd_tidakLepas
   28:				           ;dan memberi tanda pada bit C = 0 sehingga bila C = 0
   29:				           ; maka data tidak akan dicetak
   30:				           ;Bila tombol keyboard dilepas maka data scan code diambil
   31:				           ;dan dikonversi ke dengan dengan menggunakan
   32:				           ; look up table serta menandai bit C = 1
   33:				           ;===========================================
   34:	  000F			AmbilKeyboard:
   35:	  000F	11 42		           acall    ambil_scancode
   36:	  0011	B4 F0 0A	           cjne     a,#0F0h,kybd_tidakLepas
   37:	  0014	20 B3 FD	           JB       KbdClock,$
   38:	  0017	11 42		           acall    ambil_Scancode
   39:	  0019	D3		           Setb     C
   40:	  001A	12 00 32	           lcall    Convcode
   41:	  001D	22		           ret
   42:				           ;
   43:	  001E			Kybd_tidakLepas:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  001E	C3		           Clr      C
   45:	  001F	22		           ret
   46:				           ;
   47:	  0020			write_char:
   48:	  0020	90 01 16	           mov      dptr,#word1 ;DPTR = [ address word1 ]
   49:	  0023	7B 10		           mov      r3,#16      ;R3=16,number character to be display
   50:	  0025	79 80		           mov      r1,#80h     ;R1=80h,address DDRAM start position
   51:	  0027	11 73		           acall    write_inst
   52:				           ;
   53:	  0029			write1:
   54:	  0029	E4		           clr      a ; A = 0
   55:	  002A	93		           movc     a,@a+dptr ; A = [A+ DPTR]
   56:	  002B	F9		           mov      r1,A ; R1 = A
   57:	  002C	A3		           inc      dptr ; DPTR = DPTR +1
   58:	  002D	11 7E		           acall    write_data;
   59:	  002F	DB F8		           djnz     r3,write1 ; R3 = R3-1,
   60:	  0031	22		           ret
   61:				           ;
   62:				           ;======================================================
   63:				           ;Subrutine Konversi_ScanCode
   64:				           ;Pada subrutine ini digunakan untuk menerjemahkan scan code ke bentuk
   65:				           ;karakter
   66:				           ; dengan menggunakan look up table.
   67:				           ;======================================================
   68:	  0032			Convcode:
   69:	  0032	90 00 92	           Mov      DPTR,#TableKeyboard
   70:	  0035	93		           movc     A,@A+DPTR
   71:	  0036	F5 30		           mov      DataKeyboard,A
   72:	  0038	22		           ret
   73:				           ;
   74:	  0039			LCD_Out:
   75:	  0039	7F 80		           mov      R7, #80h
   76:	  003B	11 73		           acall    write_inst
   77:	  003D	AF 30		           mov      R7,DataKeyboard
   78:	  003F	11 7E		           acall    write_data
   79:	  0041	22		           ret
   80:				           ;
   81:	  0042			Ambil_scanCode:
   82:	  0042	E4		           clr      A
   83:	  0043	30 B3 FD	           Jnb      KbdClock,$
   84:	  0046	78 08		           mov      R0,#08h
   85:	  0048			Ambil_ScanCode2:
   86:	  0048	20 B3 FD	           Jb       KbdClock,$
   87:	  004B	A2 B2		           Mov      C,KbdData
   88:	  004D	03		           Rr       A
   89:	  004E	92 E7		           mov      acc.7,C
   90:	  0050	30 B3 FD	           Jnb      KbdClock,$
   91:	  0053	D8 F3		           Djnz     R0,Ambil_ScanCode2
   92:	  0055	20 B3 FD	           Jb       KbdClock,$
   93:	  0058	30 B3 FD	           Jnb      KbdClock,$
   94:	  005B	20 B3 FD	           Jb       KbdClock,$
   95:	  005E	30 B3 FD	           Jnb      KbdClock,$
   96:	  0061	22		           ret
   97:				           ;
   98:	  0062			Init_lcd:
   99:	  0062	79 01		           mov      r1,#00000001b ;Display clear

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  0064	11 73		           acall    write_inst ;
  101:	  0066	79 38		           mov      r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7
  102:	  0068	11 73		           acall    write_inst ;
  103:	  006A	79 0C		           mov      r1,#00001100b ;Display on, ;cursor off,cursor blink off
  104:	  006C	11 73		           acall    write_inst
  105:	  006E	79 06		           mov      r1,#00000110b ;Entry mode, Set increment
  106:	  0070	11 73		           acall    write_inst
  107:	  0072	22		           ret
  108:				           ;
  109:	  0073			Write_inst:
  110:	  0073	C2 B6		           clr      P3.6  ; RS = P2.0 = 0, write mode instruction
  111:	  0075	89 80		           mov      P0,R1 ; D7 s/d D0 = P0 = R1
  112:	  0077	D2 B7		           setb     P3.7  ; EN = 1 = P2.1
  113:	  0079	11 89		           acall    delay ; call delay time
  114:	  007B	C2 B7		           clr      P3.7  ; EN = 0 = P2.1
  115:	  007D	22		           ret
  116:				           ;
  117:	  007E			Write_data:
  118:	  007E	D2 B6		           setb     P3.6  ; RS = P2.0 = 1, write mode data
  119:	  0080	89 80		           mov      P0,R1 ; D7 s/d D0 = P0 = R1
  120:	  0082	D2 B7		           setb     P3.7  ; EN = 1 = P2.1
  121:	  0084	11 89		           acall    delay ; call delay time
  122:	  0086	C2 B7		           clr      p3.7  ; EN = 0 = P2.1
  123:	  0088	22		           ret
  124:				           ;
  125:	  0089	7D 00		delay:     mov      R5,#0
  126:	  008B	7C 2F		delay1:    mov      R4,#02fh
  127:	  008D	DC FE		           djnz     R4,$
  128:	  008F	DD FA		           djnz     R5,delay1
  129:	  0091	22		           ret
  130:				           ;
  131:	  0092			TableKeyboard:
  132:	  0092	00		           DB 00
  133:	  0093	F9		           DB 0F9H
  134:	  0094	00		           DB 00
  135:	  0095	F5 F3 F1 F2	           DB 0F5H,0F3H,0F1H,0F2H,0FCH
	  0099	FC
  136:	  009A	00		           DB 00H
  137:	  009B	FA F8 F6 F4	           DB 0FAH,0F8H,0F6H,0F4H
  138:	  009F	C0		           DB 0C0H
  139:	  00A0	7E		           DB "~"
  140:	  00A1	00		           DB 00H
  141:	  00A2	00		           DB 00H
  142:	  00A3	C1		           DB 0C1H
  143:	  00A4	C2		           DB 0C2H
  144:	  00A5	00		           DB 00H
  145:	  00A6	C3		           DB 0C3H
  146:	  00A7	51 31		           DB "Q1"
  147:	  00A9	00 00 00	           DB 00H,00H,00H
  148:	  00AC	5A 53 41 57	           DB "ZSAW2"
	  00B0	32
  149:	  00B1	00 00		           DB 00H,00H
  150:	  00B3	43 58 44 45	           DB "CXDE43"
	  00B7	34 33
  151:	  00B9	00 00		           DB 00H,00H
  152:	  00BB	20 56 46 54	           DB " VFTR5"

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

	  00BF	52 35
  153:	  00C1	00 00		           DB 00H,00H
  154:	  00C3	4E 42 48 47	           DB "NBHGY6"
	  00C7	59 36
  155:	  00C9	00 00 00	           DB 00H,00H,00H
  156:	  00CC	4D 4A 55 37	           DB "MJU78"
	  00D0	38
  157:	  00D1	00 00		           DB 00H,00H
  158:	  00D3	2C 4B 49 4F	           DB ",KIO09"
	  00D7	30 39
  159:	  00D9	00 00		           DB 00H,00H
  160:	  00DB	2E 2F 4C 3B	           DB "./L;P-"
	  00DF	50 2D
  161:	  00E1	00 00 00	           DB 00H,00H,00H
  162:	  00E4	27		           DB 27H
  163:	  00E5	00		           DB 00H
  164:	  00E6	5B 3D		           DB "[="
  165:	  00E8	00 00		           DB 00H,00H
  166:	  00EA	C5		           DB 0C5H
  167:	  00EB	C6		           DB 0C6H
  168:	  00EC	0A		           DB 0AH
  169:	  00ED	5D		           DB "]"
  170:	  00EE	00		           DB 00H
  171:	  00EF	5C		           DB "\"
  172:	  00F0	00 00 00 00	           DB 00H,00H,00H,00H,00H,00H,00H,00H
	  00F4	00 00 00 00
  173:	  00F8	08		           DB 08H
  174:	  00F9	00 00 00 00	           DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	  00FD	00 00 00 00
	  0101	00 00 00 00
	  0105	00 00 00
  175:	  0108	0D		           DB 0DH
  176:	  0109	00		           DB 00H
  177:	  010A	FB		           DB 0FBH
  178:	  010B	00 00 00 00	           DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
	  010F	00 00 00 00
	  0113	00 00
  179:	  0115	F7		           DB 0F7H
  180:
  181:	  0116	20 57 65 6C	word1: DB " Welcome Home "; here is the data to be            look up
	  011A	63 6F 6D 65
	  011E	20 48 6F 6D
	  0122	65 20
  182:				           end





                     register banks used:  ---

                     no errors



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





	       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
AMBILKEYBOARD			  CODE	    000F	  34
AMBIL_SCANCODE			  CODE	    0042	  81
AMBIL_SCANCODE2			  CODE	    0048	  85
B				  DATA	      F0
CONVCODE			  CODE	    0032	  68
CY				  BIT	      D7
DATAKEYBOARD			  NUMBER    0030	   9
DELAY				  CODE	    0089	 125
DELAY1				  CODE	    008B	 126
DISPCLR				  NUMBER    0001	   3
DISPON				  NUMBER    000C	   6
DPH				  DATA	      83
DPL				  DATA	      82
EA				  BIT	      AF
ENTRMOD				  NUMBER    0006	   5
ES				  BIT	      AC
ET0				  BIT	      A9
ET1				  BIT	      AB
EX0				  BIT	      A8
EX1				  BIT	      AA
EXTI0				  CODE	    0003
EXTI1				  CODE	    0013
F0				  BIT	      D5
FOREVER				  CODE	    0003	  15
FUNCSET				  NUMBER    0038	   4
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INIT_LCD			  CODE	    0062	  98
INT0				  BIT	      B2
INT1				  BIT	      B3
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
KBDCLOCK			  BIT	      B3	   8
KBDDATA				  BIT	      B2	   7
KYBD_TIDAKLEPAS			  CODE	    001E	  43
LCD_OUT				  CODE	    0039	  74
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 6



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
TABLEKEYBOARD			  CODE	    0092	 131
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
WORD1				  CODE	    0116	 181
WR				  BIT	      B6
WRITE1				  CODE	    0029	  53
WRITE_CHAR			  CODE	    0020	  47
WRITE_DATA			  CODE	    007E	 117
WRITE_INST			  CODE	    0073	 109

⌨️ 快捷键说明

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