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

📄 lcd.lis

📁 iccavr的一个实例
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                       ;            ContrPort=ContrPort&~E;//E=0,
                       ;            DbDir=0b11111111;
                       ;            return(ReadData);           
                       ;          }   */
                       ; //************************************************************
                       ; //**clear CGRAM**********
                       ; void ClearRam(void)
                       ;        { 
 0058                   .dbline 95
                       ;          unsigned char Clear_page,Clear_Y;      
                       ; //***************************************************                
                       ;          ContrPort=ContrPort|CS1;  //cs1=1
 0058 AF9A              sbi 0x15,7
 005A                   .dbline 96
                       ;          ContrPort=ContrPort&~CS2;//cs2=0       
 005A AE98              cbi 0x15,6
 005C                   .dbline 97
                       ;          Clear_page=8;
 005C 48E0              ldi R20,8
 005E 10C0              rjmp L11
 0060                 L10:
 0060                   .dbline 99
                       ;          while(Clear_page)
                       ;                {
 0060                   .dbline 100
                       ;                  Clear_Y=64;
 0060 60E4              ldi R22,64
 0062 0BC0              rjmp L14
 0064                 L13:
 0064                   .dbline 102
 0064                   .dbline 104
 0064 042F              mov R16,R20
 0066 0150              subi R16,1
 0068 0854              subi R16,72 ; addi 184
 006A CADF              rcall _WriInsn
 006C                   .dbline 105
 006C 062F              mov R16,R22
 006E 0150              subi R16,1
 0070 005C              subi R16,192    ; addi 64
 0072 C6DF              rcall _WriInsn
 0074                   .dbline 106
 0074 0027              clr R16
 0076 D9DF              rcall _WriData
 0078                   .dbline 107
 0078 6A95              dec R22
 007A                   .dbline 108
 007A                 L14:
 007A                   .dbline 101
 007A 6623              tst R22
 007C 99F7              brne L13
 007E                   .dbline 109
 007E 4A95              dec R20
 0080                   .dbline 110
 0080                 L11:
 0080                   .dbline 98
 0080 4423              tst R20
 0082 71F7              brne L10
 0084                   .dbline 112
                       ;                  while(Clear_Y)
                       ;                       {
                       ;                        
                       ;                        WriInsn((Clear_page-1)+0b10111000);
                       ;                        WriInsn((Clear_Y-1)+0b01000000);
                       ;                        WriData(0x00);
                       ;                        Clear_Y--;
                       ;                       }
                       ;                  Clear_page--;                 
                       ;                }
                       ; //***************************************************                
                       ;          ContrPort=ContrPort&~CS1;  //cs1=0
 0084 AF98              cbi 0x15,7
 0086                   .dbline 113
                       ;          ContrPort=ContrPort|CS2;//cs2=1         
 0086 AE9A              sbi 0x15,6
 0088                   .dbline 114
                       ;          Clear_page=8;
 0088 48E0              ldi R20,8
 008A 10C0              rjmp L17
 008C                 L16:
 008C                   .dbline 116
                       ;          while(Clear_page)
                       ;                {
 008C                   .dbline 117
                       ;                  Clear_Y=64;
 008C 60E4              ldi R22,64
 008E 0BC0              rjmp L20
 0090                 L19:
 0090                   .dbline 119
 0090                   .dbline 121
 0090 042F              mov R16,R20
 0092 0150              subi R16,1
 0094 0854              subi R16,72 ; addi 184
 0096 B4DF              rcall _WriInsn
 0098                   .dbline 122
 0098 062F              mov R16,R22
 009A 0150              subi R16,1
 009C 005C              subi R16,192    ; addi 64
 009E B0DF              rcall _WriInsn
 00A0                   .dbline 123
 00A0 0027              clr R16
 00A2 C3DF              rcall _WriData
 00A4                   .dbline 124
 00A4 6A95              dec R22
 00A6                   .dbline 125
 00A6                 L20:
 00A6                   .dbline 118
 00A6 6623              tst R22
 00A8 99F7              brne L19
 00AA                   .dbline 126
 00AA 4A95              dec R20
 00AC                   .dbline 127
 00AC                 L17:
 00AC                   .dbline 115
 00AC 4423              tst R20
 00AE 71F7              brne L16
 00B0                   .dbline -2
 00B0                   .dbline 130
                       ;                  while(Clear_Y)
                       ;                       {
                       ;                        
                       ;                        WriInsn((Clear_page-1)+0b10111000);
                       ;                        WriInsn((Clear_Y-1)+0b01000000);
                       ;                        WriData(0x00);
                       ;                        Clear_Y--;
                       ;                       }
                       ;                  Clear_page--;                 
                       ;                }         
                       ;        
                       ;        
                       ;        }             
 00B0                 L9:
 00B0 00D0              rcall pop_gset2
 00B2                   .dbline 0 ; func end
 00B2 0895              ret
 00B4                   .dbsym r Clear_page 20 c
 00B4                   .dbsym r Clear_Y 22 c
 00B4                   .dbfunc s WriteCgram _WriteCgram fI
                       ;         NumCs2 -> R20,R21
                       ;         NumCs1 -> R22,R23
                       ;      NumTemp01 -> R12,R13
                       ;        NumPage -> R14
                       ;              j -> R20,R21
                       ;              i -> R22,R23
                       ;          Point -> R10
                       ;    DataSequent -> R6
                         .even
 00B4                 _WriteCgram::
 00B4 00D0              rcall push_gset5
 00B6 A22E              mov R10,R18
 00B8 602E              mov R6,R16
 00BA                   .dbline -1
 00BA                   .dbline 134
                       ; //********************************************************
                       ; //**setup CGRAM**********************        
                       ; void WriteCgram(unsigned char DataSequent, unsigned char Point)
                       ;      {  
 00BA                   .dbline 138
                       ;        unsigned char NumPage;  //the data page 
                       ;        unsigned NumCs1,NumCs2;//chip select
                       ;        unsigned NumTemp01,i,j;
                       ;        if(DataSequent<8)
 00BA 862D              mov R24,R6
 00BC 8830              cpi R24,8
 00BE 20F5              brsh L23
 00C0                   .dbline 139
                       ;             {
 00C0                   .dbline 140
                       ;               NumPage=0;
 00C0 EE24              clr R14
 00C2                   .dbline 141
                       ;                if(DataSequent<4)
 00C2 8430              cpi R24,4
 00C4 78F4              brsh L25
 00C6                   .dbline 142
                       ;                  {NumCs1=1;
 00C6                   .dbline 142
 00C6 61E0              ldi R22,1
 00C8 70E0              ldi R23,0
 00CA                   .dbline 143
                       ;                   NumCs2=0;
 00CA 4427              clr R20
 00CC 5527              clr R21
 00CE                   .dbline 144
                       ;                   NumTemp01=16*DataSequent;
 00CE C62C              mov R12,R6
 00D0 DD24              clr R13
 00D2 CC0C              lsl R12
 00D4 DD1C              rol R13
 00D6 CC0C              lsl R12
 00D8 DD1C              rol R13
 00DA CC0C              lsl R12
 00DC DD1C              rol R13
 00DE CC0C              lsl R12
 00E0 DD1C              rol R13
 00E2                   .dbline 145
                       ;                   } 
 00E2 9BC0              rjmp L24
 00E4                 L25:
 00E4                   .dbline 147
                       ;                else 
                       ;                  {NumCs1=0;
 00E4                   .dbline 147
 00E4 6627              clr R22
 00E6 7727              clr R23
 00E8                   .dbline 148
                       ;                   NumCs2=1;
 00E8 41E0              ldi R20,1
 00EA 50E0              ldi R21,0
 00EC                   .dbline 149
                       ;                   NumTemp01=16*(DataSequent-4);
 00EC 862D              mov R24,R6
 00EE 9927              clr R25
 00F0 0497              sbiw R24,4
 00F2 C82E              mov R12,R24
 00F4 D92E              mov R13,R25
 00F6 CC0C              lsl R12
 00F8 DD1C              rol R13
 00FA CC0C              lsl R12
 00FC DD1C              rol R13
 00FE CC0C              lsl R12
 0100 DD1C              rol R13
 0102 CC0C              lsl R12
 0104 DD1C              rol R13
 0106                   .dbline 150
                       ;                   }              
 0106                   .dbline 152
                       ;                                  
                       ;                }
 0106 89C0              rjmp L24
 0108                 L23:
 0108                   .dbline 153
                       ;        else if((DataSequent)<16&&(DataSequent>7))
 0108 862D              mov R24,R6
 010A 8031              cpi R24,16
 010C 58F5              brsh L27
 010E 87E0              ldi R24,7
 0110 8615              cp R24,R6
 0112 40F5              brsh L27
 0114                   .dbline 154
                       ;             {
 0114                   .dbline 155
                       ;              NumPage=2;
 0114 82E0              ldi R24,2
 0116 E82E              mov R14,R24
 0118                   .dbline 156
                       ;              if(DataSequent<12)
 0118 862D              mov R24,R6
 011A 8C30              cpi R24,12
 011C 88F4              brsh L29
 011E                   .dbline 157
                       ;                  {NumCs1=1;
 011E                   .dbline 157
 011E 61E0              ldi R22,1
 0120 70E0              ldi R23,0
 0122                   .dbline 158
                       ;                   NumCs2=0;
 0122 4427              clr R20
 0124 5527              clr R21
 0126                   .dbline 159
                       ;                   NumTemp01=16*(DataSequent-8);
 0126 9927              clr R25
 0128 0897              sbiw R24,8
 012A C82E              mov R12,R24
 012C D92E              mov R13,R25
 012E CC0C              lsl R12
 0130 DD1C              rol R13
 0132 CC0C              lsl R12
 0134 DD1C              rol R13
 0136 CC0C              lsl R12
 0138 DD1C              rol R13
 013A CC0C              lsl R12
 013C DD1C              rol R13
 013E                   .dbline 160
                       ;                   } 
 013E 6DC0              rjmp L28
 0140                 L29:
 0140                   .dbline 162
                       ;                else
                       ;                  {NumCs1=0;
 0140                   .dbline 162
 0140 6627              clr R22
 0142 7727              clr R23
 0144                   .dbline 163
                       ;                   NumCs2=1;
 0144 41E0              ldi R20,1
 0146 50E0              ldi R21,0
 0148                   .dbline 164
                       ;                   NumTemp01=16*(DataSequent-12);
 0148 862D              mov R24,R6
 014A 9927              clr R25
 014C 0C97              sbiw R24,12
 014E C82E              mov R12,R24
 0150 D92E              mov R13,R25
 0152 CC0C              lsl R12
 0154 DD1C              rol R13
 0156 CC0C              lsl R12
 0158 DD1C              rol R13
 015A CC0C              lsl R12
 015C DD1C              rol R13
 015E CC0C              lsl R12
 0160 DD1C              rol R13
 0162                   .dbline 165
                       ;                   }     
 0162                   .dbline 166
                       ;              }
 0162 5BC0              rjmp L28
 0164                 L27:
 0164                   .dbline 167
                       ;        else if((DataSequent>15)&&(DataSequent<24))
 0164 8FE0              ldi R24,15
 0166 8615              cp R24,R6
 0168 58F5              brsh L31
 016A 862D              mov R24,R6
 016C 8831              cpi R24,24
 016E 40F5              brsh L31
 0170                   .dbline 168
                       ;             {
 0170                   .dbline 169
                       ;              NumPage=4;
 0170 84E0              ldi R24,4
 0172 E82E              mov R14,R24
 0174                   .dbline 170
                       ;              if(DataSequent<20)
 0174 862D              mov R24,R6
 0176 8431              cpi R24,20
 0178 88F4              brsh L33
 017A                   .dbline 171
                       ;                  {NumCs1=1;
 017A                   .dbline 171
 017A 61E0              ldi R22,1
 017C 70E0              ldi R23,0
 017E                   .dbline 172
                       ;                   NumCs2=0;
 017E 4427           

⌨️ 快捷键说明

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