1 | --- C:\MCC18\src\traditional\delays\d10ktcyx.asm -----------------------------------------------
|
2 | 025E 0EFF MOVLW 0xff
|
3 | 0260 50E3 MOVF 0xfe3, W, ACCESS
|
4 | 0262 6E05 MOVWF 0x5, ACCESS
|
5 | 0264 0EEF MOVLW 0xef
|
6 | 0266 D001 BRA 0x26a
|
7 | 0268 0EF3 MOVLW 0xf3
|
8 | 026A 6EE7 MOVWF 0xfe7, ACCESS
|
9 | 026C 2EE7 DECFSZ 0xfe7, F, ACCESS
|
10 | 026E EF36 GOTO 0x26c
|
11 | 0270 F001 NOP
|
12 | 0272 0E0C MOVLW 0xc
|
13 | 0274 6E04 MOVWF 0x4, ACCESS
|
14 | 0276 6AE7 CLRF 0xfe7, ACCESS
|
15 | 0278 2EE7 DECFSZ 0xfe7, F, ACCESS
|
16 | 027A EF3C GOTO 0x278
|
17 | 027C F001 NOP
|
18 | 027E 2E04 DECFSZ 0x4, F, ACCESS
|
19 | 0280 EF3B GOTO 0x276
|
20 | 0282 F001 NOP
|
21 | 0284 2E05 DECFSZ 0x5, F, ACCESS
|
22 | 0286 EF34 GOTO 0x268
|
23 | 0288 F001 NOP
|
24 | 028A 0012 RETURN 0
|
25 | --- C:\MCC18\src\traditional\proc\p18F2550.asm -------------------------------------------------
|
26 | 028C 0E00 MOVLW 0
|
27 | 028E 6EF3 MOVWF 0xff3, ACCESS
|
28 | 0290 EE00 LFSR 0, 0
|
29 | 0292 F000 NOP
|
30 | 0294 0E04 MOVLW 0x4
|
31 | 0296 D801 RCALL 0x29a
|
32 | 0298 0012 RETURN 0
|
33 | 029A 60EA CPFSLT 0xfea, ACCESS
|
34 | 029C D002 BRA 0x2a2
|
35 | 029E 6AEE CLRF 0xfee, ACCESS
|
36 | 02A0 D7FC BRA 0x29a
|
37 | 02A2 50F3 MOVF 0xff3, W, ACCESS
|
38 | 02A4 60E9 CPFSLT 0xfe9, ACCESS
|
39 | 02A6 0012 RETURN 0
|
40 | 02A8 6AEE CLRF 0xfee, ACCESS
|
41 | 02AA D7FC BRA 0x2a4
|
42 | --- C:\MCC18\src\traditional\startup\c018i.c ---------------------------------------------------
|
43 | 0000 EF56 GOTO 0x2ac
|
44 | 0002 F001 NOP
|
45 | 0004 0012 RETURN 0
|
46 | 02AC EE13 LFSR 0x1, 0x300
|
47 | 02AE F000 NOP
|
48 | 02B0 EE23 LFSR 0x2, 0x300
|
49 | 02B2 F000 NOP
|
50 | 02B4 6AF8 CLRF 0xff8, ACCESS
|
51 | 02B6 9C01 BCF 0x1, 0x6, ACCESS
|
52 | 02B8 ECE0 CALL 0x1c0, 0
|
53 | 02BA F000 NOP
|
54 | 02BC EC64 CALL 0x2c8, 0
|
55 | 02BE F001 NOP
|
56 | 02C0 ECB3 CALL 0x166, 0
|
57 | 02C2 F000 NOP
|
58 | 02C4 D7FB BRA 0x2bc
|
59 | 02C6 0012 RETURN 0
|
60 | 01C0 0E06 MOVLW 0x6
|
61 | 01C2 6EF6 MOVWF 0xff6, ACCESS
|
62 | 01C4 0E00 MOVLW 0
|
63 | 01C6 6EF7 MOVWF 0xff7, ACCESS
|
64 | 01C8 0E00 MOVLW 0
|
65 | 01CA 6EF8 MOVWF 0xff8, ACCESS
|
66 | 01CC 0100 MOVLB 0
|
67 | 01CE 0009 TBLRD*+
|
68 | 01D0 50F5 MOVF 0xff5, W, ACCESS
|
69 | 01D2 6F65 MOVWF 0x65, BANKED
|
70 | 01D4 0009 TBLRD*+
|
71 | 01D6 50F5 MOVF 0xff5, W, ACCESS
|
72 | 01D8 6F66 MOVWF 0x66, BANKED
|
73 | 01DA E103 BNZ 0x1e2
|
74 | 01DC 6765 TSTFSZ 0x65, BANKED
|
75 | 01DE D001 BRA 0x1e2
|
76 | 01E0 D03D BRA 0x25c
|
77 | 01E2 0009 TBLRD*+
|
78 | 01E4 50F5 MOVF 0xff5, W, ACCESS
|
79 | 01E6 6F60 MOVWF 0x60, BANKED
|
80 | 01E8 0009 TBLRD*+
|
81 | 01EA 50F5 MOVF 0xff5, W, ACCESS
|
82 | 01EC 6F61 MOVWF 0x61, BANKED
|
83 | 01EE 0009 TBLRD*+
|
84 | 01F0 50F5 MOVF 0xff5, W, ACCESS
|
85 | 01F2 6F62 MOVWF 0x62, BANKED
|
86 | 01F4 0009 TBLRD*+
|
87 | 01F6 0009 TBLRD*+
|
88 | 01F8 50F5 MOVF 0xff5, W, ACCESS
|
89 | 01FA 6EE9 MOVWF 0xfe9, ACCESS
|
90 | 01FC 0009 TBLRD*+
|
91 | 01FE 50F5 MOVF 0xff5, W, ACCESS
|
92 | 0200 6EEA MOVWF 0xfea, ACCESS
|
93 | 0202 0009 TBLRD*+
|
94 | 0204 0009 TBLRD*+
|
95 | 0206 0009 TBLRD*+
|
96 | 0208 50F5 MOVF 0xff5, W, ACCESS
|
97 | 020A 6F63 MOVWF 0x63, BANKED
|
98 | 020C 0009 TBLRD*+
|
99 | 020E 50F5 MOVF 0xff5, W, ACCESS
|
100 | 0210 6F64 MOVWF 0x64, BANKED
|
101 | 0212 0009 TBLRD*+
|
102 | 0214 0009 TBLRD*+
|
103 | 0216 CFF6 MOVFF 0xff6, 0x67
|
104 | 0218 F067 NOP
|
105 | 021A CFF7 MOVFF 0xff7, 0x68
|
106 | 021C F068 NOP
|
107 | 021E CFF8 MOVFF 0xff8, 0x69
|
108 | 0220 F069 NOP
|
109 | 0222 C060 MOVFF 0x60, 0xff6
|
110 | 0224 FFF6 NOP
|
111 | 0226 C061 MOVFF 0x61, 0xff7
|
112 | 0228 FFF7 NOP
|
113 | 022A C062 MOVFF 0x62, 0xff8
|
114 | 022C FFF8 NOP
|
115 | 022E 0100 MOVLB 0
|
116 | 0230 5363 MOVF 0x63, F, BANKED
|
117 | 0232 E102 BNZ 0x238
|
118 | 0234 5364 MOVF 0x64, F, BANKED
|
119 | 0236 E007 BZ 0x246
|
120 | 0238 0009 TBLRD*+
|
121 | 023A 50F5 MOVF 0xff5, W, ACCESS
|
122 | 023C 6EEE MOVWF 0xfee, ACCESS
|
123 | 023E 0763 DECF 0x63, F, BANKED
|
124 | 0240 E2F8 BC 0x232
|
125 | 0242 0764 DECF 0x64, F, BANKED
|
126 | 0244 D7F9 BRA 0x238
|
127 | 0246 C067 MOVFF 0x67, 0xff6
|
128 | 0248 FFF6 NOP
|
129 | 024A C068 MOVFF 0x68, 0xff7
|
130 | 024C FFF7 NOP
|
131 | 024E C069 MOVFF 0x69, 0xff8
|
132 | 0250 FFF8 NOP
|
133 | 0252 0100 MOVLB 0
|
134 | 0254 0765 DECF 0x65, F, BANKED
|
135 | 0256 0E00 MOVLW 0
|
136 | 0258 5B66 SUBWFB 0x66, F, BANKED
|
137 | 025A D7BF BRA 0x1da
|
138 | 025C 0012 RETURN 0
|
139 | --- C:\MCC18\src\traditional\stdclib\__init.c --------------------------------------------------
|
140 | 02C8 0012 RETURN 0
|
141 | --- C:\Users\michael\Documents\MPLAB\Display-LM75-EEPROM-18F2550-Platine\LCD.c -----------------
|
142 | 1: # include "LCD.h"
|
143 | 2:
|
144 | 3: void LCD_DATA (char);
|
145 | 4: void cls_LCD (void);
|
146 | 5: void printLCD (char []);
|
147 | 6:
|
148 | 7:
|
149 | 8:
|
150 | 9: void LCD_DATA (char x)
|
151 | 0008 CFD9 MOVFF 0xfd9, 0xfe6
|
152 | 000A FFE6 NOP
|
153 | 000C CFE1 MOVFF 0xfe1, 0xfd9
|
154 | 000E FFD9 NOP
|
155 | 0010 0E02 MOVLW 0x2
|
156 | 0012 26E1 ADDWF 0xfe1, F, ACCESS
|
157 | 10: {
|
158 | 11: char Er_1 = 0x00;
|
159 | 0014 6ADF CLRF 0xfdf, ACCESS
|
160 | 12: char Er_2 = 0x00;
|
161 | 0016 0E01 MOVLW 0x1
|
162 | 0018 6ADB CLRF 0xfdb, ACCESS
|
163 | 13:
|
164 | 14: Er_1 = LATA & 0xE0; // A5 - A7 aufheben
|
165 | 001A 0EE0 MOVLW 0xe0
|
166 | 001C 1489 ANDWF 0xf89, W, ACCESS
|
167 | 001E 6EDF MOVWF 0xfdf, ACCESS
|
168 | 15: Er_2 = x & 0x1F; // Daten für A0 - A4 filtern
|
169 | 0020 0EFE MOVLW 0xfe
|
170 | 0022 50DB MOVF 0xfdb, W, ACCESS
|
171 | 0024 0B1F ANDLW 0x1f
|
172 | 0026 6EE7 MOVWF 0xfe7, ACCESS
|
173 | 0028 0E01 MOVLW 0x1
|
174 | 002A CFE7 MOVFF 0xfe7, 0xfdb
|
175 | 002C FFDB NOP
|
176 | 16: LATA = Er_1 | Er_2;
|
177 | 002E 50DB MOVF 0xfdb, W, ACCESS
|
178 | 0030 10DF IORWF 0xfdf, W, ACCESS
|
179 | 0032 6E89 MOVWF 0xf89, ACCESS
|
180 | 17:
|
181 | 18: Er_1 = LATB & 0x1F; // B0 - B4 aufheben
|
182 | 0034 0E1F MOVLW 0x1f
|
183 | 0036 148A ANDWF 0xf8a, W, ACCESS
|
184 | 0038 6EDF MOVWF 0xfdf, ACCESS
|
185 | 19: Er_2 = x & 0xE0; // Daten für B5 - B7 filtern
|
186 | 003A 0EFE MOVLW 0xfe
|
187 | 003C 50DB MOVF 0xfdb, W, ACCESS
|
188 | 003E 0BE0 ANDLW 0xe0
|
189 | 0040 6EE7 MOVWF 0xfe7, ACCESS
|
190 | 0042 0E01 MOVLW 0x1
|
191 | 0044 CFE7 MOVFF 0xfe7, 0xfdb
|
192 | 0046 FFDB NOP
|
193 | 20: LATB = Er_1 | Er_2;
|
194 | 0048 50DB MOVF 0xfdb, W, ACCESS
|
195 | 004A 10DF IORWF 0xfdf, W, ACCESS
|
196 | 004C 6E8A MOVWF 0xf8a, ACCESS
|
197 | 21: }
|
198 | 004E 0E02 MOVLW 0x2
|
199 | 0050 5CE1 SUBWF 0xfe1, W, ACCESS
|
200 | 0052 E202 BC 0x58
|
201 | 0054 6AE1 CLRF 0xfe1, ACCESS
|
202 | 0056 52E5 MOVF 0xfe5, F, ACCESS
|
203 | 0058 6EE1 MOVWF 0xfe1, ACCESS
|
204 | 005A 52E5 MOVF 0xfe5, F, ACCESS
|
205 | 005C CFE7 MOVFF 0xfe7, 0xfd9
|
206 | 005E FFD9 NOP
|
207 | 0060 0012 RETURN 0
|
208 | 22:
|
209 | 23: void cls_LCD (void)
|
210 | 24: {
|
211 | 25:
|
212 | 26: RE = 1;
|
213 | 0062 888A BSF 0xf8a, 0x4, ACCESS
|
214 | 27: RS = 0;
|
215 | 0064 948A BCF 0xf8a, 0x2, ACCESS
|
216 | 28: RW = 0;
|
217 | 0066 968A BCF 0xf8a, 0x3, ACCESS
|
218 | 29: LCD_DATA (0x01);
|
219 | 0068 0E01 MOVLW 0x1
|
220 | 006A 6EE6 MOVWF 0xfe6, ACCESS
|
221 | 006C DFCD RCALL 0x8
|
222 | 006E 52E5 MOVF 0xfe5, F, ACCESS
|
223 | 30: RE = 0;
|
224 | 0070 988A BCF 0xf8a, 0x4, ACCESS
|
225 | 31: while (RE);
|
226 | 0072 B88A BTFSC 0xf8a, 0x4, ACCESS
|
227 | 0074 D7FE BRA 0x72
|
228 | 32: RE = 1;
|
229 | 0076 888A BSF 0xf8a, 0x4, ACCESS
|
230 | 33: }
|
231 | 0078 0012 RETURN 0
|
232 | 34:
|
233 | 35: void config_LCD (void)
|
234 | 36: {
|
235 | 37: RE = 1;
|
236 | 007A 888A BSF 0xf8a, 0x4, ACCESS
|
237 | 38: RS = 0;
|
238 | 007C 948A BCF 0xf8a, 0x2, ACCESS
|
239 | 39: RW = 0;
|
240 | 007E 968A BCF 0xf8a, 0x3, ACCESS
|
241 | 40:
|
242 | 41: LCD_DATA (0x34); // 8-bit Datenlänge, RE = 1
|
243 | 0080 0E34 MOVLW 0x34
|
244 | 0082 6EE6 MOVWF 0xfe6, ACCESS
|
245 | 0084 DFC1 RCALL 0x8
|
246 | 0086 52E5 MOVF 0xfe5, F, ACCESS
|
247 | 42: RE = 0;
|
248 | 0088 988A BCF 0xf8a, 0x4, ACCESS
|
249 | 43: while (RE); // Verzögerung bis ausgang 0 ist
|
250 | 008A B88A BTFSC 0xf8a, 0x4, ACCESS
|
251 | 008C D7FE BRA 0x8a
|
252 | 44: RE = 1;
|
253 | 008E 888A BSF 0xf8a, 0x4, ACCESS
|
254 | 45: LCD_DATA (0x09); // 4 Zeilen Modus
|
255 | 0090 0E09 MOVLW 0x9
|
256 | 0092 6EE6 MOVWF 0xfe6, ACCESS
|
257 | 0094 DFB9 RCALL 0x8
|
258 | 0096 52E5 MOVF 0xfe5, F, ACCESS
|
259 | 46: RE = 0;
|
260 | 0098 988A BCF 0xf8a, 0x4, ACCESS
|
261 | 47: while (RE); // Verzögerung bis ausgang 0 ist
|
262 | 009A B88A BTFSC 0xf8a, 0x4, ACCESS
|
263 | 009C D7FE BRA 0x9a
|
264 | 48: RE = 1;
|
265 | 009E 888A BSF 0xf8a, 0x4, ACCESS
|
266 | 49: LCD_DATA (0x30); // 8-bit Datenlänge, RE = 0
|
267 | 00A0 0E30 MOVLW 0x30
|
268 | 00A2 6EE6 MOVWF 0xfe6, ACCESS
|
269 | 00A4 DFB1 RCALL 0x8
|
270 | 00A6 52E5 MOVF 0xfe5, F, ACCESS
|
271 | 50: RE = 0;
|
272 | 00A8 988A BCF 0xf8a, 0x4, ACCESS
|
273 | 51: while (RE); // Verzögerung bis ausgang 0 ist
|
274 | 00AA B88A BTFSC 0xf8a, 0x4, ACCESS
|
275 | 00AC D7FE BRA 0xaa
|
276 | 52: RE = 1;
|
277 | 00AE 888A BSF 0xf8a, 0x4, ACCESS
|
278 | 53: LCD_DATA (0x0F); // Display ein, Curser ein, Curser blinkt
|
279 | 00B0 0E0F MOVLW 0xf
|
280 | 00B2 6EE6 MOVWF 0xfe6, ACCESS
|
281 | 00B4 DFA9 RCALL 0x8
|
282 | 00B6 52E5 MOVF 0xfe5, F, ACCESS
|
283 | 54: RE = 0;
|
284 | 00B8 988A BCF 0xf8a, 0x4, ACCESS
|
285 | 55: while (RE); // Verzögerung bis ausgang 0 ist
|
286 | 00BA B88A BTFSC 0xf8a, 0x4, ACCESS
|
287 | 00BC D7FE BRA 0xba
|
288 | 56: RE = 1;
|
289 | 00BE 888A BSF 0xf8a, 0x4, ACCESS
|
290 | 57: LCD_DATA (0x06); // Curser Auto Increment
|
291 | 00C0 0E06 MOVLW 0x6
|
292 | 00C2 6EE6 MOVWF 0xfe6, ACCESS
|
293 | 00C4 DFA1 RCALL 0x8
|
294 | 00C6 52E5 MOVF 0xfe5, F, ACCESS
|
295 | 58: RE = 0;
|
296 | 00C8 988A BCF 0xf8a, 0x4, ACCESS
|
297 | 59: Delay10KTCYx(30);
|
298 | 00CA 0E1E MOVLW 0x1e
|
299 | 00CC 6EE6 MOVWF 0xfe6, ACCESS
|
300 | 00CE EC2F CALL 0x25e, 0
|
301 | 00D0 F001 NOP
|
302 | 00D2 52E5 MOVF 0xfe5, F, ACCESS
|
303 | 60: while (RE); // Verzögerung bis ausgang 0 ist
|
304 | 00D4 B88A BTFSC 0xf8a, 0x4, ACCESS
|
305 | 00D6 D7FE BRA 0xd4
|
306 | 61: RE = 1;
|
307 | 00D8 888A BSF 0xf8a, 0x4, ACCESS
|
308 | 62: cls_LCD ();
|
309 | 00DA DFC3 RCALL 0x62
|
310 | 63: RE = 1;
|
311 | 00DC 888A BSF 0xf8a, 0x4, ACCESS
|
312 | 64: RW = 0; // LCD im Schreiben-Mode
|
313 | 00DE 968A BCF 0xf8a, 0x3, ACCESS
|
314 | 65: RS = 1; // LCD im Daten-Mode
|
315 | 00E0 848A BSF 0xf8a, 0x2, ACCESS
|
316 | 66: }
|
317 | 00E2 0012 RETURN 0
|
318 | 67:
|
319 | 68:
|
320 | 69: void printLCD (char write[])
|
321 | 00E4 CFD9 MOVFF 0xfd9, 0xfe6
|
322 | 00E6 FFE6 NOP
|
323 | 00E8 CFE1 MOVFF 0xfe1, 0xfd9
|
324 | 00EA FFD9 NOP
|
325 | 00EC 0E02 MOVLW 0x2
|
326 | 00EE 26E1 ADDWF 0xfe1, F, ACCESS
|
327 | 70: {
|
328 | 71: int i = 1;
|
329 | 00F0 0E01 MOVLW 0x1
|
330 | 00F2 6EDE MOVWF 0xfde, ACCESS
|
331 | 00F4 6ADD CLRF 0xfdd, ACCESS
|
332 | 72:
|
333 | 73:
|
334 | 74: RE = 1;
|
335 | 00F6 888A BSF 0xf8a, 0x4, ACCESS
|
336 | 75: RW = 0; // LCD im Schreiben-Mode
|
337 | 00F8 968A BCF 0xf8a, 0x3, ACCESS
|
338 | 76: RS = 1; // LCD im Daten-Mode
|
339 | 00FA 848A BSF 0xf8a, 0x2, ACCESS
|
340 | 77: while (!RE); // Verzögerung bis ausgang 1 ist
|
341 | 00FC A88A BTFSS 0xf8a, 0x4, ACCESS
|
342 | 00FE D7FE BRA 0xfc
|
343 | 78:
|
344 | 79:
|
345 | 80: for (i = 0; write[i] != '\0';i++)
|
346 | 0100 6ADE CLRF 0xfde, ACCESS
|
347 | 0102 6ADD CLRF 0xfdd, ACCESS
|
348 | 0104 0EFD MOVLW 0xfd
|
349 | 0106 CFDB MOVFF 0xfdb, 0x2
|
350 | 0108 F002 NOP
|
351 | 010A 0EFE MOVLW 0xfe
|
352 | 010C CFDB MOVFF 0xfdb, 0x3
|
353 | 010E F003 NOP
|
354 | 0110 50DE MOVF 0xfde, W, ACCESS
|
355 | 0112 2402 ADDWF 0x2, W, ACCESS
|
356 | 0114 6EE9 MOVWF 0xfe9, ACCESS
|
357 | 0116 50DD MOVF 0xfdd, W, ACCESS
|
358 | 0118 2003 ADDWFC 0x3, W, ACCESS
|
359 | 011A 6EEA MOVWF 0xfea, ACCESS
|
360 | 011C 50EF MOVF 0xfef, W, ACCESS
|
361 | 011E E019 BZ 0x152
|
362 | 0148 2ADF INCF 0xfdf, F, ACCESS
|
363 | 014A 0E01 MOVLW 0x1
|
364 | 014C E301 BNC 0x150
|
365 | 014E 2ADB INCF 0xfdb, F, ACCESS
|
366 | 0150 D7D9 BRA 0x104
|
367 | 81: {
|
368 | 82: LCD_DATA (write[i]);
|
369 | 0120 0EFD MOVLW 0xfd
|
370 | 0122 CFDB MOVFF 0xfdb, 0x2
|
371 | 0124 F002 NOP
|
372 | 0126 0EFE MOVLW 0xfe
|
373 | 0128 CFDB MOVFF 0xfdb, 0x3
|
374 | 012A F003 NOP
|
375 | 012C 50DE MOVF 0xfde, W, ACCESS
|
376 | 012E 2402 ADDWF 0x2, W, ACCESS
|
377 | 0130 6EE9 MOVWF 0xfe9, ACCESS
|
378 | 0132 50DD MOVF 0xfdd, W, ACCESS
|
379 | 0134 2003 ADDWFC 0x3, W, ACCESS
|
380 | 0136 6EEA MOVWF 0xfea, ACCESS
|
381 | 0138 50EF MOVF 0xfef, W, ACCESS
|
382 | 013A 6EE6 MOVWF 0xfe6, ACCESS
|
383 | 013C DF65 RCALL 0x8
|
384 | 013E 52E5 MOVF 0xfe5, F, ACCESS
|
385 | 83: RE = 0; // Enable (LCD)
|
386 | 0140 988A BCF 0xf8a, 0x4, ACCESS
|
387 | 84: while (RE); // Verzögerung bis ausgang 0 ist
|
388 | 0142 B88A BTFSC 0xf8a, 0x4, ACCESS
|
389 | 0144 D7FE BRA 0x142
|
390 | 85: RE = 1;
|
391 | 0146 888A BSF 0xf8a, 0x4, ACCESS
|
392 | 86: }
|
393 | 87: }
|
394 | 0152 0E02 MOVLW 0x2
|
395 | 0154 5CE1 SUBWF 0xfe1, W, ACCESS
|
396 | 0156 E202 BC 0x15c
|
397 | 0158 6AE1 CLRF 0xfe1, ACCESS
|
398 | 015A 52E5 MOVF 0xfe5, F, ACCESS
|
399 | 015C 6EE1 MOVWF 0xfe1, ACCESS
|
400 | 015E 52E5 MOVF 0xfe5, F, ACCESS
|
401 | 0160 CFE7 MOVFF 0xfe7, 0xfd9
|
402 | 0162 FFD9 NOP
|
403 | 0164 0012 RETURN 0
|
404 | --- C:\Users\michael\Documents\MPLAB\Display-LM75-EEPROM-18F2550-Platine\main.c ----------------
|
405 | 1: # include <p18f2550.h>
|
406 | 2: # include <stdlib.h>
|
407 | 3: # include <delays.h>
|
408 | 4: # include <i2c.h>
|
409 | 5:
|
410 | 6: # pragma config FOSC = HS // Mit 20MHz Quartz
|
411 | 7: # pragma config PWRT = ON
|
412 | 8: # pragma config BOR = OFF
|
413 | 9: # pragma config WDT = OFF
|
414 | 10: # pragma config LVP = OFF
|
415 | 11: # pragma config MCLRE= ON // MASTER Clear Reset enable
|
416 | 12:
|
417 | 13: # include "LCD.c"
|
418 | 14:
|
419 | 15:
|
420 | 16:
|
421 | 17:
|
422 | 18: void main (void)
|
423 | 0166 CFD9 MOVFF 0xfd9, 0xfe6
|
424 | 0168 FFE6 NOP
|
425 | 016A CFE1 MOVFF 0xfe1, 0xfd9
|
426 | 016C FFD9 NOP
|
427 | 016E 0E04 MOVLW 0x4
|
428 | 0170 26E1 ADDWF 0xfe1, F, ACCESS
|
429 | 19: {
|
430 | 20: char txt[] = "bla";
|
431 | 0172 CFD9 MOVFF 0xfd9, 0xfe9
|
432 | 0174 FFE9 NOP
|
433 | 0176 CFDA MOVFF 0xfda, 0xfea
|
434 | 0178 FFEA NOP
|
435 | 017A 0E62 MOVLW 0x62
|
436 | 017C 6EEE MOVWF 0xfee, ACCESS
|
437 | 017E 0E6C MOVLW 0x6c
|
438 | 0180 6EEE MOVWF 0xfee, ACCESS
|
439 | 0182 0E61 MOVLW 0x61
|
440 | 0184 6EEE MOVWF 0xfee, ACCESS
|
441 | 0186 6AEE CLRF 0xfee, ACCESS
|
442 | 21: TRISA = 0x00; // PORT A ist ein Ausgang
|
443 | 0188 6A92 CLRF 0xf92, ACCESS
|
444 | 22: TRISB = 0x00; // PORT B ist ein Ausgang
|
445 | 018A 6A93 CLRF 0xf93, ACCESS
|
446 | 23:
|
447 | 24: LATA = 0x00;
|
448 | 018C 6A89 CLRF 0xf89, ACCESS
|
449 | 25: LATB = 0x00;
|
450 | 018E 6A8A CLRF 0xf8a, ACCESS
|
451 | 26:
|
452 | 27: config_LCD();
|
453 | 0190 DF74 RCALL 0x7a
|
454 | 28: Delay10KTCYx(5);
|
455 | 0192 0E05 MOVLW 0x5
|
456 | 0194 6EE6 MOVWF 0xfe6, ACCESS
|
457 | 0196 EC2F CALL 0x25e, 0
|
458 | 0198 F001 NOP
|
459 | 019A 52E5 MOVF 0xfe5, F, ACCESS
|
460 | 29:
|
461 | 30:
|
462 | 31:
|
463 | 32: printLCD(txt);
|
464 | 019C CFD9 MOVFF 0xfd9, 0xfe6
|
465 | 019E FFE6 NOP
|
466 | 01A0 CFDA MOVFF 0xfda, 0xfe6
|
467 | 01A2 FFE6 NOP
|
468 | 01A4 DF9F RCALL 0xe4
|
469 | 01A6 52E5 MOVF 0xfe5, F, ACCESS
|
470 | 01A8 52E5 MOVF 0xfe5, F, ACCESS
|
471 | 33: while (1);
|
472 | 01AA D7FF BRA 0x1aa
|
473 | 34: }
|
474 | 01AC 0E04 MOVLW 0x4
|
475 | 01AE 5CE1 SUBWF 0xfe1, W, ACCESS
|
476 | 01B0 E202 BC 0x1b6
|
477 | 01B2 6AE1 CLRF 0xfe1, ACCESS
|
478 | 01B4 52E5 MOVF 0xfe5, F, ACCESS
|
479 | 01B6 6EE1 MOVWF 0xfe1, ACCESS
|
480 | 01B8 52E5 MOVF 0xfe5, F, ACCESS
|
481 | 01BA CFE7 MOVFF 0xfe7, 0xfd9
|
482 | 01BC FFD9 NOP
|
483 | 01BE 0012 RETURN 0
|