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

📄 feedis_uart.lis

📁 AVR系列单片机ATMEGA64开发的LED显示屏程序 内容包括ATMEGA64大部分资源的初始化程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0102                   .dbline 99
 0102           ;                       /*else if(temp=='b')
 0102           ;                       {ready_rx=6;receivebox[1]|=0x20;}
 0102           ;                       else if(temp=='c')
 0102           ;                       {ready_rx=7;receivebox[1]|=0x40;}
 0102           ;                       else if(temp=='d')
 0102           ;                       {ready_rx=8;receivebox[1]|=0x80;}*/
 0102           ;                       else {ready_rx=10;receivebox[1] = temp; RX_index = 5;}
 0102                   .dbline 99
 0102 8AE0              ldi R24,10
 0104 80930100          sts _ready_rx,R24
 0108                   .dbline 99
 0108 40930400          sts _receivebox+1,R20
 010C                   .dbline 99
 010C 85E0              ldi R24,5
 010E 80934900          sts _RX_index,R24
 0112                   .dbline 99
 0112                   .dbline 101
 0112           ;                       
 0112           ;                       break;
 0112 BEC0              xjmp L13
 0114           L29:
 0114                   .dbline 103
 0114           ;               case 3:
 0114           ;                       receivebox[2] = temp;           //存下位置值
 0114 40930500          sts _receivebox+2,R20
 0118                   .dbline 104
 0118           ;                     if(temp==0x00)
 0118 4423              tst R20
 011A 39F4              brne L31
 011C                   .dbline 105
 011C           ;                         {
 011C                   .dbline 106
 011C           ;                               RX_index = 64;
 011C 80E4              ldi R24,64
 011E 80934900          sts _RX_index,R24
 0122                   .dbline 107
 0122           ;                               ready_rx = 4;
 0122 84E0              ldi R24,4
 0124 80930100          sts _ready_rx,R24
 0128                   .dbline 108
 0128           ;                         }
 0128 B3C0              xjmp L13
 012A           L31:
 012A                   .dbline 109
 012A           ;                         else if((temp>0)&&(temp<5))
 012A 2224              clr R2
 012C 2416              cp R2,R20
 012E 48F4              brsh L33
 0130 4530              cpi R20,5
 0132 38F4              brsh L33
 0134                   .dbline 110
 0134           ;                         { RX_index = 16;
 0134                   .dbline 110
 0134 80E1              ldi R24,16
 0136 80934900          sts _RX_index,R24
 013A                   .dbline 111
 013A           ;                            ready_rx = 4;
 013A 84E0              ldi R24,4
 013C 80930100          sts _ready_rx,R24
 0140                   .dbline 112
 0140           ;                         }
 0140 A7C0              xjmp L13
 0142           L33:
 0142                   .dbline 114
 0142           ;                         else
 0142           ;                         { ready_rx = 0;
 0142                   .dbline 114
 0142 2224              clr R2
 0144 20920100          sts _ready_rx,R2
 0148                   .dbline 115
 0148           ;                         }
 0148                   .dbline 117
 0148           ;                                       
 0148           ;                       break;
 0148 A3C0              xjmp L13
 014A           L35:
 014A                   .dbline 119
 014A           ;               case 4:
 014A           ;                   if(receivebox[2] ==0x00)
 014A 20900500          lds R2,_receivebox+2
 014E 2220              tst R2
 0150 69F4              brne L36
 0152                   .dbline 120
 0152           ;                        {receivebox[64 - RX_index + 3] = temp; 
 0152                   .dbline 120
 0152 20904900          lds R2,_RX_index
 0156 3324              clr R3
 0158 E0E4              ldi R30,64
 015A F0E0              ldi R31,0
 015C E219              sub R30,R2
 015E F309              sbc R31,R3
 0160 80E0              ldi R24,<_receivebox+3
 0162 90E0              ldi R25,>_receivebox+3
 0164 E80F              add R30,R24
 0166 F91F              adc R31,R25
 0168 4083              std z+0,R20
 016A                   .dbline 121
 016A           ;                        }
 016A 0CC0              xjmp L37
 016C           L36:
 016C                   .dbline 123
 016C           ;                       else 
 016C           ;                        {receivebox[16 - RX_index + 3] = temp;
 016C                   .dbline 123
 016C 20904900          lds R2,_RX_index
 0170 3324              clr R3
 0172 E0E1              ldi R30,16
 0174 F0E0              ldi R31,0
 0176 E219              sub R30,R2
 0178 F309              sbc R31,R3
 017A 80E0              ldi R24,<_receivebox+3
 017C 90E0              ldi R25,>_receivebox+3
 017E E80F              add R30,R24
 0180 F91F              adc R31,R25
 0182 4083              std z+0,R20
 0184                   .dbline 124
 0184           ;                        }
 0184           L37:
 0184                   .dbline 125
 0184           ;                       RX_index--;
 0184 80914900          lds R24,_RX_index
 0188 8150              subi R24,1
 018A 80934900          sts _RX_index,R24
 018E                   .dbline 128
 018E           ;                       //if(!(c) || (temp == 0x05))
 018E           ;                       //      ready_rx = 0;
 018E           ;                       break;
 018E 80C0              xjmp L13
 0190           L41:
 0190                   .dbline 131
 0190           ;                case 5:
 0190           ;                      
 0190           ;                               RX_index--;
 0190 80914900          lds R24,_RX_index
 0194 8150              subi R24,1
 0196 80934900          sts _RX_index,R24
 019A                   .dbline 132
 019A           ;                               if(RX_index==13)
 019A 80914900          lds R24,_RX_index
 019E 8D30              cpi R24,13
 01A0 41F4              brne L42
 01A2                   .dbline 133
 01A2           ;                                {zx.zhou=temp;flg|=0x10;}
 01A2                   .dbline 133
 01A2 40930200          sts _zx,R20
 01A6                   .dbline 133
 01A6 80910000          lds R24,_flg
 01AA 8061              ori R24,16
 01AC 80930000          sts _flg,R24
 01B0                   .dbline 133
 01B0 6FC0              xjmp L13
 01B2           L42:
 01B2                   .dbline 134
 01B2           ;                               else if((RX_index>8)&&(RX_index<13))
 01B2 88E0              ldi R24,8
 01B4 20904900          lds R2,_RX_index
 01B8 8215              cp R24,R2
 01BA B0F4              brsh L44
 01BC 80914900          lds R24,_RX_index
 01C0 8D30              cpi R24,13
 01C2 90F4              brsh L44
 01C4                   .dbline 135
 01C4           ;                                { zx.dunwei[12-RX_index]=temp;flg|=0x20;}
 01C4                   .dbline 135
 01C4 20904900          lds R2,_RX_index
 01C8 3324              clr R3
 01CA ECE0              ldi R30,12
 01CC F0E0              ldi R31,0
 01CE E219              sub R30,R2
 01D0 F309              sbc R31,R3
 01D2 80E0              ldi R24,<_zx+1
 01D4 90E0              ldi R25,>_zx+1
 01D6 E80F              add R30,R24
 01D8 F91F              adc R31,R25
 01DA 4083              std z+0,R20
 01DC                   .dbline 135
 01DC 80910000          lds R24,_flg
 01E0 8062              ori R24,32
 01E2 80930000          sts _flg,R24
 01E6                   .dbline 135
 01E6 54C0              xjmp L13
 01E8           L44:
 01E8                   .dbline 136
 01E8           ;                               else if((RX_index>4)&&(RX_index<9))
 01E8 84E0              ldi R24,4
 01EA 20904900          lds R2,_RX_index
 01EE 8215              cp R24,R2
 01F0 B0F4              brsh L47
 01F2 80914900          lds R24,_RX_index
 01F6 8930              cpi R24,9
 01F8 90F4              brsh L47
 01FA                   .dbline 137
 01FA           ;                               {zx.zongzhong[8-RX_index]=temp;flg|=0x40;}
 01FA                   .dbline 137
 01FA 20904900          lds R2,_RX_index
 01FE 3324              clr R3
 0200 E8E0              ldi R30,8
 0202 F0E0              ldi R31,0
 0204 E219              sub R30,R2
 0206 F309              sbc R31,R3
 0208 80E0              ldi R24,<_zx+5
 020A 90E0              ldi R25,>_zx+5
 020C E80F              add R30,R24
 020E F91F              adc R31,R25
 0210 4083              std z+0,R20
 0212                   .dbline 137
 0212 80910000          lds R24,_flg
 0216 8064              ori R24,64
 0218 80930000          sts _flg,R24
 021C                   .dbline 137
 021C 39C0              xjmp L13
 021E           L47:
 021E                   .dbline 138
 021E           ;                               else if((RX_index>0)&&(RX_index<5))
 021E 2224              clr R2
 0220 30904900          lds R3,_RX_index
 0224 2314              cp R2,R3
 0226 A0F5              brsh L13
 0228 80914900          lds R24,_RX_index
 022C 8530              cpi R24,5
 022E 80F5              brsh L13
 0230                   .dbline 139
 0230           ;                               {zx.chaoxian[4-RX_index]=temp;flg|=0x80;}
 0230                   .dbline 139
 0230 20904900          lds R2,_RX_index
 0234 3324              clr R3
 0236 E4E0              ldi R30,4
 0238 F0E0              ldi R31,0
 023A E219              sub R30,R2
 023C F309              sbc R31,R3
 023E 80E0              ldi R24,<_zx+9
 0240 90E0              ldi R25,>_zx+9
 0242 E80F              add R30,R24
 0244 F91F              adc R31,R25
 0246 4083              std z+0,R20
 0248                   .dbline 139
 0248 80910000          lds R24,_flg
 024C 8068              ori R24,128
 024E 80930000          sts _flg,R24
 0252                   .dbline 139
 0252                   .dbline 140
 0252           ;                       break;
 0252 1EC0              xjmp L13
 0254           L53:
 0254                   .dbline 144
 0254           ;                       
 0254           ;                 
 0254           ;                case 10:
 0254           ;                    RX_index--;
 0254 80914900          lds R24,_RX_index
 0258 8150              subi R24,1
 025A 80934900          sts _RX_index,R24
 025E                   .dbline 145
 025E           ;                     receivebox[5 - RX_index + 1] = temp;
 025E 20904900          lds R2,_RX_index
 0262 3324              clr R3
 0264 E5E0              ldi R30,5
 0266 F0E0              ldi R31,0
 0268 E219              sub R30,R2
 026A F309              sbc R31,R3
 026C 80E0              ldi R24,<_receivebox+1
 026E 90E0              ldi R25,>_receivebox+1
 0270 E80F              add R30,R24
 0272 F91F              adc R31,R25
 0274 4083              std z+0,R20
 0276                   .dbline 146
 0276           ;                         if(RX_index==0) flg=0xf0;
 0276 20904900          lds R2,_RX_index
 027A 2220              tst R2
 027C 49F4              brne L13
 027E                   .dbline 146
 027E 80EF              ldi R24,240
 0280 80930000          sts _flg,R24
 0284                   .dbline 149
 0284           ;                       //if(!(RX_index--) || (temp == 0x05))
 0284           ;                       //      ready_rx = 0;
 0284           ;                       break;
 0284 05C0              xjmp L13
 0286           L12:
 0286                   .dbline 152
 0286           ;               
 0286           ;               default:
 0286           ;                       ready_rx = 0;
 0286 2224              clr R2
 0288 20920100          sts _ready_rx,R2
 028C                   .dbline 153
 028C           ;                       RX_index = 0;
 028C 20924900          sts _RX_index,R2
 0290                   .dbline 154
 0290           ;                       break;
 0290           L13:
 0290                   .dbline 160
 0290           ; 
 0290           ;       }
 0290           ; 
 0290           ;               // 如果收不满16或者64字节数据,最后停止位是 0x05
 0290           ;       
 0290           ;    if ( (ready_rx ==4) && (RX_index == 0) )
 0290 80910100          lds R24,_ready_rx
 0294 8430              cpi R24,4
 0296 51F4              brne L57
 0298 20904900          lds R2,_RX_index
 029C 2220              tst R2
 029E 31F4              brne L57
 02A0                   .dbline 161
 02A0           ;       {   //receivebox[65]=0x05;
 02A0                   .dbline 162
 02A0           ;               ready_rx = 0;
 02A0 2224              clr R2
 02A2 20920100          sts _ready_rx,R2
 02A6                   .dbline 163
 02A6           ;               FLAG = 1;       
 02A6 81E0              ldi R24,1
 02A8 80930000          sts _FLAG,R24
 02AC                   .dbline 165
 02AC           ;               //uart0_txd(0xaa);      
 02AC           ;       }       
 02AC           L57:
 02AC                   .dbline 166
 02AC           ;     if((RX_index == 0) &&(( ready_rx >= 5)&&( ready_rx <= 10) ))
 02AC 20904900          lds R2,_RX_index
 02B0 2220              tst R2
 02B2 A9F4              brne L59
 02B4 80910100          lds R24,_ready_rx
 02B8 8530              cpi R24,5
 02BA 88F0              brlo L59
 02BC 8AE0              ldi R24,10
 02BE 20900100          lds R2,_ready_rx
 02C2 8215              cp R24,R2
 02C4 60F0              brlo L59
 02C6                   .dbline 167
 02C6           ;       {   
 02C6                   .dbline 168
 02C6           ;               ready_rx = 0;
 02C6 2224              clr R2
 02C8 20920100          sts _ready_rx,R2
 02CC                   .dbline 169
 02CC           ;               if(flg==0xf0)
 02CC 80910000          lds R24,_flg
 02D0 803F              cpi R24,240
 02D2 29F4              brne L61
 02D4                   .dbline 170
 02D4           ;               {flg=0; 
 02D4                   .dbline 170
 02D4 20920000          sts _flg,R2
 02D8                   .dbline 171
 02D8           ;                FLAG=1; 
 02D8 81E0              ldi R24,1
 02DA 80930000          sts _FLAG,R24
 02DE                   .dbline 172
 02DE           ;               }
 02DE           L61:
 02DE                   .dbline 173
 02DE           L59:
 02DE                   .dbline -2
 02DE           L11:
 02DE 0E940000          xcall pop_gset2
 02E2 0E940000          xcall pop_lset
 02E6                   .dbline 0 ; func end
 02E6 1895              reti
 02E8                   .dbsym r temp 20 c
 02E8                   .dbend
 02E8                   .dbfunc e uart0_txd _uart0_txd fV
 02E8           ;              x -> R16
                        .even
 02E8           _uart0_txd::
 02E8                   .dbline -1
 02E8                   .dbline 178
 02E8           L64:

⌨️ 快捷键说明

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