⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zhongduanshanshuo.lis

📁 AVR单片机C语言编程及应用实例 适合初学者的学习研究 其中包含Atmega16中文资料及Protel部分电路图
💻 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 + -