📄 test.lis
字号:
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 + -