📄 i2c.lst
字号:
240 079C 1683 bsf 3,5
241 079D 0191 clrf 17 ;volatile
242 ;I2C.C: 36: SSPADD = 0x02;
243 079E 3002 movlw 2
244 079F 0093 movwf 19 ;volatile
245 ;I2C.C: 37: TRISC4 = 1;
246 07A0 1607 bsf 7,4
247 ;I2C.C: 38: TRISC3 = 1;
248 07A1 1587 bsf 7,3
249 ;I2C.C: 39: SSPIF = 0;
250 07A2 1283 bcf 3,5
251 07A3 118C bcf 12,3
252 ;I2C.C: 40: SSPIE = 0;
253 07A4 1683 bsf 3,5
254 07A5 118C bcf 12,3
255 ;I2C.C: 41: (GIE = 0);
256 07A6 138B bcf 11,7
257 ;I2C.C: 42: SSPEN = 1;
258 07A7 1283 bcf 3,5
259 07A8 1694 bsf 20,5
260 ;I2C.C: 43: }
261 07A9 0008 return
262 ;I2C.C: 104: unsigned char lcd_busy(void)
263 ;I2C.C: 105: {
264 07AA _lcd_busy
265 ; _temp assigned to ?a_lcd_busy+0
266 0000 _lcd_busy$temp set ?a_lcd_busy
267 ;I2C.C: 106: unsigned char temp;
268 07AA 30FF movlw -1
269 07AB 0183 clrf 3 ;select bank 0
270 07AC 0086 movwf 6 ;volatile
271 ;I2C.C: 109: RS = 0;
272 07AD 1288 bcf 8,5
273 ;I2C.C: 110: RW = 1;
274 07AE 1708 bsf 8,6
275 ;I2C.C: 111: E = 1;
276 07AF 1788 bsf 8,7
277 ;I2C.C: 112: TRISB = 0xff;
278 07B0 1683 bsf 3,5
279 07B1 0086 movwf 6 ;volatile
280 ;I2C.C: 113: temp = PORTB;
281 07B2 1283 bcf 3,5
282 07B3 0806 movf 6,w ;volatile
283 07B4 00A6 movwf ?a_lcd_busy
284 ;I2C.C: 114: TRISB = 0x00;
285 07B5 1683 bsf 3,5
286 07B6 0186 clrf 6 ;volatile
287 ;I2C.C: 115: E = 0;
288 07B7 1283 bcf 3,5
289 07B8 1388 bcf 8,7
290 ;I2C.C: 116: return (temp);
291 07B9 0826 movf ?a_lcd_busy,w
292 ;I2C.C: 117: }
293 07BA 0008 return
294 ;I2C.C: 119: void lcd_command_writedata(unsigne
+ d char check,unsigned char data)
295 ;I2C.C: 120: {
296 ; param _data assigned to ?_lcd_command_w
+ ritedata+0
297 0000 _lcd_command_writedata$data set ?_lcd_command_w
+ ritedata
298 07BB _lcd_command_writedata
299 ; _check assigned to ?a_lcd_command_writedata+0
300 0000 _lcd_command_writedata$check set ?a_lcd_command
+ _writedata
301 ;_check stored from w
302 07BB 0183 clrf 3 ;select bank 0
303 07BC 00A5 movwf ?a_lcd_command_writedata
304 ;I2C.C: 121: if (check == 0x00)
305 07BD 08A5 movf ?a_lcd_command_writedata
306 07BE 1D03 btfss 3,2
307 07BF 2FC2 goto l57
308 ;I2C.C: 122: {
309 07C0 1288 bcf 8,5
310 ;I2C.C: 124: }
311 07C1 2FC3 goto l58
312 07C2 l57
313 ;I2C.C: 126: {
314 07C2 1688 bsf 8,5
315 07C3 l58
316 ;I2C.C: 128: }
317 ;I2C.C: 129: RW = 0;
318 07C3 1308 bcf 8,6
319 ;I2C.C: 130: PORTB = data;
320 07C4 0824 movf ?_lcd_command_writedata,w
321 07C5 0086 movwf 6 ;volatile
322 ;I2C.C: 131: E = 1;
323 07C6 1788 bsf 8,7
324 ;I2C.C: 132: E = 0;
325 07C7 1388 bcf 8,7
326 ;I2C.C: 133: while (lcd_busy() & 0x80);
327 07C8 l59
328 07C8 27AA fcall _lcd_busy
329 07C9 00F0 movwf btemp
330 07CA 1FF0 btfss btemp,7
331 07CB 0008 return
332 07CC 2FC8 goto l59
333 ;I2C.C: 142: void lcd_init(void)
334 ;I2C.C: 143: {
335 07CD _lcd_init
336 ;I2C.C: 144: lcd_command_writedata(0x00,0x01);
337 07CD 0183 clrf 3 ;select bank 0
338 07CE 01A4 clrf ?_lcd_command_writedata
339 07CF 0AA4 incf ?_lcd_command_writedata
340 07D0 3000 movlw 0
341 07D1 27BB fcall _lcd_command_writedata
342 ;I2C.C: 145: lcd_command_writedata(0x00,0x38);
343 07D2 3038 movlw 56
344 07D3 00A4 movwf ?_lcd_command_writedata
345 07D4 3000 movlw 0
346 07D5 27BB fcall _lcd_command_writedata
347 ;I2C.C: 146: lcd_command_writedata(0x00,0x0e);
348 07D6 300E movlw 14
349 07D7 00A4 movwf ?_lcd_command_writedata
350 07D8 3000 movlw 0
351 07D9 27BB fcall _lcd_command_writedata
352 ;I2C.C: 147: lcd_command_writedata(0x00,0x06);
353 07DA 3006 movlw 6
354 07DB 00A4 movwf ?_lcd_command_writedata
355 07DC 3000 movlw 0
356 07DD 2FBB ljmp _lcd_command_writedata
357 ;I2C.C: 149: void system_init(void)
358 ;I2C.C: 150: {
359 07DE _system_init
360 ;I2C.C: 151: INTCON = 0x00;
361 07DE 018B clrf 11 ;volatile
362 ;I2C.C: 152: OPTION = 0xff;
363 07DF 30FF movlw -1
364 07E0 1683 bsf 3,5
365 07E1 1303 bcf 3,6 ;carry unused
366 07E2 0081 movwf 1
367 ;I2C.C: 153: TRISB = 0x00;
368 07E3 0186 clrf 6 ;volatile
369 ;I2C.C: 154: TRISD = 0x00;
370 07E4 0188 clrf 8 ;volatile
371 ;I2C.C: 155: }
372 07E5 1283 bcf 3,5
373 07E6 0008 return
374 ;I2C.C: 157: void main(void)
375 ;I2C.C: 158: {
376 07E7 _main
377 ;I2C.C: 159: system_init();
378 07E7 27DE fcall _system_init
379 ;I2C.C: 160: lcd_init();
380 07E8 27CD 120A 118A fcall _lcd_init
381 ;I2C.C: 161: i2c_init();
382 07EB 2794 fcall _i2c_init
383 ;I2C.C: 162: dispdata = 0x38;
384 07EC 3038 movlw 56
385 07ED 00A1 movwf _dispdata ;volatile
386 ;I2C.C: 163: i2c_send(dispdata);
387 07EE 0821 movf _dispdata,w ;volatile
388 07EF 2770 fcall _i2c_send
389 ;I2C.C: 164: dispdata = 0x00;
390 07F0 01A1 clrf _dispdata ;volatile
391 ;I2C.C: 165: dispdata = i2c_receive();
392 07F1 2744 fcall _i2c_receive
393 07F2 00A1 movwf _dispdata ;volatile
394 ;I2C.C: 166: lcd_disp(0x84,0X35);
395 07F3 3035 movlw 53
396 07F4 00A2 movwf ?_lcd_disp
397 07F5 3084 movlw -124
398 07F6 273B 120A 118A fcall _lcd_disp
399 ;I2C.C: 167: lcd_disp(0x85,dispdata);
400 07F9 0821 movf _dispdata,w ;volatile
401 07FA 00A2 movwf ?_lcd_disp
402 07FB 3085 movlw -123
403 07FC 273B 120A 118A fcall _lcd_disp
404 ;I2C.C: 168: while (1)
405 07FF l66
406 ;I2C.C: 169: {
407 07FF 2FFF goto l66
408
409 psect text10
410 0000
411 0000
412 0000
413 0000
414 0000
415 0000
416 0000
417 0000
418 0000
419 0000
420 0000
421 0000
422 0000
423 0000
424 0000
425 0000
426 0000
427 0000
428 0000
429 0000
430 0000
431 0000
432 0000
433 0000
434 0000
435 0000
436 0000
437 0000
438 0000
439 0000
440 0000
441 0000
442 0000
443 0000
444 0000
445 0000
446 0000
447 0000
448 0000
449 0000
450 0000
451 0000
452 0000
453 0000
454 0000
455 0000
456 0000
457 0000
458 0000
459 0000
460 0000
461 0000
462 0000
463 0000
464 0000
465 0000
466 0000
467 0000
468 0000
469 0000
470 0000
471 0000
472 0000
473 0000
474 0000
475 0000
476 0000
477 0000
478 0000
479 0000
480 0000
481 0000
482 0000
483 0000
484 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -