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

📄 uart.lis

📁 AVR系列被广泛应用的单片机MEGA8开发(原理图)及例程
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 007E           ; unsigned char  i,tempdata,tempdata1,tempdata2,tempdata3,tempdata4,tempdata5;
 007E           ; unsigned char  firstzero=false;
 007E 0024              clr R0
 0080 0882              std y+0,R0
 0082                   .dbline 78
 0082           ; 
 0082           ; for(i=0;i<5;i++)
 0082 EE24              clr R14
 0084 2DC0              rjmp L25
 0086           L22:
 0086                   .dbline 79
 0086           ;         {
 0086                   .dbline 80
 0086           ;               tempdata=intdata%10;
 0086 2AE0              ldi R18,10
 0088 30E0              ldi R19,0
 008A 0E85              ldd R16,y+14
 008C 1F85              ldd R17,y+15
 008E 00D0              rcall mod16u
 0090 C02E              mov R12,R16
 0092                   .dbline 81
 0092           ;               intdata=intdata/10;
 0092 2AE0              ldi R18,10
 0094 30E0              ldi R19,0
 0096 0E85              ldd R16,y+14
 0098 1F85              ldd R17,y+15
 009A 00D0              rcall div16u
 009C 1F87              std y+15,R17
 009E 0E87              std y+14,R16
 00A0                   .dbline 82
 00A0           ;               switch(i)
 00A0 6E2D              mov R22,R14
 00A2 7727              clr R23
 00A4 6030              cpi R22,0
 00A6 6707              cpc R22,R23
 00A8 89F0              breq L29
 00AA           X1:
 00AA 6130              cpi R22,1
 00AC E0E0              ldi R30,0
 00AE 7E07              cpc R23,R30
 00B0 79F0              breq L30
 00B2 6230              cpi R22,2
 00B4 E0E0              ldi R30,0
 00B6 7E07              cpc R23,R30
 00B8 69F0              breq L31
 00BA 6330              cpi R22,3
 00BC E0E0              ldi R30,0
 00BE 7E07              cpc R23,R30
 00C0 59F0              breq L32
 00C2 6430              cpi R22,4
 00C4 E0E0              ldi R30,0
 00C6 7E07              cpc R23,R30
 00C8 49F0              breq L33
 00CA 09C0              rjmp L27
 00CC           X2:
 00CC                   .dbline 83
 00CC           ;                       {
 00CC           L29:
 00CC                   .dbline 85
 00CC           ;                       case 0:  
 00CC           ;                                   tempdata1=tempdata;
 00CC 4C2D              mov R20,R12
 00CE                   .dbline 86
 00CE           ;                                    break;
 00CE 07C0              rjmp L27
 00D0           L30:
 00D0                   .dbline 88
 00D0           ;                         case 1:
 00D0           ;                                    tempdata2=tempdata;
 00D0 C982              std y+1,R12
 00D2                   .dbline 89
 00D2           ;                                    break;
 00D2 05C0              rjmp L27
 00D4           L31:
 00D4                   .dbline 91
 00D4           ;                          case 2:
 00D4           ;                                   tempdata3=tempdata;
 00D4 CA82              std y+2,R12
 00D6                   .dbline 92
 00D6           ;                                    break;
 00D6 03C0              rjmp L27
 00D8           L32:
 00D8                   .dbline 94
 00D8           ;                          case 3:
 00D8           ;                                    tempdata4=tempdata;
 00D8 CB82              std y+3,R12
 00DA                   .dbline 95
 00DA           ;                                    break;
 00DA 01C0              rjmp L27
 00DC           L33:
 00DC                   .dbline 97
 00DC           ;                            case 4:
 00DC           ;                                     tempdata5=tempdata;
 00DC AC2C              mov R10,R12
 00DE                   .dbline 98
 00DE           ;                                    break;        
 00DE                   .dbline 100
 00DE           ;                           default:
 00DE           ;                                    break;
 00DE           L27:
 00DE                   .dbline 104
 00DE           L23:
 00DE                   .dbline 78
 00DE E394              inc R14
 00E0           L25:
 00E0                   .dbline 78
 00E0 8E2D              mov R24,R14
 00E2 8530              cpi R24,5
 00E4 80F2              brlo L22
 00E6                   .dbline 105
 00E6           ;                                    
 00E6           ;                       }
 00E6           ; 
 00E6           ;         }
 00E6           ; if(tempdata5!=0)
 00E6 AA20              tst R10
 00E8 31F0              breq L34
 00EA                   .dbline 106
 00EA           ; {
 00EA                   .dbline 107
 00EA           ; PutChar(tempdata5+48);
 00EA 0A2D              mov R16,R10
 00EC 005D              subi R16,208    ; addi 48
 00EE 2DD0              rcall _PutChar
 00F0                   .dbline 108
 00F0           ; firstzero=true;
 00F0 0024              clr R0
 00F2 0394              inc R0
 00F4 0882              std y+0,R0
 00F6                   .dbline 109
 00F6           ; }
 00F6           L34:
 00F6                   .dbline 110
 00F6           ; if((tempdata4!=0)||firstzero)
 00F6 0B80              ldd R0,y+3
 00F8 0020              tst R0
 00FA 19F4              brne L38
 00FC 0880              ldd R0,y+0
 00FE 0020              tst R0
 0100 31F0              breq L36
 0102           L38:
 0102                   .dbline 111
 0102           ; {
 0102                   .dbline 112
 0102           ; PutChar(tempdata4+48);
 0102 0B81              ldd R16,y+3
 0104 005D              subi R16,208    ; addi 48
 0106 21D0              rcall _PutChar
 0108                   .dbline 114
 0108           ; 
 0108           ; firstzero=true;
 0108 0024              clr R0
 010A 0394              inc R0
 010C 0882              std y+0,R0
 010E                   .dbline 115
 010E           ; }
 010E           L36:
 010E                   .dbline 116
 010E           ; if((tempdata3!=0)||firstzero)
 010E 0A80              ldd R0,y+2
 0110 0020              tst R0
 0112 19F4              brne L41
 0114 0880              ldd R0,y+0
 0116 0020              tst R0
 0118 31F0              breq L39
 011A           L41:
 011A                   .dbline 117
 011A           ; {
 011A                   .dbline 118
 011A           ; PutChar(tempdata3+48);
 011A 0A81              ldd R16,y+2
 011C 005D              subi R16,208    ; addi 48
 011E 15D0              rcall _PutChar
 0120                   .dbline 120
 0120           ; 
 0120           ; firstzero=true;
 0120 0024              clr R0
 0122 0394              inc R0
 0124 0882              std y+0,R0
 0126                   .dbline 122
 0126           ; 
 0126           ; }
 0126           L39:
 0126                   .dbline 123
 0126           ; if((tempdata2!=0)||firstzero)
 0126 0980              ldd R0,y+1
 0128 0020              tst R0
 012A 19F4              brne L44
 012C 0880              ldd R0,y+0
 012E 0020              tst R0
 0130 19F0              breq L42
 0132           L44:
 0132                   .dbline 124
 0132           ; {
 0132                   .dbline 125
 0132           ; PutChar(tempdata2+48);
 0132 0981              ldd R16,y+1
 0134 005D              subi R16,208    ; addi 48
 0136 09D0              rcall _PutChar
 0138                   .dbline 127
 0138           ; 
 0138           ; }
 0138           L42:
 0138                   .dbline 129
 0138           ;       
 0138           ; PutChar(tempdata1+48);
 0138 042F              mov R16,R20
 013A 005D              subi R16,208    ; addi 48
 013C 06D0              rcall _PutChar
 013E                   .dbline 130
 013E           ; PutChar(0x0a);
 013E 0AE0              ldi R16,10
 0140 04D0              rcall _PutChar
 0142                   .dbline -2
 0142           L21:
 0142 2496              adiw R28,4
 0144 00D0              rcall pop_gset5
 0146 2296              adiw R28,2
 0148                   .dbline 0 ; func end
 0148 0895              ret
 014A                   .dbsym r tempdata1 20 c
 014A                   .dbsym r tempdata5 10 c
 014A                   .dbsym l tempdata4 3 c
 014A                   .dbsym l tempdata3 2 c
 014A                   .dbsym l tempdata2 1 c
 014A                   .dbsym l firstzero 0 c
 014A                   .dbsym r tempdata 12 c
 014A                   .dbsym r i 14 c
 014A                   .dbsym l intdata 14 i
 014A                   .dbend
 014A                   .dbfunc e PutChar _PutChar fV
 014A           ;              c -> R16
                        .even
 014A           _PutChar::
 014A                   .dbline -1
 014A                   .dbline 134
 014A           ; //PutChar(0x0d); 
 014A           ; }
 014A           ; void PutChar(unsigned char c)
 014A           ; {
 014A           L46:
 014A                   .dbline 136
 014A           L47:
 014A                   .dbline 135
 014A           ; while ( !(UCSRA & (1<<UDRE)) )
 014A 5D9B              sbis 0xb,5
 014C FECF              rjmp L46
 014E                   .dbline 137
 014E           ;               ; 
 014E           ; UDR = c;
 014E 0CB9              out 0xc,R16
 0150                   .dbline -2
 0150           L45:
 0150                   .dbline 0 ; func end
 0150 0895              ret
 0152                   .dbsym r c 16 c
 0152                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\Uart.c
 0000           L6:
 0000                   .blkb 10
                        .area idata
 0000 53746172742049415000      .byte 'S,'t,'a,'r,'t,32,'I,'A,'P,0
                        .area data(ram, con, rel)
 000A                   .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\Uart.c
 000A           L5:
 000A                   .blkb 20
                        .area idata
 000A B8BBD3D1C7DA2041544D454741382044  .byte 184,187,211,209,199,218,32,'A,'T,'M,'E,'G,'A,56,32,'D
 001A 454D4F00          .byte 'E,'M,'O,0
                        .area data(ram, con, rel)
 001E                   .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\Uart.c

⌨️ 快捷键说明

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