⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v3k_framlcd_demo_sdcc.asm

📁 这是ramtron公司的铁电单片机的开发程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
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 + -