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

📄 main.lis

📁 一个单片机的完整开发程序AVR的
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00C2 0895              ret
 00C4                   .dbend
 00C4                   .dbfunc e send_ans _send_ans fV
 00C4           ;            chk -> R20
 00C4           ;              i -> R22
 00C4           ;        ans_num -> R10
 00C4           ;       star_num -> R12
 00C4           ;      star_flag -> R22
                        .even
 00C4           _send_ans::
 00C4 0E940000          xcall push_gset4
 00C8 C22E              mov R12,R18
 00CA 602F              mov R22,R16
 00CC A884              ldd R10,y+8
 00CE                   .dbline -1
 00CE                   .dbline 99
 00CE           ; }
 00CE           ; 
 00CE           ; void send_ans(unsigned char star_flag,unsigned char star_num,unsigned char ans_num)
 00CE           ; {
 00CE                   .dbline 101
 00CE           ;  unsigned char i,chk;
 00CE           ;  chk=0xFF;
 00CE 4FEF              ldi R20,255
 00D0                   .dbline 102
 00D0           ;  chk=0xFF^star_flag;
 00D0 8FEF              ldi R24,255
 00D2 90E0              ldi R25,0
 00D4 462F              mov R20,R22
 00D6 5527              clr R21
 00D8 4827              eor R20,R24
 00DA 5927              eor R21,R25
 00DC                   .dbline 103
 00DC           ;       sendchar(star_flag);
 00DC 062F              mov R16,R22
 00DE EADF              xcall _sendchar
 00E0                   .dbline 104
 00E0           ;       chk^=0x78;
 00E0 88E7              ldi R24,120
 00E2 4827              eor R20,R24
 00E4                   .dbline 105
 00E4           ;       sendchar(0x78);
 00E4 08E7              ldi R16,120
 00E6 E6DF              xcall _sendchar
 00E8                   .dbline 106
 00E8           ;       chk^=0xAB;
 00E8 8BEA              ldi R24,171
 00EA 90E0              ldi R25,0
 00EC 242E              mov R2,R20
 00EE 3324              clr R3
 00F0 2826              eor R2,R24
 00F2 3926              eor R3,R25
 00F4 422D              mov R20,R2
 00F6                   .dbline 107
 00F6           ;       sendchar(0xAB);
 00F6 0BEA              ldi R16,171
 00F8 DDDF              xcall _sendchar
 00FA                   .dbline 108
 00FA           ;       chk^=0xEF;
 00FA 8FEE              ldi R24,239
 00FC 90E0              ldi R25,0
 00FE 242E              mov R2,R20
 0100 3324              clr R3
 0102 2826              eor R2,R24
 0104 3926              eor R3,R25
 0106 422D              mov R20,R2
 0108                   .dbline 109
 0108           ;       sendchar(0xEF);
 0108 0FEE              ldi R16,239
 010A D4DF              xcall _sendchar
 010C                   .dbline 110
 010C           ;       chk^=host_id;
 010C 2090D700          lds R2,_host_id
 0110 4225              eor R20,R2
 0112                   .dbline 111
 0112           ;       sendchar(host_id);
 0112 022D              mov R16,R2
 0114 CFDF              xcall _sendchar
 0116                   .dbline 112
 0116           ;       chk^=guest_id;
 0116 2090D600          lds R2,_guest_id
 011A 4225              eor R20,R2
 011C                   .dbline 113
 011C           ;       sendchar(guest_id);
 011C 022D              mov R16,R2
 011E CADF              xcall _sendchar
 0120                   .dbline 114
 0120           ;       chk^=0x01;
 0120 81E0              ldi R24,1
 0122 4827              eor R20,R24
 0124                   .dbline 115
 0124           ;       sendchar(0x01);
 0124 01E0              ldi R16,1
 0126 C6DF              xcall _sendchar
 0128                   .dbline 116
 0128           ;       chk^=ques_num;
 0128 20900200          lds R2,_ques_num
 012C 4225              eor R20,R2
 012E                   .dbline 117
 012E           ;       sendchar(ques_num);
 012E 022D              mov R16,R2
 0130 C1DF              xcall _sendchar
 0132                   .dbline 118
 0132           ;       for(i=star_num;i<ans_num;i++)
 0132 6C2D              mov R22,R12
 0134 11C0              xjmp L21
 0136           L18:
 0136                   .dbline 119
 0136                   .dbline 120
 0136 80E0              ldi R24,<_ques
 0138 90E0              ldi R25,>_ques
 013A E62F              mov R30,R22
 013C FF27              clr R31
 013E E80F              add R30,R24
 0140 F91F              adc R31,R25
 0142 0081              ldd R16,z+0
 0144 B7DF              xcall _sendchar
 0146                   .dbline 121
 0146 80E0              ldi R24,<_ques
 0148 90E0              ldi R25,>_ques
 014A E62F              mov R30,R22
 014C FF27              clr R31
 014E E80F              add R30,R24
 0150 F91F              adc R31,R25
 0152 2080              ldd R2,z+0
 0154 4225              eor R20,R2
 0156                   .dbline 122
 0156           L19:
 0156                   .dbline 118
 0156 6395              inc R22
 0158           L21:
 0158                   .dbline 118
 0158 6A15              cp R22,R10
 015A 68F3              brlo L18
 015C                   .dbline 123
 015C           ;       {
 015C           ;        sendchar(ques[i]);
 015C           ;        chk^=ques[i];
 015C           ;       }
 015C           ;       chk^=0xF0;
 015C 80EF              ldi R24,240
 015E 90E0              ldi R25,0
 0160 242E              mov R2,R20
 0162 3324              clr R3
 0164 2826              eor R2,R24
 0166 3926              eor R3,R25
 0168 422D              mov R20,R2
 016A                   .dbline 124
 016A           ;       sendchar(0xF0);
 016A 00EF              ldi R16,240
 016C A3DF              xcall _sendchar
 016E                   .dbline 125
 016E           ;       chk^=0x0F;
 016E 8FE0              ldi R24,15
 0170 4827              eor R20,R24
 0172                   .dbline 126
 0172           ;       sendchar(0x0F);
 0172 0FE0              ldi R16,15
 0174 9FDF              xcall _sendchar
 0176                   .dbline 127
 0176           ;       sendchar(chk);
 0176 042F              mov R16,R20
 0178 9DDF              xcall _sendchar
 017A                   .dbline -2
 017A                   .dbline 128
 017A           ; }
 017A           L17:
 017A 0E940000          xcall pop_gset4
 017E                   .dbline 0 ; func end
 017E 0895              ret
 0180                   .dbsym r chk 20 c
 0180                   .dbsym r i 22 c
 0180                   .dbsym r ans_num 10 c
 0180                   .dbsym r star_num 12 c
 0180                   .dbsym r star_flag 22 c
 0180                   .dbend
 0180                   .dbfunc e send_answer _send_answer fV
                        .even
 0180           _send_answer::
 0180 2197              sbiw R28,1
 0182                   .dbline -1
 0182                   .dbline 131
 0182           ; 
 0182           ; void send_answer()
 0182           ; {
 0182                   .dbline 133
 0182           ; 
 0182           ;  if(ques_num<38)
 0182 80910200          lds R24,_ques_num
 0186 8632              cpi R24,38
 0188 30F4              brsh L23
 018A                   .dbline 134
 018A           ;       send_ans(0x12,0,ques_num);                      
 018A 282E              mov R2,R24
 018C 2882              std y+0,R2
 018E 2227              clr R18
 0190 02E1              ldi R16,18
 0192 98DF              xcall _send_ans
 0194 24C0              xjmp L24
 0196           L23:
 0196                   .dbline 135
 0196           ;       else if(ques_num>37&&ques_num<75)
 0196 85E2              ldi R24,37
 0198 20900200          lds R2,_ques_num
 019C 8215              cp R24,R2
 019E 78F4              brsh L25
 01A0 822D              mov R24,R2
 01A2 8B34              cpi R24,75
 01A4 60F4              brsh L25
 01A6                   .dbline 136
 01A6           ;       {
 01A6                   .dbline 137
 01A6           ;       send_ans(0x12,0,37);
 01A6 85E2              ldi R24,37
 01A8 8883              std y+0,R24
 01AA 2227              clr R18
 01AC 02E1              ldi R16,18
 01AE 8ADF              xcall _send_ans
 01B0                   .dbline 138
 01B0           ;       send_ans(0x13,37,ques_num);
 01B0 20900200          lds R2,_ques_num
 01B4 2882              std y+0,R2
 01B6 25E2              ldi R18,37
 01B8 03E1              ldi R16,19
 01BA 84DF              xcall _send_ans
 01BC                   .dbline 139
 01BC           ;       }
 01BC 10C0              xjmp L26
 01BE           L25:
 01BE                   .dbline 141
 01BE           ;       else
 01BE           ;       {
 01BE                   .dbline 142
 01BE           ;        send_ans(0x12,0,37);
 01BE 85E2              ldi R24,37
 01C0 8883              std y+0,R24
 01C2 2227              clr R18
 01C4 02E1              ldi R16,18
 01C6 7EDF              xcall _send_ans
 01C8                   .dbline 143
 01C8           ;        send_ans(0x13,37,74);
 01C8 8AE4              ldi R24,74
 01CA 8883              std y+0,R24
 01CC 25E2              ldi R18,37
 01CE 03E1              ldi R16,19
 01D0 79DF              xcall _send_ans
 01D2                   .dbline 144
 01D2           ;        send_ans(0x14,74,ques_num); 
 01D2 20900200          lds R2,_ques_num
 01D6 2882              std y+0,R2
 01D8 2AE4              ldi R18,74
 01DA 04E1              ldi R16,20
 01DC 73DF              xcall _send_ans
 01DE                   .dbline 145
 01DE           ;       }
 01DE           L26:
 01DE           L24:
 01DE                   .dbline -2
 01DE                   .dbline 146
 01DE           ; }
 01DE           L22:
 01DE 2196              adiw R28,1
 01E0                   .dbline 0 ; func end
 01E0 0895              ret
 01E2                   .dbend
 01E2                   .dbfunc e receive _receive fc
 01E2           ;              j -> R20
 01E2           ;              i -> R20
                        .even
 01E2           _receive::
 01E2 0E940000          xcall push_gset1
 01E6                   .dbline -1
 01E6                   .dbline 149
 01E6           ; 
 01E6           ; unsigned char receive()//
 01E6           ; {
 01E6           L28:
 01E6                   .dbline 151
 01E6           ;  unsigned char i,j;
 01E6           ;  begin:       if(t>18)    return 0;//goto A;
 01E6 82E1              ldi R24,18
 01E8 2090D500          lds R2,_t
 01EC 8215              cp R24,R2
 01EE 10F4              brsh L29
 01F0                   .dbline 151
 01F0 0027              clr R16
 01F2 36C0              xjmp L27
 01F4           L29:
 01F4                   .dbline 152
 01F4           ;       i=getchar();     //get data from RF
 01F4 63DF              xcall _getchar
 01F6 402F              mov R20,R16
 01F8                   .dbline 153
 01F8           ;       if(i==0x0f)      //get the start signal
 01F8 0F30              cpi R16,15
 01FA A9F7              brne L28
 01FC                   .dbline 154
 01FC           ;       {
 01FC                   .dbline 155
 01FC           ;        data[0]=getchar();
 01FC 5FDF              xcall _getchar
 01FE 00930300          sts _data,R16
 0202                   .dbline 156
 0202           ;        if(data[0]==0xf0)
 0202 003F              cpi R16,240
 0204 81F7              brne L28
 0206                   .dbline 157
 0206           ;        {
 0206                   .dbline 158
 0206           ;       data[1]=getchar();
 0206 5ADF              xcall _getchar
 0208 00930400          sts _data+1,R16
 020C                   .dbline 159
 020C           ;         if(data[1]==0xdd)
 020C 0D3D              cpi R16,221
 020E 59F7              brne L28
 0210                   .dbline 160
 0210           ;         {
 0210                   .dbline 161
 0210           ;          data[2]=getchar();
 0210 55DF              xcall _getchar
 0212 00930500          sts _data+2,R16
 0216                   .dbline 162
 0216           ;          if(data[2]==0xbb)
 0216 0B3B              cpi R16,187
 0218 31F7              brne L28
 021A                   .dbline 163
 021A           ;          {
 021A                   .dbline 164
 021A           ;               data[3]=getchar();
 021A 50DF              xcall _getchar
 021C 00930600          sts _data+3,R16
 0220                   .dbline 165
 0220           ;               if(data[3]==host_id)
 0220 2090D700          lds R2,_host_id
 0224 0215              cp R16,R2
 0226 F9F6              brne L28
 0228                   .dbline 166
 0228           ;               {
 0228                   .dbline 167
 0228           ;                data[4]=getchar();
 0228 49DF              xcall _getchar
 022A 00930700          sts _data+4,R16
 022E                   .dbline 168

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -