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

📄 usart1_m128.lis

📁 网卡驱动程序
💻 LIS
字号:
                        .module Usart1_M128.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\__test\_RTL8019_M128_struct_Test\Usart1_M128.c
                        .area data(ram, con, rel)
 0000                   .dbfile E:\__test\_RTL8019_M128_struct_Test\Usart1_M128.c
 0000           _RX_data::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile E:\__test\_RTL8019_M128_struct_Test\Usart1_M128.c
 0001                   .blkb 5
                        .area idata
 0001 0000000000        .byte 0,0,0,0,0
                        .area data(ram, con, rel)
 0006                   .dbfile E:\__test\_RTL8019_M128_struct_Test\Usart1_M128.c
 0006                   .dbsym e RX_data _RX_data A[6:6]c
 0006           _RX_data2::
 0006                   .blkb 1
                        .area idata
 0006 00                .byte 0
                        .area data(ram, con, rel)
 0007                   .dbfile E:\__test\_RTL8019_M128_struct_Test\Usart1_M128.c
 0007                   .blkb 5
                        .area idata
 0007 0000000000        .byte 0,0,0,0,0
                        .area data(ram, con, rel)
 000C                   .dbfile E:\__test\_RTL8019_M128_struct_Test\Usart1_M128.c
 000C                   .dbsym e RX_data2 _RX_data2 A[6:6]c
 000C           _flg_Received::
 000C                   .blkb 1
                        .area idata
 000C 00                .byte 0
                        .area data(ram, con, rel)
 000D                   .dbfile E:\__test\_RTL8019_M128_struct_Test\Usart1_M128.c
 000D                   .dbsym e flg_Received _flg_Received c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\__test\_RTL8019_M128_struct_Test\Usart1_M128.c
 0000                   .dbfunc e UART1_Init _UART1_Init fV
                        .even
 0000           _UART1_Init::
 0000                   .dbline -1
 0000                   .dbline 11
 0000           ; #include <string.h>
 0000           ; 
 0000           ; #include "Usart1_M128.h"
 0000           ; 
 0000           ; unsigned char RX_data[RX_SIZE]={0};   //串口接收缓冲区
 0000           ; unsigned char RX_data2[RX_SIZE]={0};  //串口接收缓冲区
 0000           ; volatile unsigned int iNum;                  //串口接收字符计数
 0000           ; unsigned char flg_Received=0;                //已接收一个卡号
 0000           ; 
 0000           ; void UART1_Init(void)
 0000           ; {
 0000                   .dbline 12
 0000           ;    UCSR1B = (1<<RXCIE1)| (1<<RXEN1) |(1<<TXEN1);   //允许串口发送和接收,并响应接收完成中断
 0000 88E9              ldi R24,152
 0002 80939A00          sts 154,R24
 0006                   .dbline 13
 0006           ;    UBRR1L = BAUD;                                  //波特率为9600(7.3728MHz晶振)
 0006 8FE2              ldi R24,47
 0008 80939900          sts 153,R24
 000C                   .dbline 14
 000C           ;    UBRR1H = 0;
 000C 2224              clr R2
 000E 20929800          sts 152,R2
 0012                   .dbline 15
 0012           ;    UCSR1C = (1<<UCSZ11)|(1<<UCSZ10);               //8位数据+1位stop位, 异步模式
 0012 86E0              ldi R24,6
 0014 80939D00          sts 157,R24
 0018                   .dbline -2
 0018           L1:
 0018                   .dbline 0 ; func end
 0018 0895              ret
 001A                   .dbend
                        .area vector(rom, abs)
                        .org 120
 0078 0C940D00          jmp _UART1_Receive
                        .area text(rom, con, rel)
 001A                   .dbfile E:\__test\_RTL8019_M128_struct_Test\Usart1_M128.c
 001A                   .dbfunc e UART1_Receive _UART1_Receive fV
 001A           ;           cRec -> R10
                        .even
 001A           _UART1_Receive::
 001A 0A92              st -y,R0
 001C 1A92              st -y,R1
 001E 2A92              st -y,R2
 0020 3A92              st -y,R3
 0022 4A92              st -y,R4
 0024 5A92              st -y,R5
 0026 6A92              st -y,R6
 0028 7A92              st -y,R7
 002A 8A92              st -y,R8
 002C 9A92              st -y,R9
 002E AA92              st -y,R10
 0030 0A93              st -y,R16
 0032 1A93              st -y,R17
 0034 2A93              st -y,R18
 0036 3A93              st -y,R19
 0038 8A93              st -y,R24
 003A 9A93              st -y,R25
 003C AA93              st -y,R26
 003E BA93              st -y,R27
 0040 EA93              st -y,R30
 0042 FA93              st -y,R31
 0044 0FB6              in R0,0x3f
 0046 0A92              st -y,R0
 0048 AA92              st -y,R10
 004A 2297              sbiw R28,2
 004C                   .dbline -1
 004C                   .dbline 20
 004C           ; }
 004C           ; 
 004C           ; #pragma interrupt_handler UART1_Receive: iv_USART1_RX
 004C           ; void UART1_Receive(void)
 004C           ; {
 004C                   .dbline 23
 004C           ; unsigned char cRec;
 004C           ;        
 004C           ;    cRec= UDR1;
 004C A0909C00          lds R10,156
 0050                   .dbline 25
 0050           ; 
 0050           ;    RX_data[iNum++]=cRec;       
 0050 20900000          lds R2,_iNum
 0054 30900100          lds R3,_iNum+1
 0058 C101              movw R24,R2
 005A 0196              adiw R24,1
 005C 90930100          sts _iNum+1,R25
 0060 80930000          sts _iNum,R24
 0064 80E0              ldi R24,<_RX_data
 0066 90E0              ldi R25,>_RX_data
 0068 F101              movw R30,R2
 006A E80F              add R30,R24
 006C F91F              adc R31,R25
 006E A082              std z+0,R10
 0070                   .dbline 28
 0070           ;    
 0070           ;    //每接收RX_SIZE=6个字符显示一次
 0070           ;    if (iNum==RX_SIZE) 
 0070 80910000          lds R24,_iNum
 0074 90910100          lds R25,_iNum+1
 0078 8630              cpi R24,6
 007A E0E0              ldi R30,0
 007C 9E07              cpc R25,R30
 007E 99F4              brne L3
 0080           X0:
 0080                   .dbline 29
 0080           ;    {
 0080                   .dbline 30
 0080           ;         memcpy(RX_data2,RX_data,RX_SIZE);
 0080 86E0              ldi R24,6
 0082 90E0              ldi R25,0
 0084 9983              std y+1,R25
 0086 8883              std y+0,R24
 0088 20E0              ldi R18,<_RX_data
 008A 30E0              ldi R19,>_RX_data
 008C 00E0              ldi R16,<_RX_data2
 008E 10E0              ldi R17,>_RX_data2
 0090 0E940000          xcall _memcpy
 0094                   .dbline 31
 0094           ;         flg_Received=1;       
 0094 81E0              ldi R24,1
 0096 80930C00          sts _flg_Received,R24
 009A                   .dbline 32
 009A           ;         iNum=0;  
 009A 2224              clr R2
 009C 3324              clr R3
 009E 30920100          sts _iNum+1,R3
 00A2 20920000          sts _iNum,R2
 00A6                   .dbline 33
 00A6           ;    }  
 00A6           L3:
 00A6                   .dbline 35
 00A6           ;    
 00A6           ;    RX_data[0]=cRec;
 00A6 A0920000          sts _RX_data,R10
 00AA                   .dbline 36
 00AA           ;    flg_Received=1;       
 00AA 81E0              ldi R24,1
 00AC 80930C00          sts _flg_Received,R24
 00B0                   .dbline -2
 00B0           L2:
 00B0                   .dbline 0 ; func end
 00B0 2296              adiw R28,2
 00B2 A990              ld R10,y+
 00B4 0990              ld R0,y+
 00B6 0FBE              out 0x3f,R0
 00B8 F991              ld R31,y+
 00BA E991              ld R30,y+
 00BC B991              ld R27,y+
 00BE A991              ld R26,y+
 00C0 9991              ld R25,y+
 00C2 8991              ld R24,y+
 00C4 3991              ld R19,y+
 00C6 2991              ld R18,y+
 00C8 1991              ld R17,y+
 00CA 0991              ld R16,y+
 00CC A990              ld R10,y+
 00CE 9990              ld R9,y+
 00D0 8990              ld R8,y+
 00D2 7990              ld R7,y+
 00D4 6990              ld R6,y+
 00D6 5990              ld R5,y+
 00D8 4990              ld R4,y+
 00DA 3990              ld R3,y+
 00DC 2990              ld R2,y+
 00DE 1990              ld R1,y+
 00E0 0990              ld R0,y+
 00E2 1895              reti
 00E4                   .dbsym r cRec 10 c
 00E4                   .dbend
 00E4                   .dbfunc e UART1_PutChar _UART1_PutChar fV
 00E4           ;              c -> R16
                        .even
 00E4           _UART1_PutChar::
 00E4                   .dbline -1
 00E4                   .dbline 40
 00E4           ; }
 00E4           ; 
 00E4           ; void UART1_PutChar(unsigned char c)  //字符输出函数
 00E4           ; {
 00E4           L6:
 00E4                   .dbline 41
 00E4           ;    while (!(UCSR1A&(1 << UDRE1)));   //判断上次发送有没有完成
 00E4           L7:
 00E4                   .dbline 41
 00E4 20909B00          lds R2,155
 00E8 25FE              sbrs R2,5
 00EA FCCF              rjmp L6
 00EC           X1:
 00EC                   .dbline 42
 00EC           ;    UDR1 = c;
 00EC 00939C00          sts 156,R16
 00F0                   .dbline -2
 00F0           L5:
 00F0                   .dbline 0 ; func end
 00F0 0895              ret
 00F2                   .dbsym r c 16 c
 00F2                   .dbend
 00F2                   .dbfunc e UART1_Puts _UART1_Puts fV
 00F2           ;              s -> R10,R11
                        .even
 00F2           _UART1_Puts::
 00F2 AA92              st -y,R10
 00F4 BA92              st -y,R11
 00F6 5801              movw R10,R16
 00F8                   .dbline -1
 00F8                   .dbline 46
 00F8           ; }
 00F8           ; 
 00F8           ; void UART1_Puts(unsigned char *s)
 00F8           ; {
 00F8 04C0              xjmp L11
 00FA           L10:
 00FA                   .dbline 48
 00FA           ;    while (*s)
 00FA           ;    {
 00FA                   .dbline 49
 00FA           ;       UART1_PutChar(*s++);
 00FA F501              movw R30,R10
 00FC 0191              ld R16,Z+
 00FE 5F01              movw R10,R30
 0100 F1DF              xcall _UART1_PutChar
 0102                   .dbline 50
 0102           ;    }
 0102           L11:
 0102                   .dbline 47
 0102 F501              movw R30,R10
 0104 2080              ldd R2,z+0
 0106 2220              tst R2
 0108 C1F7              brne L10
 010A           X2:
 010A                   .dbline -2
 010A           L9:
 010A                   .dbline 0 ; func end
 010A B990              ld R11,y+
 010C A990              ld R10,y+
 010E 0895              ret
 0110                   .dbsym r s 10 pc
 0110                   .dbend
 0110                   .dbfunc e UART1_PutBytes _UART1_PutBytes fV
 0110           ;              i -> R10
 0110           ;           ilen -> R14
 0110           ;              s -> R12,R13
                        .even
 0110           _UART1_PutBytes::
 0110 0E940000          xcall push_xgset00FC
 0114 E22E              mov R14,R18
 0116 6801              movw R12,R16
 0118                   .dbline -1
 0118                   .dbline 55
 0118           ; }
 0118           ; 
 0118           ; //串口输出字节
 0118           ; void UART1_PutBytes(unsigned char *s, unsigned char ilen)
 0118           ; {
 0118                   .dbline 58
 0118           ; unsigned char i;
 0118           ; 
 0118           ;    for(i=0;i<ilen;i++)
 0118 AA24              clr R10
 011A 05C0              xjmp L17
 011C           L14:
 011C                   .dbline 59
 011C           ;    {
 011C                   .dbline 60
 011C           ;       UART1_PutChar(*s++);
 011C F601              movw R30,R12
 011E 0191              ld R16,Z+
 0120 6F01              movw R12,R30
 0122 E0DF              xcall _UART1_PutChar
 0124                   .dbline 61
 0124           ;    }
 0124           L15:
 0124                   .dbline 58
 0124 A394              inc R10
 0126           L17:
 0126                   .dbline 58
 0126 AE14              cp R10,R14
 0128 C8F3              brlo L14
 012A           X3:
 012A                   .dbline -2
 012A           L13:
 012A                   .dbline 0 ; func end
 012A 0C940000          xjmp pop_xgset00FC
 012E                   .dbsym r i 10 c
 012E                   .dbsym r ilen 14 c
 012E                   .dbsym r s 12 pc
 012E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\__test\_RTL8019_M128_struct_Test\Usart1_M128.c
 0000           _iNum::
 0000                   .blkb 2
 0002                   .dbsym e iNum _iNum i
 0002           ; }

⌨️ 快捷键说明

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