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

📄 init.lis

📁 mega128的串口发送文件.可以发送0X55上位机使用串口调试工具就可以接收了.
💻 LIS
字号:
                        .module init.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\new_sd\init.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 4
 0000           ; 
 0000           ; #include "glo.h"
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 5
 0000           ;      PORTA = 0xFF;                  //PORTx   端口x数据寄存器
 0000 8FEF              ldi R24,255
 0002 8BBB              out 0x1b,R24
 0004                   .dbline 6
 0004           ;    DDRA  = 0xFF;                        //DDRx    端口x方向寄存器 1为输出,0为输入
 0004 8ABB              out 0x1a,R24
 0006                   .dbline 8
 0006           ;  
 0006           ;  PORTB = 0xFF;
 0006 88BB              out 0x18,R24
 0008                   .dbline 9
 0008           ;  DDRB  = 0x00;
 0008 2224              clr R2
 000A 27BA              out 0x17,R2
 000C                   .dbline 11
 000C           ;  
 000C           ;  PORTC = 0x00;            //m103 output only
 000C 25BA              out 0x15,R2
 000E                   .dbline 12
 000E           ;  DDRC  = 0xFF;
 000E 84BB              out 0x14,R24
 0010                   .dbline 14
 0010           ;  
 0010           ;  PORTD = 0x7F;
 0010 8FE7              ldi R24,127
 0012 82BB              out 0x12,R24
 0014                   .dbline 15
 0014           ;  DDRD  = 0x00;
 0014 21BA              out 0x11,R2
 0016                   .dbline 17
 0016           ;  
 0016           ;  DDRE  = 0xFC;
 0016 8CEF              ldi R24,252
 0018 82B9              out 0x2,R24
 001A                   .dbline 18
 001A           ;  PORTE = 0x0B;
 001A 8BE0              ldi R24,11
 001C 83B9              out 0x3,R24
 001E                   .dbline 19
 001E           ;  DDRE  = 0x00;
 001E 22B8              out 0x2,R2
 0020                   .dbline 21
 0020           ;  
 0020           ;  PORTF = 0xFF;
 0020 8FEF              ldi R24,255
 0022 80936200          sts 98,R24
 0026                   .dbline 22
 0026           ;  DDRF  = 0x00;
 0026 20926100          sts 97,R2
 002A                   .dbline 24
 002A           ;  
 002A           ;  PORTG = 0x00;
 002A 20926500          sts 101,R2
 002E                   .dbline 26
 002E           ;  
 002E           ;  DDRB |= 0XFF;                          //PB.4/PB.5/PB.6按键输出
 002E 87B3              in R24,0x17
 0030 8F6F              ori R24,255
 0032 87BB              out 0x17,R24
 0034                   .dbline 28
 0034           ;  
 0034           ;  DDRF |= 0xF0;                          //CS1~CS4 输出
 0034 80916100          lds R24,97
 0038 806F              ori R24,240
 003A 80936100          sts 97,R24
 003E                   .dbline 31
 003E           ; // DDRF &= 0xFE;                //MIC输入
 003E           ;  
 003E           ;  DDRG |= 0x07;                          //ALE/RD/WE输出
 003E 80916400          lds R24,100
 0042 8760              ori R24,7
 0044 80936400          sts 100,R24
 0048                   .dbline 32
 0048           ;  DDRG &= 0xE7;                          //DDRG.3,DDRG.4输入
 0048 80916400          lds R24,100
 004C 877E              andi R24,231
 004E 80936400          sts 100,R24
 0052                   .dbline 34
 0052           ;   
 0052           ;  DDRD |= 0x70;                          //LCD_RS/LCD_RST/LCD_CS输出
 0052 81B3              in R24,0x11
 0054 8067              ori R24,112
 0056 81BB              out 0x11,R24
 0058                   .dbline 35
 0058           ;  DDRD |= 0X01;                          //SCK I2C时钟线输出 
 0058 889A              sbi 0x11,0
 005A                   .dbline 36
 005A           ;  DDRD |= 0X08;                          //OE 输出0
 005A 8B9A              sbi 0x11,3
 005C                   .dbline 38
 005C           ;   
 005C           ;  DDRD |= 0x80;                          //A16输出0
 005C 8F9A              sbi 0x11,7
 005E                   .dbline 39
 005E           ;  PORTD&= 0x7F;
 005E 82B3              in R24,0x12
 0060 8F77              andi R24,127
 0062 82BB              out 0x12,R24
 0064                   .dbline -2
 0064           L1:
 0064                   .dbline 0 ; func end
 0064 0895              ret
 0066                   .dbend
 0066                   .dbfunc e spi_init _spi_init fV
                        .even
 0066           _spi_init::
 0066                   .dbline -1
 0066                   .dbline 46
 0066           ;  
 0066           ; 
 0066           ; }
 0066           ; 
 0066           ; 
 0066           ; void spi_init(void)
 0066           ; {
 0066                   .dbline 47
 0066           ;  DDRB  |=0x07;
 0066 87B3              in R24,0x17
 0068 8760              ori R24,7
 006A 87BB              out 0x17,R24
 006C                   .dbline 48
 006C           ;  PORTB &=0xf8;                                        //选择3548
 006C 88B3              in R24,0x18
 006E 887F              andi R24,248
 0070 88BB              out 0x18,R24
 0072                   .dbline 49
 0072           ;  SPCR = 0x54;                                         //setup SPI,SPI使能,主机模式,为1/4分频
 0072 84E5              ldi R24,84
 0074 8DB9              out 0xd,R24
 0076                   .dbline 50
 0076           ;  SPSR= 0x01;                                  //setup SPI  SPI选择加速,为1/2分频
 0076 81E0              ldi R24,1
 0078 8EB9              out 0xe,R24
 007A                   .dbline -2
 007A           L2:
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbend
 007C                   .dbfunc e uart0_init _uart0_init fV
                        .even
 007C           _uart0_init::
 007C                   .dbline -1
 007C                   .dbline 54
 007C           ; }
 007C           ; 
 007C           ; void uart0_init(void)
 007C           ; {
 007C                   .dbline 55
 007C           ;  UCSR0B = 0x00;                                 //disable while setting baud rate
 007C 2224              clr R2
 007E 2AB8              out 0xa,R2
 0080                   .dbline 56
 0080           ;  UCSR0A = 0x00;                                         //发送等待缓冲器
 0080 2BB8              out 0xb,R2
 0082                   .dbline 57
 0082           ;  UCSR0C = 0x06;                                 //异步通信,8位数据
 0082 86E0              ldi R24,6
 0084 80939500          sts 149,R24
 0088                   .dbline 58
 0088           ;  UBRR0L = 0x5F;                                 //0x08; //set baud rate lo 9600
 0088 8FE5              ldi R24,95
 008A 89B9              out 0x9,R24
 008C                   .dbline 59
 008C           ;  UBRR0H = 0x00;                                 //set baud rate hi
 008C 20929000          sts 144,R2
 0090                   .dbline 61
 0090           ; // UCSR0B =0X00;
 0090           ;  UCSR0B = 0x98;                                 //接收结束中断使能,接收使能,发送使能
 0090 88E9              ldi R24,152
 0092 8AB9              out 0xa,R24
 0094                   .dbline -2
 0094           L3:
 0094                   .dbline 0 ; func end
 0094 0895              ret
 0096                   .dbend
 0096                   .dbfunc e init_devices _init_devices fV
                        .even
 0096           _init_devices::
 0096                   .dbline -1
 0096                   .dbline 71
 0096           ; }
 0096           ; 
 0096           ; //-------------------------------------------------------------------------------
 0096           ; /*
 0096           ; MCU初始化
 0096           ; */
 0096           ; //-------------------------------------------------------------------------------
 0096           ; //call this routine to initialize all peripherals
 0096           ; void init_devices(void)
 0096           ; {
 0096                   .dbline 73
 0096           ;     
 0096           ;     CLI();
 0096 F894              cli
 0098                   .dbline 75
 0098           ;    
 0098           ;     XDIV=0x00 ;
 0098 2224              clr R2
 009A 2CBE              out 0x3c,R2
 009C                   .dbline 78
 009C           ;   
 009C           ;   //timer1_init();
 009C           ;      port_init();
 009C B1DF              xcall _port_init
 009E                   .dbline 80
 009E           ;     //        
 009E           ;     spi_init();
 009E E3DF              xcall _spi_init
 00A0                   .dbline 82
 00A0           ;     //
 00A0           ;     uart0_init();
 00A0 EDDF              xcall _uart0_init
 00A2                   .dbline 92
 00A2           ;     //
 00A2           ;    // adc_init();
 00A2           ;     
 00A2           ;    // int_isr_init();
 00A2           ;     //中断设置
 00A2           ;     
 00A2           ;    // Initial_3544();
 00A2           ;     //
 00A2           ;    // i2c_init();
 00A2           ;     LCD_init();
 00A2 0E940000          xcall _LCD_init
 00A6                   .dbline 95
 00A6           ;     //MCUCR = 0x00;//电源管理控制寄存器
 00A6           ;     
 00A6           ;     TIMSK=0x04 ;
 00A6 84E0              ldi R24,4
 00A8 87BF              out 0x37,R24
 00AA                   .dbline 97
 00AA           ;     
 00AA           ;     ETIMSK=0x00 ;
 00AA 2224              clr R2
 00AC 20927D00          sts 125,R2
 00B0                   .dbline 99
 00B0           ;     
 00B0           ;     MCUCR=0xc0 ;
 00B0 80EC              ldi R24,192
 00B2 85BF              out 0x35,R24
 00B4                   .dbline 103
 00B4           ;     
 00B4           ;     
 00B4           ;     //1100 0000                                                                          
 00B4           ;     XMCRA=0x0e ;
 00B4 8EE0              ldi R24,14
 00B6 80936D00          sts 109,R24
 00BA                   .dbline 108
 00BA           ;     // 读/写操作插入2个等待周期。输出新地址之前还要插入1个等待周期 
 00BA           ;     //- SRL2 SRL1 SRL0 SRW01 SRW00 SRW11 -    
 00BA           ;     //7------------------------0
 00BA           ;       
 00BA           ;     XMCRB=0 ;
 00BA 20926C00          sts 108,R2
 00BE                   .dbline 114
 00BE           ;                      //(1<<XMBK);                                // 使能外部扩展随机存储器总线保持功能 
 00BE           ;                      //XMBK - - - - XMM2 XMM1 XMM0                                                                       
 00BE           ;                      //XMBK 外部存储器总线保持功能使能
 00BE           ;                      //XMM2~0 外部存储器高地址屏蔽
 00BE           ;     
 00BE           ;     UCSR0B|=0x80 ;
 00BE 579A              sbi 0xa,7
 00C0                   .dbline 116
 00C0           ;     //开串口接收中断          
 00C0           ;     SEI();
 00C0 7894              sei
 00C2                   .dbline -2
 00C2           L4:
 00C2                   .dbline 0 ; func end
 00C2 0895              ret
 00C4                   .dbend

⌨️ 快捷键说明

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