📄 main.lss
字号:
6ae: 60 e0 ldi r22, 0x00 ; 0
6b0: 81 2f mov r24, r17
6b2: 0e 94 14 04 call 0x828 ; 0x828 <write>
write(i,32,&word_mode[1][i*32],32);
6b6: c0 58 subi r28, 0x80 ; 128
6b8: df 4f sbci r29, 0xFF ; 255
6ba: 20 e2 ldi r18, 0x20 ; 32
6bc: 30 e0 ldi r19, 0x00 ; 0
6be: ae 01 movw r20, r28
6c0: 60 e2 ldi r22, 0x20 ; 32
6c2: 81 2f mov r24, r17
6c4: 0e 94 14 04 call 0x828 ; 0x828 <write>
lcd_write_data(i,0,p,64);
for (i=0; i<100 ;i++ ) _delay_ms(15);
free(p);
SELECT_LEFT;
for (i=0 ; i<4 ; i++)
6c8: 1f 5f subi r17, 0xFF ; 255
6ca: c0 56 subi r28, 0x60 ; 96
6cc: d0 40 sbci r29, 0x00 ; 0
6ce: 14 30 cpi r17, 0x04 ; 4
6d0: 59 f7 brne .-42 ; 0x6a8 <main+0x96>
//lcd_write_data(i,32,&word_mode[1][i*32],32);
write(i,0,&word_mode[0][i*32],32);
write(i,32,&word_mode[1][i*32],32);
}
SELECT_RIGHT;
6d2: 93 9a sbi 0x12, 3 ; 18
6d4: 94 98 cbi 0x12, 4 ; 18
6d6: c4 e5 ldi r28, 0x54 ; 84
6d8: d1 e0 ldi r29, 0x01 ; 1
6da: 10 e0 ldi r17, 0x00 ; 0
for (i=0; i<4 ; i++ ) write(i,0,&word_mode[2][i*32],32);
6dc: 20 e2 ldi r18, 0x20 ; 32
6de: 30 e0 ldi r19, 0x00 ; 0
6e0: ae 01 movw r20, r28
6e2: 60 e0 ldi r22, 0x00 ; 0
6e4: 81 2f mov r24, r17
6e6: 0e 94 14 04 call 0x828 ; 0x828 <write>
6ea: 1f 5f subi r17, 0xFF ; 255
6ec: a0 96 adiw r28, 0x20 ; 32
6ee: 14 30 cpi r17, 0x04 ; 4
6f0: a9 f7 brne .-22 ; 0x6dc <main+0xca>
6f2: 20 e0 ldi r18, 0x00 ; 0
6f4: 48 ec ldi r20, 0xC8 ; 200
6f6: 5f ea ldi r21, 0xAF ; 175
6f8: ca 01 movw r24, r20
6fa: 01 97 sbiw r24, 0x01 ; 1
6fc: f1 f7 brne .-4 ; 0x6fa <main+0xe8>
//lcd_write_data(i,0,&word_mode[2][i*32],32);
for (i=0; i<100 ; i++ ) _delay_ms(15);
6fe: 2f 5f subi r18, 0xFF ; 255
700: 24 36 cpi r18, 0x64 ; 100
702: d1 f7 brne .-12 ; 0x6f8 <main+0xe6>
SELECT_ALL;
704: 94 9a sbi 0x12, 4 ; 18
706: 93 9a sbi 0x12, 3 ; 18
lcd_write_cmd( 0xc0 + 32);
708: 80 ee ldi r24, 0xE0 ; 224
70a: 0e 94 c0 03 call 0x780 ; 0x780 <lcd_write_cmd>
70e: 20 e0 ldi r18, 0x00 ; 0
710: 48 ec ldi r20, 0xC8 ; 200
712: 5f ea ldi r21, 0xAF ; 175
714: ca 01 movw r24, r20
716: 01 97 sbiw r24, 0x01 ; 1
718: f1 f7 brne .-4 ; 0x716 <main+0x104>
for (i=0; i<100 ; i++ ) _delay_ms(15);
71a: 2f 5f subi r18, 0xFF ; 255
71c: 24 36 cpi r18, 0x64 ; 100
71e: d1 f7 brne .-12 ; 0x714 <main+0x102>
720: c4 ed ldi r28, 0xD4 ; 212
722: d1 e0 ldi r29, 0x01 ; 1
724: 10 e0 ldi r17, 0x00 ; 0
for (i=0;i<8 ;i++ )
{
SELECT_LEFT;
726: 94 9a sbi 0x12, 4 ; 18
728: 93 98 cbi 0x12, 3 ; 18
//lcd_write_data(i,0,&picture_mode[i*2*64],64);
write(i,0,&picture_mode[i*2*64],64);
72a: 20 e4 ldi r18, 0x40 ; 64
72c: 30 e0 ldi r19, 0x00 ; 0
72e: ae 01 movw r20, r28
730: 60 e0 ldi r22, 0x00 ; 0
732: 81 2f mov r24, r17
734: 0e 94 14 04 call 0x828 ; 0x828 <write>
SELECT_RIGHT;
738: 93 9a sbi 0x12, 3 ; 18
73a: 94 98 cbi 0x12, 4 ; 18
//lcd_write_data(i,0,&picture_mode[(i*2+1)*64],64);
write(i,0,&picture_mode[(i*2+1)*64],64);
73c: c0 5c subi r28, 0xC0 ; 192
73e: df 4f sbci r29, 0xFF ; 255
740: 20 e4 ldi r18, 0x40 ; 64
742: 30 e0 ldi r19, 0x00 ; 0
744: ae 01 movw r20, r28
746: 60 e0 ldi r22, 0x00 ; 0
748: 81 2f mov r24, r17
74a: 0e 94 14 04 call 0x828 ; 0x828 <write>
SELECT_ALL;
lcd_write_cmd( 0xc0 + 32);
for (i=0; i<100 ; i++ ) _delay_ms(15);
for (i=0;i<8 ;i++ )
74e: 1f 5f subi r17, 0xFF ; 255
750: c0 5c subi r28, 0xC0 ; 192
752: df 4f sbci r29, 0xFF ; 255
754: 18 30 cpi r17, 0x08 ; 8
756: 39 f7 brne .-50 ; 0x726 <main+0x114>
write(i,0,&picture_mode[i*2*64],64);
SELECT_RIGHT;
//lcd_write_data(i,0,&picture_mode[(i*2+1)*64],64);
write(i,0,&picture_mode[(i*2+1)*64],64);
}
SELECT_ALL;
758: 94 9a sbi 0x12, 4 ; 18
75a: 93 9a sbi 0x12, 3 ; 18
lcd_write_cmd( 0xc0 + 0);
75c: 80 ec ldi r24, 0xC0 ; 192
75e: 0e 94 c0 03 call 0x780 ; 0x780 <lcd_write_cmd>
762: ff cf rjmp .-2 ; 0x762 <main+0x150>
00000764 <lcd_read_stat>:
_delay_us(1);
return ret;
}
*/
void lcd_read_stat(void)
{
764: 14 ba out 0x14, r1 ; 20
LCD_DATA_DDR = 0x00;
clr_LCD_E;
766: 95 98 cbi 0x12, 5 ; 18
set_LCD_RW;
768: 96 9a sbi 0x12, 6 ; 18
clr_LCD_DI;
76a: 97 98 cbi 0x12, 7 ; 18
set_LCD_E;
76c: 95 9a sbi 0x12, 5 ; 18
can be achieved.
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
76e: 82 e0 ldi r24, 0x02 ; 2
770: 8a 95 dec r24
772: f1 f7 brne .-4 ; 0x770 <lcd_read_stat+0xc>
_delay_us(0.5);
while(LCD_DATA_PIN&0X80);
774: 9f 99 sbic 0x13, 7 ; 19
776: fe cf rjmp .-4 ; 0x774 <lcd_read_stat+0x10>
clr_LCD_E;
778: 95 98 cbi 0x12, 5 ; 18
LCD_DATA_DDR = 0Xff;
77a: 8f ef ldi r24, 0xFF ; 255
77c: 84 bb out 0x14, r24 ; 20
}
77e: 08 95 ret
00000780 <lcd_write_cmd>:
void lcd_write_cmd(unsigned char cmd)
{
780: 1f 93 push r17
782: 18 2f mov r17, r24
lcd_read_stat();
784: 0e 94 b2 03 call 0x764 ; 0x764 <lcd_read_stat>
clr_LCD_E;
788: 95 98 cbi 0x12, 5 ; 18
clr_LCD_RW;
78a: 96 98 cbi 0x12, 6 ; 18
clr_LCD_DI;
78c: 97 98 cbi 0x12, 7 ; 18
LCD_DATA = cmd;
78e: 15 bb out 0x15, r17 ; 21
set_LCD_E;
790: 95 9a sbi 0x12, 5 ; 18
792: 82 e0 ldi r24, 0x02 ; 2
794: 98 2f mov r25, r24
796: 9a 95 dec r25
798: f1 f7 brne .-4 ; 0x796 <lcd_write_cmd+0x16>
_delay_us(0.5);
clr_LCD_E;
79a: 95 98 cbi 0x12, 5 ; 18
79c: 8a 95 dec r24
79e: f1 f7 brne .-4 ; 0x79c <lcd_write_cmd+0x1c>
_delay_us(0.5);
}
7a0: 1f 91 pop r17
7a2: 08 95 ret
000007a4 <lcd_write_data>:
void lcd_write_data(unsigned char x, unsigned char y,
unsigned char *buf, unsigned char lenth)
{
7a4: 0f 93 push r16
7a6: 1f 93 push r17
7a8: cf 93 push r28
7aa: df 93 push r29
7ac: 16 2f mov r17, r22
7ae: ea 01 movw r28, r20
7b0: 02 2f mov r16, r18
lcd_write_cmd(0xb8+(x%8));
7b2: 87 70 andi r24, 0x07 ; 7
7b4: 88 54 subi r24, 0x48 ; 72
7b6: 0e 94 c0 03 call 0x780 ; 0x780 <lcd_write_cmd>
lcd_write_cmd(0x40+(y%64));
7ba: 1f 73 andi r17, 0x3F ; 63
7bc: 81 2f mov r24, r17
7be: 80 5c subi r24, 0xC0 ; 192
7c0: 0e 94 c0 03 call 0x780 ; 0x780 <lcd_write_cmd>
7c4: 12 e0 ldi r17, 0x02 ; 2
7c6: 0f c0 rjmp .+30 ; 0x7e6 <lcd_write_data+0x42>
while (lenth--)
{
lcd_read_stat();
7c8: 0e 94 b2 03 call 0x764 ; 0x764 <lcd_read_stat>
clr_LCD_RW;
7cc: 96 98 cbi 0x12, 6 ; 18
set_LCD_DI;
7ce: 97 9a sbi 0x12, 7 ; 18
LCD_DATA =*buf++;
7d0: 89 91 ld r24, Y+
7d2: 85 bb out 0x15, r24 ; 21
set_LCD_E;
7d4: 95 9a sbi 0x12, 5 ; 18
7d6: 81 2f mov r24, r17
7d8: 8a 95 dec r24
7da: f1 f7 brne .-4 ; 0x7d8 <lcd_write_data+0x34>
_delay_us(0.5);
clr_LCD_E;
7dc: 95 98 cbi 0x12, 5 ; 18
7de: 81 2f mov r24, r17
7e0: 8a 95 dec r24
7e2: f1 f7 brne .-4 ; 0x7e0 <lcd_write_data+0x3c>
7e4: 01 50 subi r16, 0x01 ; 1
void lcd_write_data(unsigned char x, unsigned char y,
unsigned char *buf, unsigned char lenth)
{
lcd_write_cmd(0xb8+(x%8));
lcd_write_cmd(0x40+(y%64));
while (lenth--)
7e6: 00 23 and r16, r16
7e8: 79 f7 brne .-34 ; 0x7c8 <lcd_write_data+0x24>
set_LCD_E;
_delay_us(0.5);
clr_LCD_E;
_delay_us(0.5);
}
}
7ea: df 91 pop r29
7ec: cf 91 pop r28
7ee: 1f 91 pop r17
7f0: 0f 91 pop r16
7f2: 08 95 ret
000007f4 <read_rom>:
uint8_t *read_rom(const prog_uchar *__data, uint16_t __size)
{
7f4: 0f 93 push r16
7f6: 1f 93 push r17
7f8: cf 93 push r28
7fa: df 93 push r29
7fc: 8c 01 movw r16, r24
7fe: eb 01 movw r28, r22
uint8_t *__p, *__tmp;
__p = (uint8_t *) malloc(__size);
800: cb 01 movw r24, r22
802: 0e 94 31 04 call 0x862 ; 0x862 <malloc>
806: ac 01 movw r20, r24
808: dc 01 movw r26, r24
80a: 06 c0 rjmp .+12 ; 0x818 <read_rom+0x24>
__tmp = __p;
while (__size--)
80c: f8 01 movw r30, r16
*__tmp++ = pgm_read_byte(__data++);
80e: 0f 5f subi r16, 0xFF ; 255
810: 1f 4f sbci r17, 0xFF ; 255
812: e4 91 lpm r30, Z+
814: ed 93 st X+, r30
816: 21 97 sbiw r28, 0x01 ; 1
{
uint8_t *__p, *__tmp;
__p = (uint8_t *) malloc(__size);
__tmp = __p;
while (__size--)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -