📄 zhongduanshanshuo.lis
字号:
.module zhongduanshanshuo.c
.area text(rom, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\zhongduanshanshuo\zhongduanshanshuo.c
.area data(ram, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\zhongduanshanshuo\zhongduanshanshuo.c
0000 _num::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\zhongduanshanshuo\zhongduanshanshuo.c
0001 .dbsym e num _num c
.area vector(rom, abs)
.org 32
0020 0C940000 jmp _miao
.area data(ram, con, rel)
0001 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\zhongduanshanshuo\zhongduanshanshuo.c
.area text(rom, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\zhongduanshanshuo\zhongduanshanshuo.c
0000 .dbfunc e miao _miao fV
.even
0000 _miao::
0000 2A92 st -y,R2
0002 8A93 st -y,R24
0004 9A93 st -y,R25
0006 2FB6 in R2,0x3f
0008 2A92 st -y,R2
000A .dbline -1
000A .dbline 9
000A ; #include <iom16v.h>
000A ; #include <macros.h>
000A ; #define uchar unsigned char
000A ; #define uint unsigned int
000A ; uchar num=0;
000A ; #pragma interrupt_handler miao:9
000A ;
000A ; void miao()
000A ; {
000A .dbline 10
000A ; if(num==60)
000A 80910000 lds R24,_num
000E 8C33 cpi R24,60
0010 19F4 brne L2
0012 X0:
0012 .dbline 11
0012 ; num=0;
0012 2224 clr R2
0014 20920000 sts _num,R2
0018 L2:
0018 .dbline 12
0018 ; num++;
0018 80910000 lds R24,_num
001C 8F5F subi R24,255 ; addi 1
001E 80930000 sts _num,R24
0022 .dbline 13
0022 ; TCNT1H=0XC2;
0022 82EC ldi R24,194
0024 8DBD out 0x2d,R24
0026 .dbline 14
0026 ; TCNT1L=0XF6;
0026 86EF ldi R24,246
0028 8CBD out 0x2c,R24
002A .dbline -2
002A L1:
002A .dbline 0 ; func end
002A 2990 ld R2,y+
002C 2FBE out 0x3f,R2
002E 9991 ld R25,y+
0030 8991 ld R24,y+
0032 2990 ld R2,y+
0034 1895 reti
0036 .dbend
0036 .dbfunc e main _main fV
.even
0036 _main::
0036 .dbline -1
0036 .dbline 17
0036 ; }
0036 ; void main()
0036 ; {
0036 .dbline 18
0036 ; DDRA|=BIT(0);//中断时使用的管脚
0036 D09A sbi 0x1a,0
0038 .dbline 19
0038 ; TCCR1B=0X04;//T/C1控制寄存器B
0038 84E0 ldi R24,4
003A 8EBD out 0x2e,R24
003C .dbline 20
003C ; TCNT1H=0XC2;//计数寄存器(高位)
003C 82EC ldi R24,194
003E 8DBD out 0x2d,R24
0040 .dbline 21
0040 ; TCNT1L=0XF6;//计数寄存器(低位)
0040 86EF ldi R24,246
0042 8CBD out 0x2c,R24
0044 .dbline 22
0044 ; TIMSK|=BIT(2);//T/C1中断屏蔽寄存器
0044 89B7 in R24,0x39
0046 8460 ori R24,4
0048 89BF out 0x39,R24
004A .dbline 23
004A ; SREG|=BIT(7);//总中断
004A 7894 bset 7
004C 0AC0 xjmp L6
004E L5:
004E .dbline 26
004E ;
004E ; while(1)
004E ; {
004E .dbline 27
004E ; if(num%2==0)PORTA|=BIT(0);
004E 12E0 ldi R17,2
0050 00910000 lds R16,_num
0054 0E940000 xcall mod8u
0058 0023 tst R16
005A 11F4 brne L8
005C X1:
005C .dbline 27
005C D89A sbi 0x1b,0
005E 01C0 xjmp L9
0060 L8:
0060 .dbline 28
0060 ; else PORTA&=~BIT(0);
0060 D898 cbi 0x1b,0
0062 L9:
0062 .dbline 30
0062 ;
0062 ; }
0062 L6:
0062 .dbline 25
0062 F5CF xjmp L5
0064 X2:
0064 .dbline -2
0064 L4:
0064 .dbline 0 ; func end
0064 0895 ret
0066 .dbend
0066 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -