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

📄 lcd.s

📁 使用ICCAVR编写的mega128L单片机的12864液晶显示程序
💻 S
字号:
	.module lcd.c
	.area text(rom, con, rel)
	.dbfile E:\icc\lcd/lcd_init.h
	.dbfunc e delay _delay fV
;              n -> R16,R17
	.even
_delay::
	.dbline -1
	.dbline 40
; //ICC-AVR application builder : 2008-10-8 下午 04:03:04
; // Target : M128
; // Crystal: 8.0000Mhz
; 
; #include <iom128v.h>
; #include <macros.h>
; #include "lcd_init.h"
; 
; void main(void)
; {
;  disp_init();
;  delay(0xffff);
; disp_word(0x80,"任务:EEPROM"); 
; disp_word(0x90,"2008年10月09日");
; 
;  
; 
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
L2:
	.dbline 41
L3:
	.dbline 41
; }
	movw R2,R16
	subi R16,1
	sbci R17,0
	tst R2
	brne L2
	tst R3
	brne L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r n 16 i
	.dbend
	.dbfunc e chk_busy _chk_busy fV
	.even
_chk_busy::
	.dbline -1
	.dbline 44
; }
; }
; }
	.dbline 45
; }
	ldi R24,255
	out 0x1b,R24
	.dbline 46
; }
	lds R24,101
	andi R24,254
	sts 101,R24
	.dbline 47
; }
	lds R24,101
	ori R24,2
	sts 101,R24
	.dbline 49
; }
; }
	clr R2
	out 0x1a,R2
	.dbline 51
; }
; }
	lds R24,101
	ori R24,4
	sts 101,R24
L6:
	.dbline 52
L7:
	.dbline 52
; }
	sbic 0x19,7
	rjmp L6
	.dbline 53
; }
	lds R24,101
	andi R24,251
	sts 101,R24
	.dbline 54
; }
	ldi R24,255
	out 0x1a,R24
	.dbline -2
L5:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e LCD_write_code _LCD_write_code fV
;           code -> R20
	.even
_LCD_write_code::
	xcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 58
; }
; }
; }
; }
	.dbline 59
; }
	xcall _chk_busy
	.dbline 60
; }
	lds R24,101
	andi R24,254
	sts 101,R24
	.dbline 61
; }
	lds R24,101
	andi R24,253
	sts 101,R24
	.dbline 62
; }
	out 0x1b,R20
	.dbline 63
; }
	lds R24,101
	ori R24,4
	sts 101,R24
	.dbline 64
; }
	ldi R16,100
	ldi R17,0
	xcall _delay
	.dbline 65
; }
	lds R24,101
	andi R24,251
	sts 101,R24
	.dbline -2
L9:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r code 20 c
	.dbend
	.dbfunc e LCD_write_data _LCD_write_data fV
;           data -> R20
	.even
_LCD_write_data::
	xcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 69
; }
; }
; }
; }
	.dbline 70
; }
	xcall _chk_busy
	.dbline 71
; }
	lds R24,101
	ori R24,1
	sts 101,R24
	.dbline 72
; }
	lds R24,101
	andi R24,253
	sts 101,R24
	.dbline 73
; }
	out 0x1b,R20
	.dbline 74
; }
	lds R24,101
	ori R24,4
	sts 101,R24
	.dbline 75
; }
	ldi R16,100
	ldi R17,0
	xcall _delay
	.dbline 76
; }
	lds R24,101
	andi R24,251
	sts 101,R24
	.dbline -2
L10:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r data 20 c
	.dbend
	.dbfunc e disp_char _disp_char fV
;           asii -> R20
;       position -> R22
	.even
_disp_char::
	xcall push_gset2
	mov R20,R18
	mov R22,R16
	.dbline -1
	.dbline 80
; }
; }
; }
; }
	.dbline 81
; }
	mov R16,R22
	xcall _LCD_write_code
	.dbline 82
; }
	mov R16,R20
	xcall _LCD_write_data
	.dbline -2
L11:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r asii 20 c
	.dbsym r position 22 c
	.dbend
	.dbfunc e disp_word _disp_word fV
;           word -> R20,R21
;       position -> R22
	.even
_disp_word::
	xcall push_gset2
	movw R20,R18
	mov R22,R16
	.dbline -1
	.dbline 97
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 98
; }
	mov R16,R22
	xcall _LCD_write_code
	xjmp L14
L13:
	.dbline 100
	.dbline 101
	movw R30,R20
	ldd R16,z+0
	xcall _LCD_write_data
	.dbline 102
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 103
L14:
	.dbline 99
; }
	movw R30,R20
	ldd R2,z+0
	tst R2
	brne L13
	.dbline -2
L12:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r word 20 pc
	.dbsym r position 22 c
	.dbend
	.dbfunc e disp_init _disp_init fV
	.even
_disp_init::
	.dbline -1
	.dbline 109
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 110
; }
	ldi R24,255
	out 0x1a,R24
	.dbline 112
; }
; }
	sts 100,R24
	.dbline 114
; }
; }
	ldi R16,48
	xcall _LCD_write_code
	.dbline 115
; }
	ldi R16,1
	xcall _LCD_write_code
	.dbline 116
; }
	ldi R16,6
	xcall _LCD_write_code
	.dbline 117
; }
	ldi R16,12
	xcall _LCD_write_code
	.dbline -2
L16:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfile E:\icc\lcd\lcd.c
	.dbfunc e main _main fV
	.even
_main::
	.dbline -1
	.dbline 10
	.dbline 11
	xcall _disp_init
	.dbline 12
	ldi R16,65535
	ldi R17,255
	xcall _delay
	.dbline 13
	ldi R18,<L18
	ldi R19,>L18
	ldi R16,128
	xcall _disp_word
	.dbline 14
	ldi R18,<L19
	ldi R19,>L19
	ldi R16,144
	xcall _disp_word
	.dbline -2
L17:
	.dbline 0 ; func end
	ret
	.dbend
	.area data(ram, con, rel)
	.dbfile E:\icc\lcd\lcd.c
L19:
	.blkb 15
	.area idata
	.byte 50,48,48,56,196,234,49,48,212,194,48,57,200,213,0
	.area data(ram, con, rel)
	.dbfile E:\icc\lcd\lcd.c
L18:
	.blkb 13
	.area idata
	.byte 200,206,206,241,163,186,'E,'E,'P,'R,'O,'M,0
	.area data(ram, con, rel)
	.dbfile E:\icc\lcd\lcd.c

⌨️ 快捷键说明

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