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

📄 图片生成.lis

📁 EEPROM读写程序: 先向EEPROM写入一幅图片数据
💻 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 + -