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

📄 test.lis

📁 ATmega16应用例子
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 00A0                   .dbline 133
 00A0           ;    if((data & 0x20) == 0x20) 
 00A0 802F              mov R24,R16
 00A2 8072              andi R24,32
 00A4 8032              cpi R24,32
 00A6 11F4              brne L21
 00A8                   .dbline 134
 00A8           ;       PORTB |= 0x01 << SDATA; 
 00A8 C59A              sbi 0x18,5
 00AA 01C0              xjmp L22
 00AC           L21:
 00AC                   .dbline 136
 00AC           ;    else 
 00AC           ;       PORTB &= ~(0x01 << SDATA); 
 00AC C598              cbi 0x18,5
 00AE           L22:
 00AE                   .dbline 137
 00AE           ;    PORTB |= 0x01 << SCLK; 
 00AE C79A              sbi 0x18,7
 00B0                   .dbline 140
 00B0           ;     
 00B0           ;    // 4. Bit (MSB) 
 00B0           ;    PORTB &= ~(0x01 << SCLK); 
 00B0 C798              cbi 0x18,7
 00B2                   .dbline 141
 00B2           ;    if((data & 0x10) == 0x10) 
 00B2 802F              mov R24,R16
 00B4 8071              andi R24,16
 00B6 8031              cpi R24,16
 00B8 11F4              brne L23
 00BA                   .dbline 142
 00BA           ;       PORTB |= 0x01 << SDATA; 
 00BA C59A              sbi 0x18,5
 00BC 01C0              xjmp L24
 00BE           L23:
 00BE                   .dbline 144
 00BE           ;    else 
 00BE           ;       PORTB &= ~(0x01 << SDATA); 
 00BE C598              cbi 0x18,5
 00C0           L24:
 00C0                   .dbline 145
 00C0           ;    PORTB |= 0x01 << SCLK; 
 00C0 C79A              sbi 0x18,7
 00C2                   .dbline 148
 00C2           ;     
 00C2           ;    // 5. Bit (MSB) 
 00C2           ;    PORTB &= ~(0x01 << SCLK); 
 00C2 C798              cbi 0x18,7
 00C4                   .dbline 149
 00C4           ;    if((data & 0x08) == 0x08) 
 00C4 802F              mov R24,R16
 00C6 8870              andi R24,8
 00C8 8830              cpi R24,8
 00CA 11F4              brne L25
 00CC                   .dbline 150
 00CC           ;       PORTB |= 0x01 << SDATA; 
 00CC C59A              sbi 0x18,5
 00CE 01C0              xjmp L26
 00D0           L25:
 00D0                   .dbline 152
 00D0           ;    else 
 00D0           ;       PORTB &= ~(0x01 << SDATA); 
 00D0 C598              cbi 0x18,5
 00D2           L26:
 00D2                   .dbline 153
 00D2           ;    PORTB |= 0x01 << SCLK; 
 00D2 C79A              sbi 0x18,7
 00D4                   .dbline 156
 00D4           ;     
 00D4           ;    // 6. Bit (MSB) 
 00D4           ;    PORTB &= ~(0x01 << SCLK); 
 00D4 C798              cbi 0x18,7
 00D6                   .dbline 157
 00D6           ;    if((data & 0x04) == 0x04) 
 00D6 802F              mov R24,R16
 00D8 8470              andi R24,4
 00DA 8430              cpi R24,4
 00DC 11F4              brne L27
 00DE                   .dbline 158
 00DE           ;       PORTB |= 0x01 << SDATA; 
 00DE C59A              sbi 0x18,5
 00E0 01C0              xjmp L28
 00E2           L27:
 00E2                   .dbline 160
 00E2           ;    else 
 00E2           ;       PORTB &= ~(0x01 << SDATA); 
 00E2 C598              cbi 0x18,5
 00E4           L28:
 00E4                   .dbline 161
 00E4           ;    PORTB |= 0x01 << SCLK; 
 00E4 C79A              sbi 0x18,7
 00E6                   .dbline 164
 00E6           ;     
 00E6           ;    // 7. Bit (MSB) 
 00E6           ;    PORTB &= ~(0x01 << SCLK); 
 00E6 C798              cbi 0x18,7
 00E8                   .dbline 165
 00E8           ;    if((data & 0x02) == 0x02) 
 00E8 802F              mov R24,R16
 00EA 8270              andi R24,2
 00EC 8230              cpi R24,2
 00EE 11F4              brne L29
 00F0                   .dbline 166
 00F0           ;       PORTB |= 0x01 << SDATA; 
 00F0 C59A              sbi 0x18,5
 00F2 01C0              xjmp L30
 00F4           L29:
 00F4                   .dbline 168
 00F4           ;    else 
 00F4           ;       PORTB &= ~(0x01 << SDATA); 
 00F4 C598              cbi 0x18,5
 00F6           L30:
 00F6                   .dbline 169
 00F6           ;    PORTB |= 0x01 << SCLK; 
 00F6 C79A              sbi 0x18,7
 00F8                   .dbline 172
 00F8           ;     
 00F8           ;    // 8. Bit (MSB) 
 00F8           ;    PORTB &= ~(0x01 << SCLK); 
 00F8 C798              cbi 0x18,7
 00FA                   .dbline 173
 00FA           ;    if((data & 0x01) == 0x01) 
 00FA 802F              mov R24,R16
 00FC 8170              andi R24,1
 00FE 8130              cpi R24,1
 0100 11F4              brne L31
 0102                   .dbline 174
 0102           ;       PORTB |= 0x01 << SDATA; 
 0102 C59A              sbi 0x18,5
 0104 01C0              xjmp L32
 0106           L31:
 0106                   .dbline 176
 0106           ;    else 
 0106           ;       PORTB &= ~(0x01 << SDATA); 
 0106 C598              cbi 0x18,5
 0108           L32:
 0108                   .dbline 177
 0108           ;    PORTB |= 0x01 << SCLK; 
 0108 C79A              sbi 0x18,7
 010A                   .dbline -2
 010A           L14:
 010A                   .dbline 0 ; func end
 010A 0895              ret
 010C                   .dbsym r cd 18 c
 010C                   .dbsym r data 16 c
 010C                   .dbend
 010C                   .dbfunc e cs _cs fV
                        .even
 010C           _cs::
 010C                   .dbline -1
 010C                   .dbline 180
 010C           ; } 
 010C           ; 
 010C           ; void cs(void) { 
 010C                   .dbline 181
 010C           ;    PORTD |= 0x01 << CS;   // CS wieder auf 1 
 010C 939A              sbi 0x12,3
 010E                   .dbline -2
 010E           L33:
 010E                   .dbline 0 ; func end
 010E 0895              ret
 0110                   .dbend
 0110                   .dbfunc e main _main fI
 0110           ;              s -> R22
 0110           ;              i -> R20,R21
                        .even
 0110           _main::
 0110                   .dbline -1
 0110                   .dbline 184
 0110           ; } 
 0110           ; 
 0110           ; int main(void) { 
 0110                   .dbline 187
 0110           ;    int i; 
 0110           ;    char  s; 
 0110           ;      init_devices();
 0110 82DF              xcall _init_devices
 0112                   .dbline 188
 0112           ;    DDRB = 0xFF;      // PortB = Output 
 0112 8FEF              ldi R24,255
 0114 87BB              out 0x17,R24
 0116                   .dbline 189
 0116           ;    DDRD = 0xff;
 0116 81BB              out 0x11,R24
 0118                   .dbline 191
 0118           ;    // LCD Hardware Reset 
 0118           ;    PORTD &= ~(0x01 << 0); 
 0118 9098              cbi 0x12,0
 011A                   .dbline 192
 011A           ;    delay5ms(); 
 011A 83DF              xcall _delay5ms
 011C                   .dbline 193
 011C           ;    PORTD |= 0x01 << 0; 
 011C 909A              sbi 0x12,0
 011E                   .dbline 195
 011E           ;     
 011E           ;    PORTD |= 0x01 << CS; 
 011E 939A              sbi 0x12,3
 0120                   .dbline 196
 0120           ;    PORTB |= 0x01 << SCLK; 
 0120 C79A              sbi 0x18,7
 0122                   .dbline 197
 0122           ;    PORTB |= 0x01 << SDATA; 
 0122 C59A              sbi 0x18,5
 0124                   .dbline 199
 0124           ;     
 0124           ;    send(0x01, CMD);      // LCD Software Reset 
 0124 2227              clr R18
 0126 01E0              ldi R16,1
 0128 8CDF              xcall _send
 012A                   .dbline 200
 012A           ;    cs(); 
 012A F0DF              xcall _cs
 012C                   .dbline 201
 012C           ;    delay5ms(); 
 012C 7ADF              xcall _delay5ms
 012E                   .dbline 203
 012E           ;     
 012E           ;    send(0xC6, CMD);      // Initial Escape 
 012E 2227              clr R18
 0130 06EC              ldi R16,198
 0132 87DF              xcall _send
 0134                   .dbline 204
 0134           ;    cs(); 
 0134 EBDF              xcall _cs
 0136                   .dbline 206
 0136           ;     
 0136           ;    send(0xB9, CMD);      // Refresh set 
 0136 2227              clr R18
 0138 09EB              ldi R16,185
 013A 83DF              xcall _send
 013C                   .dbline 207
 013C           ;    send(0x00, DATA); 
 013C 21E0              ldi R18,1
 013E 0027              clr R16
 0140 80DF              xcall _send
 0142                   .dbline 208
 0142           ;    cs(); 
 0142 E4DF              xcall _cs
 0144                   .dbline 210
 0144           ;     
 0144           ;    send(0xB6, CMD);      // Display Control 
 0144 2227              clr R18
 0146 06EB              ldi R16,182
 0148 7CDF              xcall _send
 014A                   .dbline 211
 014A           ;    send(128, DATA); 
 014A 21E0              ldi R18,1
 014C 00E8              ldi R16,128
 014E 79DF              xcall _send
 0150                   .dbline 212
 0150           ;    send(128, DATA); 
 0150 21E0              ldi R18,1
 0152 00E8              ldi R16,128
 0154 76DF              xcall _send
 0156                   .dbline 213
 0156           ;    send(129, DATA); 
 0156 21E0              ldi R18,1
 0158 01E8              ldi R16,129
 015A 73DF              xcall _send
 015C                   .dbline 214
 015C           ;    send(84, DATA); 
 015C 21E0              ldi R18,1
 015E 04E5              ldi R16,84
 0160 70DF              xcall _send
 0162                   .dbline 215
 0162           ;    send(69, DATA); 
 0162 21E0              ldi R18,1
 0164 05E4              ldi R16,69
 0166 6DDF              xcall _send
 0168                   .dbline 216
 0168           ;    send(82, DATA); 
 0168 21E0              ldi R18,1
 016A 02E5              ldi R16,82
 016C 6ADF              xcall _send
 016E                   .dbline 217
 016E           ;    send(67, DATA); 
 016E 21E0              ldi R18,1
 0170 03E4              ldi R16,67
 0172 67DF              xcall _send
 0174                   .dbline 218
 0174           ;    cs(); 
 0174 CBDF              xcall _cs
 0176                   .dbline 220
 0176           ;     
 0176           ;    send(0xB3, CMD);      // Gray Scale Position 
 0176 2227              clr R18
 0178 03EB              ldi R16,179
 017A 63DF              xcall _send
 017C                   .dbline 221
 017C           ;    send(1, DATA); 
 017C 21E0              ldi R18,1
 017E 01E0              ldi R16,1
 0180 60DF              xcall _send
 0182                   .dbline 222
 0182           ;    send(2, DATA); 
 0182 21E0              ldi R18,1
 0184 02E0              ldi R16,2
 0186 5DDF              xcall _send
 0188                   .dbline 223
 0188           ;    send(4, DATA); 
 0188 21E0              ldi R18,1
 018A 04E0              ldi R16,4
 018C 5ADF              xcall _send
 018E                   .dbline 224
 018E           ;    send(8, DATA); 
 018E 21E0              ldi R18,1
 0190 08E0              ldi R16,8
 0192 57DF              xcall _send
 0194                   .dbline 225
 0194           ;    send(16, DATA); 
 0194 21E0              ldi R18,1
 0196 00E1              ldi R16,16
 0198 54DF              xcall _send
 019A                   .dbline 226
 019A           ;    send(30, DATA); 
 019A 21E0              ldi R18,1
 019C 0EE1              ldi R16,30
 019E 51DF              xcall _send
 01A0                   .dbline 227
 01A0           ;    send(40, DATA); 
 01A0 21E0              ldi R18,1
 01A2 08E2              ldi R16,40
 01A4 4EDF              xcall _send
 01A6                   .dbline 228
 01A6           ;    send(50, DATA); 

⌨️ 快捷键说明

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