📄 main.lss
字号:
5a8: 90 70 andi r25, 0x00 ; 0
5aa: 80 61 ori r24, 0x10 ; 16
5ac: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
F_SPLC501_Write_Com(y&0x0f); //设置初始地址 列地址低位
5b0: c6 01 movw r24, r12
5b2: 8f 70 andi r24, 0x0F ; 15
5b4: 90 70 andi r25, 0x00 ; 0
5b6: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
for(i=0;i<8;i++)
5ba: 00 e0 ldi r16, 0x00 ; 0
5bc: 10 e0 ldi r17, 0x00 ; 0
5be: ec 2f mov r30, r28
5c0: ff 27 eor r31, r31
{
if(j==0)
5c2: e1 14 cp r14, r1
5c4: f1 04 cpc r15, r1
5c6: 51 f4 brne .+20 ; 0x5dc <F_LCD_WASII+0xb6>
F_SPLC501_Write_Data((Asii8[a+i])&0xff);
5c8: e0 0f add r30, r16
5ca: f1 1f adc r31, r17
5cc: ee 0f add r30, r30
5ce: ff 1f adc r31, r31
5d0: e5 52 subi r30, 0x25 ; 37
5d2: fe 4f sbci r31, 0xFE ; 254
5d4: 80 81 ld r24, Z
5d6: 91 81 ldd r25, Z+1 ; 0x01
5d8: 90 70 andi r25, 0x00 ; 0
5da: 0a c0 rjmp .+20 ; 0x5f0 <F_LCD_WASII+0xca>
else
F_SPLC501_Write_Data(((Asii8[a+i])>>8)&0xff);
5dc: e0 0f add r30, r16
5de: f1 1f adc r31, r17
5e0: ee 0f add r30, r30
5e2: ff 1f adc r31, r31
5e4: e5 52 subi r30, 0x25 ; 37
5e6: fe 4f sbci r31, 0xFE ; 254
5e8: 80 81 ld r24, Z
5ea: 91 81 ldd r25, Z+1 ; 0x01
5ec: 89 2f mov r24, r25
5ee: 99 27 eor r25, r25
5f0: 0e 94 ae 00 call 0x15c <F_SPLC501_Write_Data>
5f4: 0f 5f subi r16, 0xFF ; 255
5f6: 1f 4f sbci r17, 0xFF ; 255
5f8: 08 30 cpi r16, 0x08 ; 8
5fa: 11 05 cpc r17, r1
5fc: 04 f3 brlt .-64 ; 0x5be <F_LCD_WASII+0x98>
5fe: 08 94 sec
600: e1 1c adc r14, r1
602: f1 1c adc r15, r1
604: 82 e0 ldi r24, 0x02 ; 2
606: e8 16 cp r14, r24
608: f1 04 cpc r15, r1
60a: 0c f4 brge .+2 ; 0x60e <F_LCD_WASII+0xe8>
60c: bf cf rjmp .-130 ; 0x58c <F_LCD_WASII+0x66>
}
}
}
F_SPLC501_Write_Com(0xee);
60e: 8e ee ldi r24, 0xEE ; 238
610: 90 e0 ldi r25, 0x00 ; 0
612: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
616: cf 91 pop r28
618: 1f 91 pop r17
61a: 0f 91 pop r16
61c: ff 90 pop r15
61e: ef 90 pop r14
620: df 90 pop r13
622: cf 90 pop r12
624: bf 90 pop r11
626: af 90 pop r10
628: 08 95 ret
0000062a <LCD501_PutChar>:
// LED_test();
}
//********************************************************************************************//
//程序:void LCD501_PutChar(int x,int y,unsigned int a) [8x16] [6X8]
//描述: 显时8X16、6X8的自带ASCII字符,任意行定位
//参数: x显示字符的起始列(0~128) y 显示字符的起始行(0~63)
// a ASCII码
// 声明: 手心 20070117 AVRGCC
//注意:
//********************************************************************************************//
void LCD501_PutChar(int x,int y,unsigned int a)
{
62a: 8f 92 push r8
62c: 9f 92 push r9
62e: af 92 push r10
630: bf 92 push r11
632: cf 92 push r12
634: df 92 push r13
636: ef 92 push r14
638: ff 92 push r15
63a: 0f 93 push r16
63c: 1f 93 push r17
63e: cf 93 push r28
640: df 93 push r29
642: 9c 01 movw r18, r24
644: 7a 01 movw r14, r20
int i,j,x_com,y_com=0; //数据暂存
unsigned int uiData1,uiData2;
unsigned int Read_Back; //读回的数据
if(a>=0x61)
646: 41 e6 ldi r20, 0x61 ; 97
648: e4 16 cp r14, r20
64a: f1 04 cpc r15, r1
64c: 40 f0 brcs .+16 ; 0x65e <LCD501_PutChar+0x34>
a=a-0x61+36*8+(a-0x61)*7;
64e: b3 e0 ldi r27, 0x03 ; 3
650: ee 0c add r14, r14
652: ff 1c adc r15, r15
654: ba 95 dec r27
656: e1 f7 brne .-8 ; 0x650 <LCD501_PutChar+0x26>
658: 88 e1 ldi r24, 0x18 ; 24
65a: 9e ef ldi r25, 0xFE ; 254
65c: 13 c0 rjmp .+38 ; 0x684 <LCD501_PutChar+0x5a>
65e: c7 01 movw r24, r14
660: a3 e0 ldi r26, 0x03 ; 3
662: 88 0f add r24, r24
664: 99 1f adc r25, r25
666: aa 95 dec r26
668: e1 f7 brne .-8 ; 0x662 <LCD501_PutChar+0x38>
else
if(a>=0x41)
66a: 41 e4 ldi r20, 0x41 ; 65
66c: e4 16 cp r14, r20
66e: f1 04 cpc r15, r1
670: 28 f0 brcs .+10 ; 0x67c <LCD501_PutChar+0x52>
a=a-0x41+80+(a-0x41)*7;
672: f8 e4 ldi r31, 0x48 ; 72
674: ef 2e mov r14, r31
676: fe ef ldi r31, 0xFE ; 254
678: ff 2e mov r15, r31
67a: 04 c0 rjmp .+8 ; 0x684 <LCD501_PutChar+0x5a>
else
a=a-0x30+(a-0x30)*7;
67c: e0 e8 ldi r30, 0x80 ; 128
67e: ee 2e mov r14, r30
680: ee ef ldi r30, 0xFE ; 254
682: fe 2e mov r15, r30
684: e8 0e add r14, r24
686: f9 1e adc r15, r25
if((x+8)>127)
688: c9 01 movw r24, r18
68a: 08 96 adiw r24, 0x08 ; 8
68c: 80 38 cpi r24, 0x80 ; 128
68e: 91 05 cpc r25, r1
690: 7c f0 brlt .+30 ; 0x6b0 <LCD501_PutChar+0x86>
{
x_com=4;
692: 54 e0 ldi r21, 0x04 ; 4
694: 85 2e mov r8, r21
696: 91 2c mov r9, r1
y_com=y/8+1;
698: cb 01 movw r24, r22
69a: 77 fd sbrc r23, 7
69c: 07 96 adiw r24, 0x07 ; 7
69e: 8c 01 movw r16, r24
6a0: 43 e0 ldi r20, 0x03 ; 3
6a2: 15 95 asr r17
6a4: 07 95 ror r16
6a6: 4a 95 dec r20
6a8: e1 f7 brne .-8 ; 0x6a2 <LCD501_PutChar+0x78>
6aa: 0f 5f subi r16, 0xFF ; 255
6ac: 1f 4f sbci r17, 0xFF ; 255
6ae: 0a c0 rjmp .+20 ; 0x6c4 <LCD501_PutChar+0x9a>
}
else
{
x_com=x;
6b0: 49 01 movw r8, r18
y_com=y/8;
6b2: cb 01 movw r24, r22
6b4: 77 fd sbrc r23, 7
6b6: 07 96 adiw r24, 0x07 ; 7
6b8: 8c 01 movw r16, r24
6ba: 33 e0 ldi r19, 0x03 ; 3
6bc: 15 95 asr r17
6be: 07 95 ror r16
6c0: 3a 95 dec r19
6c2: e1 f7 brne .-8 ; 0x6bc <LCD501_PutChar+0x92>
}
if((y+16)<64)
6c4: 60 5f subi r22, 0xF0 ; 240
6c6: 7f 4f sbci r23, 0xFF ; 255
6c8: 60 34 cpi r22, 0x40 ; 64
6ca: 71 05 cpc r23, r1
6cc: 1c f4 brge .+6 ; 0x6d4 <LCD501_PutChar+0xaa>
y_com=y_com+0xb0;
6ce: 00 55 subi r16, 0x50 ; 80
6d0: 1f 4f sbci r17, 0xFF ; 255
6d2: 02 c0 rjmp .+4 ; 0x6d8 <LCD501_PutChar+0xae>
else
y_com=0xb0;
6d4: 00 eb ldi r16, 0xB0 ; 176
6d6: 10 e0 ldi r17, 0x00 ; 0
for(j=0;j<2;j++)
6d8: aa 24 eor r10, r10
6da: bb 24 eor r11, r11
{
F_SPLC501_Write_Com(y_com+j); //设置初始页地址
6dc: c8 01 movw r24, r16
6de: 8a 0d add r24, r10
6e0: 9b 1d adc r25, r11
6e2: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
F_SPLC501_Write_Com(x_com&0x0f); //设置初始列地址
6e6: c4 01 movw r24, r8
6e8: 8f 70 andi r24, 0x0F ; 15
6ea: 90 70 andi r25, 0x00 ; 0
6ec: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
F_SPLC501_Write_Com(((x_com >> 4)&0x0f)|0x10);
6f0: c4 01 movw r24, r8
6f2: 24 e0 ldi r18, 0x04 ; 4
6f4: 95 95 asr r25
6f6: 87 95 ror r24
6f8: 2a 95 dec r18
6fa: e1 f7 brne .-8 ; 0x6f4 <LCD501_PutChar+0xca>
6fc: 8f 70 andi r24, 0x0F ; 15
6fe: 90 70 andi r25, 0x00 ; 0
700: 80 61 ori r24, 0x10 ; 16
702: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
706: e7 01 movw r28, r14
708: ce 0d add r28, r14
70a: df 1d adc r29, r15
70c: c5 52 subi r28, 0x25 ; 37
70e: de 4f sbci r29, 0xFE ; 254
710: 87 e0 ldi r24, 0x07 ; 7
712: c8 2e mov r12, r24
714: d1 2c mov r13, r1
for(i=0;i<8;i++)
{
if(j==0)
716: a1 14 cp r10, r1
718: b1 04 cpc r11, r1
71a: 21 f4 brne .+8 ; 0x724 <LCD501_PutChar+0xfa>
{
uiData1 = (Asii8[a+i])&0x00ff;
71c: 88 81 ld r24, Y
71e: 99 81 ldd r25, Y+1 ; 0x01
F_SPLC501_Write_Data(uiData1);
720: 90 70 andi r25, 0x00 ; 0
722: 04 c0 rjmp .+8 ; 0x72c <LCD501_PutChar+0x102>
}
else
{
uiData1 = (Asii8[a+i]>>8)&0x00ff;
724: 88 81 ld r24, Y
726: 99 81 ldd r25, Y+1 ; 0x01
F_SPLC501_Write_Data(uiData1);
728: 89 2f mov r24, r25
72a: 99 27 eor r25, r25
72c: 0e 94 ae 00 call 0x15c <F_SPLC501_Write_Data>
730: 08 94 sec
732: c1 08 sbc r12, r1
734: d1 08 sbc r13, r1
736: 22 96 adiw r28, 0x02 ; 2
738: d7 fe sbrs r13, 7
73a: ed cf rjmp .-38 ; 0x716 <LCD501_PutChar+0xec>
}
}
F_SPLC501_Write_Com(0xee); //读改写模式结束指令
73c: 8e ee ldi r24, 0xEE ; 238
73e: 90 e0 ldi r25, 0x00 ; 0
740: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
744: 08 94 sec
746: a1 1c adc r10, r1
748: b1 1c adc r11, r1
74a: 82 e0 ldi r24, 0x02 ; 2
74c: a8 16 cp r10, r24
74e: b1 04 cpc r11, r1
750: 2c f2 brlt .-118 ; 0x6dc <LCD501_PutChar+0xb2>
752: df 91 pop r29
754: cf 91 pop r28
756: 1f 91 pop r17
758: 0f 91 pop r16
75a: ff 90 pop r15
75c: ef 90 pop r14
75e: df 90 pop r13
760: cf 90 pop r12
762: bf 90 pop r11
764: af 90 pop r10
766: 9f 90 pop r9
768: 8f 90 pop r8
76a: 08 95 ret
0000076c <LCD501_PutString>:
}
}
//********************************************************************************************//
//程序:void LCD501_PutString(int x,int y,unsigned int a) [8x16] [6X8]
//描述: 显时8X16、6X8的自带ASCII字符,任意行定位
//参数:x 显示字符的起始列(0~128) y 显示字符的起始行(0~63)
// a ASCII码
// 声明: 手心 20070117 AVRGCC
//注意:
//********************************************************************************************//
void LCD501_PutString(int x,int y,unsigned char * string)
{
76c: ef 92 push r14
76e: ff 92 push r15
770: 0f 93 push r16
772: 1f 93 push r17
774: cf 93 push r28
776: df 93 push r29
778: 8c 01 movw r16, r24
77a: eb 01 movw r28, r22
77c: 7a 01 movw r14, r20
while(*string!=0)
{
if((x+8)>127)
{
x = 4;
y=y+8;
}
if((y+16)>63)
{
y =0;
}
LCD501_PutChar(x,y,(unsigned int)*string);
string++;
x+=8;
77e: fa 01 movw r30, r20
780: 80 81 ld r24, Z
782: 88 23 and r24, r24
784: f1 f0 breq .+60 ; 0x7c2 <LCD501_PutString+0x56>
786: c8 01 movw r24, r16
788: 08 96 adiw r24, 0x08 ; 8
78a: 80 38 cpi r24, 0x80 ; 128
78c: 91 05 cpc r25, r1
78e: 1c f0 brlt .+6 ; 0x796 <LCD501_PutString+0x2a>
790: 04 e0 ldi r16, 0x04 ; 4
792: 10 e0 ldi r17, 0x00 ; 0
794: 28 96 adiw r28, 0x08 ; 8
796: ce 01 movw r24, r28
798: 40 96 adiw r24, 0x10 ; 16
79a: 80 34 cpi r24, 0x40 ; 64
79c: 91 05 cpc r25, r1
79e: 14 f0 brlt .+4 ; 0x7a4 <LCD501_PutString+0x38>
7a0: c0 e0 ldi r28, 0x00 ; 0
7a2: d0 e0 ldi r29, 0x00 ; 0
7a4: f7 01 movw r30, r14
7a6: 81 91 ld r24, Z+
7a8: 7f 01 movw r14, r30
7aa: 99 27 eor r25, r25
7ac: ac 01 movw r20, r24
7ae: be 01 movw r22, r28
7b0: c8 01 movw r24, r16
7b2: 0e 94 15 03 call 0x62a <LCD501_PutChar>
7b6: 08 5f subi r16, 0xF8 ; 248
7b8: 1f 4f sbci r17, 0xFF ; 255
7ba: f7 01 movw r30, r14
7bc: 80 81 ld r24, Z
7be: 88 23 and r24, r24
7c0: 11 f7 brne .-60 ; 0x786 <LCD501_PutString+0x1a>
7c2: df 91 pop r29
7c4: cf 91 pop r28
7c6: 1f 91 pop r17
7c8: 0f 91 pop r16
7ca: ff 90 pop r15
7cc: ef 90 pop r14
7ce: 08 95 ret
000007d0 <_exit>:
7d0: ff cf rjmp .-2 ; 0x7d0 <_exit>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -