📄 图片生成.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 + -