📄 ajzdsm.lis
字号:
.module ajzdsm.c
.area text(rom, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\按键中断扫描\ajzdsm.c
.area data(ram, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\按键中断扫描\ajzdsm.c
0000 _num::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\按键中断扫描\ajzdsm.c
0001 .dbsym e num _num c
.area vector(rom, abs)
.org 8
0008 0C940000 jmp _miao
.area data(ram, con, rel)
0001 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\按键中断扫描\ajzdsm.c
.area text(rom, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\按键中断扫描\ajzdsm.c
0000 .dbfunc e miao _miao fV
.even
0000 _miao::
0000 2A92 st -y,R2
0002 0A93 st -y,R16
0004 1A93 st -y,R17
0006 8A93 st -y,R24
0008 9A93 st -y,R25
000A 2FB6 in R2,0x3f
000C 2A92 st -y,R2
000E .dbline -1
000E .dbline 9
000E ; #include <iom16v.h>
000E ; #include <macros.h>
000E ; #define uchar unsigned char
000E ; #define uint unsigned int
000E ; uchar num=0;
000E ; #pragma interrupt_handler miao:3
000E ;
000E ; void miao()
000E ; {
000E .dbline 10
000E ; if(num==60)
000E 80910000 lds R24,_num
0012 8C33 cpi R24,60
0014 19F4 brne L2
0016 X0:
0016 .dbline 11
0016 ; num=0;
0016 2224 clr R2
0018 20920000 sts _num,R2
001C L2:
001C .dbline 12
001C ; num++;
001C 80910000 lds R24,_num
0020 8F5F subi R24,255 ; addi 1
0022 80930000 sts _num,R24
0026 .dbline 13
0026 ; if(num%2==0)PORTA|=BIT(0);
0026 12E0 ldi R17,2
0028 082F mov R16,R24
002A 0E940000 xcall mod8u
002E 0023 tst R16
0030 11F4 brne L4
0032 X1:
0032 .dbline 13
0032 D89A sbi 0x1b,0
0034 01C0 xjmp L5
0036 L4:
0036 .dbline 14
0036 ; else PORTA&=~BIT(0);
0036 D898 cbi 0x1b,0
0038 L5:
0038 .dbline -2
0038 L1:
0038 .dbline 0 ; func end
0038 2990 ld R2,y+
003A 2FBE out 0x3f,R2
003C 9991 ld R25,y+
003E 8991 ld R24,y+
0040 1991 ld R17,y+
0042 0991 ld R16,y+
0044 2990 ld R2,y+
0046 1895 reti
0048 .dbend
0048 .dbfunc e main _main fV
.even
0048 _main::
0048 .dbline -1
0048 .dbline 18
0048 ;
0048 ; }
0048 ; void main()
0048 ; {
0048 .dbline 19
0048 ; DDRA|=BIT(0);
0048 D09A sbi 0x1a,0
004A .dbline 20
004A ; DDRD|=BIT(3);//外部中断1的触发管脚
004A 8B9A sbi 0x11,3
004C .dbline 21
004C ; PORTD&=~BIT(3);
004C 9398 cbi 0x12,3
004E .dbline 22
004E ; GICR|=BIT(7);//T/C1控制寄存器B
004E 8BB7 in R24,0x3b
0050 8068 ori R24,128
0052 8BBF out 0x3b,R24
0054 .dbline 23
0054 ; MCUCR=0X0C;
0054 8CE0 ldi R24,12
0056 85BF out 0x35,R24
0058 .dbline 24
0058 ; SREG|=BIT(7);//总中断
0058 7894 bset 7
005A L7:
005A .dbline 25
005A ; while(1){;}
005A .dbline 25
005A .dbline 25
005A L8:
005A .dbline 25
005A FFCF xjmp L7
005C X2:
005C .dbline -2
005C L6:
005C .dbline 0 ; func end
005C 0895 ret
005E .dbend
005E ;
005E ;
005E ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -