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

📄 main.lis

📁 AVR_Meag8_L298控制电机的程序源码,电路原理图,M8程序使用(ICC_AVR)编译,内有说明.
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\桌面\avr程序设计\电机控制\main.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 7
 0000           ; //文件名 main.c 工程主文件
 0000           ; 
 0000           ; #include "config.h"
 0000           ; 
 0000           ; 
 0000           ; void main(void)
 0000           ; {
 0000                   .dbline 12
 0000           ; 
 0000           ; /******************************************************************************/
 0000           ; //初始工作
 0000           ; /******************************************************************************/
 0000           ;   init_devices();
 0000 0E940000          xcall _init_devices
 0004 22C0              xjmp L3
 0006           L2:
 0006                   .dbline 15
 0006                   .dbline 16
 0006 0027              clr R16
 0008 0E940000          xcall _for_ward
 000C                   .dbline 17
 000C 05E0              ldi R16,5
 000E 10E0              ldi R17,0
 0010 0E940000          xcall _Delay1s
 0014                   .dbline 18
 0014 0E940000          xcall _motor_stop
 0018                   .dbline 19
 0018 05E0              ldi R16,5
 001A 10E0              ldi R17,0
 001C 0E940000          xcall _Delay1s
 0020                   .dbline 20
 0020 0027              clr R16
 0022 0E940000          xcall _back_ward
 0026                   .dbline 21
 0026 05E0              ldi R16,5
 0028 10E0              ldi R17,0
 002A 0E940000          xcall _Delay1s
 002E                   .dbline 22
 002E 04E1              ldi R16,20
 0030 0E940000          xcall _speed_add
 0034                   .dbline 23
 0034 05E0              ldi R16,5
 0036 10E0              ldi R17,0
 0038 0E940000          xcall _Delay1s
 003C                   .dbline 24
 003C 04E1              ldi R16,20
 003E 0E940000          xcall _speed_subtract
 0042                   .dbline 25
 0042 05E0              ldi R16,5
 0044 10E0              ldi R17,0
 0046 0E940000          xcall _Delay1s
 004A                   .dbline 26
 004A           L3:
 004A                   .dbline 14
 004A DDCF              xjmp L2
 004C           X0:
 004C                   .dbline -2
 004C           L1:
 004C                   .dbline 0 ; func end
 004C 0895              ret
 004E                   .dbend
                        .area vector(rom, abs)
                        .org 16
 0010 0C942700          jmp _timer2_comp_isr
                        .area text(rom, con, rel)
 004E                   .dbfile D:\桌面\avr程序设计\电机控制\main.c
 004E                   .dbfunc e timer2_comp_isr _timer2_comp_isr fV
                        .even
 004E           _timer2_comp_isr::
 004E                   .dbline -1
 004E                   .dbline 37
 004E           ;   
 004E           ;   while(1)
 004E           ;   {
 004E           ;    for_ward(0);                               //默认速度运转 正
 004E           ;    Delay1s(5);                                //延时5s
 004E           ;    motor_stop();                      //停止
 004E           ;    Delay1s(5);                                //延时5s
 004E           ;    back_ward(0);                      //默认速度运转 反
 004E           ;    Delay1s(5);                                //延时5s
 004E           ;    speed_add(20);                     //加速
 004E           ;    Delay1s(5);                                //延时5s
 004E           ;    speed_subtract(20);                //减速
 004E           ;    Delay1s(5);                                //延时5s
 004E           ;   }
 004E           ;     
 004E           ; }
 004E           ; 
 004E           ; /******************************************************************************/
 004E           ; // T2 控制PWM输出
 004E           ; // timer2_comp_isr不需要用,但是必须允许中断,在中断时有信号输出变化
 004E           ; /******************************************************************************/
 004E           ; 
 004E           ; #pragma interrupt_handler timer2_comp_isr:5
 004E           ; void timer2_comp_isr(void)
 004E           ; {
 004E                   .dbline -2
 004E           L5:
 004E                   .dbline 0 ; func end
 004E 1895              reti
 0050                   .dbend
                        .area vector(rom, abs)
                        .org 20
 0014 0C942800          jmp _timer2_ovf_isr
                        .area text(rom, con, rel)
 0050                   .dbfile D:\桌面\avr程序设计\电机控制\main.c
 0050                   .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
                        .even
 0050           _timer2_ovf_isr::
 0050 8A93              st -y,R24
 0052 8FB7              in R24,0x3f
 0054 8A93              st -y,R24
 0056                   .dbline -1
 0056                   .dbline 42
 0056           ;    //compare occured TCNT0=OCR0
 0056           ; }
 0056           ; #pragma interrupt_handler timer2_ovf_isr:6
 0056           ; void timer2_ovf_isr(void)
 0056           ; {
 0056                   .dbline 43
 0056           ;  TCNT2 = 0x01;//reload counter value
 0056 81E0              ldi R24,1
 0058 84BD              out 0x24,R24
 005A                   .dbline -2
 005A           L6:
 005A 8991              ld R24,y+
 005C 8FBF              out 0x3f,R24
 005E 8991              ld R24,y+
 0060                   .dbline 0 ; func end
 0060 1895              reti
 0062                   .dbend

⌨️ 快捷键说明

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