📄 ex5.lst
字号:
C:\MCC18\src\traditional\startup\c018i.c
/* do the copy loop */ C:\MCC18\src\traditional\startup\c018i.c
_asm C:\MCC18\src\traditional\startup\c018i.c
// determine if we have any more bytes to copy C:\MCC18\src\traditional\startup\c018i.c
00143c 0100 MOVLB 0x0 movlb curr_byte C:\MCC18\src\traditional\startup\c018i.c
00143e 53a5 MOVF 0xa5,0x1,0x1 movf curr_byte, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
copy_loop: C:\MCC18\src\traditional\startup\c018i.c
001440 e102 BNZ 0x1446 bnz 2 // copy_one_byte C:\MCC18\src\traditional\startup\c018i.c
001442 53a6 MOVF 0xa6,0x1,0x1 movf curr_byte + 1, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
001444 e007 BZ 0x1454 bz 7 // done_copying C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
copy_one_byte: C:\MCC18\src\traditional\startup\c018i.c
001446 0009 TBLRDPOSTINC tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
001448 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
00144a 6eee MOVWF 0xee,0x0 movwf POSTINC0, 0 C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
// decrement byte counter C:\MCC18\src\traditional\startup\c018i.c
00144c 07a5 DECF 0xa5,0x1,0x1 decf curr_byte, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
00144e e2f8 BC 0x1440 bc -8 // copy_loop C:\MCC18\src\traditional\startup\c018i.c
001450 07a6 DECF 0xa6,0x1,0x1 decf curr_byte + 1, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
001452 d7f9 BRA 0x1446 bra -7 // copy_one_byte C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
done_copying: C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
_endasm C:\MCC18\src\traditional\startup\c018i.c
/* restore the table pointer for the next entry */ C:\MCC18\src\traditional\startup\c018i.c
001454 c0a9 MOVFF 0xa9,0xff6 TBLPTR = data_ptr; C:\MCC18\src\traditional\startup\c018i.c
001456 fff6
001458 c0aa MOVFF 0xaa,0xff7
00145a fff7
00145c c0ab MOVFF 0xab,0xff8
00145e fff8
/* next entry... */ C:\MCC18\src\traditional\startup\c018i.c
001460 0100 MOVLB 0x0 curr_entry--; C:\MCC18\src\traditional\startup\c018i.c
001462 07a7 DECF 0xa7,0x1,0x1
001464 0e00 MOVLW 0x0
001466 5ba8 SUBWFB 0xa8,0x1,0x1
001468 d7bf BRA 0x13e8 goto test; C:\MCC18\src\traditional\startup\c018i.c
done: C:\MCC18\src\traditional\startup\c018i.c
; C:\MCC18\src\traditional\startup\c018i.c
00146a 0012 RETURN 0x0 } C:\MCC18\src\traditional\startup\c018i.c
#include <p18f8680.h> C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
#include <delays.h> C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
#include "APP023_GLCD.h" C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
#define LCD_E1 LATGbits.LATG1 C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
#define LCD_RW LATHbits.LATH5 C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
#define LCD_RS LATHbits.LATH4 C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
#define LCD_DATA LATF C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
#define TRIS_LCD_DATA TRISF C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
#define TRIS_LCD_E1 TRISGbits.TRISG1 C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
#define TRIS_LCD_RS TRISHbits.TRISH4 C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
#define TRIS_LCD_RW TRISHbits.TRISH5 C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
void GLCD_Initial( void ) C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
{ C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fc0 928f BCF 0x8f,0x1,0x0 LCD_E1 = 0 ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fc2 9899 BCF 0x99,0x4,0x0 TRIS_LCD_RS = 0 ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fc4 9a99 BCF 0x99,0x5,0x0 TRIS_LCD_RW = 0 ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fc6 9298 BCF 0x98,0x1,0x0 TRIS_LCD_E1 = 0 ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fc8 6a97 CLRF 0x97,0x0 TRIS_LCD_DATA = 0 ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fca 6a8e CLRF 0x8e,0x0 LCD_DATA = 0x00 ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fcc 0e28 MOVLW 0x28 LCD_Delay_nms(40) ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fce 6ee6 MOVWF 0xe6,0x0
000fd0 6ae6 CLRF 0xe6,0x0
000fd2 d902 RCALL 0x11d8
000fd4 52e5 MOVF 0xe5,0x1,0x0
000fd6 52e5 MOVF 0xe5,0x1,0x0
C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fd8 0e30 MOVLW 0x30 LCD_DATA = 0b00110000 ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fda 6e8e MOVWF 0x8e,0x0
000fdc d8cf RCALL 0x117c LCD_CMDW_Timing( ) ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fde 0e0a MOVLW 0xa LCD_Delay_nms(10) ; // Delay 2 us C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fe0 6ee6 MOVWF 0xe6,0x0
000fe2 6ae6 CLRF 0xe6,0x0
000fe4 d8f9 RCALL 0x11d8
000fe6 52e5 MOVF 0xe5,0x1,0x0
000fe8 52e5 MOVF 0xe5,0x1,0x0
C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fea 0e30 MOVLW 0x30 LCD_DATA = 0b00110000 ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000fec 6e8e MOVWF 0x8e,0x0
000fee d8c6 RCALL 0x117c LCD_CMDW_Timing( ) ; C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000ff0 0e0a MOVLW 0xa LCD_Delay_nms(10) ; // Delay 2 us C:\Workshop_CDs\ECAN_18F8680\APP023_GLCD.c
000ff2 6ee6 MOVWF 0xe6,0x0
000ff4 6ae6 CLRF 0xe6,0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -