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

📄 uart.lis

📁 这是关于AVR单片机学习的初步开发
💻 LIS
字号:
                        .module uart.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\alf\MYDOCU~1\开发板\调试程序\uart\uart.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; //ICC-AVR application builder : 2005-3-8 下午 09:54:40
 0000           ; // Target : M8
 0000           ; // Crystal: 11.059Mhz
 0000           ; 
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 10
 0000           ;  PORTB = 0xFF;
 0000 8FEF              ldi R24,255
 0002 88BB              out 0x18,R24
 0004                   .dbline 11
 0004           ;  DDRB  = 0x00;
 0004 2224              clr R2
 0006 27BA              out 0x17,R2
 0008                   .dbline 12
 0008           ;  PORTC = 0x7F; //m103 output only
 0008 8FE7              ldi R24,127
 000A 85BB              out 0x15,R24
 000C                   .dbline 13
 000C           ;  DDRC  = 0x00;
 000C 24BA              out 0x14,R2
 000E                   .dbline 14
 000E           ;  PORTD = 0xFF;
 000E 8FEF              ldi R24,255
 0010 82BB              out 0x12,R24
 0012                   .dbline 15
 0012           ;  DDRD  = 0x00;
 0012 21BA              out 0x11,R2
 0014                   .dbline -2
 0014                   .dbline 16
 0014           ; }
 0014           L1:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbend
 0016                   .dbfunc e uart0_init _uart0_init fV
                        .even
 0016           _uart0_init::
 0016                   .dbline -1
 0016                   .dbline 24
 0016           ; 
 0016           ; //UART0 initialisation
 0016           ; // desired baud rate: 9600
 0016           ; // actual: baud rate:9600 (0.0%)
 0016           ; // char size: 8 bit
 0016           ; // parity: Disabled
 0016           ; void uart0_init(void)
 0016           ; {
 0016                   .dbline 25
 0016           ;  UCSRB = 0x00; //disable while setting baud rate
 0016 2224              clr R2
 0018 2AB8              out 0xa,R2
 001A                   .dbline 26
 001A           ;  UCSRA = 0x00;
 001A 2BB8              out 0xb,R2
 001C                   .dbline 27
 001C           ;  UCSRC = 0x86;
 001C 86E8              ldi R24,134
 001E 80BD              out 0x20,R24
 0020                   .dbline 28
 0020           ;  UBRRL = 0x47; //set baud rate lo
 0020 87E4              ldi R24,71
 0022 89B9              out 0x9,R24
 0024                   .dbline 29
 0024           ;  UBRRH = 0x00; //set baud rate hi
 0024 20BC              out 0x20,R2
 0026                   .dbline 30
 0026           ;  UCSRB = 0x98;
 0026 88E9              ldi R24,152
 0028 8AB9              out 0xa,R24
 002A                   .dbline -2
 002A                   .dbline 31
 002A           ; }
 002A           L2:
 002A                   .dbline 0 ; func end
 002A 0895              ret
 002C                   .dbend
                        .area vector(rom, abs)
                        .org 22
 0016 16C0              rjmp _uart0_rx_isr
                        .area text(rom, con, rel)
 002C                   .dbfile C:\DOCUME~1\alf\MYDOCU~1\开发板\调试程序\uart\uart.c
 002C                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
 002C           ;           temp -> R16
                        .even
 002C           _uart0_rx_isr::
 002C 0A93              st -y,R16
 002E 0FB7              in R16,0x3f
 0030 0A93              st -y,R16
 0032                   .dbline -1
 0032                   .dbline 35
 0032           ; 
 0032           ; #pragma interrupt_handler uart0_rx_isr:12
 0032           ; void uart0_rx_isr(void)
 0032           ; {
 0032                   .dbline 38
 0032           ;  //uart has received a character in UDR
 0032           ;  char temp;
 0032           ;  temp = UDR;
 0032 0CB1              in R16,0xc
 0034                   .dbline 39
 0034           ;  UDR = temp;
 0034 0CB9              out 0xc,R16
 0036                   .dbline -2
 0036                   .dbline 40
 0036           ; }
 0036           L3:
 0036 0991              ld R16,y+
 0038 0FBF              out 0x3f,R16
 003A 0991              ld R16,y+
 003C                   .dbline 0 ; func end
 003C 1895              reti
 003E                   .dbsym r temp 16 c
 003E                   .dbend
 003E                   .dbfunc e init_devices _init_devices fV
                        .even
 003E           _init_devices::
 003E                   .dbline -1
 003E                   .dbline 44
 003E           ; 
 003E           ; //call this routine to initialise all peripherals
 003E           ; void init_devices(void)
 003E           ; {
 003E                   .dbline 46
 003E           ;  //stop errant interrupts until set up
 003E           ;  CLI(); //disable all interrupts
 003E F894              cli
 0040                   .dbline 47
 0040           ;  port_init();
 0040 DFDF              rcall _port_init
 0042                   .dbline 48
 0042           ;  uart0_init();
 0042 E9DF              rcall _uart0_init
 0044                   .dbline 50
 0044           ; 
 0044           ;  MCUCR = 0x00;
 0044 2224              clr R2
 0046 25BE              out 0x35,R2
 0048                   .dbline 51
 0048           ;  GICR  = 0x00;
 0048 2BBE              out 0x3b,R2
 004A                   .dbline 52
 004A           ;  TIMSK = 0x00; //timer interrupt sources
 004A 29BE              out 0x39,R2
 004C                   .dbline 53
 004C           ;  SEI(); //re-enable interrupts
 004C 7894              sei
 004E                   .dbline -2
 004E                   .dbline 55
 004E           ;  //all peripherals are now initialised
 004E           ; }
 004E           L4:
 004E                   .dbline 0 ; func end
 004E 0895              ret
 0050                   .dbend
 0050                   .dbfunc e main _main fV
                        .even
 0050           _main::
 0050                   .dbline -1
 0050                   .dbline 59
 0050           ; 
 0050           ; //
 0050           ; void main(void)
 0050           ; {
 0050                   .dbline 60
 0050           ;  init_devices();
 0050 F6DF              rcall _init_devices
 0052           L6:
 0052                   .dbline 62
 0052           L7:
 0052                   .dbline 62
 0052 FFCF              rjmp L6
 0054           X0:
 0054                   .dbline -2
 0054                   .dbline 63
 0054           ;  //insert your functional code here...
 0054           ;  while(1);
 0054           ; }
 0054           L5:
 0054                   .dbline 0 ; func end
 0054 0895              ret
 0056                   .dbend

⌨️ 快捷键说明

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