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

📄 图片生成.s

📁 EEPROM读写程序: 先向EEPROM写入一幅图片数据
💻 S
字号:
	.module _图片生成.c
	.area text(rom, con, rel)
	.dbfile E:\学习专区\AVR专区\个人创作区\AVR单片机开发平台\EEPROM读写演示程序\图片生成.c
	.dbfunc e LCMDisplayPicture _LCMDisplayPicture fV
;              c -> <dead>
;              b -> <dead>
;              r -> R22,R23
;     CurrentRow -> R10
;              i -> R20
;     CurrentCol -> R14
;              j -> R12
;              n -> y+12
	.even
_LCMDisplayPicture::
	st -y,r17
	st -y,r16
	xcall push_gset5
	sbiw R28,2
	.dbline -1
	.dbline 6
; //读取EEPROM中的数据,并在128*64显示屏上显示。
; #include <iom16v.h>
; #include <macros.h> 
; char r_y[];//读取数取缓存
; void LCMDisplayPicture(int n)//显示一幅图片
; {
	.dbline 10
;  	 char *r;
; 	 int b;
; 	 int c;
; 	 char CurrentCol=0x80;
	ldi R24,128
	mov R14,R24
	.dbline 11
; 	 char CurrentRow=0x80;
	mov R10,R24
	.dbline 13
; 	 char i,j;
; 	 r=r_y;
	ldi R22,<_r_y
	ldi R23,>_r_y
	.dbline 14
; 	 LCMWriteCommand(0x34); 
	ldi R16,52
	ldi R17,0
	xcall _LCMWriteCommand
	.dbline 15
; 	 for  (i=0;i<64;i++) 
	clr R20
	xjmp L5
L2:
	.dbline 16
; 	 {
	.dbline 17
; 	  	CurrentRow=0x80+i; 
	mov R24,R20
	subi R24,128    ; addi 128
	mov R10,R24
	.dbline 18
; 		if(CurrentRow>0x9F) 
	ldi R24,159
	cp R24,R10
	brsh L6
	.dbline 19
; 		CurrentRow=0x80+CurrentRow-0xa0; 
	mov R24,R10
	subi R24,128    ; addi 128
	subi R24,160
	mov R10,R24
L6:
	.dbline 20
; 		twi_init();
	xcall _twi_init
	.dbline 21
; 		rd24c(r,i*16+n,16);
	ldi R24,16
	ldi R25,0
	std y+1,R25
	std y+0,R24
	mul R24,R20
	movw R18,R0
	ldd R0,y+12
	ldd R1,y+13
	add R18,R0
	adc R19,R1
	movw R16,R22
	xcall _rd24c
	.dbline 22
; 		r=r_y;
	ldi R22,<_r_y
	ldi R23,>_r_y
	.dbline 23
; 		for  (j=0;j<8;j++) 
	clr R12
	xjmp L11
L8:
	.dbline 24
; 		{
	.dbline 25
; 		 	 if (i<=31) 
	ldi R24,31
	cp R24,R20
	brlo L12
	.dbline 26
; 			 CurrentCol=0x80; 
	ldi R24,128
	mov R14,R24
L12:
	.dbline 27
; 			 if (i>31) 
	ldi R24,31
	cp R24,R20
	brsh L14
	.dbline 28
; 			 CurrentCol=0x88; 
	ldi R24,136
	mov R14,R24
L14:
	.dbline 29
	add R14,R12
	.dbline 30
	mov R16,R10
	clr R17
	xcall _LCMWriteCommand
	.dbline 31
	mov R16,R14
	clr R17
	xcall _LCMWriteCommand
	.dbline 33
	ldi R24,2
	mul R24,R12
	movw R30,R0
	ldi R24,<_r_y
	ldi R25,>_r_y
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	clr R17
	xcall _LCMWriteData
	.dbline 34
	ldi R24,2
	mul R24,R12
	movw R30,R0
	ldi R24,<_r_y+1
	ldi R25,>_r_y+1
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	clr R17
	xcall _LCMWriteData
	.dbline 35
L9:
	.dbline 23
	inc R12
L11:
	.dbline 23
	mov R24,R12
	cpi R24,8
	brlo L8
	.dbline 36
	ldi R16,54
	ldi R17,0
	xcall _LCMWriteCommand
	.dbline 37
L3:
	.dbline 15
	inc R20
L5:
	.dbline 15
	cpi R20,64
	brsh X0
	xjmp L2
X0:
	.dbline 38
; 			 CurrentCol=CurrentCol+j;
; 			 LCMWriteCommand(CurrentRow);
; 			 LCMWriteCommand(CurrentCol);
; 
; 			 LCMWriteData(r_y[2*j]);     //低八位
; 			 LCMWriteData(r_y[2*j+1]);   //高八位
; 		} 	
; 		LCMWriteCommand(0x36); //扩充指令集 绘图开
; 	} 
;     LCMWriteCommand(0x30); //基本指令集 绘图关      
	ldi R16,48
	ldi R17,0
	xcall _LCMWriteCommand
	.dbline -2
L1:
	adiw R28,2
	xcall pop_gset5
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym l c 3 I
	.dbsym l b 3 I
	.dbsym r r 22 pc
	.dbsym r CurrentRow 10 c
	.dbsym r i 20 c
	.dbsym r CurrentCol 14 c
	.dbsym r j 12 c
	.dbsym l n 12 I
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\学习专区\AVR专区\个人创作区\AVR单片机开发平台\EEPROM读写演示程序\图片生成.c
_r_y::
	.blkb 1
	.dbsym e r_y _r_y A[1:1]c

⌨️ 快捷键说明

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