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

📄 initial.lis

📁 avr 基于i2c接口的电源管理协议。包括主机发送主机接受从机发送接收。
💻 LIS
字号:
                        .module initial.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\myavrproject\icc\twi\initial.c
 0000                   .dbfunc e watchdog_init _watchdog_init fV
                        .even
 0000           _watchdog_init::
 0000                   .dbline -1
 0000                   .dbline 12
 0000           ; //ICC-AVR application builder : 2007-1-9 14:28:21
 0000           ; // Target : M8
 0000           ; // Crystal: 8.0000Mhz
 0000           ; 
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; 
 0000           ; //Watchdog initialize
 0000           ; // prescale: 2048K
 0000           ; void watchdog_init(void)
 0000           ; {
 0000                   .dbline 13
 0000           ;  WDR(); //this prevents a timout on enabling
 0000 A895              wdr
 0002                   .dbline 14
 0002           ;  WDTCR = 0x0f; //WATCHDOG ENABLED - dont forget to issue WDRs
 0002 8FE0              ldi R24,15
 0004 81BD              out 0x21,R24
 0006                   .dbline -2
 0006           L1:
 0006                   .dbline 0 ; func end
 0006 0895              ret
 0008                   .dbend
 0008                   .dbfunc e twi_init _twi_init fV
                        .even
 0008           _twi_init::
 0008                   .dbline -1
 0008                   .dbline 28
 0008           ;  /*
 0008           ;  //关闭看门狗
 0008           ;  //置位WDCE 和 WDE 
 0008           ;  WDTCR |= (1<<WDCE) | (1<<WDE);
 0008           ;  //关闭WDT
 0008           ;  WDTCR = 0x00;
 0008           ;  */
 0008           ; }
 0008           ; 
 0008           ; //TWI initialize
 0008           ; // bit rate:72
 0008           ; //50KHZ
 0008           ; void twi_init(void)
 0008           ; {
 0008                   .dbline 29
 0008           ;  TWCR= 0X00; //disable twi
 0008 2224              clr R2
 000A 26BE              out 0x36,R2
 000C                   .dbline 30
 000C           ;  TWBR= 0x48; //set bit rate
 000C 88E4              ldi R24,72
 000E 80B9              out 0x0,R24
 0010                   .dbline 31
 0010           ;  TWSR= 0x00; //set prescale
 0010 21B8              out 0x1,R2
 0012                   .dbline 32
 0012           ;  TWAR= 0x01; //set slave address
 0012 81E0              ldi R24,1
 0014 82B9              out 0x2,R24
 0016                   .dbline 33
 0016           ;  TWCR= 0x45; //enable twi
 0016 85E4              ldi R24,69
 0018 86BF              out 0x36,R24
 001A                   .dbline -2
 001A           L2:
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbend
                        .area vector(rom, abs)
                        .org 34
 0022 0EC0              rjmp _twi_isr
                        .area text(rom, con, rel)
 001C                   .dbfile D:\myavrproject\icc\twi\initial.c
 001C                   .dbfunc e twi_isr _twi_isr fV
                        .even
 001C           _twi_isr::
 001C                   .dbline -1
 001C                   .dbline 38
 001C           ; }
 001C           ; 
 001C           ; #pragma interrupt_handler twi_isr:18
 001C           ; void twi_isr(void)
 001C           ; {
 001C                   .dbline -2
 001C           L3:
 001C                   .dbline 0 ; func end
 001C 1895              reti
 001E                   .dbend
 001E                   .dbfunc e uart0_init _uart0_init fV
                        .even
 001E           _uart0_init::
 001E                   .dbline -1
 001E                   .dbline 48
 001E           ;  //twi event
 001E           ; }
 001E           ; 
 001E           ; //UART0 initialize
 001E           ; // desired baud rate: 9600
 001E           ; // actual: baud rate:9615 (0.2%)
 001E           ; // char size: 8 bit
 001E           ; // parity: Disabled
 001E           ; void uart0_init(void)
 001E           ; {
 001E                   .dbline 49
 001E           ;  UCSRB = 0x00; //disable while setting baud rate
 001E 2224              clr R2
 0020 2AB8              out 0xa,R2
 0022                   .dbline 50
 0022           ;  UCSRA = 0x02;
 0022 82E0              ldi R24,2
 0024 8BB9              out 0xb,R24
 0026                   .dbline 51
 0026           ;  UCSRC = BIT(URSEL) | 0x06;
 0026 86E8              ldi R24,134
 0028 80BD              out 0x20,R24
 002A                   .dbline 52
 002A           ;  UBRRL = 0x67; //set baud rate lo
 002A 87E6              ldi R24,103
 002C 89B9              out 0x9,R24
 002E                   .dbline 53
 002E           ;  UBRRH = 0x00; //set baud rate hi
 002E 20BC              out 0x20,R2
 0030                   .dbline 54
 0030           ;  UCSRB = 0x18;
 0030 88E1              ldi R24,24
 0032 8AB9              out 0xa,R24
 0034                   .dbline -2
 0034           L4:
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbend
 0036                   .dbfunc e init_devices _init_devices fV
                        .even
 0036           _init_devices::
 0036                   .dbline -1
 0036                   .dbline 59
 0036           ; }
 0036           ; 
 0036           ; //call this routine to initialize all peripherals
 0036           ; void init_devices(void)
 0036           ; {
 0036                   .dbline 61
 0036           ;  //stop errant interrupts until set up
 0036           ;  CLI(); //disable all interrupts
 0036 F894              cli
 0038                   .dbline 62
 0038           ;  port_init();
 0038 00D0              rcall _port_init
 003A                   .dbline 63
 003A           ;  watchdog_init();
 003A E2DF              rcall _watchdog_init
 003C                   .dbline 64
 003C           ;  twi_init();
 003C E5DF              rcall _twi_init
 003E                   .dbline 65
 003E           ;  uart0_init();
 003E EFDF              rcall _uart0_init
 0040                   .dbline 68
 0040           ; 
 0040           ; 
 0040           ;  MCUCR = 0x00;
 0040 2224              clr R2
 0042 25BE              out 0x35,R2
 0044                   .dbline 69
 0044           ;  GICR  = 0x00;
 0044 2BBE              out 0x3b,R2
 0046                   .dbline 70
 0046           ;  TIMSK = 0x00; //timer interrupt sources
 0046 29BE              out 0x39,R2
 0048                   .dbline 71
 0048           ;  SEI(); //re-enable interrupts
 0048 7894              sei
 004A                   .dbline -2
 004A           L5:
 004A                   .dbline 0 ; func end
 004A 0895              ret
 004C                   .dbend

⌨️ 快捷键说明

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