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

📄 lcm.s

📁 ARM LCM DISPLAY MOdule control
💻 S
字号:
/* define symbols of system */.equ	PORTA_MUX,	0x09000000.equ	PORTA_DATA,	0x09001600.equ	PORTA_DIR,	0x09001604.equ	PORTB_MUX,	0x09000004.equ	PORTB_DIR,	0x0900160c.equ	PORTB_DATA,	0x09001608.equ	PORT7_MUX,	0x09000020.equ	PORT7_DIR,	0x09001644.equ	PORT7_DATA,	0x09001640.equ	PORT9_MUX,	0x09000028.equ	PORT9_DIR,	0x09001654.equ	PORT9_DATA,	0x09001650/* define symbols of program */.set	LCM_WR_1,	0x00000010.set	LCM_WR_0,	0xffffffef.set	LCM_RS_1,	0x00000020.set	LCM_RS_0,	0x000000df.set	LCM_E_1,	0x00000020.set	LCM_E_0,	0xffffffdf.set	LCM_FUNC_SET,	0x00000038.set	LCM_DISP_ON,	0x0000000e.set	LCM_DISP_OFF,	0x00000008.set	LCM_DISP_CLR,	0x00000001.set	LCM_ENTRY_SET,	0x00000006.text.global _start.code 32_start:/* setup PORT B */start:		ldr	r0, =PORTB_DIR		ldr	r1, =0x00000000		str	r1, [r0]				ldr	r0, =PORTB_DATA		ldr	r1, =0x00000000		str	r1, [r0]				ldr	r0, =PORTB_MUX		ldr	r1, =0x00000faa		str	r1, [r0]/* setup PORT 9 */		ldr	r0, =PORT9_DIR		ldr	r1, =0x00000000		str	r1, [r0]		ldr	r0, =PORT9_DATA		ldr	r1, =0x00000000		str	r1, [r0]		ldr	r0, =PORT9_MUX		ldr	r1, =0x00000140		str	r1, [r0]/* initialize LCM */				adr	r6, lcm_init_para		mov	r8, #5		lcm_init_loop:	ldrb	r1, [r6]		ldr	r2, =LCM_RS_0		bl	lcm_write		add	r6, r6, #1		subs	r8, r8, #1		bne	lcm_init_loop		/* display Hello! */				adr	r6, string_hello		mov	r8, #6		display_loop:	ldrb	r1, [r6]		ldr	r2, =LCM_RS_1		bl	lcm_write		add	r6, r6, #1		subs	r8, r8, #1		bne	display_loop/* program wait here */end_loop:	b	end_loop		/* lcm write subroutine */lcm_write:	mov	r7, lr		mov	r3, #0		mov	r5, #0@ set E=0		ldr	r0, =PORT9_DATA		ldr	r4, =LCM_E_0		and	r3, r3, r4		str	r3, [r0]		ldr	r0, =0x1fff		bl	delay@ set RS and set R/W=0				ldr	r0, =PORT7_DATA		orr	r5, r5, r2		str	r5, [r0]		ldr	r0, =PORT9_DATA		ldr	r4, =LCM_WR_0		and	r3, r3, r4		str	r3, [r0]			ldr	r0, =0x1fff		bl	delay@ set E=1					ldr	r0, =PORT9_DATA		ldr	r4, =LCM_E_1		orr	r3, r3, r4		str	r3, [r0]		ldr	r0, =0x1fff		bl	delay@ set D[7:0]				ldr	r0, =PORTB_DATA		str	r1, [r0]				ldr	r0, =0x1fff		bl	delay@ set E=0					ldr	r0, =PORT9_DATA		ldr	r4, =LCM_E_0		and	r3, r3, r4		str	r3, [r0]		ldr	r0, =0x1fff		bl	delay		mov	lr, r7		mov	pc, lr		/* delay subroutine */delay:		subs	r0, r0, #1		bne	delay		mov	pc, lr/* declare constant */lcm_init_para:.byte		LCM_FUNC_SET, LCM_DISP_OFF, LCM_DISP_CLR, LCM_DISP_ON, LCM_ENTRY_SETstring_hello:.ascii		"Hello!".end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -