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

📄 st7920iccavrmega8.lis

📁 AVR学习开发 板
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 010C           ;     {
 010C                   .dbline 143
 010C           ;         WriteCommand(0x80|i); //写入列地址
 010C 042F              mov R16,R20
 010E 0068              ori R16,128
 0110 B5DF              rcall _WriteCommand
 0112                   .dbline 144
 0112           ;         WriteCommand(0x80);   //写入行地址
 0112 00E8              ldi R16,128
 0114 B3DF              rcall _WriteCommand
 0116                   .dbline 145
 0116           ;         for(j=0;j<32;j++)
 0116 6627              clr R22
 0118 03C0              rjmp L48
 011A           L45:
 011A                   .dbline 146
 011A 0027              clr R16
 011C BEDF              rcall _WriteData
 011E           L46:
 011E                   .dbline 145
 011E 6395              inc R22
 0120           L48:
 0120                   .dbline 145
 0120 6032              cpi R22,32
 0122 D8F3              brlo L45
 0124                   .dbline 147
 0124           L42:
 0124                   .dbline 141
 0124 4395              inc R20
 0126           L44:
 0126                   .dbline 141
 0126 4032              cpi R20,32
 0128 88F3              brlo L41
 012A                   .dbline -2
 012A           L40:
 012A 00D0              rcall pop_gset2
 012C                   .dbline 0 ; func end
 012C 0895              ret
 012E                   .dbsym r i 20 c
 012E                   .dbsym r j 22 c
 012E                   .dbend
 012E                   .dbfunc e PutStr _PutStr fV
 012E           ;           puts -> R20,R21
 012E           ;            col -> R22
 012E           ;            row -> R10
                        .even
 012E           _PutStr::
 012E 00D0              rcall push_gset3
 0130 622F              mov R22,R18
 0132 A02E              mov R10,R16
 0134 4E81              ldd R20,y+6
 0136 5F81              ldd R21,y+7
 0138                   .dbline -1
 0138                   .dbline 152
 0138           ;         WriteData(0);
 0138           ;     }
 0138           ;       //WriteCommand(0x36);//开图显
 0138           ; }
 0138           ; //==写入一段文字,写完一屏,清屏,从头在写新的一屏=======
 0138           ; void PutStr(unsigned char row,unsigned char col,unsigned char *puts)
 0138           ; {
 0138                   .dbline 153
 0138           ;     WriteCommand(0x30);                       //基本指令,选择8位CPU控制方式,关图显
 0138 00E3              ldi R16,48
 013A A0DF              rcall _WriteCommand
 013C                   .dbline 154
 013C           ;     WriteCommand(AC_TABLE[8*row+col]);
 013C 88E0              ldi R24,8
 013E 8A9D              mul R24,R10
 0140 F001              movw R30,R0
 0142 262E              mov R2,R22
 0144 3324              clr R3
 0146 E20D              add R30,R2
 0148 F31D              adc R31,R3
 014A 80E0              ldi R24,<_AC_TABLE
 014C 90E0              ldi R25,>_AC_TABLE
 014E E80F              add R30,R24
 0150 F91F              adc R31,R25
 0152 0081              ldd R16,z+0
 0154 93DF              rcall _WriteCommand
 0156 20C0              rjmp L51
 0158           L50:
 0158                   .dbline 156
 0158           ;     while(*puts != '\0')
 0158           ;     {
 0158                   .dbline 157
 0158           ;         if(col==8)
 0158 6830              cpi R22,8
 015A 11F4              brne L53
 015C                   .dbline 158
 015C           ;         {
 015C                   .dbline 159
 015C           ;             col=0;
 015C 6627              clr R22
 015E                   .dbline 160
 015E           ;             row++;
 015E A394              inc R10
 0160                   .dbline 161
 0160           ;         }
 0160           L53:
 0160                   .dbline 162
 0160           ;         if(row==4) row=0;
 0160 8A2D              mov R24,R10
 0162 8430              cpi R24,4
 0164 09F4              brne L55
 0166                   .dbline 162
 0166 AA24              clr R10
 0168           L55:
 0168                   .dbline 163
 0168 88E0              ldi R24,8
 016A 8A9D              mul R24,R10
 016C F001              movw R30,R0
 016E 262E              mov R2,R22
 0170 3324              clr R3
 0172 E20D              add R30,R2
 0174 F31D              adc R31,R3
 0176 80E0              ldi R24,<_AC_TABLE
 0178 90E0              ldi R25,>_AC_TABLE
 017A E80F              add R30,R24
 017C F91F              adc R31,R25
 017E 0081              ldd R16,z+0
 0180 7DDF              rcall _WriteCommand
 0182                   .dbline 164
 0182 FA01              movw R30,R20
 0184 0081              ldd R16,z+0
 0186 89DF              rcall _WriteData
 0188                   .dbline 165
 0188 4F5F              subi R20,255  ; offset = 1
 018A 5F4F              sbci R21,255
 018C                   .dbline 166
 018C FA01              movw R30,R20
 018E 0081              ldd R16,z+0
 0190 84DF              rcall _WriteData
 0192                   .dbline 167
 0192 4F5F              subi R20,255  ; offset = 1
 0194 5F4F              sbci R21,255
 0196                   .dbline 168
 0196 6395              inc R22
 0198                   .dbline 169
 0198           L51:
 0198                   .dbline 155
 0198 FA01              movw R30,R20
 019A 2080              ldd R2,z+0
 019C 2220              tst R2
 019E E1F6              brne L50
 01A0                   .dbline -2
 01A0           L49:
 01A0 00D0              rcall pop_gset3
 01A2                   .dbline 0 ; func end
 01A2 0895              ret
 01A4                   .dbsym r puts 20 pc
 01A4                   .dbsym r col 22 c
 01A4                   .dbsym r row 10 c
 01A4                   .dbend
 01A4                   .dbfunc e PutBMP _PutBMP fV
 01A4           ;              k -> R20
 01A4           ;              x -> R22
 01A4           ;              j -> R14
 01A4           ;              y -> R12
 01A4           ;              i -> R10
 01A4           ;           puts -> y+10
                        .even
 01A4           _PutBMP::
 01A4 1A93              st -y,r17
 01A6 0A93              st -y,r16
 01A8 00D0              rcall push_gset5
 01AA                   .dbline -1
 01AA                   .dbline 173
 01AA           ;         WriteCommand(AC_TABLE[8*row+col]);
 01AA           ;         WriteData(*puts);             //一个汉字的ASC码是一个16位的,所以要写入两个字节
 01AA           ;         puts++;
 01AA           ;         WriteData(*puts);
 01AA           ;         puts++;
 01AA           ;         col++;
 01AA           ;       }
 01AA           ; }
 01AA           ; //========写入一屏图片128*64=======
 01AA           ; void PutBMP(unsigned char *puts)
 01AA           ; {
 01AA                   .dbline 175
 01AA           ;     unsigned char x,y,i,j,k;
 01AA           ;       x=0x80;
 01AA 60E8              ldi R22,128
 01AC                   .dbline 176
 01AC           ;       WriteCommand(0x34);                     //关图显
 01AC 04E3              ldi R16,52
 01AE 66DF              rcall _WriteCommand
 01B0                   .dbline 177
 01B0           ;     for(k=0;k<2;k++)
 01B0 4427              clr R20
 01B2 1BC0              rjmp L61
 01B4           L58:
 01B4                   .dbline 178
 01B4           ;       {       
 01B4                   .dbline 179
 01B4           ;           y=0x80;
 01B4 80E8              ldi R24,128
 01B6 C82E              mov R12,R24
 01B8                   .dbline 180
 01B8           ;               for(j=0;j<32;j++)
 01B8 EE24              clr R14
 01BA 12C0              rjmp L65
 01BC           L62:
 01BC                   .dbline 181
 01BC           ;               {
 01BC                   .dbline 182
 01BC           ;                   WriteCommand(y);    //写入列地址
 01BC 0C2D              mov R16,R12
 01BE 5EDF              rcall _WriteCommand
 01C0                   .dbline 183
 01C0           ;             WriteCommand(x);          //写入行地址
 01C0 062F              mov R16,R22
 01C2 5CDF              rcall _WriteCommand
 01C4                   .dbline 184
 01C4           ;             for(i=0;i<16;i++)
 01C4 AA24              clr R10
 01C6 07C0              rjmp L69
 01C8           L66:
 01C8                   .dbline 185
 01C8                   .dbline 186
 01C8 EA85              ldd R30,y+10
 01CA FB85              ldd R31,y+11
 01CC 0191              ld R16,Z+
 01CE FB87              std y+11,R31
 01D0 EA87              std y+10,R30
 01D2 63DF              rcall _WriteData
 01D4                   .dbline 187
 01D4           L67:
 01D4                   .dbline 184
 01D4 A394              inc R10
 01D6           L69:
 01D6                   .dbline 184
 01D6 8A2D              mov R24,R10
 01D8 8031              cpi R24,16
 01DA B0F3              brlo L66
 01DC                   .dbline 188
 01DC C394              inc R12
 01DE                   .dbline 189
 01DE           L63:
 01DE                   .dbline 180
 01DE E394              inc R14
 01E0           L65:
 01E0                   .dbline 180
 01E0 8E2D              mov R24,R14
 01E2 8032              cpi R24,32
 01E4 58F3              brlo L62
 01E6                   .dbline 190
 01E6 68E8              ldi R22,136
 01E8                   .dbline 191
 01E8           L59:
 01E8                   .dbline 177
 01E8 4395              inc R20
 01EA           L61:
 01EA                   .dbline 177
 01EA 4230              cpi R20,2
 01EC 18F3              brlo L58
 01EE                   .dbline 192
 01EE           ;                       {
 01EE           ;                        WriteData(*(puts++));                  
 01EE           ;                       }
 01EE           ;                       y++;
 01EE           ;               }
 01EE           ;               x=0x88;
 01EE           ;       }
 01EE           ;       WriteCommand(0x36);                     //开图显
 01EE 06E3              ldi R16,54
 01F0 45DF              rcall _WriteCommand
 01F2                   .dbline -2
 01F2           L57:
 01F2 00D0              rcall pop_gset5
 01F4 2296              adiw R28,2
 01F6                   .dbline 0 ; func end
 01F6 0895              ret
 01F8                   .dbsym r k 20 c
 01F8                   .dbsym r x 22 c
 01F8                   .dbsym r j 14 c
 01F8                   .dbsym r y 12 c
 01F8                   .dbsym r i 10 c
 01F8                   .dbsym l puts 10 pc
 01F8                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\AVR学习专区\AVR学习板\st7920iccavrmega8.c
 0000           _bmp1::
 0000                   .blkb 1
 0001                   .dbsym e bmp1 _bmp1 A[1:1]c

⌨️ 快捷键说明

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