📄 boardkey.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 + -