📄 main.lss
字号:
3ca: cf 93 push r28
3cc: df 93 push r29
3ce: ec 01 movw r28, r24
if(Contrast>0x3f)
3d0: 80 34 cpi r24, 0x40 ; 64
3d2: 91 05 cpc r25, r1
3d4: 10 f0 brcs .+4 ; 0x3da <LCD501_SetContrast+0x10>
Contrast = 0x3f;
3d6: cf e3 ldi r28, 0x3F ; 63
3d8: d0 e0 ldi r29, 0x00 ; 0
F_SPLC501_Write_Com(M_LCD_ELE_VOL); //电量设置模式(显示亮度)
3da: 81 e8 ldi r24, 0x81 ; 129
3dc: 90 e0 ldi r25, 0x00 ; 0
3de: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
F_SPLC501_Write_Com(Contrast); //电量设置模式(显示亮度)
3e2: ce 01 movw r24, r28
3e4: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
CurLCDSet = Contrast;
3e8: d0 93 c3 05 sts 0x05C3, r29
3ec: c0 93 c2 05 sts 0x05C2, r28
3f0: df 91 pop r29
3f2: cf 91 pop r28
3f4: 08 95 ret
000003f6 <LCD501_GetContrast>:
}
//***************************************************************************//
// 程序: unsigned int LCD501_GetContrast(void)
// 描述: 获取显示对比度 C语言调用
// 参数: 无
// 返回: 当前显示的对比度值
// 声明: 手心 20070117 AVRGCC
//***************************************************************************//
unsigned int LCD501_GetContrast(void)
{
return CurLCDSet;//
}
3f6: 80 91 c2 05 lds r24, 0x05C2
3fa: 90 91 c3 05 lds r25, 0x05C3
3fe: 08 95 ret
00000400 <LCD501_ScrollUp>:
//***************************************************************************//
// 程序: void LCD501_ScrollUp(unsigned int Rows)
// 描述: 屏幕向上滚动 C语言调用
// 参数: Rows 屏幕向上滚动的像素数,范围从1到64
// 返回: null
//***************************************************************************//
void LCD501_ScrollUp(unsigned int Rows)
{
CurScroll = CurScroll+Rows;
400: 20 91 c4 05 lds r18, 0x05C4
404: 30 91 c5 05 lds r19, 0x05C5
408: 28 0f add r18, r24
40a: 39 1f adc r19, r25
40c: 30 93 c5 05 sts 0x05C5, r19
410: 20 93 c4 05 sts 0x05C4, r18
while(CurScroll>=SCR_MAX_ROW)
CurScroll -= SCR_MAX_ROW;
414: 20 34 cpi r18, 0x40 ; 64
416: 31 05 cpc r19, r1
418: 50 f0 brcs .+20 ; 0x42e <LCD501_ScrollUp+0x2e>
41a: c9 01 movw r24, r18
41c: 80 54 subi r24, 0x40 ; 64
41e: 90 40 sbci r25, 0x00 ; 0
420: 80 34 cpi r24, 0x40 ; 64
422: 91 05 cpc r25, r1
424: d8 f7 brcc .-10 ; 0x41c <LCD501_ScrollUp+0x1c>
426: 90 93 c5 05 sts 0x05C5, r25
42a: 80 93 c4 05 sts 0x05C4, r24
F_SPLC501_Write_Com(M_LCD_BEGIN_LINE+CurScroll); //设置显示起始行对应RAM
42e: 80 91 c4 05 lds r24, 0x05C4
432: 90 91 c5 05 lds r25, 0x05C5
436: 80 5c subi r24, 0xC0 ; 192
438: 9f 4f sbci r25, 0xFF ; 255
43a: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
43e: 08 95 ret
00000440 <LCD501_GetScroll>:
}
//***************************************************************************//
// 程序: unsigned int LCD501_GetScroll(void)
// 描述: 获取屏幕已经向上滚动的值 C语言调用
// 参数: 无
// 返回: 屏幕已经向上滚动的值
// 声明: 手心 20070117 AVRGCC
//***************************************************************************//
unsigned int LCD501_GetScroll(void)
{
return CurScroll;//
}
440: 80 91 c4 05 lds r24, 0x05C4
444: 90 91 c5 05 lds r25, 0x05C5
448: 08 95 ret
0000044a <LCD501_ReverseColor>:
//***************************************************************************//
// 程序: void LCD501_ReverseColor(void)
// 描述: 屏幕反色显示。每执行一次该函数,屏幕颜色翻转一次。 C语言调用
// 参数: 无
// 返回: 无
// 声明: 手心 20070117 AVRGCC
// 注意: 无
//***************************************************************************//
void LCD501_ReverseColor(void)
{
if(CurScrMode)//
44a: 80 91 be 05 lds r24, 0x05BE
44e: 90 91 bf 05 lds r25, 0x05BF
452: 89 2b or r24, r25
454: 49 f0 breq .+18 ; 0x468 <__stack+0x9>
{
F_SPLC501_Write_Com(M_LCD_ALL_REV); //正向反向显示控制指令
456: 87 ea ldi r24, 0xA7 ; 167
458: 90 e0 ldi r25, 0x00 ; 0
45a: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
CurScrMode = 0;
45e: 10 92 bf 05 sts 0x05BF, r1
462: 10 92 be 05 sts 0x05BE, r1
466: 08 95 ret
}
else
{
F_SPLC501_Write_Com(M_LCD_ALL_NOR); //正向反向显示控制指令
468: 86 ea ldi r24, 0xA6 ; 166
46a: 90 e0 ldi r25, 0x00 ; 0
46c: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
CurScrMode = 1;
470: 81 e0 ldi r24, 0x01 ; 1
472: 90 e0 ldi r25, 0x00 ; 0
474: 90 93 bf 05 sts 0x05BF, r25
478: 80 93 be 05 sts 0x05BE, r24
47c: 08 95 ret
0000047e <LCD501_ClrScreen>:
}
}
//***************************************************************************//
//程序:LCD501_ClrScreen(unsigned int Mode)
//描述:液晶整屏清屏函数 C语言调用
//参数:unsigned int Mode 清屏类型Mode=1 则全点亮,Mode=0 内全清零
// 声明: 手心 20070117 AVRGCC
//***************************************************************************//
void LCD501_ClrScreen(unsigned int Mode)
{
47e: cf 92 push r12
480: df 92 push r13
482: ef 92 push r14
484: ff 92 push r15
486: 0f 93 push r16
488: 1f 93 push r17
48a: cf 93 push r28
48c: df 93 push r29
48e: 8c 01 movw r16, r24
unsigned int i,j;
if(Mode)
490: 89 2b or r24, r25
492: 11 f0 breq .+4 ; 0x498 <LCD501_ClrScreen+0x1a>
Mode = 0xff;
494: 0f ef ldi r16, 0xFF ; 255
496: 10 e0 ldi r17, 0x00 ; 0
else
Mode = 0x00;
for(i=0;i<8;i++)
498: cc 24 eor r12, r12
49a: dd 24 eor r13, r13
49c: 40 eb ldi r20, 0xB0 ; 176
49e: e4 2e mov r14, r20
4a0: f1 2c mov r15, r1
{
F_SPLC501_Write_Com(M_LCD_COL_PAGE+i);
4a2: c7 01 movw r24, r14
4a4: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
F_SPLC501_Write_Com(M_LCD_COL_LINE_LOW);
4a8: 84 e0 ldi r24, 0x04 ; 4
4aa: 90 e0 ldi r25, 0x00 ; 0
4ac: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
F_SPLC501_Write_Com(M_LCD_COL_LINE_HIG);
4b0: 80 e1 ldi r24, 0x10 ; 16
4b2: 90 e0 ldi r25, 0x00 ; 0
4b4: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
4b8: cf e7 ldi r28, 0x7F ; 127
4ba: d0 e0 ldi r29, 0x00 ; 0
for(j=0;j<128;j++)
{
F_SPLC501_Write_Data(Mode);
4bc: c8 01 movw r24, r16
4be: 0e 94 ae 00 call 0x15c <F_SPLC501_Write_Data>
4c2: 21 97 sbiw r28, 0x01 ; 1
4c4: d7 ff sbrs r29, 7
4c6: fa cf rjmp .-12 ; 0x4bc <LCD501_ClrScreen+0x3e>
4c8: 08 94 sec
4ca: c1 1c adc r12, r1
4cc: d1 1c adc r13, r1
4ce: 08 94 sec
4d0: e1 1c adc r14, r1
4d2: f1 1c adc r15, r1
4d4: 88 e0 ldi r24, 0x08 ; 8
4d6: c8 16 cp r12, r24
4d8: d1 04 cpc r13, r1
4da: 18 f3 brcs .-58 ; 0x4a2 <LCD501_ClrScreen+0x24>
}
}
F_SPLC501_Write_Com(0xee); //读改写模式结束指令
4dc: 8e ee ldi r24, 0xEE ; 238
4de: 90 e0 ldi r25, 0x00 ; 0
4e0: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
4e4: df 91 pop r29
4e6: cf 91 pop r28
4e8: 1f 91 pop r17
4ea: 0f 91 pop r16
4ec: ff 90 pop r15
4ee: ef 90 pop r14
4f0: df 90 pop r13
4f2: cf 90 pop r12
4f4: 08 95 ret
000004f6 <F_LCD_LineRun>:
}
//***************************************************************************//
//程序:F_LCD_LineRun(unsigned int line)
//描述:液晶显示起始行设置函数 C语言调用 (滚屏功能用)
//参数:unsigned int line 起始RAM行,0~63
// 声明: 手心 20070117 AVRGCC
//***************************************************************************//
void F_LCD_LineRun(unsigned int line)
{
if(line>=64)
4f6: 80 34 cpi r24, 0x40 ; 64
4f8: 91 05 cpc r25, r1
4fa: 10 f0 brcs .+4 ; 0x500 <F_LCD_LineRun+0xa>
line = 0;
4fc: 80 e0 ldi r24, 0x00 ; 0
4fe: 90 e0 ldi r25, 0x00 ; 0
F_SPLC501_Write_Com(M_LCD_BEGIN_LINE+line); //设置显示起始行对应RAM
500: 80 5c subi r24, 0xC0 ; 192
502: 9f 4f sbci r25, 0xFF ; 255
504: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
508: 08 95 ret
0000050a <LCD501_FontSet>:
}
//****************************************************************************************//
//程序:void LCD501_FontSet(unsinged int Font) [8x16] [6X8]
//描述: 选择显示字符的大小类型
//参数:Font 字符的类型选择 1 8X16 0 6X8
// 声明: 手心 20070117 AVRGCC
//注意: 只针对显示驱动中包含的ASCII码显示
//*****************************************************************************************//
void LCD501_FontSet(unsigned int Font)
{
if(Font) CurASCIIFont = 1;
50a: 00 97 sbiw r24, 0x00 ; 0
50c: 11 f0 breq .+4 ; 0x512 <LCD501_FontSet+0x8>
50e: 81 e0 ldi r24, 0x01 ; 1
510: 90 e0 ldi r25, 0x00 ; 0
else CurASCIIFont = 0;
512: 90 93 c7 05 sts 0x05C7, r25
516: 80 93 c6 05 sts 0x05C6, r24
51a: 08 95 ret
0000051c <LCD501_FontGet>:
}
//****************************************************************************************//
//程序:unsigned int LCD501_FontGet(void) [8x16] [6X8]
//描述: 获取当前显示字符的大小类型
//返回:Font 字符的类型选择 1 8X16 0 6X8
//声明: xinqiang 20050519 sunnorth Mz Design
//注意: 只针对显示驱动中包含的ASCII码显示
//*****************************************************************************************//
unsigned int LCD501_FontGet(void)
{
return CurASCIIFont;
}
51c: 80 91 c6 05 lds r24, 0x05C6
520: 90 91 c7 05 lds r25, 0x05C7
524: 08 95 ret
00000526 <F_LCD_WASII>:
//****************************************************************************************//
//程序:void F_LCD_WASII(int x,int page,unsigned int a) [8x16] [6X8]
//描述: 显时8X16的自带ASCII字符,定Page显示,不能任意行定位
//参数:x 显示字符的起始列(0~128) page 显示字符的起始页(0~6)
// a ASCII码 Font 字符的类型选择 1 16X8 0 6X8
// 声明: 手心 20070117 AVRGCC
//注意:
//*****************************************************************************************//
void F_LCD_WASII(int page,int y,unsigned char a)
{
526: af 92 push r10
528: bf 92 push r11
52a: cf 92 push r12
52c: df 92 push r13
52e: ef 92 push r14
530: ff 92 push r15
532: 0f 93 push r16
534: 1f 93 push r17
536: cf 93 push r28
538: 5c 01 movw r10, r24
53a: 6b 01 movw r12, r22
53c: c4 2f mov r28, r20
int i,j,x_com; //数据暂存
if(a>=0x61)
53e: 41 36 cpi r20, 0x61 ; 97
540: 38 f0 brcs .+14 ; 0x550 <F_LCD_WASII+0x2a>
a=a-0x61+36*8+(a-0x61)*8;
542: 84 2f mov r24, r20
544: 88 0f add r24, r24
546: 88 0f add r24, r24
548: 88 0f add r24, r24
54a: c8 0f add r28, r24
54c: c9 54 subi r28, 0x49 ; 73
54e: 13 c0 rjmp .+38 ; 0x576 <F_LCD_WASII+0x50>
550: e4 2f mov r30, r20
552: ff 27 eor r31, r31
else
if(a>=0x41)
554: 41 34 cpi r20, 0x41 ; 65
556: 40 f0 brcs .+16 ; 0x568 <F_LCD_WASII+0x42>
a=a-0x41+80+(a-0x41)*8;
558: a3 e0 ldi r26, 0x03 ; 3
55a: ee 0f add r30, r30
55c: ff 1f adc r31, r31
55e: aa 95 dec r26
560: e1 f7 brne .-8 ; 0x55a <F_LCD_WASII+0x34>
562: ce 0f add r28, r30
564: c9 5f subi r28, 0xF9 ; 249
566: 07 c0 rjmp .+14 ; 0x576 <F_LCD_WASII+0x50>
else
a=a-0x30+(a-0x30)*8;
568: 73 e0 ldi r23, 0x03 ; 3
56a: ee 0f add r30, r30
56c: ff 1f adc r31, r31
56e: 7a 95 dec r23
570: e1 f7 brne .-8 ; 0x56a <F_LCD_WASII+0x44>
572: ce 0f add r28, r30
574: c0 5b subi r28, 0xB0 ; 176
F_SPLC501_Write_Com(M_LCD_BEGIN_LINE+0); //设置显示起始行对应RAM
576: 80 e4 ldi r24, 0x40 ; 64
578: 90 e0 ldi r25, 0x00 ; 0
57a: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
if((page+2)<8)
57e: c5 01 movw r24, r10
580: 02 96 adiw r24, 0x02 ; 2
582: 08 97 sbiw r24, 0x08 ; 8
584: 0c f0 brlt .+2 ; 0x588 <F_LCD_WASII+0x62>
586: 43 c0 rjmp .+134 ; 0x60e <F_LCD_WASII+0xe8>
{
for(j=0;j<2;j++)
588: ee 24 eor r14, r14
58a: ff 24 eor r15, r15
{
x_com = page+0xb0;
58c: c5 01 movw r24, r10
58e: 80 55 subi r24, 0x50 ; 80
590: 9f 4f sbci r25, 0xFF ; 255
F_SPLC501_Write_Com(x_com+j); //起始页
592: 8e 0d add r24, r14
594: 9f 1d adc r25, r15
596: 0e 94 a7 00 call 0x14e <F_SPLC501_Write_Com>
F_SPLC501_Write_Com(((y>>4)&0x0f)|0x10); //设置初始地址 列地址高位
59a: c6 01 movw r24, r12
59c: 64 e0 ldi r22, 0x04 ; 4
59e: 95 95 asr r25
5a0: 87 95 ror r24
5a2: 6a 95 dec r22
5a4: e1 f7 brne .-8 ; 0x59e <F_LCD_WASII+0x78>
5a6: 8f 70 andi r24, 0x0F ; 15
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -