📄 main.s
字号:
.module main.c
.area text(rom, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\市电电压频率测量系统\main.c
.dbfunc e main _main fV
; count -> R20
.even
_main::
.dbline -1
.dbline 12
; //********************************************************************
; // File Name : main.c
; // Author : Steaven
; // Created : 2008-07-26
; // Modified :
; // Revision : V0.0
; //********************************************************************
;
; #include "includes.h"
;
; void main(void)
; {
.dbline 13
; INT8U count = 0;
clr R20
.dbline 14
; Hardware_Init();
xcall _Hardware_Init
.dbline 15
; Init_UART();
xcall _Init_UART
xjmp L3
L2:
.dbline 18
;
; while(1)
; {
.dbline 19
; if(sbGet_SCI_Event() != 0)
xcall _sbGet_SCI_Event
tst R16
breq L5
.dbline 20
; {
.dbline 21
; SCI_Parsing(&stSciBuffer);
ldi R16,<_stSciBuffer
ldi R17,>_stSciBuffer
xcall _SCI_Parsing
.dbline 22
; }
L5:
.dbline 23
L3:
.dbline 17
xjmp L2
X0:
.dbline -2
.dbline 24
; }
; }
L1:
.dbline 0 ; func end
ret
.dbsym r count 20 c
.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\市电电压频率测量系统\main.c
.area data(ram, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\市电电压频率测量系统\main.c
L8:
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\市电电压频率测量系统\main.c
.area text(rom, con, rel)
.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\市电电压频率测量系统\main.c
.dbfunc e wTimeCountr0_Interrupt _wTimeCountr0_Interrupt fV
.dbsym s int_count L8 c
.even
_wTimeCountr0_Interrupt::
xcall push_lset
.dbline -1
.dbline 34
;
; //********************************************************************
; // Function : wTimeCountr0_Interrupt
; // Input : none
; // Output : none
; // Description : ATmega16 T/C0 ISR
; //********************************************************************
; #pragma interrupt_handler wTimeCountr0_Interrupt:20
; void wTimeCountr0_Interrupt(void)
; {
.dbline 38
; static INT8U int_count = 0;
;
; //Clear wTimeCountr0 OCIF Flag
; TIFR |= 0x02;
in R24,0x38
ori R24,2
out 0x38,R24
.dbline 39
; TCNT0 = 0x00;
clr R2
out 0x32,R2
.dbline 41
; //Interrupt Count
; if(sbGet_Buzzer_Count() != 0)
xcall _sbGet_Buzzer_Count
tst R16
breq L9
.dbline 42
; {
.dbline 43
; int_count++;
lds R24,L8
subi R24,255 ; addi 1
sts L8,R24
.dbline 44
; if(int_count == 1)
cpi R24,1
brne L11
.dbline 45
; {
.dbline 46
; Buzzer_ON();
xcall _Buzzer_ON
.dbline 47
; }
xjmp L10
L11:
.dbline 48
; else if(int_count == 5)
lds R24,L8
cpi R24,5
brne L13
.dbline 49
; {
.dbline 50
; Buzzer_OFF();
xcall _Buzzer_OFF
.dbline 51
; }
xjmp L10
L13:
.dbline 52
; else if(int_count == 100)
lds R24,L8
cpi R24,100
brne L10
.dbline 53
; {
.dbline 54
; int_count = 0;
clr R2
sts L8,R2
.dbline 55
; sSet_Buzzer_Count(sbGet_Buzzer_Count() - 1);
xcall _sbGet_Buzzer_Count
subi R16,1
xcall _sSet_Buzzer_Count
.dbline 56
; }
.dbline 57
; }
xjmp L10
L9:
.dbline 59
.dbline 60
clr R2
sts L8,R2
.dbline 61
L10:
.dbline -2
.dbline 62
; else
; {
; int_count = 0;
; }
; }
L7:
xcall pop_lset
.dbline 0 ; func end
reti
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -