?? bjdj_4.lis
字號(hào):
.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:\重新整理的文件\控制類\步進(jìn)電機(jī)\程序\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:\重新整理的文件\控制類\步進(jìn)電機(jī)\程序\avr/TWI.C
000A .blkb 2
.area idata
000A 0000 .byte 0,0
.area data(ram, con, rel)
000C .dbfile E:\重新整理的文件\控制類\步進(jìn)電機(jī)\程序\avr/TWI.C
000C .blkb 2
.area idata
000C 0000 .byte 0,0
.area data(ram, con, rel)
000E .dbfile E:\重新整理的文件\控制類\步進(jìn)電機(jī)\程序\avr/TWI.C
000E .blkb 2
.area idata
000E 0000 .byte 0,0
.area data(ram, con, rel)
0010 .dbfile E:\重新整理的文件\控制類\步進(jìn)電機(jī)\程序\avr/TWI.C
0010 .dbsym e table1 _table1 A[8:8]c
.area text(rom, con, rel)
0000 .dbfile E:\重新整理的文件\控制類\步進(jìn)電機(jī)\程序\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 ; //電機(jī)轉(zhuǎn)一圈走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 ; /*********電機(jī)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 ; /*********電機(jī)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 ; 函數(shù)名稱: delayus
0028 ; 功 能: 延時(shí)指定微秒(16M晶振)
0028 ; 參 數(shù): us--延時(shí)的微秒數(shù)(大約,不是很精確,MS越大越準(zhǔn)確)
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晶振下,通過反復(fù)實(shí)驗(yàn)得到的數(shù)值
003C ; for( i=0;i<us;i++);
003C ; }
003C ;
003C ; /*******************************************
003C ; 函數(shù)名稱: delayms()
003C ; 功 能: 16MHz晶振下延時(shí) z ms
003C ; 參 數(shù): 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:反轉(zhuǎn)
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:反轉(zhuǎn)
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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -