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

📄 060_单片机与pc机通信.lis

📁 一般的单片机与PC机之间的串口通信
💻 LIS
字号:
                        .module _060_单片机与PC机通信.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\BKF\N_HDJ\单片机学习开发系统板资料\SP0602_AVR-II\SP0602AVR-II开发板\C源程序\060_单片机与PC机通信\060_单片机与PC机通信.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; //ICC-AVR application builder : 2006-3-9 12:06:43
 0000           ; // Target : M8515
 0000           ; // Crystal: 4.0000Mhz
 0000           ; 
 0000           ; #include <iom8515v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 10
 0000           ;   PORTA = 0x01;
 0000 81E0              ldi R24,1
 0002 8BBB              out 0x1b,R24
 0004                   .dbline 11
 0004           ;   DDRA  = 0x01;
 0004 8ABB              out 0x1a,R24
 0006                   .dbline 12
 0006           ;   PORTB = 0x00;
 0006 2224              clr R2
 0008 28BA              out 0x18,R2
 000A                   .dbline 13
 000A           ;   DDRB  = 0x00;
 000A 27BA              out 0x17,R2
 000C                   .dbline 14
 000C           ;   PORTC = 0x00;
 000C 25BA              out 0x15,R2
 000E                   .dbline 15
 000E           ;   DDRC  = 0x00;
 000E 24BA              out 0x14,R2
 0010                   .dbline 16
 0010           ;   PORTD = 0x00;
 0010 22BA              out 0x12,R2
 0012                   .dbline 17
 0012           ;   DDRD  = 0x00; 
 0012 21BA              out 0x11,R2
 0014                   .dbline 18
 0014           ;   PORTE = 0x00;
 0014 27B8              out 0x7,R2
 0016                   .dbline 19
 0016           ;   DDRE  = 0x00; 
 0016 26B8              out 0x6,R2
 0018                   .dbline -2
 0018           L1:
 0018                   .dbline 0 ; func end
 0018 0895              ret
 001A                   .dbend
 001A                   .dbfunc e uart0_init _uart0_init fV
                        .even
 001A           _uart0_init::
 001A                   .dbline -1
 001A                   .dbline 23
 001A           ; }
 001A           ; 
 001A           ; void uart0_init(void)
 001A           ; {
 001A                   .dbline 24
 001A           ;   UCSRB = 0x00;
 001A 2224              clr R2
 001C 2AB8              out 0xa,R2
 001E                   .dbline 25
 001E           ;   UCSRA = 0x00;
 001E 2BB8              out 0xb,R2
 0020                   .dbline 26
 0020           ;   UCSRC = BIT(URSEL) | 0x06;
 0020 86E8              ldi R24,134
 0022 80BD              out 0x20,R24
 0024                   .dbline 27
 0024           ;   UBRRL = 0x19;
 0024 89E1              ldi R24,25
 0026 89B9              out 0x9,R24
 0028                   .dbline 28
 0028           ;   UBRRH = 0x00;
 0028 20BC              out 0x20,R2
 002A                   .dbline 29
 002A           ;   UCSRB = 0xD8;
 002A 88ED              ldi R24,216
 002C 8AB9              out 0xa,R24
 002E                   .dbline -2
 002E           L2:
 002E                   .dbline 0 ; func end
 002E 0895              ret
 0030                   .dbend
                        .area vector(rom, abs)
                        .org 18
 0012 18C0              rjmp _uart0_rx_isr
                        .area text(rom, con, rel)
 0030                   .dbfile D:\BKF\N_HDJ\单片机学习开发系统板资料\SP0602_AVR-II\SP0602AVR-II开发板\C源程序\060_单片机与PC机通信\060_单片机与PC机通信.c
 0030                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
 0030           ;           Temp -> R16
                        .even
 0030           _uart0_rx_isr::
 0030 0A93              st -y,R16
 0032 0FB7              in R16,0x3f
 0034 0A93              st -y,R16
 0036                   .dbline -1
 0036                   .dbline 34
 0036           ; }
 0036           ; 
 0036           ; #pragma interrupt_handler uart0_rx_isr:10
 0036           ; void uart0_rx_isr(void)
 0036           ; {
 0036                   .dbline 37
 0036           ;   unsigned char Temp;
 0036           ;   
 0036           ;   Temp=UDR;
 0036 0CB1              in R16,0xc
 0038                   .dbline 38
 0038           ;   if(Temp=='A')
 0038 0134              cpi R16,65
 003A 29F4              brne L4
 003C                   .dbline 39
 003C           ;     {
 003C                   .dbline 40
 003C           ;         if((PINA & 0x01)==0)
 003C C899              sbic 0x19,0
 003E 02C0              rjmp L6
 0040                   .dbline 41
 0040           ;           {
 0040                   .dbline 42
 0040           ;                 PORTA|=BIT(PORTA0);
 0040 D89A              sbi 0x1b,0
 0042                   .dbline 43
 0042           ;               }
 0042 01C0              rjmp L7
 0044           L6:
 0044                   .dbline 45
 0044           ;               else
 0044           ;                 {
 0044                   .dbline 46
 0044           ;                   PORTA&=~BIT(PORTA0);
 0044 D898              cbi 0x1b,0
 0046                   .dbline 47
 0046           ;                 }
 0046           L7:
 0046                   .dbline 48
 0046           L4:
 0046                   .dbline -2
 0046           L3:
 0046 0991              ld R16,y+
 0048 0FBF              out 0x3f,R16
 004A 0991              ld R16,y+
 004C                   .dbline 0 ; func end
 004C 1895              reti
 004E                   .dbsym r Temp 16 c
 004E                   .dbend
                        .area vector(rom, abs)
                        .org 22
 0016 27C0              rjmp _uart0_tx_isr
                        .area text(rom, con, rel)
 004E                   .dbfile D:\BKF\N_HDJ\单片机学习开发系统板资料\SP0602_AVR-II\SP0602AVR-II开发板\C源程序\060_单片机与PC机通信\060_单片机与PC机通信.c
 004E                   .dbfunc e uart0_tx_isr _uart0_tx_isr fV
                        .even
 004E           _uart0_tx_isr::
 004E                   .dbline -1
 004E                   .dbline 53
 004E           ;       }
 004E           ; }
 004E           ; 
 004E           ; #pragma interrupt_handler uart0_tx_isr:12
 004E           ; void uart0_tx_isr(void)
 004E           ; {
 004E                   .dbline -2
 004E           L8:
 004E                   .dbline 0 ; func end
 004E 1895              reti
 0050                   .dbend
 0050                   .dbfunc e init_devices _init_devices fV
                        .even
 0050           _init_devices::
 0050                   .dbline -1
 0050                   .dbline 60
 0050           ;  //character has been transmitted
 0050           ; }
 0050           ; 
 0050           ; 
 0050           ; 
 0050           ; void init_devices(void)
 0050           ; {
 0050                   .dbline 61
 0050           ;   CLI();
 0050 F894              cli
 0052                   .dbline 62
 0052           ;   port_init();
 0052 D6DF              rcall _port_init
 0054                   .dbline 63
 0054           ;   uart0_init();
 0054 E2DF              rcall _uart0_init
 0056                   .dbline 65
 0056           ;   
 0056           ;   MCUCR = 0x00;
 0056 2224              clr R2
 0058 25BE              out 0x35,R2
 005A                   .dbline 66
 005A           ;   EMCUCR = 0x00;
 005A 26BE              out 0x36,R2
 005C                   .dbline 67
 005C           ;   GICR = 0x00;
 005C 2BBE              out 0x3b,R2
 005E                   .dbline 68
 005E           ;   TIMSK = 0x00;
 005E 29BE              out 0x39,R2
 0060                   .dbline 69
 0060           ;   SEI();
 0060 7894              sei
 0062                   .dbline -2
 0062           L9:
 0062                   .dbline 0 ; func end
 0062 0895              ret
 0064                   .dbend
 0064                   .dbfunc e main _main fV
                        .even
 0064           _main::
 0064                   .dbline -1
 0064                   .dbline 77
 0064           ; }
 0064           ; 
 0064           ; 
 0064           ; 
 0064           ; 
 0064           ; 
 0064           ; void main(void)
 0064           ; {
 0064                   .dbline 78
 0064           ;   init_devices();
 0064 F5DF              rcall _init_devices
 0066           L11:
 0066                   .dbline 81
 0066                   .dbline 82
 0066                   .dbline 83
 0066           L12:
 0066                   .dbline 80
 0066 FFCF              rjmp L11
 0068           X0:
 0068                   .dbline -2
 0068           L10:
 0068                   .dbline 0 ; func end
 0068 0895              ret
 006A                   .dbend

⌨️ 快捷键说明

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