📄 main.lss
字号:
16e: 1f 93 push r17
170: cf 93 push r28
172: df 93 push r29
174: 08 2f mov r16, r24
176: f6 2e mov r15, r22
uint8_t i;
CS1;
178: df 9a sbi 0x1b, 7 ; 27
delay(1);
17a: 81 e0 ldi r24, 0x01 ; 1
17c: 90 e0 ldi r25, 0x00 ; 0
17e: 0e 94 47 00 call 0x8e
CS0;
182: df 98 cbi 0x1b, 7 ; 27
delay(1);
184: 81 e0 ldi r24, 0x01 ; 1
186: 90 e0 ldi r25, 0x00 ; 0
188: 0e 94 47 00 call 0x8e
lcd_send_bit(1);
18c: 81 e0 ldi r24, 0x01 ; 1
18e: 0e 94 a2 00 call 0x144
lcd_send_bit(0);
192: 80 e0 ldi r24, 0x00 ; 0
194: 0e 94 a2 00 call 0x144
lcd_send_bit(1);
198: 81 e0 ldi r24, 0x01 ; 1
19a: 0e 94 a2 00 call 0x144
for(i=0;i<6;i++)
19e: 10 e0 ldi r17, 0x00 ; 0
1a0: c5 e0 ldi r28, 0x05 ; 5
1a2: d0 e0 ldi r29, 0x00 ; 0
{
if(addr & _BV(5-i))
1a4: 80 2f mov r24, r16
1a6: 99 27 eor r25, r25
1a8: 0c 2e mov r0, r28
1aa: 02 c0 rjmp .+4 ; 0x1b0
1ac: 95 95 asr r25
1ae: 87 95 ror r24
1b0: 0a 94 dec r0
1b2: e2 f7 brpl .-8 ; 0x1ac
1b4: 80 ff sbrs r24, 0
1b6: 02 c0 rjmp .+4 ; 0x1bc
lcd_send_bit(1);
1b8: 81 e0 ldi r24, 0x01 ; 1
1ba: 01 c0 rjmp .+2 ; 0x1be
else
lcd_send_bit(0);
1bc: 80 e0 ldi r24, 0x00 ; 0
1be: 0e 94 a2 00 call 0x144
1c2: 1f 5f subi r17, 0xFF ; 255
1c4: 21 97 sbiw r28, 0x01 ; 1
1c6: 16 30 cpi r17, 0x06 ; 6
1c8: 68 f3 brcs .-38 ; 0x1a4
}
for(i=0;i<4;i++)
1ca: 10 e0 ldi r17, 0x00 ; 0
1cc: c0 e0 ldi r28, 0x00 ; 0
1ce: d0 e0 ldi r29, 0x00 ; 0
{
if(data & _BV(i))
1d0: 8f 2d mov r24, r15
1d2: 99 27 eor r25, r25
1d4: 0c 2e mov r0, r28
1d6: 02 c0 rjmp .+4 ; 0x1dc
1d8: 95 95 asr r25
1da: 87 95 ror r24
1dc: 0a 94 dec r0
1de: e2 f7 brpl .-8 ; 0x1d8
1e0: 80 ff sbrs r24, 0
1e2: 02 c0 rjmp .+4 ; 0x1e8
lcd_send_bit(1);
1e4: 81 e0 ldi r24, 0x01 ; 1
1e6: 01 c0 rjmp .+2 ; 0x1ea
else
lcd_send_bit(0);
1e8: 80 e0 ldi r24, 0x00 ; 0
1ea: 0e 94 a2 00 call 0x144
1ee: 1f 5f subi r17, 0xFF ; 255
1f0: 21 96 adiw r28, 0x01 ; 1
1f2: 14 30 cpi r17, 0x04 ; 4
1f4: 68 f3 brcs .-38 ; 0x1d0
}
CS1;
1f6: df 9a sbi 0x1b, 7 ; 27
delay(1);
1f8: 81 e0 ldi r24, 0x01 ; 1
1fa: 90 e0 ldi r25, 0x00 ; 0
1fc: 0e 94 47 00 call 0x8e
}
200: df 91 pop r29
202: cf 91 pop r28
204: 1f 91 pop r17
206: 0f 91 pop r16
208: ff 90 pop r15
20a: 08 95 ret
0000020c <lcd_send_cmd>:
void lcd_send_cmd(uint8_t cmd)
{
20c: 0f 93 push r16
20e: 1f 93 push r17
210: cf 93 push r28
212: df 93 push r29
214: 08 2f mov r16, r24
uint8_t i;
CS1;
216: df 9a sbi 0x1b, 7 ; 27
delay(1);
218: 81 e0 ldi r24, 0x01 ; 1
21a: 90 e0 ldi r25, 0x00 ; 0
21c: 0e 94 47 00 call 0x8e
CS0;
220: df 98 cbi 0x1b, 7 ; 27
delay(1);
222: 81 e0 ldi r24, 0x01 ; 1
224: 90 e0 ldi r25, 0x00 ; 0
226: 0e 94 47 00 call 0x8e
lcd_send_bit(1);
22a: 81 e0 ldi r24, 0x01 ; 1
22c: 0e 94 a2 00 call 0x144
lcd_send_bit(0);
230: 80 e0 ldi r24, 0x00 ; 0
232: 0e 94 a2 00 call 0x144
lcd_send_bit(0);
236: 80 e0 ldi r24, 0x00 ; 0
238: 0e 94 a2 00 call 0x144
for(i=0;i<8;i++)
23c: 10 e0 ldi r17, 0x00 ; 0
23e: c7 e0 ldi r28, 0x07 ; 7
240: d0 e0 ldi r29, 0x00 ; 0
{
if(cmd & _BV(7-i))
242: 80 2f mov r24, r16
244: 99 27 eor r25, r25
246: 0c 2e mov r0, r28
248: 02 c0 rjmp .+4 ; 0x24e
24a: 95 95 asr r25
24c: 87 95 ror r24
24e: 0a 94 dec r0
250: e2 f7 brpl .-8 ; 0x24a
252: 80 ff sbrs r24, 0
254: 02 c0 rjmp .+4 ; 0x25a
lcd_send_bit(1);
256: 81 e0 ldi r24, 0x01 ; 1
258: 01 c0 rjmp .+2 ; 0x25c
else
lcd_send_bit(0);
25a: 80 e0 ldi r24, 0x00 ; 0
25c: 0e 94 a2 00 call 0x144
260: 1f 5f subi r17, 0xFF ; 255
262: 21 97 sbiw r28, 0x01 ; 1
264: 18 30 cpi r17, 0x08 ; 8
266: 68 f3 brcs .-38 ; 0x242
}
lcd_send_bit(0);
268: 80 e0 ldi r24, 0x00 ; 0
26a: 0e 94 a2 00 call 0x144
CS1;
26e: df 9a sbi 0x1b, 7 ; 27
delay(1);
270: 81 e0 ldi r24, 0x01 ; 1
272: 90 e0 ldi r25, 0x00 ; 0
274: 0e 94 47 00 call 0x8e
}
278: df 91 pop r29
27a: cf 91 pop r28
27c: 1f 91 pop r17
27e: 0f 91 pop r16
280: 08 95 ret
00000282 <test_lcd>:
void test_lcd(void)
{
282: 0f 93 push r16
284: 1f 93 push r17
286: cf 93 push r28
288: df 93 push r29
uint8_t i,j;
lcd_send_cmd(LCD_CMD_INITIAL);
28a: 89 e2 ldi r24, 0x29 ; 41
28c: 0e 94 06 01 call 0x20c
lcd_send_cmd(LCD_CMD_SEL_RC);
290: 88 e1 ldi r24, 0x18 ; 24
292: 0e 94 06 01 call 0x20c
lcd_send_cmd(LCD_CMD_OP_RC);
296: 81 e0 ldi r24, 0x01 ; 1
298: 0e 94 06 01 call 0x20c
lcd_send_cmd(LCD_CMD_OP_LCD);
29c: 83 e0 ldi r24, 0x03 ; 3
29e: 0e 94 06 01 call 0x20c
beep();
2a2: 0e 94 57 00 call 0xae
delay(1000);
2a6: 88 ee ldi r24, 0xE8 ; 232
2a8: 93 e0 ldi r25, 0x03 ; 3
2aa: 0e 94 47 00 call 0x8e
/*display S1---S4*/
for(i=0;i<0x20;i++)
2ae: 00 e0 ldi r16, 0x00 ; 0
{
for(j=0;j<4;j++)
2b0: 10 e0 ldi r17, 0x00 ; 0
2b2: c0 e0 ldi r28, 0x00 ; 0
2b4: d0 e0 ldi r29, 0x00 ; 0
{
lcd_send_data(i,_BV(j));
2b6: 81 e0 ldi r24, 0x01 ; 1
2b8: 90 e0 ldi r25, 0x00 ; 0
2ba: 0c 2e mov r0, r28
2bc: 02 c0 rjmp .+4 ; 0x2c2
2be: 88 0f add r24, r24
2c0: 99 1f adc r25, r25
2c2: 0a 94 dec r0
2c4: e2 f7 brpl .-8 ; 0x2be
2c6: 68 2f mov r22, r24
2c8: 80 2f mov r24, r16
2ca: 0e 94 b5 00 call 0x16a
beep();
2ce: 0e 94 57 00 call 0xae
delay(1000);
2d2: 88 ee ldi r24, 0xE8 ; 232
2d4: 93 e0 ldi r25, 0x03 ; 3
2d6: 0e 94 47 00 call 0x8e
2da: 1f 5f subi r17, 0xFF ; 255
2dc: 21 96 adiw r28, 0x01 ; 1
2de: 14 30 cpi r17, 0x04 ; 4
2e0: 50 f3 brcs .-44 ; 0x2b6
2e2: 0f 5f subi r16, 0xFF ; 255
2e4: 00 32 cpi r16, 0x20 ; 32
2e6: 20 f3 brcs .-56 ; 0x2b0
}
}
beep();
2e8: 0e 94 57 00 call 0xae
delay(200);
2ec: 88 ec ldi r24, 0xC8 ; 200
2ee: 90 e0 ldi r25, 0x00 ; 0
2f0: 0e 94 47 00 call 0x8e
beep();
2f4: 0e 94 57 00 call 0xae
lcd_send_cmd(LCD_CMD_CL_LCD);
2f8: 82 e0 ldi r24, 0x02 ; 2
2fa: 0e 94 06 01 call 0x20c
}
2fe: df 91 pop r29
300: cf 91 pop r28
302: 1f 91 pop r17
304: 0f 91 pop r16
306: 08 95 ret
00000308 <main>:
int main(void)
{
308: cf e5 ldi r28, 0x5F ; 95
30a: d4 e0 ldi r29, 0x04 ; 4
30c: de bf out 0x3e, r29 ; 62
30e: cd bf out 0x3d, r28 ; 61
/*PC7 output to speak;PC6 to TP.
PC5~2 correspond to JTAG.only PC4 correspond to JTAG TDO(test data out),should be output MCU.
PC1~0 correspond to color LED,should be output from MCU.*/
DDRA=0xFF;
310: 8f ef ldi r24, 0xFF ; 255
312: 8a bb out 0x1a, r24 ; 26
PORTA=0xFF;
314: 8b bb out 0x1b, r24 ; 27
DDRC=0xD3;
316: 83 ed ldi r24, 0xD3 ; 211
318: 84 bb out 0x14, r24 ; 20
PORTC=0x2C;
31a: 8c e2 ldi r24, 0x2C ; 44
31c: 85 bb out 0x15, r24 ; 21
delay(3000);
31e: 88 eb ldi r24, 0xB8 ; 184
320: 9b e0 ldi r25, 0x0B ; 11
322: 0e 94 47 00 call 0x8e
while(1)
{
test_lcd();
326: 0e 94 41 01 call 0x282
32a: fd cf rjmp .-6 ; 0x326
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -