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

📄 usart1.lis

📁 不可多得的atmel公司canbus通讯程序(at90can128)
💻 LIS
字号:
                        .module USART1.C
                        .area text(rom, con, rel)
 0000                   .dbfile D:\CANBUS\数据帧\查询\单向通讯\结点1-串口\USART1.C
                        .area data(ram, con, rel)
 0000                   .dbfile D:\CANBUS\数据帧\查询\单向通讯\结点1-串口\USART1.C
 0000           _USART1_sendPosi::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile D:\CANBUS\数据帧\查询\单向通讯\结点1-串口\USART1.C
 0001                   .dbsym e USART1_sendPosi _USART1_sendPosi c
 0001           _USART1_sendCount::
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile D:\CANBUS\数据帧\查询\单向通讯\结点1-串口\USART1.C
 0002                   .dbsym e USART1_sendCount _USART1_sendCount c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\CANBUS\数据帧\查询\单向通讯\结点1-串口\USART1.C
 0000                   .dbfunc e USART1_Init _USART1_Init fV
 0000           ;              i -> <dead>
                        .even
 0000           _USART1_Init::
 0000                   .dbline -1
 0000                   .dbline 14
 0000           ; #define _USART1_H
 0000           ; #include "AT90CAN128.H"
 0000           ; 
 0000           ; uint8 rec_Buf[16];
 0000           ; uint8 volatile USART1_sendPosi =0;
 0000           ; uint8 volatile USART1_sendCount=0;
 0000           ; 
 0000           ; //UART1 initialize
 0000           ; // desired baud rate:9600
 0000           ; // actual baud rate:9615 (0.2%)
 0000           ; // char size: 8 bit
 0000           ; // parity: Disabled
 0000           ; void USART1_Init(void)
 0000           ; {
 0000                   .dbline 17
 0000           ; uint8 i;
 0000           ; 
 0000           ;  UCSR1B = 0x00; //disable while setting baud rate
 0000 2224              clr R2
 0002 2092C900          sts 201,R2
 0006                   .dbline 18
 0006           ;  UCSR1A = 0x00;
 0006 2092C800          sts 200,R2
 000A                   .dbline 19
 000A           ;  UCSR1C = 0x06;
 000A 86E0              ldi R24,6
 000C 8093CA00          sts 202,R24
 0010                   .dbline 20
 0010           ;  UBRR1L = 0x33; //set baud rate lo单片机内部晶振=8M
 0010 83E3              ldi R24,51
 0012 8093CC00          sts 204,R24
 0016                   .dbline 21
 0016           ;  UBRR1H = 0x00; //set baud rate hi
 0016 2092CD00          sts 205,R2
 001A                   .dbline 22
 001A           ;  UCSR1B = (1 << TXEN1) | (1 << TXCIE1); 
 001A 88E4              ldi R24,72
 001C 8093C900          sts 201,R24
 0020                   .dbline -2
 0020           L3:
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbsym l i 1 c
 0022                   .dbend
 0022                   .dbfunc e USART1_Begin_Send _USART1_Begin_Send fV
                        .even
 0022           _USART1_Begin_Send::
 0022                   .dbline -1
 0022                   .dbline 27
 0022           ; }
 0022           ; 
 0022           ; 
 0022           ; void USART1_Begin_Send(void)
 0022           ; {
 0022                   .dbline 28
 0022           ;       USART1_sendCount = 16;
 0022 80E1              ldi R24,16
 0024 80930100          sts _USART1_sendCount,R24
 0028                   .dbline 29
 0028           ;       USART1_sendPosi = 0;
 0028 2224              clr R2
 002A 20920000          sts _USART1_sendPosi,R2
 002E                   .dbline 30
 002E           ;    UDR1 = rec_Buf[USART1_sendPosi++];
 002E 20900000          lds R2,_USART1_sendPosi
 0032 3324              clr R3
 0034 822D              mov R24,R2
 0036 8F5F              subi R24,255    ; addi 1
 0038 80930000          sts _USART1_sendPosi,R24
 003C 80E0              ldi R24,<_rec_Buf
 003E 90E0              ldi R25,>_rec_Buf
 0040 E22D              mov R30,R2
 0042 FF27              clr R31
 0044 E80F              add R30,R24
 0046 F91F              adc R31,R25
 0048 2080              ldd R2,z+0
 004A 2092CE00          sts 206,R2
 004E                   .dbline -2
 004E           L4:
 004E                   .dbline 0 ; func end
 004E 0895              ret
 0050                   .dbend
                        .area vector(rom, abs)
                        .org 136
 0088 0C942800          jmp _USART1_TX_ISR
                        .area text(rom, con, rel)
 0050                   .dbfile D:\CANBUS\数据帧\查询\单向通讯\结点1-串口\USART1.C
 0050                   .dbfunc e USART1_TX_ISR _USART1_TX_ISR fV
                        .even
 0050           _USART1_TX_ISR::
 0050 2A92              st -y,R2
 0052 3A92              st -y,R3
 0054 8A93              st -y,R24
 0056 9A93              st -y,R25
 0058 EA93              st -y,R30
 005A FA93              st -y,R31
 005C 2FB6              in R2,0x3f
 005E 2A92              st -y,R2
 0060                   .dbline -1
 0060                   .dbline 36
 0060           ; }
 0060           ; 
 0060           ; 
 0060           ; #pragma interrupt_handler USART1_TX_ISR:iv_USART1_TX
 0060           ; void USART1_TX_ISR(void) 
 0060           ; {
 0060                   .dbline 37
 0060           ;       if (USART1_sendPosi < USART1_sendCount)
 0060 20900100          lds R2,_USART1_sendCount
 0064 30900000          lds R3,_USART1_sendPosi
 0068 3214              cp R3,R2
 006A 80F4              brsh L6
 006C           X0:
 006C                   .dbline 38
 006C           ;                       UDR1 = rec_Buf[USART1_sendPosi++];
 006C 20900000          lds R2,_USART1_sendPosi
 0070 3324              clr R3
 0072 822D              mov R24,R2
 0074 8F5F              subi R24,255    ; addi 1
 0076 80930000          sts _USART1_sendPosi,R24
 007A 80E0              ldi R24,<_rec_Buf
 007C 90E0              ldi R25,>_rec_Buf
 007E E22D              mov R30,R2
 0080 FF27              clr R31
 0082 E80F              add R30,R24
 0084 F91F              adc R31,R25
 0086 2080              ldd R2,z+0
 0088 2092CE00          sts 206,R2
 008C           L6:
 008C                   .dbline -2
 008C           L5:
 008C                   .dbline 0 ; func end
 008C 2990              ld R2,y+
 008E 2FBE              out 0x3f,R2
 0090 F991              ld R31,y+
 0092 E991              ld R30,y+
 0094 9991              ld R25,y+
 0096 8991              ld R24,y+
 0098 3990              ld R3,y+
 009A 2990              ld R2,y+
 009C 1895              reti
 009E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\CANBUS\数据帧\查询\单向通讯\结点1-串口\USART1.C
 0000           _rec_Buf::
 0000                   .blkb 16
 0010                   .dbsym e rec_Buf _rec_Buf A[16:16]c
 0010           ; }

⌨️ 快捷键说明

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