📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\AVR\我的程序\开门狗实验/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 ; **************************************************/
0004 ; #include <iom16v.h>
0004 ; #include "cfg.h"
0004 ; #include <macros.h>
0004 ;
0004 .dbline 12
0004 ; void main()
0004 ; {
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 ; port_init();
002A ; WDTCR|=(1<<WDTOE)|(1<<WDE); /* 置位 WDTOE 和 WDE*/
002A ; WDTCR=(1<<WDE)|(1<<WDP2)|(1<<WDP1); /*设定周期为1S*/
002A ;
002A ; display();
002A ;
002A .dbline 19
002A ; while(1)
002A 8FEF ldi R24,255
002C 87BB out 0x17,R24
002E .dbline 20
002E ; {
002E 88BB out 0x18,R24
0030 .dbline -2
0030 L10:
0030 .dbline 0 ; func end
0030 0895 ret
0032 .dbend
0032 .dbfunc e display _display fV
0032 ; index -> R20,R21
.even
0032 _display::
0032 0E940000 xcall push_gset1
0036 .dbline -1
0036 .dbline 25
0036 ;
0036 ; PORTB=0xFE;
0036 ; WDR(); /*喂狗,通过注释这句可以区别是否喂狗的区别*/
0036 ; delay_ms(50);
0036 ; PORTB=0xFF;
0036 .dbline 27
0036 ; delay_ms(50);
0036 ; }
0036 4427 clr R20
0038 5527 clr R21
003A L12:
003A .dbline 28
003A .dbline 29
003A 01E0 ldi R16,1
003C 10E0 ldi R17,0
003E 9A01 movw R18,R20
0040 0E940000 xcall lsl16
0044 1801 movw R2,R16
0046 2094 com R2
0048 3094 com R3
004A 28BA out 0x18,R2
004C .dbline 30
004C 0AE0 ldi R16,10
004E 10E0 ldi R17,0
0050 D7DF xcall _delay_ms
0052 .dbline 31
0052 L13:
0052 .dbline 27
0052 4F5F subi R20,255 ; offset = 1
0054 5F4F sbci R21,255
0056 .dbline 27
0056 4830 cpi R20,8
0058 E0E0 ldi R30,0
005A 5E07 cpc R21,R30
005C 74F3 brlt L12
005E .dbline -2
005E L11:
005E 0E940000 xcall pop_gset1
0062 .dbline 0 ; func end
0062 0895 ret
0064 .dbsym r index 20 I
0064 .dbend
0064 .dbfile D:\AVR\我的程序\开门狗实验\main.c
0064 .dbfunc e main _main fV
.even
0064 _main::
0064 .dbline -1
0064 .dbline 12
0064 .dbline 13
0064 E2DF xcall _port_init
0066 .dbline 14
0066 81B5 in R24,0x21
0068 8861 ori R24,24
006A 81BD out 0x21,R24
006C .dbline 15
006C 8EE0 ldi R24,14
006E 81BD out 0x21,R24
0070 .dbline 17
0070 E0DF xcall _display
0072 0BC0 xjmp L18
0074 L17:
0074 .dbline 20
0074 .dbline 22
0074 8EEF ldi R24,254
0076 88BB out 0x18,R24
0078 .dbline 23
0078 A895 wdr
007A .dbline 24
007A 02E3 ldi R16,50
007C 10E0 ldi R17,0
007E C0DF xcall _delay_ms
0080 .dbline 25
0080 8FEF ldi R24,255
0082 88BB out 0x18,R24
0084 .dbline 26
0084 02E3 ldi R16,50
0086 10E0 ldi R17,0
0088 BBDF xcall _delay_ms
008A .dbline 27
008A L18:
008A .dbline 19
008A F4CF xjmp L17
008C X0:
008C .dbline -2
008C L16:
008C .dbline 0 ; func end
008C 0895 ret
008E .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -