📄 test_int0.s
字号:
.module test_int0.c
.area data(ram, con, rel)
_N::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile test_int0.c
.dbsym e N _N c
.area text(rom, con, rel)
.dbfile test_int0.c
.dbfunc e INT0_INIT _INT0_INIT fV
.even
_INT0_INIT::
.dbline -1
.dbline 32
; //*********************************************************
; //测试功能:定时器t0产生250khz的方波
; //测试方法:示波器观察 或者proteus仿真
; //测试结果:ok
; //时钟频率:外部8m
; //管脚分配:
; //注意事项:
; //完成时间:2009.03.15
; //**********************************************************
;
; //**********************************************************
; //头文件
; //**********************************************************
; #include <iom16v.h>
; #include <macros.h>
; //*****************************************************
;
;
; //*****************************************************
; //全局变量定义
; //*****************************************************
;
; unsigned char N=0;
;
;
; //*****************************************************
; //函数名称:void INT0_INIT(void)
; //函数功能:int0初始化,上升沿产生中断,使能中断
; //注意事项:未开总中断
; //*****************************************************
; void INT0_INIT(void)
; {
.dbline 33
; MCUCR|=((1<<ISC01)|(1<<ISC00));
in R24,0x35
ori R24,3
out 0x35,R24
.dbline 34
; GICR|=(1<<INT0);
in R24,0x3b
ori R24,64
out 0x3b,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 4
jmp _INT0_INTERRUPT
.area text(rom, con, rel)
.dbfile test_int0.c
.dbfunc e INT0_INTERRUPT _INT0_INTERRUPT fV
.even
_INT0_INTERRUPT::
st -y,R24
st -y,R25
in R24,0x3f
st -y,R24
.dbline -1
.dbline 43
; }
; //*****************************************************
; //函数名称:void INT0_INTERRUPT(void)
; //函数功能:中断处理,N+1
; //注意事项:
; //*****************************************************
; #pragma interrupt_handler INT0_INTERRUPT:2
; void INT0_INTERRUPT(void)
; {
.dbline 44
; N++;
lds R24,_N
subi R24,255 ; addi 1
sts _N,R24
.dbline 45
; NOP();
nop
.dbline -2
L2:
ld R24,y+
out 0x3f,R24
ld R25,y+
ld R24,y+
.dbline 0 ; func end
reti
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 51
; }
; //**********************************************************
; //主函数
; //**********************************************************
; void main(void)
; {
.dbline 52
; CLI();
cli
.dbline 53
; INT0_INIT();
xcall _INT0_INIT
.dbline 54
; SEI();
sei
L4:
.dbline 56
L5:
.dbline 55
xjmp L4
X0:
.dbline -2
L3:
.dbline 0 ; func end
ret
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -