📄 main.s
字号:
.module main.c
.area data(ram, con, rel)
_bI2C_Event::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
.dbsym e bI2C_Event _bI2C_Event c
.area text(rom, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
.dbfunc e sSet_I2C_Event _sSet_I2C_Event fV
; event -> R16
.even
_sSet_I2C_Event::
.dbline -1
.dbline 21
; //***************************************************************
; // File Name : LED.c
; // Author : Steaven
; // Created : 2008-07-26
; // Modified :
; // Revision : V0.0
; //***************************************************************
;
; #include "includes.h"
;
; //global variables definition
; INT8U bI2C_Event = 0;
;
; //***************************************************************
; // Function : sSet_I2C_Event
; // Input : event - i2c operation event
; // Output : none
; // Description : I2C Event Interface Function
; //***************************************************************
; void sSet_I2C_Event(INT8U event)
; {
.dbline 22
; bI2C_Event = event;
sts _bI2C_Event,R16
.dbline -2
.dbline 23
; }
L1:
.dbline 0 ; func end
ret
.dbsym r event 16 c
.dbend
.dbfunc e sbGet_I2C_Event _sbGet_I2C_Event fc
; event -> R16
.even
_sbGet_I2C_Event::
.dbline -1
.dbline 32
;
; //***************************************************************
; // Function : sbGet_I2C_Event
; // Input : none
; // Output : i2c operation event
; // Description : I2C Event Interface Function
; //***************************************************************
; INT8U sbGet_I2C_Event(void)
; {
.dbline 34
; INT8U event;
; event = bI2C_Event;
lds R16,_bI2C_Event
.dbline 35
; bI2C_Event = 0;
clr R2
sts _bI2C_Event,R2
.dbline 36
; return(event);
.dbline -2
L2:
.dbline 0 ; func end
ret
.dbsym r event 16 c
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 40
; }
;
; void main(void)
; {
.dbline 41
; Hardware_Init();
xcall _Hardware_Init
.dbline 42
; Init_DS1337();
xcall _Init_DS1337
xjmp L5
L4:
.dbline 45
;
; while(1)
; {
.dbline 46
; if(sbGet_I2C_Event() != 0)
xcall _sbGet_I2C_Event
tst R16
breq L7
.dbline 47
; {
.dbline 48
; Read_DS1337_Calendar();
xcall _Read_DS1337_Calendar
.dbline 49
; }
L7:
.dbline 50
L5:
.dbline 44
xjmp L4
X0:
.dbline -2
.dbline 51
; }
; }
L3:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 76
jmp _wTimeCountr0_Interrupt
.area text(rom, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
.area data(ram, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
L10:
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
.area text(rom, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\main.c
.dbfunc e wTimeCountr0_Interrupt _wTimeCountr0_Interrupt fV
.dbsym s int_count L10 c
.even
_wTimeCountr0_Interrupt::
xcall push_lset
.dbline -1
.dbline 61
.dbline 65
in R24,0x38
ori R24,2
out 0x38,R24
.dbline 66
clr R2
out 0x32,R2
.dbline 69
lds R2,L10
clr R3
mov R24,R2
subi R24,255 ; addi 1
sts L10,R24
mov R24,R2
cpi R24,100
brne L11
.dbline 70
.dbline 71
clr R2
sts L10,R2
.dbline 72
ldi R16,1
xcall _sSet_I2C_Event
.dbline 73
L11:
.dbline -2
.dbline 74
;
; //***************************************************************
; // Function : wTimeCountr0_Interrupt
; // Input : none
; // Output : none
; // Description : ATmega16 T/C0 ISR
; //***************************************************************
; #pragma interrupt_handler wTimeCountr0_Interrupt:20
; void wTimeCountr0_Interrupt(void)
; {
; static INT8U int_count = 0;
;
; //Clear wTimeCountr0 OCIF Flag
; TIFR |= 0x02;
; TCNT0 = 0x00;
;
; //Interrupt count,send I2C event every second
; if(int_count++ == 100)
; {
; int_count = 0;
; sSet_I2C_Event(1);
; }
; }
L9:
xcall pop_lset
.dbline 0 ; func end
reti
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -