📄 图片生成.lis
字号:
.module _图片生成.c
.area text(rom, con, rel)
0000 .dbfile E:\学习专区\AVR专区\个人创作区\AVR单片机开发平台\EEPROM读写演示程序\图片生成.c
0000 .dbfunc e LCMDisplayPicture _LCMDisplayPicture fV
0000 ; c -> <dead>
0000 ; b -> <dead>
0000 ; r -> R22,R23
0000 ; CurrentRow -> R10
0000 ; i -> R20
0000 ; CurrentCol -> R14
0000 ; j -> R12
0000 ; n -> y+12
.even
0000 _LCMDisplayPicture::
0000 1A93 st -y,r17
0002 0A93 st -y,r16
0004 0E940000 xcall push_gset5
0008 2297 sbiw R28,2
000A .dbline -1
000A .dbline 6
000A ; //读取EEPROM中的数据,并在128*64显示屏上显示。
000A ; #include <iom16v.h>
000A ; #include <macros.h>
000A ; char r_y[];//读取数取缓存
000A ; void LCMDisplayPicture(int n)//显示一幅图片
000A ; {
000A .dbline 10
000A ; char *r;
000A ; int b;
000A ; int c;
000A ; char CurrentCol=0x80;
000A 80E8 ldi R24,128
000C E82E mov R14,R24
000E .dbline 11
000E ; char CurrentRow=0x80;
000E A82E mov R10,R24
0010 .dbline 13
0010 ; char i,j;
0010 ; r=r_y;
0010 60E0 ldi R22,<_r_y
0012 70E0 ldi R23,>_r_y
0014 .dbline 14
0014 ; LCMWriteCommand(0x34);
0014 04E3 ldi R16,52
0016 10E0 ldi R17,0
0018 0E940000 xcall _LCMWriteCommand
001C .dbline 15
001C ; for (i=0;i<64;i++)
001C 4427 clr R20
001E 4FC0 xjmp L5
0020 L2:
0020 .dbline 16
0020 ; {
0020 .dbline 17
0020 ; CurrentRow=0x80+i;
0020 842F mov R24,R20
0022 8058 subi R24,128 ; addi 128
0024 A82E mov R10,R24
0026 .dbline 18
0026 ; if(CurrentRow>0x9F)
0026 8FE9 ldi R24,159
0028 8A15 cp R24,R10
002A 20F4 brsh L6
002C .dbline 19
002C ; CurrentRow=0x80+CurrentRow-0xa0;
002C 8A2D mov R24,R10
002E 8058 subi R24,128 ; addi 128
0030 805A subi R24,160
0032 A82E mov R10,R24
0034 L6:
0034 .dbline 20
0034 ; twi_init();
0034 0E940000 xcall _twi_init
0038 .dbline 21
0038 ; rd24c(r,i*16+n,16);
0038 80E1 ldi R24,16
003A 90E0 ldi R25,0
003C 9983 std y+1,R25
003E 8883 std y+0,R24
0040 849F mul R24,R20
0042 9001 movw R18,R0
0044 0C84 ldd R0,y+12
0046 1D84 ldd R1,y+13
0048 200D add R18,R0
004A 311D adc R19,R1
004C 8B01 movw R16,R22
004E 0E940000 xcall _rd24c
0052 .dbline 22
0052 ; r=r_y;
0052 60E0 ldi R22,<_r_y
0054 70E0 ldi R23,>_r_y
0056 .dbline 23
0056 ; for (j=0;j<8;j++)
0056 CC24 clr R12
0058 2AC0 xjmp L11
005A L8:
005A .dbline 24
005A ; {
005A .dbline 25
005A ; if (i<=31)
005A 8FE1 ldi R24,31
005C 8417 cp R24,R20
005E 10F0 brlo L12
0060 .dbline 26
0060 ; CurrentCol=0x80;
0060 80E8 ldi R24,128
0062 E82E mov R14,R24
0064 L12:
0064 .dbline 27
0064 ; if (i>31)
0064 8FE1 ldi R24,31
0066 8417 cp R24,R20
0068 10F4 brsh L14
006A .dbline 28
006A ; CurrentCol=0x88;
006A 88E8 ldi R24,136
006C E82E mov R14,R24
006E L14:
006E .dbline 29
006E EC0C add R14,R12
0070 .dbline 30
0070 0A2D mov R16,R10
0072 1127 clr R17
0074 0E940000 xcall _LCMWriteCommand
0078 .dbline 31
0078 0E2D mov R16,R14
007A 1127 clr R17
007C 0E940000 xcall _LCMWriteCommand
0080 .dbline 33
0080 82E0 ldi R24,2
0082 8C9D mul R24,R12
0084 F001 movw R30,R0
0086 80E0 ldi R24,<_r_y
0088 90E0 ldi R25,>_r_y
008A E80F add R30,R24
008C F91F adc R31,R25
008E 0081 ldd R16,z+0
0090 1127 clr R17
0092 0E940000 xcall _LCMWriteData
0096 .dbline 34
0096 82E0 ldi R24,2
0098 8C9D mul R24,R12
009A F001 movw R30,R0
009C 80E0 ldi R24,<_r_y+1
009E 90E0 ldi R25,>_r_y+1
00A0 E80F add R30,R24
00A2 F91F adc R31,R25
00A4 0081 ldd R16,z+0
00A6 1127 clr R17
00A8 0E940000 xcall _LCMWriteData
00AC .dbline 35
00AC L9:
00AC .dbline 23
00AC C394 inc R12
00AE L11:
00AE .dbline 23
00AE 8C2D mov R24,R12
00B0 8830 cpi R24,8
00B2 98F2 brlo L8
00B4 .dbline 36
00B4 06E3 ldi R16,54
00B6 10E0 ldi R17,0
00B8 0E940000 xcall _LCMWriteCommand
00BC .dbline 37
00BC L3:
00BC .dbline 15
00BC 4395 inc R20
00BE L5:
00BE .dbline 15
00BE 4034 cpi R20,64
00C0 08F4 brsh X0
00C2 AECF xjmp L2
00C4 X0:
00C4 .dbline 38
00C4 ; CurrentCol=CurrentCol+j;
00C4 ; LCMWriteCommand(CurrentRow);
00C4 ; LCMWriteCommand(CurrentCol);
00C4 ;
00C4 ; LCMWriteData(r_y[2*j]); //低八位
00C4 ; LCMWriteData(r_y[2*j+1]); //高八位
00C4 ; }
00C4 ; LCMWriteCommand(0x36); //扩充指令集 绘图开
00C4 ; }
00C4 ; LCMWriteCommand(0x30); //基本指令集 绘图关
00C4 00E3 ldi R16,48
00C6 10E0 ldi R17,0
00C8 0E940000 xcall _LCMWriteCommand
00CC .dbline -2
00CC L1:
00CC 2296 adiw R28,2
00CE 0E940000 xcall pop_gset5
00D2 2296 adiw R28,2
00D4 .dbline 0 ; func end
00D4 0895 ret
00D6 .dbsym l c 3 I
00D6 .dbsym l b 3 I
00D6 .dbsym r r 22 pc
00D6 .dbsym r CurrentRow 10 c
00D6 .dbsym r i 20 c
00D6 .dbsym r CurrentCol 14 c
00D6 .dbsym r j 12 c
00D6 .dbsym l n 12 I
00D6 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\学习专区\AVR专区\个人创作区\AVR单片机开发平台\EEPROM读写演示程序\图片生成.c
0000 _r_y::
0000 .blkb 1
0001 .dbsym e r_y _r_y A[1:1]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -