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