📄 rd_uselcdsp027.lis
字号:
009C ; NumberB,
009C ; NumberC,
009C ; SP027_CIRCLE
009C ; );
009C ; }
009C L6:
009C .dbline -2
009C L1:
009C .dbline 0 ; func end
009C 2596 adiw R28,5
009E 00C0 rjmp pop_xgsetF0FC
00A0 .dbsym r NumberA1 10 c
00A0 .dbsym r NumberB1 12 c
00A0 .dbsym r NumberC1 14 c
00A0 .dbsym r wAbsNUM0 10 i
00A0 .dbsym r nNumber 20 I
00A0 .dbend
00A0 .dbfunc e Set_DISP_BUFF_SP027 _Set_DISP_BUFF_SP027 fV
00A0 ; e -> y+4
00A0 ; d -> y+2
00A0 ; c -> y+0
00A0 ; b -> R18
00A0 ; a -> R16
.even
00A0 _Set_DISP_BUFF_SP027::
00A0 .dbline -1
00A0 .dbline 136
00A0 ; }
00A0 ;
00A0 ;
00A0 ; /***********************************************************
00A0 ; * 函数说明:显示缓冲区设置函数 *
00A0 ; * 输入: 要显示的5个数字量(BCD) *
00A0 ; * 输出: 无 *
00A0 ; * 调用函数:LCDSP027_refresh_DISP_BUFF() *
00A0 ; ***********************************************************/
00A0 ; void Set_DISP_BUFF_SP027(char a,char b,char c,char d,char e)
00A0 ; {
00A0 .dbline 137
00A0 ; LCDSP027_DispBuff[0] = a;
00A0 00930000 sts _LCDSP027_DispBuff,R16
00A4 .dbline 138
00A4 ; LCDSP027_DispBuff[1] = b;
00A4 20930100 sts _LCDSP027_DispBuff+1,R18
00A8 .dbline 139
00A8 ; LCDSP027_DispBuff[2] = c;
00A8 0880 ldd R0,y+0
00AA 00920200 sts _LCDSP027_DispBuff+2,R0
00AE .dbline 140
00AE ; LCDSP027_DispBuff[3] = d;
00AE 0A80 ldd R0,y+2
00B0 00920300 sts _LCDSP027_DispBuff+3,R0
00B4 .dbline 141
00B4 ; LCDSP027_DispBuff[4] = e;
00B4 0C80 ldd R0,y+4
00B6 00920400 sts _LCDSP027_DispBuff+4,R0
00BA .dbline -2
00BA L7:
00BA .dbline 0 ; func end
00BA 0895 ret
00BC .dbsym l e 4 c
00BC .dbsym l d 2 c
00BC .dbsym l c 0 c
00BC .dbsym r b 18 c
00BC .dbsym r a 16 c
00BC .dbend
00BC .dbfunc e LCDSP027_refresh_DISP_BUFF _LCDSP027_refresh_DISP_BUFF fV
00BC ; n1 -> R20
.even
00BC _LCDSP027_refresh_DISP_BUFF::
00BC 4A93 st -y,R20
00BE .dbline -1
00BE .dbline 153
00BE ;
00BE ; //LCDSP027_refresh_DISP_BUFF();
00BE ; }
00BE ;
00BE ; /***********************************************************
00BE ; * 函数说明:刷新显示缓冲区函数 *
00BE ; * 输入: 无 *
00BE ; * 输出: 无 *
00BE ; * 调用函数:LCDSP027_Send_Data() *
00BE ; ***********************************************************/
00BE ; void LCDSP027_refresh_DISP_BUFF(void)
00BE ; {
00BE .dbline 154
00BE ; char n = 0;
00BE .dbline 156
00BE ; //LCDSP027_Clear();
00BE ; for (n = 0;n<5;n++)
00BE 4427 clr R20
00C0 0FC0 rjmp L16
00C2 L13:
00C2 .dbline 157
00C2 ; {
00C2 .dbline 167
00C2 ; /*
00C2 ; if (n == 2)
00C2 ; {
00C2 ; LCDSP027_Send_Data
00C2 ; (
00C2 ; LCDSP027_DISPCODE[LCDSP027_DispBuff[n]] & ~BIT(0)
00C2 ; );
00C2 ; }
00C2 ; else*/
00C2 ; {
00C2 .dbline 168
00C2 ; LCDSP027_Send_Data(LCDSP027_DISPCODE[LCDSP027_DispBuff[n]]);
00C2 80E0 ldi R24,<_LCDSP027_DispBuff
00C4 90E0 ldi R25,>_LCDSP027_DispBuff
00C6 E42F mov R30,R20
00C8 FF27 clr R31
00CA E80F add R30,R24
00CC F91F adc R31,R25
00CE E081 ldd R30,z+0
00D0 FF27 clr R31
00D2 80E0 ldi R24,<_LCDSP027_DISPCODE
00D4 90E0 ldi R25,>_LCDSP027_DISPCODE
00D6 E80F add R30,R24
00D8 F91F adc R31,R25
00DA 0081 ldd R16,z+0
00DC 15D0 rcall _LCDSP027_Send_Data
00DE .dbline 169
00DE ; }
00DE .dbline 171
00DE ;
00DE ; }
00DE L14:
00DE .dbline 156
00DE 4395 inc R20
00E0 L16:
00E0 .dbline 156
00E0 4530 cpi R20,5
00E2 78F3 brlo L13
00E4 X2:
00E4 .dbline 172
00E4 ; SP027_CLK = LOW;
00E4 88B1 in R24,0x8
00E6 8F7E andi R24,239
00E8 88B9 out 0x8,R24
00EA .dbline 173
00EA ; SP027_CLK = HIGH;
00EA 88B1 in R24,0x8
00EC 8061 ori R24,16
00EE 88B9 out 0x8,R24
00F0 .dbline -2
00F0 L12:
00F0 .dbline 0 ; func end
00F0 4991 ld R20,y+
00F2 0895 ret
00F4 .dbsym r n1 20 c
00F4 .dbend
00F4 .dbfunc e LCDSP027_Clear _LCDSP027_Clear fV
.even
00F4 _LCDSP027_Clear::
00F4 2597 sbiw R28,5
00F6 .dbline -1
00F6 .dbline 183
00F6 ; }
00F6 ;
00F6 ; /***********************************************************
00F6 ; * 函数说明:清屏函数 *
00F6 ; * 输入: 无 *
00F6 ; * 输出: 无 *
00F6 ; * 调用函数:无 *
00F6 ; ***********************************************************/
00F6 ; void LCDSP027_Clear(void)
00F6 ; {
00F6 .dbline 193
00F6 ; /*
00F6 ; char n = 0;
00F6 ; for (n = 0;n<40;n++)
00F6 ; {
00F6 ; SP027_CLK = LOW;
00F6 ; SP027_DI = HIGH;
00F6 ; SP027_CLK = HIGH;
00F6 ; }
00F6 ; */
00F6 ; Set_DISP_BUFF_SP027
00F6 81E1 ldi R24,17
00F8 8C83 std y+4,R24
00FA 8A83 std y+2,R24
00FC 8883 std y+0,R24
00FE 21E1 ldi R18,17
0100 01E1 ldi R16,17
0102 CEDF rcall _Set_DISP_BUFF_SP027
0104 .dbline -2
0104 L17:
0104 .dbline 0 ; func end
0104 2596 adiw R28,5
0106 0895 ret
0108 .dbend
0108 .dbfunc s LCDSP027_Send_Data _LCDSP027_Send_Data fV
0108 ; n1 -> R20
0108 ; Data -> R10
.even
0108 _LCDSP027_Send_Data:
0108 AA92 st -y,R10
010A 4A93 st -y,R20
010C A02E mov R10,R16
010E .dbline -1
010E .dbline 210
010E ; (
010E ; SP027_NO_ICON,
010E ; SP027_NO_ICON,
010E ; SP027_NO_ICON,
010E ; SP027_NO_ICON,
010E ; SP027_NO_ICON
010E ; );
010E ; }
010E ;
010E ; /***********************************************************
010E ; * 函数说明:发送数据函数 *
010E ; * 输入: 无 *
010E ; * 输出: 无 *
010E ; * 调用函数:无 *
010E ; ***********************************************************/
010E ; static void LCDSP027_Send_Data(char Data)
010E ; {
010E .dbline 211
010E ; char n = 0;
010E .dbline 213
010E ;
010E ; for (n = 0;n<8;n++)
010E 4427 clr R20
0110 1AC0 rjmp L22
0112 L19:
0112 .dbline 214
0112 ; {
0112 .dbline 215
0112 ; SP027_CLK = LOW;
0112 88B1 in R24,0x8
0114 8F7E andi R24,239
0116 88B9 out 0x8,R24
0118 .dbline 216
0118 ; if (Data<<n>>7)
0118 0A2D mov R16,R10
011A 142F mov R17,R20
011C 00D0 rcall lsl8
011E 202E mov R2,R16
0120 2694 lsr R2
0122 2694 lsr R2
0124 2694 lsr R2
0126 2694 lsr R2
0128 2694 lsr R2
012A 2694 lsr R2
012C 2694 lsr R2
012E 21F0 breq L23
0130 X3:
0130 .dbline 217
0130 ; {
0130 .dbline 218
0130 ; SP027_DI = HIGH;
0130 88B1 in R24,0x8
0132 8062 ori R24,32
0134 88B9 out 0x8,R24
0136 .dbline 219
0136 ; }
0136 03C0 rjmp L24
0138 L23:
0138 .dbline 221
0138 ; else
0138 ; {
0138 .dbline 222
0138 ; SP027_DI = LOW;
0138 88B1 in R24,0x8
013A 8F7D andi R24,223
013C 88B9 out 0x8,R24
013E .dbline 223
013E ; }
013E L24:
013E .dbline 224
013E ; SP027_CLK = HIGH;
013E 88B1 in R24,0x8
0140 8061 ori R24,16
0142 88B9 out 0x8,R24
0144 .dbline 225
0144 ; }
0144 L20:
0144 .dbline 213
0144 4395 inc R20
0146 L22:
0146 .dbline 213
0146 4830 cpi R20,8
0148 20F3 brlo L19
014A X4:
014A .dbline -2
014A L18:
014A .dbline 0 ; func end
014A 4991 ld R20,y+
014C A990 ld R10,y+
014E 0895 ret
0150 .dbsym r n1 20 c
0150 .dbsym r Data 10 c
0150 .dbend
.area lit(rom, con, rel)
0000 L4:
0000 CDCCCC3D .word 0xcccd,0x3dcc
0004 ; }
0004 ;
0004 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -