📄 feedis_spi.lis
字号:
009A ; //CLEAR_SS(); //PULL DOWN THE SS PIN
009A ; //spi_sendbyte(PLAYCURRENT);
009A ; //SET_SS(); //pull up the ss pin
009A ;
009A ; return 0;
009A 0027 clr R16
009C .dbline -2
009C L10:
009C 0E940000 xcall pop_gset1
00A0 .dbline 0 ; func end
00A0 0895 ret
00A2 .dbsym r ADD 20 i
00A2 .dbsym r num 20 c
00A2 .dbend
00A2 .dbfunc e ISDpowerdown _ISDpowerdown fV
.even
00A2 _ISDpowerdown::
00A2 .dbline -1
00A2 .dbline 139
00A2 ; }
00A2 ;
00A2 ; void ISDpowerdown(void)
00A2 ; {
00A2 .dbline 140
00A2 ; CLEAR_SS();
00A2 C098 cbi 0x18,0
00A4 .dbline 141
00A4 ; spi_sendbyte(POWERDOWN);
00A4 00E1 ldi R16,16
00A6 BADF xcall _spi_sendbyte
00A8 .dbline 142
00A8 ; SET_SS();
00A8 C09A sbi 0x18,0
00AA .dbline -2
00AA L11:
00AA .dbline 0 ; func end
00AA 0895 ret
00AC .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\DOCUME~1\11111\桌面\13个费显MEGA64\重显MEGA64\feedis_spi.c
0000 L13:
0000 .blkb 1
.area text(rom, con, rel)
00AC .dbfile C:\DOCUME~1\11111\桌面\13个费显MEGA64\重显MEGA64\feedis_spi.c
00AC .dbfunc e ISDmonitor _ISDmonitor fc
00AC .dbsym s temp L13 c
00AC ; temp1 -> R20
.even
00AC _ISDmonitor::
00AC 0E940000 xcall push_gset1
00B0 .dbline -1
00B0 .dbline 145
00B0 ; }
00B0 ; uchar ISDmonitor(void)
00B0 ; {
00B0 .dbline 152
00B0 ; static uchar temp ;
00B0 ;
00B0 ; //static uchar round ;
00B0 ; //if(ISDstatus & 1)
00B0 ; //{
00B0 ;
00B0 ; if(ISDstatus & 0x02) //如果上一句还未讲完,不能说话
00B0 20900600 lds R2,_ISDstatus
00B4 21FE sbrs R2,1
00B6 02C0 rjmp L14
00B8 .dbline 153
00B8 ; {
00B8 .dbline 156
00B8 ; //countwait++;
00B8 ; //if(countwait < 150)
00B8 ; return 0;
00B8 0027 clr R16
00BA 78C1 xjmp L12
00BC L14:
00BC .dbline 161
00BC ; //countwait = 0;
00BC ; //ISDstatus &= ~0x02;
00BC ; //SPEAK = 1;
00BC ; }
00BC ; ISDstatus |= 0x02;
00BC 80910600 lds R24,_ISDstatus
00C0 8260 ori R24,2
00C2 80930600 sts _ISDstatus,R24
00C6 .dbline 162
00C6 ; if((ISDstatus & 0xe0) == 0xe0)
00C6 80910600 lds R24,_ISDstatus
00CA 807E andi R24,224
00CC 803E cpi R24,224
00CE 81F4 brne L16
00D0 .dbline 163
00D0 ; {
00D0 .dbline 165
00D0 ;
00D0 ; ISDplay(34 + ISDmoney[4] ); //播放"你好,几型车"
00D0 00910500 lds R16,_ISDmoney+4
00D4 0E5D subi R16,222 ; addi 34
00D6 CBDF xcall _ISDplay
00D8 .dbline 167
00D8 ; //ISDplay(39); //播放"你好,几型车"
00D8 ; ISDstatus &= 0x1f;
00D8 80910600 lds R24,_ISDstatus
00DC 8F71 andi R24,31
00DE 80930600 sts _ISDstatus,R24
00E2 .dbline 168
00E2 ; ISDstatus |= 0xc0;
00E2 80910600 lds R24,_ISDstatus
00E6 806C ori R24,192
00E8 80930600 sts _ISDstatus,R24
00EC .dbline 170
00EC ;
00EC ; return 0;
00EC 0027 clr R16
00EE 5EC1 xjmp L12
00F0 L16:
00F0 .dbline 172
00F0 ; }
00F0 ; if((ISDstatus & 0xe0) == 0xc0)
00F0 80910600 lds R24,_ISDstatus
00F4 807E andi R24,224
00F6 803C cpi R24,192
00F8 71F4 brne L19
00FA .dbline 173
00FA ; {
00FA .dbline 175
00FA ; //ISDstatus |= 0x02;
00FA ; ISDplay(20); //播放"请交"
00FA 04E1 ldi R16,20
00FC B8DF xcall _ISDplay
00FE .dbline 176
00FE ; ISDstatus &= 0x1f;
00FE 80910600 lds R24,_ISDstatus
0102 8F71 andi R24,31
0104 80930600 sts _ISDstatus,R24
0108 .dbline 177
0108 ; ISDstatus |= 0xa0;
0108 80910600 lds R24,_ISDstatus
010C 806A ori R24,160
010E 80930600 sts _ISDstatus,R24
0112 .dbline 179
0112 ;
0112 ; return 0;
0112 0027 clr R16
0114 4BC1 xjmp L12
0116 L19:
0116 .dbline 181
0116 ; }
0116 ; if((ISDstatus & 0xe0) == 0xa0)
0116 80910600 lds R24,_ISDstatus
011A 807E andi R24,224
011C 803A cpi R24,160
011E 09F0 breq X2
0120 35C1 xjmp L21
0122 X2:
0122 .dbline 182
0122 ; {
0122 .dbline 184
0122 ; uchar temp1;
0122 ; if(temp != 4)
0122 80910000 lds R24,L13
0126 8430 cpi R24,4
0128 41F0 breq L23
012A .dbline 185
012A ; temp = (ISDstatus&0x18)>> 3;
012A 80910600 lds R24,_ISDstatus
012E 8871 andi R24,24
0130 8695 lsr R24
0132 8695 lsr R24
0134 8695 lsr R24
0136 80930000 sts L13,R24
013A L23:
013A .dbline 186
013A ; switch(temp)
013A 40910000 lds R20,L13
013E 5527 clr R21
0140 4030 cpi R20,0
0142 4507 cpc R20,R21
0144 09F4 brne X3
0146 F5C0 xjmp L61
0148 X3:
0148 X0:
0148 4130 cpi R20,1
014A E0E0 ldi R30,0
014C 5E07 cpc R21,R30
014E 09F4 brne X4
0150 A5C0 xjmp L50
0152 X4:
0152 4230 cpi R20,2
0154 E0E0 ldi R30,0
0156 5E07 cpc R21,R30
0158 09F4 brne X5
015A 55C0 xjmp L39
015C X5:
015C 4330 cpi R20,3
015E E0E0 ldi R30,0
0160 5E07 cpc R21,R30
0162 31F0 breq L28
0164 4430 cpi R20,4
0166 E0E0 ldi R30,0
0168 5E07 cpc R21,R30
016A 09F4 brne X6
016C 08C1 xjmp L64
016E X6:
016E 0CC1 xjmp L26
0170 X1:
0170 .dbline 187
0170 ; {
0170 L28:
0170 .dbline 190
0170 ;
0170 ; case 3:
0170 ; ISDplay(ISDmoney[temp]+82);
0170 80E0 ldi R24,<_ISDmoney
0172 90E0 ldi R25,>_ISDmoney
0174 E0910000 lds R30,L13
0178 FF27 clr R31
017A E80F add R30,R24
017C F91F adc R31,R25
017E 0081 ldd R16,z+0
0180 0E5A subi R16,174 ; addi 82
0182 75DF xcall _ISDplay
0184 .dbline 191
0184 ; temp1 = 0;
0184 4427 clr R20
0186 3BC0 xjmp L30
0188 L29:
0188 .dbline 193
0188 ; while(temp1 < 3)
0188 ; {
0188 .dbline 194
0188 ; if(!ISDmoney[temp-1])
0188 80E0 ldi R24,<_ISDmoney-1
018A 90E0 ldi R25,>_ISDmoney-1
018C E0910000 lds R30,L13
0190 FF27 clr R31
0192 E80F add R30,R24
0194 F91F adc R31,R25
0196 2080 ldd R2,z+0
0198 2220 tst R2
019A 31F4 brne L32
019C .dbline 195
019C ; {
019C .dbline 197
019C ;
019C ; temp--;
019C 80910000 lds R24,L13
01A0 8150 subi R24,1
01A2 80930000 sts L13,R24
01A6 .dbline 199
01A6 ;
01A6 ; }
01A6 1BC0 xjmp L33
01A8 L32:
01A8 .dbline 201
01A8 ; else
01A8 ; {
01A8 .dbline 202
01A8 ; ISDstatus &= 0b11100111;
01A8 80910600 lds R24,_ISDstatus
01AC 877E andi R24,231
01AE 80930600 sts _ISDstatus,R24
01B2 .dbline 203
01B2 ; ISDstatus += (--temp) << 3;
01B2 80910000 lds R24,L13
01B6 8150 subi R24,1
01B8 282E mov R2,R24
01BA 20920000 sts L13,R2
01BE 220C lsl R2
01C0 220C lsl R2
01C2 220C lsl R2
01C4 30900600 lds R3,_ISDstatus
01C8 320C add R3,R2
01CA 30920600 sts _ISDstatus,R3
01CE .dbline 204
01CE ; if((temp1 > 0) )
01CE 2224 clr R2
01D0 2416 cp R2,R20
01D2 08F0 brlo X7
01D4 D9C0 xjmp L26
01D6 X7:
01D6 .dbline 205
01D6 ; temp = 4;
01D6 84E0 ldi R24,4
01D8 80930000 sts L13,R24
01DC .dbline 206
01DC ; break;
01DC D5C0 xjmp L26
01DE L33:
01DE .dbline 208
01DE ; }
01DE ; temp1++;
01DE 4395 inc R20
01E0 .dbline 209
01E0 ; if(temp1 == 3)
01E0 4330 cpi R20,3
01E2 69F4 brne L37
01E4 .dbline 210
01E4 ; {
01E4 .dbline 211
01E4 ; ISDstatus &= 0x1f;
01E4 80910600 lds R24,_ISDstatus
01E8 8F71 andi R24,31
01EA 80930600 sts _ISDstatus,R24
01EE .dbline 212
01EE ; ISDstatus |= 0x80;
01EE 80910600 lds R24,_ISDstatus
01F2 8068 ori R24,128
01F4 80930600 sts _ISDstatus,R24
01F8 .dbline 213
01F8 ; SPEAK = 0;
01F8 2224 clr R2
01FA 20920000 sts _SPEAK,R2
01FE .dbline 214
01FE ; }
01FE L37:
01FE .dbline 215
01FE L30:
01FE .dbline 192
01FE 4330 cpi R20,3
0200 08F4 brsh X8
0202 C2CF xjmp L29
0204 X8:
0204 .dbline 217
0204 ; }
0204 ;
0204 ; break;
0204 C1C0 xjmp L26
0206 L39:
0206 .dbline 219
0206 ; case 2:
0206 ; ISDplay(ISDmoney[temp]+73);
0206 80E0 ldi R24,<_ISDmoney
0208 90E0 ldi R25,>_ISDmoney
020A E0910000 lds R30,L13
020E FF27 clr R31
0210 E80F add R30,R24
0212 F91F adc R31,R25
0214 0081 ldd R16,z+0
0216 075B subi R16,183 ; addi 73
0218 2ADF xcall _ISDplay
021A .dbline 220
021A ; temp1 = 0;
021A 4427 clr R20
021C 3BC0 xjmp L41
021E L40:
021E .dbline 222
021E ; while(temp1 < 2)
021E ; {
021E .dbline 223
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -