📄 v3k_framlcd_demo_sdcc.asm
字号:
G$AUCONFIG2$0$0 == 0x00c3
_AUCONFIG2 = 0x00c3
G$AUPREV0$0$0 == 0x00c4
_AUPREV0 = 0x00c4
G$AUPREV1$0$0 == 0x00c5
_AUPREV1 = 0x00c5
G$AUPREV2$0$0 == 0x00c6
_AUPREV2 = 0x00c6
G$AUPREV3$0$0 == 0x00c7
_AUPREV3 = 0x00c7
;--------------------------------------------------------
; special function bits
;--------------------------------------------------------
.area RSEG (DATA)
G$LCD_E$0$0 == 0x0082
_LCD_E = 0x0082
G$LCD_RS$0$0 == 0x0080
_LCD_RS = 0x0080
G$LCD_RW$0$0 == 0x0081
_LCD_RW = 0x0081
;--------------------------------------------------------
; overlayable register banks
;--------------------------------------------------------
.area REG_BANK_0 (REL,OVR,DATA)
.ds 8
;--------------------------------------------------------
; internal ram data
;--------------------------------------------------------
.area DSEG (DATA)
Lint2lcd$number$1$1==.
_int2lcd_number_1_1::
.ds 2
G$framptr$0$0==.
_framptr::
.ds 2
G$lcdval$0$0==.
_lcdval::
.ds 1
;--------------------------------------------------------
; overlayable items in internal ram
;--------------------------------------------------------
.area OSEG (OVR,DATA)
.area OSEG (OVR,DATA)
;--------------------------------------------------------
; Stack segment in internal ram
;--------------------------------------------------------
.area SSEG (DATA)
__start__stack:
.ds 1
;--------------------------------------------------------
; indirectly addressable internal ram data
;--------------------------------------------------------
.area ISEG (DATA)
G$cptr$0$0==.
_cptr::
.ds 1
;--------------------------------------------------------
; bit data
;--------------------------------------------------------
.area BSEG (BIT)
;--------------------------------------------------------
; paged external ram data
;--------------------------------------------------------
.area PSEG (PAG,XDATA)
;--------------------------------------------------------
; external ram data
;--------------------------------------------------------
.area XSEG (XDATA)
G$frambase$0$0 == 0x8000
_frambase = 0x8000
;--------------------------------------------------------
; external initialized ram data
;--------------------------------------------------------
.area XISEG (XDATA)
.area CSEG (CODE)
.area GSINIT0 (CODE)
.area GSINIT1 (CODE)
.area GSINIT2 (CODE)
.area GSINIT3 (CODE)
.area GSINIT4 (CODE)
.area GSINIT5 (CODE)
;--------------------------------------------------------
; interrupt vector
;--------------------------------------------------------
.area CSEG (CODE)
__interrupt_vect:
ljmp __sdcc_gsinit_startup
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
.area CSEG (CODE)
.area GSINIT (CODE)
.area GSFINAL (CODE)
.area GSINIT (CODE)
.globl __sdcc_gsinit_startup
.globl __sdcc_program_startup
.globl __start__stack
.globl __mcs51_genXINIT
.globl __mcs51_genXRAMCLEAR
.globl __mcs51_genRAMCLEAR
G$main$0$0 ==.
C$V3K_FRAMLCD_DEMO_SDCC.c$67$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/FRAM_LCD_DEMO_SDCC/V3K_FRAMLCD_DEMO_SDCC.c:67: xdata unsigned char * data framptr = &frambase ; //Init a pointer in IRAM pointing to the frambase var.
; genAddrOf
mov _framptr,#_frambase
mov (_framptr + 1),#(_frambase >> 8)
G$main$0$0 ==.
C$V3K_FRAMLCD_DEMO_SDCC.c$71$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/FRAM_LCD_DEMO_SDCC/V3K_FRAMLCD_DEMO_SDCC.c:71: char lcdval = 0x00;
; genAssign
mov _lcdval,#0x00
G$main$0$0 ==.
C$V3K_FRAMLCD_DEMO_SDCC.c$59$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/FRAM_LCD_DEMO_SDCC/V3K_FRAMLCD_DEMO_SDCC.c:59: idata char cptr = 0x00;
; genAssign
mov r0,#_cptr
mov @r0,#0x00
.area GSFINAL (CODE)
ljmp __sdcc_program_startup
;--------------------------------------------------------
; Home
;--------------------------------------------------------
.area HOME (CODE)
.area CSEG (CODE)
;--------------------------------------------------------
; code
;--------------------------------------------------------
.area CSEG (CODE)
__sdcc_program_startup:
lcall _main
; return from main will lock up
sjmp .
;------------------------------------------------------------
;Allocation info for local variables in function 'LCDSlow'
;------------------------------------------------------------
;cptr Allocated to registers r2
;------------------------------------------------------------
G$LCDSlow$0$0 ==.
C$V2K_CHAR_LCD_P0_SDCC.h$95$0$0 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:95: void LCDSlow(void){
; -----------------------------------------
; function LCDSlow
; -----------------------------------------
_LCDSlow:
ar2 = 0x02
ar3 = 0x03
ar4 = 0x04
ar5 = 0x05
ar6 = 0x06
ar7 = 0x07
ar0 = 0x00
ar1 = 0x01
C$V2K_CHAR_LCD_P0_SDCC.h$97$1$0 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:97: for(cptr = 0x00; cptr < 25; cptr++);
; genAssign
mov r2,#0x19
00103$:
; genDjnz
; Peephole 112.b changed ljmp to sjmp
; Peephole 205 optimized misc jump sequence
djnz r2,00103$
00108$:
00109$:
00104$:
C$V2K_CHAR_LCD_P0_SDCC.h$99$1$0 ==.
XG$LCDSlow$0$0 ==.
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'initlcd'
;------------------------------------------------------------
;------------------------------------------------------------
G$initlcd$0$0 ==.
C$V2K_CHAR_LCD_P0_SDCC.h$121$1$0 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:121: void initlcd(void)
; -----------------------------------------
; function initlcd
; -----------------------------------------
_initlcd:
C$V2K_CHAR_LCD_P0_SDCC.h$123$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:123: LCDPORTDIR = 0x00; //Config LCD port as output
; genAssign
mov _P0PINCFG,#0x00
C$V2K_CHAR_LCD_P0_SDCC.h$125$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:125: V2KDelay1ms(20); // Delay > 15ms
; genCall
; Peephole 182.b used 16 bit load of dptr
mov dptr,#0x0014
lcall _V2KDelay1ms
C$V2K_CHAR_LCD_P0_SDCC.h$126$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:126: LCDPORT = 0x30; //;INITIALISATION SEQUENCE BY DEFAULT
; genAssign
mov _P0,#0x30
C$V2K_CHAR_LCD_P0_SDCC.h$133$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:133: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$134$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:134: LCD_E = 1; //Send E Pulse
; genAssign
setb _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$135$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:135: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$136$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:136: LCD_E = 0;
; genAssign
clr _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$139$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:139: V2KDelay1ms(5); // Delay 4.1ms +
; genCall
; Peephole 182.b used 16 bit load of dptr
mov dptr,#0x0005
lcall _V2KDelay1ms
C$V2K_CHAR_LCD_P0_SDCC.h$140$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:140: LCD_E = 1; //Send E Pulse
; genAssign
setb _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$141$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:141: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$142$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:142: LCD_E = 0;
; genAssign
clr _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$145$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:145: V2KDelay1ms(1); // Delay 100us +
; genCall
; Peephole 182.b used 16 bit load of dptr
mov dptr,#0x0001
lcall _V2KDelay1ms
C$V2K_CHAR_LCD_P0_SDCC.h$147$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:147: LCD_E = 1; //Send E Pulse
; genAssign
setb _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$148$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:148: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$149$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:149: LCD_E = 0;
; genAssign
clr _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$150$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:150: lcdbusy();
; genCall
lcall _lcdbusy
C$V2K_CHAR_LCD_P0_SDCC.h$153$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:153: LCDPORT = 0x20; //SET 4BITS OPERATION
; genAssign
mov _P0,#0x20
C$V2K_CHAR_LCD_P0_SDCC.h$157$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:157: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$158$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:158: LCD_E = 1; //Send E Pulse
; genAssign
setb _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$159$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:159: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$160$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:160: LCD_E = 0;
; genAssign
clr _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$161$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:161: lcdbusy();
; genCall
lcall _lcdbusy
C$V2K_CHAR_LCD_P0_SDCC.h$165$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:165: LCDPORT = 0x20; //SET 4 BITS OPERATION DUTY CYCLE 1/16
; genAssign
mov _P0,#0x20
C$V2K_CHAR_LCD_P0_SDCC.h$169$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:169: LCD_E = 1; //Send E Pulse
; genAssign
setb _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$170$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:170: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$171$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:171: LCD_E = 0;
; genAssign
clr _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$172$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:172: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$173$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:173: LCDPORT = 0x80; //;D7 D6 D5 D4 E R/W RS NC
; genAssign
mov _P0,#0x80
C$V2K_CHAR_LCD_P0_SDCC.h$178$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:178: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$179$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:179: LCD_E = 1; //Send E Pulse
; genAssign
setb _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$180$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:180: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$181$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:181: LCD_E = 0;
; genAssign
clr _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$182$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:182: lcdbusy();
; genCall
lcall _lcdbusy
C$V2K_CHAR_LCD_P0_SDCC.h$186$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:186: LCDPORT = 0x00; //DISPLAY OFF, CURSOR OFF, BLINK OFF
; genAssign
mov _P0,#0x00
C$V2K_CHAR_LCD_P0_SDCC.h$190$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:190: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$191$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:191: LCD_E = 1; //Send E Pulse
; genAssign
setb _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$192$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:192: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$193$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:193: LCD_E = 0;
; genAssign
clr _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$195$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:195: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$196$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:196: LCDPORT= 0x80; //DISPLAY OFF
; genAssign
mov _P0,#0x80
C$V2K_CHAR_LCD_P0_SDCC.h$201$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:201: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$202$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:202: LCD_E = 1; //Send E Pulse
; genAssign
setb _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$203$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:203: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$204$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:204: LCD_E = 0;
; genAssign
clr _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$205$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:205: lcdbusy();
; genCall
lcall _lcdbusy
C$V2K_CHAR_LCD_P0_SDCC.h$209$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:209: LCDPORT= 0x00; //CLEAR DISPLAY
; genAssign
mov _P0,#0x00
C$V2K_CHAR_LCD_P0_SDCC.h$214$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:214: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$215$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:215: LCD_E = 1; //Send E Pulse
; genAssign
setb _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$216$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:216: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$217$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:217: LCD_E = 0;
; genAssign
clr _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$218$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:218: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$219$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:219: LCDPORT = 0x10; // ;D7 D6 D5 D4 E R/W RS NC
; genAssign
mov _P0,#0x10
C$V2K_CHAR_LCD_P0_SDCC.h$222$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:222: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$223$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:223: LCD_E = 1; // Send E Pulse
; genAssign
setb _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$224$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:224: LCDSlow(); //Slow down comm with LCD
; genCall
lcall _LCDSlow
C$V2K_CHAR_LCD_P0_SDCC.h$225$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:225: LCD_E = 0;
; genAssign
clr _LCD_E
C$V2K_CHAR_LCD_P0_SDCC.h$226$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:226: lcdbusy();
; genCall
lcall _lcdbusy
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -