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

📄 time01.lis

📁 步进电机的控制程序
💻 LIS
字号:
                        .module time01.c
                        .area vector(rom, abs)
                        .org 18
 0012 0DC0              rjmp _TIME0
                        .area data(ram, con, rel)
 0000           _i::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile E:\ICCAVR编程学习\步进电机驱动\time01.c
 0001                   .dbsym e i _i c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\ICCAVR编程学习\步进电机驱动\time01.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 18
 0000           ; /*AD转换需要隔段时间采样一次,用这个方法可以粗略实现1秒定时,
 0000           ; 我也时刚刚学习AVR 吧刚做的拿出来和新入门的朋友分享  或许有
 0000           ; 帮助。存在问题的地方还请朋友门多斧正。*/ 
 0000           ; 
 0000           ; //*********************************** 
 0000           ; //函数功能:基准时间100MS 总计定时1S 
 0000           ; //编译器类型及版本:ICCAVR  6.31 
 0000           ; 
 0000           ; /************************************************************************/
 0000           ;        
 0000           ; #include<iom8v.h>               //包含定义ATmega8寄存器的头文件 
 0000           ; #include<macros.h>           //包含一些常用的宏定义 
 0000           ; #pragma interrupt_handler TIME0:10        //中断向量号码 
 0000           ; char i=0;                   //调整累加基准定时次数的全局变量 
 0000           ; //***********************************************************************/ 
 0000           ; //主函数 
 0000           ; void main() 
 0000           ; {TCCR0=0X05;                 //时钟1024分频 
 0000                   .dbline 18
 0000 85E0              ldi R24,5
 0002 83BF              out 0x33,R24
 0004                   .dbline 19
 0004           ;  TCNT0=0X3A;                 //定时器计数初始值 100ms 
 0004 8AE3              ldi R24,58
 0006 82BF              out 0x32,R24
 0008                   .dbline 20
 0008           ;  TIMSK=0X01;            //允许定时器0中断 
 0008 81E0              ldi R24,1
 000A 89BF              out 0x39,R24
 000C                   .dbline 21
 000C           ;  SEI();                    //开全局中断 
 000C 7894              sei
 000E                   .dbline 22
 000E           ;  DDRB=0XFF; 
 000E 8FEF              ldi R24,255
 0010 87BB              out 0x17,R24
 0012                   .dbline 23
 0012           ;  DDRD=0XFF; 
 0012 81BB              out 0x11,R24
 0014                   .dbline 24
 0014           ;  PORTB=0Xff; 
 0014 88BB              out 0x18,R24
 0016                   .dbline 25
 0016           ;  PORTD=0XFF; 
 0016 82BB              out 0x12,R24
 0018                   .dbline -2
 0018           L1:
 0018                   .dbline 0 ; func end
 0018 0895              ret
 001A                   .dbend
 001A                   .dbfunc e TIME0 _TIME0 fV
                        .even
 001A           _TIME0::
 001A 2A92              st -y,R2
 001C 8A93              st -y,R24
 001E 9A93              st -y,R25
 0020 2FB6              in R2,0x3f
 0022 2A92              st -y,R2
 0024                   .dbline -1
 0024                   .dbline 30
 0024           ; } 
 0024           ; //***********************************************************************/
 0024           ; //定时器中断函数 
 0024           ; void TIME0() 
 0024           ; {if(i<20)                    //i决定循环基准时间的次数 
 0024                   .dbline 30
 0024 80910000          lds R24,_i
 0028 8431              cpi R24,20
 002A 40F4              brsh L3
 002C                   .dbline 31
 002C           ;   {TCNT0=0X3A;                 //重设初始值  100ms 
 002C                   .dbline 31
 002C 8AE3              ldi R24,58
 002E 82BF              out 0x32,R24
 0030                   .dbline 32
 0030           ;    i++;                    //累加基准时间 
 0030 80910000          lds R24,_i
 0034 8F5F              subi R24,255    ; addi 1
 0036 80930000          sts _i,R24
 003A                   .dbline 33
 003A           ;   } 
 003A 07C0              rjmp L4
 003C           L3:
 003C                   .dbline 35
 003C                   .dbline 35
 003C 81E0              ldi R24,1
 003E 22B2              in R2,0x12
 0040 2826              eor R2,R24
 0042 22BA              out 0x12,R2
 0044                   .dbline 36
 0044 2224              clr R2
 0046 20920000          sts _i,R2
 004A                   .dbline 37
 004A           L4:
 004A                   .dbline -2
 004A           L2:
 004A 2990              ld R2,y+
 004C 2FBE              out 0x3f,R2
 004E 9991              ld R25,y+
 0050 8991              ld R24,y+
 0052 2990              ld R2,y+
 0054                   .dbline 0 ; func end
 0054 1895              reti
 0056                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -