📄 rd_uselcdsp027.lis
字号:
001E .dbline -1
001E .dbline 152
001E ;
001E ; //LCDSP027_refresh_DISP_BUFF();
001E ; }
001E ;
001E ; /***********************************************************
001E ; * 函数说明:刷新显示缓冲区函数 *
001E ; * 输入: 无 *
001E ; * 输出: 无 *
001E ; * 调用函数:LCDSP027_Send_Data() *
001E ; ***********************************************************/
001E ; void LCDSP027_refresh_DISP_BUFF(void)
001E ; {
001E .dbline 153
001E ; char n = 0;
001E .dbline 155
001E ; //LCDSP027_Clear();
001E ; for (n = 0;n<5;n++)
001E 4427 clr R20
0020 21C0 xjmp L10
0022 L7:
0022 .dbline 156
0022 ; {
0022 .dbline 157
0022 ; if (n == 2)
0022 4230 cpi R20,2
0024 81F4 brne L11
0026 X0:
0026 .dbline 158
0026 ; {
0026 .dbline 159
0026 ; LCDSP027_Send_Data
0026 80E0 ldi R24,<_LCDSP027_DispBuff
0028 90E0 ldi R25,>_LCDSP027_DispBuff
002A E42F mov R30,R20
002C FF27 clr R31
002E E80F add R30,R24
0030 F91F adc R31,R25
0032 E081 ldd R30,z+0
0034 FF27 clr R31
0036 80E0 ldi R24,<_LCDSP027_DISPCODE
0038 90E0 ldi R25,>_LCDSP027_DISPCODE
003A E80F add R30,R24
003C F91F adc R31,R25
003E 0081 ldd R16,z+0
0040 0E7F andi R16,254
0042 24D0 xcall _LCDSP027_Send_Data
0044 .dbline 163
0044 ; (
0044 ; LCDSP027_DISPCODE[LCDSP027_DispBuff[n]] & ~BIT(0)
0044 ; );
0044 ; }
0044 0EC0 xjmp L12
0046 L11:
0046 .dbline 165
0046 ; else
0046 ; {
0046 .dbline 166
0046 ; LCDSP027_Send_Data(LCDSP027_DISPCODE[LCDSP027_DispBuff[n]]);
0046 80E0 ldi R24,<_LCDSP027_DispBuff
0048 90E0 ldi R25,>_LCDSP027_DispBuff
004A E42F mov R30,R20
004C FF27 clr R31
004E E80F add R30,R24
0050 F91F adc R31,R25
0052 E081 ldd R30,z+0
0054 FF27 clr R31
0056 80E0 ldi R24,<_LCDSP027_DISPCODE
0058 90E0 ldi R25,>_LCDSP027_DISPCODE
005A E80F add R30,R24
005C F91F adc R31,R25
005E 0081 ldd R16,z+0
0060 15D0 xcall _LCDSP027_Send_Data
0062 .dbline 167
0062 ; }
0062 L12:
0062 .dbline 169
0062 ;
0062 ; }
0062 L8:
0062 .dbline 155
0062 4395 inc R20
0064 L10:
0064 .dbline 155
0064 4530 cpi R20,5
0066 E8F2 brlo L7
0068 X1:
0068 .dbline 170
0068 ; SP027_CLK = LOW;
0068 85B3 in R24,0x15
006A 8D7F andi R24,253
006C 85BB out 0x15,R24
006E .dbline 171
006E ; SP027_CLK = HIGH;
006E 85B3 in R24,0x15
0070 8260 ori R24,2
0072 85BB out 0x15,R24
0074 .dbline -2
0074 L6:
0074 .dbline 0 ; func end
0074 4991 ld R20,y+
0076 0895 ret
0078 .dbsym r n1 20 c
0078 .dbend
0078 .dbfunc e LCDSP027_Clear _LCDSP027_Clear fV
.even
0078 _LCDSP027_Clear::
0078 2597 sbiw R28,5
007A .dbline -1
007A .dbline 181
007A ; }
007A ;
007A ; /***********************************************************
007A ; * 函数说明:清屏函数 *
007A ; * 输入: 无 *
007A ; * 输出: 无 *
007A ; * 调用函数:无 *
007A ; ***********************************************************/
007A ; void LCDSP027_Clear(void)
007A ; {
007A .dbline 191
007A ; /*
007A ; char n = 0;
007A ; for (n = 0;n<40;n++)
007A ; {
007A ; SP027_CLK = LOW;
007A ; SP027_DI = HIGH;
007A ; SP027_CLK = HIGH;
007A ; }
007A ; */
007A ; Set_DISP_BUFF_SP027
007A 81E1 ldi R24,17
007C 8C83 std y+4,R24
007E 8A83 std y+2,R24
0080 8883 std y+0,R24
0082 21E1 ldi R18,17
0084 01E1 ldi R16,17
0086 BCDF xcall _Set_DISP_BUFF_SP027
0088 .dbline -2
0088 L13:
0088 .dbline 0 ; func end
0088 2596 adiw R28,5
008A 0895 ret
008C .dbend
008C .dbfunc s LCDSP027_Send_Data _LCDSP027_Send_Data fV
008C ; n1 -> R20
008C ; Data -> R10
.even
008C _LCDSP027_Send_Data:
008C AA92 st -y,R10
008E 4A93 st -y,R20
0090 A02E mov R10,R16
0092 .dbline -1
0092 .dbline 208
0092 ; (
0092 ; SP027_NO_ICON,
0092 ; SP027_NO_ICON,
0092 ; SP027_NO_ICON,
0092 ; SP027_NO_ICON,
0092 ; SP027_NO_ICON
0092 ; );
0092 ; }
0092 ;
0092 ; /***********************************************************
0092 ; * 函数说明:发送数据函数 *
0092 ; * 输入: 无 *
0092 ; * 输出: 无 *
0092 ; * 调用函数:无 *
0092 ; ***********************************************************/
0092 ; static void LCDSP027_Send_Data(char Data)
0092 ; {
0092 .dbline 209
0092 ; char n = 0;
0092 .dbline 211
0092 ;
0092 ; for (n = 0;n<8;n++)
0092 4427 clr R20
0094 1BC0 xjmp L18
0096 L15:
0096 .dbline 212
0096 ; {
0096 .dbline 213
0096 ; SP027_CLK = LOW;
0096 85B3 in R24,0x15
0098 8D7F andi R24,253
009A 85BB out 0x15,R24
009C .dbline 214
009C ; if (Data<<n>>7)
009C 0A2D mov R16,R10
009E 142F mov R17,R20
00A0 0E940000 xcall lsl8
00A4 202E mov R2,R16
00A6 2694 lsr R2
00A8 2694 lsr R2
00AA 2694 lsr R2
00AC 2694 lsr R2
00AE 2694 lsr R2
00B0 2694 lsr R2
00B2 2694 lsr R2
00B4 21F0 breq L19
00B6 X2:
00B6 .dbline 215
00B6 ; {
00B6 .dbline 216
00B6 ; SP027_DI = HIGH;
00B6 85B3 in R24,0x15
00B8 8160 ori R24,1
00BA 85BB out 0x15,R24
00BC .dbline 217
00BC ; }
00BC 03C0 xjmp L20
00BE L19:
00BE .dbline 219
00BE ; else
00BE ; {
00BE .dbline 220
00BE ; SP027_DI = LOW;
00BE 85B3 in R24,0x15
00C0 8E7F andi R24,254
00C2 85BB out 0x15,R24
00C4 .dbline 221
00C4 ; }
00C4 L20:
00C4 .dbline 222
00C4 ; SP027_CLK = HIGH;
00C4 85B3 in R24,0x15
00C6 8260 ori R24,2
00C8 85BB out 0x15,R24
00CA .dbline 223
00CA ; }
00CA L16:
00CA .dbline 211
00CA 4395 inc R20
00CC L18:
00CC .dbline 211
00CC 4830 cpi R20,8
00CE 18F3 brlo L15
00D0 X3:
00D0 .dbline -2
00D0 L14:
00D0 .dbline 0 ; func end
00D0 4991 ld R20,y+
00D2 A990 ld R10,y+
00D4 0895 ret
00D6 .dbsym r n1 20 c
00D6 .dbsym r Data 10 c
00D6 .dbend
00D6 ; }
00D6 ;
00D6 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -