📄 ac8-2.lis
字号:
.module ac8-2.c
.area text(rom, con, rel)
0000 .dbfile D:\AVR\第8章实验程序\ac8-2\ac8-2.c
0000 .dbfunc e delay_ms _delay_ms fV
0000 ; i -> R20,R21
0000 ; j -> R22,R23
0000 ; k -> R16,R17
.even
0000 _delay_ms::
0000 0E940000 xcall push_gset2
0004 .dbline -1
0004 .dbline 9
0004 ; #include<iom16v.h>
0004 ; #define uchar unsigned char
0004 ; #define uint unsigned int
0004 ; #define BZ_0 (PORTD=PORTD&0xdf)
0004 ; #define BZ_1 (PORTD=PORTD|0x20)
0004 ; uint cnt;
0004 ; //=============================
0004 ; void delay_ms(uint k)
0004 ; {
0004 .dbline 11
0004 ; uint i,j;
0004 ; for(i=0;i<k;i++)
0004 4427 clr R20
0006 5527 clr R21
0008 0BC0 xjmp L5
000A L2:
000A .dbline 12
000A ; {
000A .dbline 13
000A ; for(j=0;j<1140;j++)
000A 6627 clr R22
000C 7727 clr R23
000E 02C0 xjmp L9
0010 L6:
0010 .dbline 14
0010 L7:
0010 .dbline 13
0010 6F5F subi R22,255 ; offset = 1
0012 7F4F sbci R23,255
0014 L9:
0014 .dbline 13
0014 6437 cpi R22,116
0016 E4E0 ldi R30,4
0018 7E07 cpc R23,R30
001A D0F3 brlo L6
001C .dbline 15
001C L3:
001C .dbline 11
001C 4F5F subi R20,255 ; offset = 1
001E 5F4F sbci R21,255
0020 L5:
0020 .dbline 11
0020 4017 cp R20,R16
0022 5107 cpc R21,R17
0024 90F3 brlo L2
0026 .dbline -2
0026 L1:
0026 0E940000 xcall pop_gset2
002A .dbline 0 ; func end
002A 0895 ret
002C .dbsym r i 20 i
002C .dbsym r j 22 i
002C .dbsym r k 16 i
002C .dbend
002C .dbfunc e main _main fV
.even
002C _main::
002C .dbline -1
002C .dbline 19
002C ; ;
002C ; }
002C ; }
002C ; //=============================
002C ; void main(void)
002C ; {
002C .dbline 20
002C ; PORTB=0xff;
002C 8FEF ldi R24,255
002E 88BB out 0x18,R24
0030 .dbline 21
0030 ; DDRB=0xff;
0030 87BB out 0x17,R24
0032 .dbline 22
0032 ; PORTD=0xff;
0032 82BB out 0x12,R24
0034 .dbline 23
0034 ; DDRD = 0xf3;
0034 83EF ldi R24,243
0036 81BB out 0x11,R24
0038 .dbline 24
0038 ; MCUCR = 0x0A;
0038 8AE0 ldi R24,10
003A 85BF out 0x35,R24
003C .dbline 25
003C ; GICR = 0xC0;
003C 80EC ldi R24,192
003E 8BBF out 0x3b,R24
0040 .dbline 26
0040 ; SREG=0x80;
0040 80E8 ldi R24,128
0042 8FBF out 0x3f,R24
0044 0AC0 xjmp L12
0046 L11:
0046 .dbline 28
0046 .dbline 29
0046 2224 clr R2
0048 28BA out 0x18,R2
004A .dbline 30
004A 04EF ldi R16,500
004C 11E0 ldi R17,1
004E D8DF xcall _delay_ms
0050 .dbline 31
0050 8FEF ldi R24,255
0052 88BB out 0x18,R24
0054 .dbline 32
0054 04EF ldi R16,500
0056 11E0 ldi R17,1
0058 D3DF xcall _delay_ms
005A .dbline 33
005A L12:
005A .dbline 27
005A F5CF xjmp L11
005C X0:
005C .dbline -2
005C L10:
005C .dbline 0 ; func end
005C 0895 ret
005E .dbend
.area vector(rom, abs)
.org 4
0004 0C942F00 jmp _int0_isr
.area text(rom, con, rel)
005E .dbfile D:\AVR\第8章实验程序\ac8-2\ac8-2.c
005E .dbfunc e int0_isr _int0_isr fV
.even
005E _int0_isr::
005E 0E940000 xcall push_lset
0062 .dbline -1
0062 .dbline 38
0062 ; while(1)
0062 ; {
0062 ; PORTB=0x00;
0062 ; delay_ms(500);
0062 ; PORTB=0xff;
0062 ; delay_ms(500);
0062 ; }
0062 ; }
0062 ; //***************************************************
0062 ; #pragma interrupt_handler int0_isr:2
0062 ; void int0_isr(void)
0062 ; {
0062 .dbline 39
0062 ; PORTB=0x0f;
0062 8FE0 ldi R24,15
0064 88BB out 0x18,R24
0066 .dbline 40
0066 ; delay_ms(2000);
0066 00ED ldi R16,2000
0068 17E0 ldi R17,7
006A CADF xcall _delay_ms
006C .dbline -2
006C L14:
006C 0E940000 xcall pop_lset
0070 .dbline 0 ; func end
0070 1895 reti
0072 .dbend
.area vector(rom, abs)
.org 8
0008 0C943900 jmp _int1_isr
.area text(rom, con, rel)
0072 .dbfile D:\AVR\第8章实验程序\ac8-2\ac8-2.c
0072 .dbfunc e int1_isr _int1_isr fV
.even
0072 _int1_isr::
0072 0E940000 xcall push_lset
0076 .dbline -1
0076 .dbline 45
0076 ; }
0076 ; //****************************************
0076 ; #pragma interrupt_handler int1_isr:3
0076 ; void int1_isr(void)
0076 ; {
0076 .dbline 46
0076 ; SREG=0x80;
0076 80E8 ldi R24,128
0078 8FBF out 0x3f,R24
007A .dbline 47
007A ; for(cnt=0;cnt<5000;cnt++)
007A 2224 clr R2
007C 3324 clr R3
007E 30920100 sts _cnt+1,R3
0082 20920000 sts _cnt,R2
0086 10C0 xjmp L19
0088 L16:
0088 .dbline 48
0088 .dbline 48
0088 959A sbi 0x12,5
008A .dbline 48
008A 02E0 ldi R16,2
008C 10E0 ldi R17,0
008E B8DF xcall _delay_ms
0090 .dbline 48
0090 82B3 in R24,0x12
0092 8F7D andi R24,223
0094 82BB out 0x12,R24
0096 .dbline 48
0096 L17:
0096 .dbline 47
0096 80910000 lds R24,_cnt
009A 90910100 lds R25,_cnt+1
009E 0196 adiw R24,1
00A0 90930100 sts _cnt+1,R25
00A4 80930000 sts _cnt,R24
00A8 L19:
00A8 .dbline 47
00A8 80910000 lds R24,_cnt
00AC 90910100 lds R25,_cnt+1
00B0 8838 cpi R24,136
00B2 E3E1 ldi R30,19
00B4 9E07 cpc R25,R30
00B6 40F3 brlo L16
00B8 .dbline -2
00B8 L15:
00B8 0E940000 xcall pop_lset
00BC .dbline 0 ; func end
00BC 1895 reti
00BE .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\AVR\第8章实验程序\ac8-2\ac8-2.c
0000 _cnt::
0000 .blkb 2
0002 .dbsym e cnt _cnt i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -