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

📄 bjdj_4.lis

📁 利用mega128控制由L298和L297构成的驱动板
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module bjdj_4.c
                        .area data(ram, con, rel)
 0000           _table::
 0000                   .blkb 2
                        .area idata
 0000 0102              .byte 1,2
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 0408              .byte 4,8
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 1020              .byte 16,32
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 4080              .byte 64,128
                        .area data(ram, con, rel)
 0008                   .dbfile E:\重新整理的文件\控制类\步进电机\程序\avr/TWI.C
 0008                   .dbsym e table _table A[8:8]c
 0008           _table1::
 0008                   .blkb 2
                        .area idata
 0008 0000              .byte 0,0
                        .area data(ram, con, rel)
 000A                   .dbfile E:\重新整理的文件\控制类\步进电机\程序\avr/TWI.C
 000A                   .blkb 2
                        .area idata
 000A 0000              .byte 0,0
                        .area data(ram, con, rel)
 000C                   .dbfile E:\重新整理的文件\控制类\步进电机\程序\avr/TWI.C
 000C                   .blkb 2
                        .area idata
 000C 0000              .byte 0,0
                        .area data(ram, con, rel)
 000E                   .dbfile E:\重新整理的文件\控制类\步进电机\程序\avr/TWI.C
 000E                   .blkb 2
                        .area idata
 000E 0000              .byte 0,0
                        .area data(ram, con, rel)
 0010                   .dbfile E:\重新整理的文件\控制类\步进电机\程序\avr/TWI.C
 0010                   .dbsym e table1 _table1 A[8:8]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\重新整理的文件\控制类\步进电机\程序\avr/TWI.C
 0000                   .dbfunc e delay _delay fV
 0000           ;              x -> R20,R21
 0000           ;              y -> R22,R23
 0000           ;              z -> R16,R17
                        .even
 0000           _delay::
 0000 0E940000          xcall push_gset2
 0004                   .dbline -1
 0004                   .dbline 15
 0004           ; //电机转一圈走27MM
 0004           ; #include <iom128v.h>
 0004           ; #include <iom128.h>
 0004           ; #include <macros.h>
 0004           ; #include "BIT.h"
 0004           ; #include "zlg7290_avr.c"
 0004           ; 
 0004           ; #define uint unsigned int
 0004           ; #define uchar unsigned char
 0004           ; /*********电机1控制端口************/
 0004           ; #define  cw1  _PA1
 0004           ; #define  hf1  _PA3
 0004           ; #define  en1  _PA5
 0004           ; #define  rst1  _PA7
 0004           ; #define  clk1  _PC6
 0004                   .dbline 17
 0004           ; 
 0004           ; /*********电机2控制端口************/
 0004 A801              movw R20,R16
 0006 0AC0              xjmp L5
 0008           L2:
 0008                   .dbline 18
 0008 6CE4              ldi R22,1100
 000A 74E0              ldi R23,4
 000C 02C0              xjmp L9
 000E           L6:
 000E                   .dbline 18
 000E           L7:
 000E                   .dbline 18
 000E 6150              subi R22,1
 0010 7040              sbci R23,0
 0012           L9:
 0012                   .dbline 18
 0012 6030              cpi R22,0
 0014 6707              cpc R22,R23
 0016 D9F7              brne L6
 0018           X0:
 0018           L3:
 0018                   .dbline 17
 0018 4150              subi R20,1
 001A 5040              sbci R21,0
 001C           L5:
 001C                   .dbline 17
 001C 4030              cpi R20,0
 001E 4507              cpc R20,R21
 0020 99F7              brne L2
 0022           X1:
 0022                   .dbline -2
 0022                   .dbline 19
 0022           ; #define  cw2  _PA0
 0022           ; #define  hf2  _PA2
 0022           L1:
 0022 0E940000          xcall pop_gset2
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbsym r x 20 i
 0028                   .dbsym r y 22 i
 0028                   .dbsym r z 16 i
 0028                   .dbend
 0028                   .dbfunc e TWI_init _TWI_init fV
                        .even
 0028           _TWI_init::
 0028                   .dbline -1
 0028                   .dbline 28
 0028           ; #define  en2  _PA4
 0028           ; #define  rst2  _PA6
 0028           ; #define  clk2  _PG2
 0028           ; 
 0028           ; //uint bjl,rev,key,set=0;
 0028           ; /*******************************************
 0028           ; 函数名称: delayus
 0028           ; 功    能: 延时指定微秒(16M晶振)
 0028           ; 参    数: us--延时的微秒数(大约,不是很精确,MS越大越准确)
 0028                   .dbline 29
 0028           ; 返回值  : 无
 0028 82E2              ldi R24,34
 002A 80937000          sts 112,R24
 002E                   .dbline 30
 002E           ; /********************************************/
 002E 2224              clr R2
 0030 20927100          sts 113,R2
 0034                   .dbline 31
 0034           ; void delayus(uint us)           
 0034 84E4              ldi R24,68
 0036 80937400          sts 116,R24
 003A                   .dbline -2
 003A                   .dbline 32
 003A           ; {
 003A           L10:
 003A                   .dbline 0 ; func end
 003A 0895              ret
 003C                   .dbend
 003C                   .dbfunc e TWI_start _TWI_start fc
                        .even
 003C           _TWI_start::
 003C                   .dbline -1
 003C                   .dbline 42
 003C           ;  uint i;
 003C           ;  us=us*5/2;                    //9/8是在16MHz晶振下,通过反复实验得到的数值
 003C           ;  for( i=0;i<us;i++); 
 003C           ; }
 003C           ; 
 003C           ; /*******************************************
 003C           ; 函数名称: delayms()
 003C           ; 功    能: 16MHz晶振下延时 z ms 
 003C           ; 参    数: z
 003C           ; 返回值  : 无
 003C                   .dbline 43
 003C           ; /********************************************/
 003C 84EA              ldi R24,164
 003E 80937400          sts 116,R24
 0042           L12:
 0042                   .dbline 44
 0042           L13:
 0042                   .dbline 44
 0042           ; void delayms(uint z)
 0042 20907400          lds R2,116
 0046 27FE              sbrs R2,7
 0048 FCCF              rjmp L12
 004A                   .dbline 45
 004A           ; {
 004A 01E0              ldi R16,1
 004C                   .dbline -2
 004C           L11:
 004C                   .dbline 0 ; func end
 004C 0895              ret
 004E                   .dbend
 004E                   .dbfunc e TWI_stop _TWI_stop fV
                        .even
 004E           _TWI_stop::
 004E                   .dbline -1
 004E                   .dbline 49
 004E           ;    uint x,y;
 004E           ;    for(x=z;x>0;x--)
 004E           ;     for(y=2660;y>0;y--);
 004E           ; }
 004E                   .dbline 50
 004E           ; 
 004E 84E9              ldi R24,148
 0050 80937400          sts 116,R24
 0054                   .dbline -2
 0054                   .dbline 51
 0054           ; void bjdj_init1()
 0054           L15:
 0054                   .dbline 0 ; func end
 0054 0895              ret
 0056                   .dbend
 0056                   .dbfunc e TWI_writeB _TWI_writeB fc
 0056           ;            ack -> R20
 0056           ;              c -> R16
                        .even
 0056           _TWI_writeB::
 0056 0E940000          xcall push_gset1
 005A                   .dbline -1
 005A                   .dbline 63
 005A           ; {
 005A           ;    DDRA|=BIT(1)|BIT(3)|BIT(5)|BIT(7);
 005A           ;    DDRC|=BIT(6);
 005A           ;    cw1=1;  //  0:正传  1:反转
 005A           ;    en1=0;  //
 005A           ;    rst1=0;//
 005A           ;    hf1=0;//  0:半步  1:整步
 005A           ; }
 005A           ; 
 005A           ; void bjdj_init2()
 005A           ; {
 005A           ;    DDRA|=BIT(0)|BIT(2)|BIT(4)|BIT(6);
 005A                   .dbline 64
 005A           ;    DDRG|=BIT(2);
 005A 41E0              ldi R20,1
 005C                   .dbline 65
 005C           ;    cw2=1;//0:正传  1:反转
 005C 00937300          sts 115,R16
 0060                   .dbline 66
 0060           ;    en2=0;//
 0060 84E8              ldi R24,132
 0062 80937400          sts 116,R24
 0066           L17:
 0066                   .dbline 67
 0066           L18:
 0066                   .dbline 67
 0066           ;    rst2=0;//
 0066 20907400          lds R2,116
 006A 27FE              sbrs R2,7
 006C FCCF              rjmp L17
 006E                   .dbline 68
 006E           ;    hf2=0;//0:半步  1:整步
 006E 80917100          lds R24,113
 0072 887F              andi R24,248
 0074 8831              cpi R24,24
 0076 09F0              breq L20
 0078                   .dbline 69
 0078           ; }
 0078 4427              clr R20
 007A           L20:
 007A                   .dbline 70
 007A           ; 
 007A 042F              mov R16,R20
 007C                   .dbline -2
 007C           L16:
 007C 0E940000          xcall pop_gset1
 0080                   .dbline 0 ; func end
 0080 0895              ret
 0082                   .dbsym r ack 20 c
 0082                   .dbsym r c 16 c
 0082                   .dbend
 0082                   .dbfunc e TWI_readB _TWI_readB fc
 0082           ;            ack -> R16
                        .even
 0082           _TWI_readB::
 0082                   .dbline -1
 0082                   .dbline 81
 0082           ; 
 0082           ; void main()
 0082           ; {
 0082           ;    uint i,dat;
 0082           ;    bjdj_init1();
 0082           ;    bjdj_init2();
 0082           ;    clk1=1;
 0082           ;    clk2=1;
 0082           ;    while(1)
 0082           ;    {
 0082           ;      
 0082                   .dbline 82
 0082           ;       clk1=1;
 0082 0023              tst R16
 0084 21F0              breq L23
 0086                   .dbline 83
 0086           ;         clk2=1;
 0086 84EC              ldi R24,196
 0088 80937400          sts 116,R24
 008C 03C0              xjmp L26
 008E           L23:
 008E                   .dbline 85
 008E           ;         delayms(2);
 008E           ;         clk1=0;
 008E 84E8              ldi R24,132
 0090 80937400          sts 116,R24
 0094           L25:
 0094                   .dbline 86
 0094           L26:
 0094                   .dbline 86
 0094           ;         clk2=0;
 0094 20907400          lds R2,116
 0098 27FE              sbrs R2,7
 009A FCCF              rjmp L25
 009C                   .dbline 87
 009C           ;         delayms(2);
 009C 00917300          lds R16,115
 00A0                   .dbline -2
 00A0           L22:
 00A0                   .dbline 0 ; func end
 00A0 0895              ret
 00A2                   .dbsym r ack 16 c
 00A2                   .dbend
 00A2                   .dbfunc e TWI_page_write _TWI_page_write fc
 00A2           ;              i -> R20
 00A2           ;            arr -> R22,R23
 00A2           ;              n -> R10
 00A2           ;           addr -> R20
 00A2           ;         devadd -> R12
                        .even
 00A2           _TWI_page_write::
 00A2 0E940000          xcall push_gset4
 00A6 422F              mov R20,R18
 00A8 C02E              mov R12,R16
 00AA A884              ldd R10,y+8
 00AC 6A85              ldd R22,y+10
 00AE 7B85              ldd R23,y+11
 00B0                   .dbline -1
 00B0                   .dbline 106
 00B0           ;    }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0           ; }
 00B0                   .dbline 108
 00B0           ; }
 00B0           ; }
 00B0 C5DF              xcall _TWI_start
 00B2                   .dbline 109
 00B2           ; }
 00B2 0C2D              mov R16,R12
 00B4 D0DF              xcall _TWI_writeB
 00B6                   .dbline 110
 00B6           ; }
 00B6 042F              mov R16,R20
 00B8 CEDF              xcall _TWI_writeB
 00BA                   .dbline 111
 00BA           ; }
 00BA 41E0              ldi R20,1
 00BC 06C0              xjmp L32
 00BE           L29:
 00BE                   .dbline 112
 00BE                   .dbline 115
 00BE FB01              movw R30,R22
 00C0 0081              ldd R16,z+0
 00C2 C9DF              xcall _TWI_writeB

⌨️ 快捷键说明

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