📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\AVR\我的程序\外部中断0实验/cfg.h
0000 .dbfunc e delay_ms _delay_ms fV
0000 ; i -> R20,R21
0000 ; time -> R16,R17
.even
0000 _delay_ms::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 10
0004 ; /***********************************
0004 ; *实验目的:熟悉外部中断编程
0004 ; *设 计:萧联珠
0004 ; *日 期:2007-11-23
0004 ; ************************************/
0004 ; #include <iom16v.h>
0004 ; #include "cfg.h"
0004 ;
0004 ; void main()
0004 ; {
0004 .dbline 12
0004 ; port_init();
0004 ; INT0_init(); /*外部中断初始化*/
0004 0AC0 xjmp L5
0006 L2:
0006 .dbline 13
0006 4427 clr R20
0008 5527 clr R21
000A L6:
000A .dbline 13
000A L7:
000A .dbline 13
000A 4F5F subi R20,255 ; offset = 1
000C 5F4F sbci R21,255
000E .dbline 13
000E 483E cpi R20,232
0010 E3E0 ldi R30,3
0012 5E07 cpc R21,R30
0014 D4F3 brlt L6
0016 L3:
0016 .dbline 12
0016 0150 subi R16,1
0018 1040 sbci R17,0
001A L5:
001A .dbline 12
001A 2224 clr R2
001C 3324 clr R3
001E 2016 cp R2,R16
0020 3106 cpc R3,R17
0022 8CF3 brlt L2
0024 .dbline -2
0024 L1:
0024 0E940000 xcall pop_gset1
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbsym r i 20 I
002A .dbsym r time 16 I
002A .dbend
002A .dbfunc e port_init _port_init fV
.even
002A _port_init::
002A .dbline -1
002A .dbline 18
002A ;
002A ; while(1)
002A ; {
002A ; display();
002A ; }
002A ; }
002A .dbline 19
002A ;
002A 8FEF ldi R24,255
002C 87BB out 0x17,R24
002E .dbline 20
002E ;
002E 88BB out 0x18,R24
0030 .dbline 22
0030 ;
0030 ;
0030 8A98 cbi 0x11,2
0032 .dbline 23
0032 ;
0032 929A sbi 0x12,2
0034 .dbline -2
0034 L10:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbend
0036 .dbfunc e display _display fV
0036 ; i -> R20
.even
0036 _display::
0036 0E940000 xcall push_gset1
003A .dbline -1
003A .dbline 28
003A ;
003A ;
003A ;
003A ;
003A ;
003A .dbline 30
003A ;
003A ;
003A 4427 clr R20
003C 0BC0 xjmp L15
003E L12:
003E .dbline 31
003E .dbline 32
003E 01E0 ldi R16,1
0040 142F mov R17,R20
0042 0E940000 xcall lsl8
0046 202E mov R2,R16
0048 2094 com R2
004A 28BA out 0x18,R2
004C .dbline 33
004C 04E6 ldi R16,100
004E 10E0 ldi R17,0
0050 D7DF xcall _delay_ms
0052 .dbline 34
0052 L13:
0052 .dbline 30
0052 4395 inc R20
0054 L15:
0054 .dbline 30
0054 4830 cpi R20,8
0056 98F3 brlo L12
0058 .dbline -2
0058 L11:
0058 0E940000 xcall pop_gset1
005C .dbline 0 ; func end
005C 0895 ret
005E .dbsym r i 20 c
005E .dbend
005E .dbfunc e INT0_init _INT0_init fV
.even
005E _INT0_init::
005E .dbline -1
005E .dbline 39
005E ;
005E ;
005E ;
005E ;
005E ;
005E ;
005E ;
005E ;
005E ;
005E .dbline 40
005E ;
005E 80E8 ldi R24,128
0060 8FBF out 0x3f,R24
0062 .dbline 41
0062 ;
0062 85B7 in R24,0x35
0064 8C7F andi R24,252
0066 85BF out 0x35,R24
0068 .dbline 42
0068 ;
0068 80E4 ldi R24,64
006A 8BBF out 0x3b,R24
006C .dbline -2
006C L16:
006C .dbline 0 ; func end
006C 0895 ret
006E .dbend
.area vector(rom, abs)
.org 4
0004 0C943700 jmp _int0
.area text(rom, con, rel)
006E .dbfile D:\AVR\我的程序\外部中断0实验/cfg.h
006E .dbfunc e int0 _int0 fV
006E ; i -> R20
.even
006E _int0::
006E 0E940000 xcall push_lset
0072 0E940000 xcall push_gset1
0076 .dbline -1
0076 .dbline 48
0076 ;
0076 ;
0076 ;
0076 ;
0076 ;
0076 ;
0076 .dbline 50
0076 ;
0076 ;
0076 48E0 ldi R20,8
0078 0CC0 xjmp L21
007A L18:
007A .dbline 51
007A .dbline 52
007A 142F mov R17,R20
007C 1150 subi R17,1
007E 01E0 ldi R16,1
0080 0E940000 xcall lsl8
0084 202E mov R2,R16
0086 2094 com R2
0088 28BA out 0x18,R2
008A .dbline 53
008A 04E6 ldi R16,100
008C 10E0 ldi R17,0
008E B8DF xcall _delay_ms
0090 .dbline 54
0090 L19:
0090 .dbline 50
0090 4A95 dec R20
0092 L21:
0092 .dbline 50
0092 2224 clr R2
0094 2416 cp R2,R20
0096 88F3 brlo L18
0098 .dbline -2
0098 L17:
0098 0E940000 xcall pop_gset1
009C 0E940000 xcall pop_lset
00A0 .dbline 0 ; func end
00A0 1895 reti
00A2 .dbsym r i 20 c
00A2 .dbend
00A2 .dbfile D:\AVR\我的程序\外部中断0实验\main.c
00A2 .dbfunc e main _main fV
.even
00A2 _main::
00A2 .dbline -1
00A2 .dbline 10
00A2 .dbline 11
00A2 C3DF xcall _port_init
00A4 .dbline 12
00A4 DCDF xcall _INT0_init
00A6 01C0 xjmp L24
00A8 L23:
00A8 .dbline 15
00A8 .dbline 16
00A8 C6DF xcall _display
00AA .dbline 17
00AA L24:
00AA .dbline 14
00AA FECF xjmp L23
00AC X0:
00AC .dbline -2
00AC L22:
00AC .dbline 0 ; func end
00AC 0895 ret
00AE .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -