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

📄 validatebaudrate.lis

📁 Validate Baud rate s accuracy this program will show from FF to 00.
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00A8 3324              clr R3
 00AA 2616              cp R2,R22
 00AC 3706              cpc R3,R23
 00AE CCF3              brlt L11
 00B0           X1:
 00B0           L8:
 00B0                   .dbline 105
 00B0 4150              subi R20,1
 00B2 5040              sbci R21,0
 00B4           L10:
 00B4                   .dbline 105
 00B4 2224              clr R2
 00B6 3324              clr R3
 00B8 2416              cp R2,R20
 00BA 3506              cpc R3,R21
 00BC 84F3              brlt L7
 00BE           X2:
 00BE                   .dbline -2
 00BE           L6:
 00BE                   .dbline 0 ; func end
 00BE 0C940000          xjmp pop_xgsetF000
 00C2                   .dbsym r i 20 I
 00C2                   .dbsym r j 22 I
 00C2                   .dbsym r count 16 I
 00C2                   .dbend
 00C2                   .dbfunc e transmit _transmit fV
 00C2           ;          abyte -> R16
                        .even
 00C2           _transmit::
 00C2                   .dbline -1
 00C2                   .dbline 111
 00C2           ; }
 00C2           ; 
 00C2           ; void transmit(unsigned char abyte)
 00C2           ; {
 00C2                   .dbline 112
 00C2           ;  UDR=abyte;
 00C2 0CB9              out 0xc,R16
 00C4           L16:
 00C4                   .dbline 114
 00C4           ;  while(!(UCSRA&0b01000000))   //b6=1 TXE      ,it quit when transmission finish.
 00C4           ;         ;
 00C4           L17:
 00C4                   .dbline 113
 00C4 5E9B              sbis 0xb,6
 00C6 FECF              rjmp L16
 00C8           X3:
 00C8                   .dbline -2
 00C8           L15:
 00C8                   .dbline 0 ; func end
 00C8 0895              ret
 00CA                   .dbsym r abyte 16 c
 00CA                   .dbend
 00CA                   .dbfunc e main _main fV
 00CA           ;          dswin -> R10,R11
 00CA           ;       SendData -> R20
                        .even
 00CA           _main::
 00CA                   .dbline -1
 00CA                   .dbline 119
 00CA           ; }
 00CA           ; 
 00CA           ; //*****************************************************************
 00CA           ; void main(void)
 00CA           ; {
 00CA                   .dbline 122
 00CA           ; // unsigned char outa=0b01010101, outb=0b10101010, outc=0x00, outd=0x00;
 00CA           ;  int dswin;
 00CA           ;  unsigned char SendData=0;
 00CA 4427              clr R20
 00CC                   .dbline 123
 00CC           ;  port_init();
 00CC C7DF              xcall _port_init
 00CE                   .dbline 124
 00CE           ;  USART_init();
 00CE CFDF              xcall _USART_init
 00D0                   .dbline 125
 00D0           ;  SEI();
 00D0 7894              sei
 00D2 5EC0              xjmp L21
 00D4           L20:
 00D4                   .dbline 128
 00D4           ;  
 00D4           ;  while(1)
 00D4           ;    {
 00D4                   .dbline 129
 00D4           ;     WDR();                                    //Watchdog reset
 00D4 A895              wdr
 00D6                   .dbline 130
 00D6           ;       if(rec_head!=rec_tail)
 00D6 20900300          lds R2,_rec_tail
 00DA 30900400          lds R3,_rec_tail+1
 00DE 40900100          lds R4,_rec_head
 00E2 50900200          lds R5,_rec_head+1
 00E6 4214              cp R4,R2
 00E8 5304              cpc R5,R3
 00EA 79F1              breq L23
 00EC           X4:
 00EC                   .dbline 131
 00EC           ;          {
 00EC                   .dbline 132
 00EC           ;           rec_data=RecBuf[rec_tail];  //read data from head and write data at tail
 00EC 80E0              ldi R24,<_RecBuf
 00EE 90E0              ldi R25,>_RecBuf
 00F0 F101              movw R30,R2
 00F2 E80F              add R30,R24
 00F4 F91F              adc R31,R25
 00F6 2080              ldd R2,z+0
 00F8 20920000          sts _rec_data,R2
 00FC                   .dbline 133
 00FC           ;               rec_tail++;
 00FC 80910300          lds R24,_rec_tail
 0100 90910400          lds R25,_rec_tail+1
 0104 0196              adiw R24,1
 0106 90930400          sts _rec_tail+1,R25
 010A 80930300          sts _rec_tail,R24
 010E                   .dbline 136
 010E           ;               //rec_data=RecBuf[rec_tail++]; //you can amend the sentences above two like that
 010E           ;               //i++; show that first use it,then add it.
 010E           ;               if(rec_tail>=40)        //make up circular queue
 010E 8832              cpi R24,40
 0110 E0E0              ldi R30,0
 0112 9E07              cpc R25,R30
 0114 34F0              brlt L25
 0116           X5:
 0116                   .dbline 137
 0116           ;                  rec_tail=0;
 0116 2224              clr R2
 0118 3324              clr R3
 011A 30920400          sts _rec_tail+1,R3
 011E 20920300          sts _rec_tail,R2
 0122           L25:
 0122                   .dbline 139
 0122           ;                  
 0122           ;               dswin=rec_head<<2;      //the lowest 2 bit of PORTD are RXD and TXD.
 0122 A0900100          lds R10,_rec_head
 0126 B0900200          lds R11,_rec_head+1
 012A AA0C              lsl R10
 012C BB1C              rol R11
 012E AA0C              lsl R10
 0130 BB1C              rol R11
 0132                   .dbline 140
 0132           ;           PORTD=dswin;        //The two ports are occupied,so it need "<<2".
 0132 A2BA              out 0x12,R10
 0134                   .dbline 141
 0134           ;               PORTA=rec_data;     //rec_head++,so it can stand for the number of received data.
 0134 20900000          lds R2,_rec_data
 0138 2BBA              out 0x1b,R2
 013A                   .dbline 142
 013A           ;               transmit(rec_data);
 013A 022D              mov R16,R2
 013C C2DF              xcall _transmit
 013E                   .dbline 143
 013E           ;               if(rec_data==13)        //★??
 013E 80910000          lds R24,_rec_data
 0142 8D30              cpi R24,13
 0144 11F4              brne L27
 0146           X6:
 0146                   .dbline 144
 0146           ;                       transmit(10);
 0146 0AE0              ldi R16,10
 0148 BCDF              xcall _transmit
 014A           L27:
 014A                   .dbline 145
 014A           ;          } 
 014A           L23:
 014A                   .dbline 146
 014A           ;     if(PressKey&&!KeyMark)    //clamping using state bit
 014A 9F99              sbic 0x13,7
 014C 0EC0              rjmp L29
 014E           X7:
 014E 20900000          lds R2,_KeyMark
 0152 2220              tst R2
 0154 51F4              brne L29
 0156           X8:
 0156                   .dbline 147
 0156           ;     {
 0156                   .dbline 148
 0156           ;       delay_ms(20); 
 0156 04E1              ldi R16,20
 0158 10E0              ldi R17,0
 015A 9DDF              xcall _delay_ms
 015C                   .dbline 149
 015C           ;       if(PressKey)
 015C 9F99              sbic 0x13,7
 015E 12C0              rjmp L30
 0160           X9:
 0160                   .dbline 150
 0160           ;       {
 0160                   .dbline 151
 0160           ;         KeyMark=1;
 0160 81E0              ldi R24,1
 0162 80930000          sts _KeyMark,R24
 0166                   .dbline 152
 0166           ;         SendData=0xFF;        
 0166 4FEF              ldi R20,255
 0168                   .dbline 153
 0168           ;       }  
 0168                   .dbline 154
 0168           ;     }
 0168 0DC0              xjmp L30
 016A           L29:
 016A                   .dbline 155
 016A           ;     else if(!PressKey)
 016A 9F99              sbic 0x13,7
 016C 03C0              rjmp L35
 016E           X10:
 016E 61E0              ldi R22,1
 0170 70E0              ldi R23,0
 0172 02C0              xjmp L36
 0174           L35:
 0174 6627              clr R22
 0176 7727              clr R23
 0178           L36:
 0178 6030              cpi R22,0
 017A 6707              cpc R22,R23
 017C 19F4              brne L33
 017E           X11:
 017E                   .dbline 156
 017E           ;     KeyMark=0;
 017E 2224              clr R2
 0180 20920000          sts _KeyMark,R2
 0184           L33:
 0184           L30:
 0184                   .dbline 158
 0184           ; //    while(PressKey);        //clamping using endless loop on conditionZ
 0184           ;      if(SendData)
 0184 4423              tst R20
 0186 21F0              breq L37
 0188           X12:
 0188                   .dbline 159
 0188           ;      {
 0188           L39:
 0188                   .dbline 160
 0188           ;          while(!(UCSRA&(1<<UDRE)));
 0188           L40:
 0188                   .dbline 160
 0188 5D9B              sbis 0xb,5
 018A FECF              rjmp L39
 018C           X13:
 018C                   .dbline 161
 018C           ;          UDR=SendData;
 018C 4CB9              out 0xc,R20
 018E                   .dbline 162
 018E           ;          SendData--;
 018E 4A95              dec R20
 0190                   .dbline 163
 0190           ;      }
 0190           L37:
 0190                   .dbline 165
 0190           ; 
 0190           ;  }
 0190           L21:
 0190                   .dbline 127
 0190 A1CF              xjmp L20
 0192           X14:
 0192                   .dbline -2
 0192           L19:
 0192                   .dbline 0 ; func end
 0192 0895              ret
 0194                   .dbsym r dswin 10 I
 0194                   .dbsym r SendData 20 c
 0194                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\MYDOCU~1\EXPRIMENT\ICC\UART\ValidateBaudRate\ValidateBaudRate.c
 0000           _rec_data::
 0000                   .blkb 1
 0001                   .dbsym e rec_data _rec_data c
 0001           _RecBuf::
 0001                   .blkb 40
 0029                   .dbsym e RecBuf _RecBuf A[40:40]c
 0029           ; }

⌨️ 快捷键说明

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