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

📄 main.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
字号:
                        .module main.c
                        .area data(ram, con, rel)
 0000           _bI2C_Event::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
 0001                   .dbsym e bI2C_Event _bI2C_Event c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
 0000                   .dbfunc e sSet_I2C_Event _sSet_I2C_Event fV
 0000           ;          event -> R16
                        .even
 0000           _sSet_I2C_Event::
 0000                   .dbline -1
 0000                   .dbline 21
 0000           ; //***************************************************************
 0000           ; // File Name : LED.c
 0000           ; // Author    : Steaven
 0000           ; // Created   : 2008-07-26
 0000           ; // Modified  : 
 0000           ; // Revision  : V0.0
 0000           ; //***************************************************************
 0000           ; 
 0000           ; #include "includes.h"
 0000           ; 
 0000           ; //global variables definition
 0000           ; INT8U bI2C_Event = 0;
 0000           ; 
 0000           ; //***************************************************************
 0000           ; // Function    : sSet_I2C_Event
 0000           ; // Input       : event - i2c operation event 
 0000           ; // Output      : none
 0000           ; // Description : I2C Event Interface Function
 0000           ; //***************************************************************
 0000           ; void sSet_I2C_Event(INT8U event)
 0000           ; {
 0000                   .dbline 22
 0000           ;       bI2C_Event = event;
 0000 00930000          sts _bI2C_Event,R16
 0004                   .dbline -2
 0004                   .dbline 23
 0004           ; }
 0004           L1:
 0004                   .dbline 0 ; func end
 0004 0895              ret
 0006                   .dbsym r event 16 c
 0006                   .dbend
 0006                   .dbfunc e sbGet_I2C_Event _sbGet_I2C_Event fc
 0006           ;          event -> R16
                        .even
 0006           _sbGet_I2C_Event::
 0006                   .dbline -1
 0006                   .dbline 32
 0006           ; 
 0006           ; //***************************************************************
 0006           ; // Function    : sbGet_I2C_Event
 0006           ; // Input       :  none  
 0006           ; // Output      : i2c operation event
 0006           ; // Description : I2C Event Interface Function
 0006           ; //***************************************************************
 0006           ; INT8U sbGet_I2C_Event(void)
 0006           ; {
 0006                   .dbline 34
 0006           ;       INT8U event;
 0006           ;       event = bI2C_Event;
 0006 00910000          lds R16,_bI2C_Event
 000A                   .dbline 35
 000A           ;       bI2C_Event = 0;
 000A 2224              clr R2
 000C 20920000          sts _bI2C_Event,R2
 0010                   .dbline 36
 0010           ;       return(event);
 0010                   .dbline -2
 0010           L2:
 0010                   .dbline 0 ; func end
 0010 0895              ret
 0012                   .dbsym r event 16 c
 0012                   .dbend
 0012                   .dbfunc e main _main fV
                        .even
 0012           _main::
 0012                   .dbline -1
 0012                   .dbline 40
 0012           ; }
 0012           ; 
 0012           ; void main(void) 
 0012           ; { 
 0012                   .dbline 41
 0012           ;       Hardware_Init();
 0012 0E940000          xcall _Hardware_Init
 0016                   .dbline 42
 0016           ;       Init_DS1337();
 0016 0E940000          xcall _Init_DS1337
 001A 05C0              xjmp L5
 001C           L4:
 001C                   .dbline 45
 001C           ;       
 001C           ;       while(1)
 001C           ;       {
 001C                   .dbline 46
 001C           ;               if(sbGet_I2C_Event() != 0)
 001C F4DF              xcall _sbGet_I2C_Event
 001E 0023              tst R16
 0020 11F0              breq L7
 0022                   .dbline 47
 0022           ;               {
 0022                   .dbline 48
 0022           ;                       Read_DS1337_Calendar();
 0022 0E940000          xcall _Read_DS1337_Calendar
 0026                   .dbline 49
 0026           ;               }
 0026           L7:
 0026                   .dbline 50
 0026           L5:
 0026                   .dbline 44
 0026 FACF              xjmp L4
 0028           X0:
 0028                   .dbline -2
 0028                   .dbline 51
 0028           ;       }
 0028           ; } 
 0028           L3:
 0028                   .dbline 0 ; func end
 0028 0895              ret
 002A                   .dbend
                        .area vector(rom, abs)
                        .org 76
 004C 0C941500          jmp _wTimeCountr0_Interrupt
                        .area text(rom, con, rel)
 002A                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
                        .area data(ram, con, rel)
 0001                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
 0001           L10:
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
                        .area text(rom, con, rel)
 002A                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
 002A                   .dbfunc e wTimeCountr0_Interrupt _wTimeCountr0_Interrupt fV
 002A                   .dbsym s int_count L10 c
                        .even
 002A           _wTimeCountr0_Interrupt::
 002A 0E940000          xcall push_lset
 002E                   .dbline -1
 002E                   .dbline 61
 002E                   .dbline 65
 002E 88B7              in R24,0x38
 0030 8260              ori R24,2
 0032 88BF              out 0x38,R24
 0034                   .dbline 66
 0034 2224              clr R2
 0036 22BE              out 0x32,R2
 0038                   .dbline 69
 0038 20900100          lds R2,L10
 003C 3324              clr R3
 003E 822D              mov R24,R2
 0040 8F5F              subi R24,255    ; addi 1
 0042 80930100          sts L10,R24
 0046 822D              mov R24,R2
 0048 8436              cpi R24,100
 004A 29F4              brne L11
 004C                   .dbline 70
 004C                   .dbline 71
 004C 2224              clr R2
 004E 20920100          sts L10,R2
 0052                   .dbline 72
 0052 01E0              ldi R16,1
 0054 D5DF              xcall _sSet_I2C_Event
 0056                   .dbline 73
 0056           L11:
 0056                   .dbline -2
 0056                   .dbline 74
 0056           ; 
 0056           ; //***************************************************************
 0056           ; // Function    : wTimeCountr0_Interrupt                                
 0056           ; // Input       : none                                            
 0056           ; // Output      : none                                            
 0056           ; // Description : ATmega16 T/C0 ISR                               
 0056           ; //***************************************************************
 0056           ; #pragma interrupt_handler wTimeCountr0_Interrupt:20                    
 0056           ; void wTimeCountr0_Interrupt(void)                                      
 0056           ; {                                                                
 0056           ;       static INT8U int_count = 0;
 0056           ;                                             
 0056           ;       //Clear wTimeCountr0 OCIF Flag                                     
 0056           ;       TIFR  |= 0x02;                                               
 0056           ;       TCNT0  = 0x00; 
 0056           ;                                                    
 0056           ;       //Interrupt count,send I2C event every second 
 0056           ;       if(int_count++ == 100)
 0056           ;       {
 0056           ;               int_count = 0;
 0056           ;               sSet_I2C_Event(1);
 0056           ;       }                                                
 0056           ; } 
 0056           L9:
 0056 0E940000          xcall pop_lset
 005A                   .dbline 0 ; func end
 005A 1895              reti
 005C                   .dbend

⌨️ 快捷键说明

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