⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 feedis_spi.lis

📁 AVR系列单片机ATMEGA64开发的LED显示屏程序 内容包括ATMEGA64大部分资源的初始化程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -