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

📄 chuan9850.lis

📁 用avr调AD9850的DDS的资料!一个很稳定的信号源!
💻 LIS
字号:
                        .module chuan9850.c
                        .area data(ram, con, rel)
 0000           _str::
 0000                   .blkb 2
                        .area idata
 0000 0000              .byte 0,0
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 4D70              .byte 'M,'p
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 A3D7              .byte 163,215
                        .area data(ram, con, rel)
 0006                   .dbfile E:\mcu\avr\test\AD9850\chuan9850.c
 0006                   .dbsym e str _str A[6:6]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\mcu\avr\test\AD9850\chuan9850.c
 0000                   .dbfunc e set_wclk _set_wclk fV
 0000           ;              i -> R16
                        .even
 0000           _set_wclk::
 0000                   .dbline -1
 0000                   .dbline 8
 0000           ; /*RESET=pa0 WCLK=pa2 FQUD=pa1 D7=PA3 */
 0000           ; #include<iom128v.h>
 0000           ; #include<macros.h>
 0000           ; //char str[]={0x00,0x00,0x3d,0x70,0xa3,0xd7};//30m
 0000           ; //char str[]={0x00,0x00,0x05,0x62,0x4d,0xd2};//40m
 0000           ; char str[]={0x00,0x00,0x4d,0x70,0xa3,0xd7};//30m
 0000           ; void set_wclk(unsigned char i)
 0000           ; {
 0000                   .dbline 9
 0000           ;  if(i) PORTA|=0X04;
 0000 0023              tst R16
 0002 11F0              breq L2
 0004                   .dbline 9
 0004 DA9A              sbi 0x1b,2
 0006 03C0              xjmp L3
 0008           L2:
 0008                   .dbline 10
 0008 8BB3              in R24,0x1b
 000A 8B7F              andi R24,251
 000C 8BBB              out 0x1b,R24
 000E           L3:
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbsym r i 16 c
 0010                   .dbend
 0010                   .dbfunc e set_fqud _set_fqud fV
 0010           ;              i -> R16
                        .even
 0010           _set_fqud::
 0010                   .dbline -1
 0010                   .dbline 13
 0010           ;  else  PORTA&=0XFb;
 0010           ; }
 0010           ; void set_fqud(unsigned char i)
 0010           ; {
 0010                   .dbline 14
 0010           ;  if(i) PORTA|=0X02;
 0010 0023              tst R16
 0012 11F0              breq L5
 0014                   .dbline 14
 0014 D99A              sbi 0x1b,1
 0016 03C0              xjmp L6
 0018           L5:
 0018                   .dbline 15
 0018 8BB3              in R24,0x1b
 001A 8D7F              andi R24,253
 001C 8BBB              out 0x1b,R24
 001E           L6:
 001E                   .dbline -2
 001E           L4:
 001E                   .dbline 0 ; func end
 001E 0895              ret
 0020                   .dbsym r i 16 c
 0020                   .dbend
 0020                   .dbfunc e set_reset _set_reset fV
 0020           ;              i -> R16
                        .even
 0020           _set_reset::
 0020                   .dbline -1
 0020                   .dbline 18
 0020           ;  else  PORTA&=0XFd;
 0020           ; }
 0020           ; void set_reset(unsigned char i)
 0020           ; {
 0020                   .dbline 19
 0020           ;  if(i) PORTA|=0X01;
 0020 0023              tst R16
 0022 11F0              breq L8
 0024                   .dbline 19
 0024 D89A              sbi 0x1b,0
 0026 03C0              xjmp L9
 0028           L8:
 0028                   .dbline 20
 0028 8BB3              in R24,0x1b
 002A 8E7F              andi R24,254
 002C 8BBB              out 0x1b,R24
 002E           L9:
 002E                   .dbline -2
 002E           L7:
 002E                   .dbline 0 ; func end
 002E 0895              ret
 0030                   .dbsym r i 16 c
 0030                   .dbend
 0030                   .dbfunc e set_d7 _set_d7 fV
 0030           ;              i -> R16
                        .even
 0030           _set_d7::
 0030                   .dbline -1
 0030                   .dbline 23
 0030           ;  else  PORTA&=0XFE;
 0030           ; }
 0030           ; void set_d7(unsigned char i)
 0030           ; {
 0030                   .dbline 24
 0030           ;  if(i) PORTA|=0X08;
 0030 0023              tst R16
 0032 11F0              breq L11
 0034                   .dbline 24
 0034 DB9A              sbi 0x1b,3
 0036 03C0              xjmp L12
 0038           L11:
 0038                   .dbline 25
 0038 8BB3              in R24,0x1b
 003A 877F              andi R24,247
 003C 8BBB              out 0x1b,R24
 003E           L12:
 003E                   .dbline -2
 003E           L10:
 003E                   .dbline 0 ; func end
 003E 0895              ret
 0040                   .dbsym r i 16 c
 0040                   .dbend
 0040                   .dbfunc e chuli _chuli fV
 0040           ;              i -> R20
 0040           ;            com -> R22
                        .even
 0040           _chuli::
 0040 0E940000          xcall push_gset2
 0044 602F              mov R22,R16
 0046                   .dbline -1
 0046                   .dbline 28
 0046           ;  else  PORTA&=0XF7;
 0046           ; }
 0046           ; void chuli(unsigned char com)
 0046           ; {
 0046                   .dbline 30
 0046           ;  unsigned char i;
 0046           ;  set_wclk(0);
 0046 0027              clr R16
 0048 DBDF              xcall _set_wclk
 004A                   .dbline 31
 004A           ;  for(i=0;i<8;i++)
 004A 4427              clr R20
 004C 0DC0              xjmp L17
 004E           L14:
 004E                   .dbline 32
 004E           ;   {
 004E                   .dbline 33
 004E           ;    if(com|0xfe==0xff)//要移的位为低位
 004E 6623              tst R22
 0050 19F0              breq L18
 0052                   .dbline 34
 0052           ;     {set_d7(1);}
 0052                   .dbline 34
 0052 01E0              ldi R16,1
 0054 EDDF              xcall _set_d7
 0056                   .dbline 34
 0056 02C0              xjmp L19
 0058           L18:
 0058                   .dbline 36
 0058           ;    else
 0058           ;     {set_d7(0);}
 0058                   .dbline 36
 0058 0027              clr R16
 005A EADF              xcall _set_d7
 005C                   .dbline 36
 005C           L19:
 005C                   .dbline 37
 005C 6695              lsr R22
 005E                   .dbline 38
 005E 01E0              ldi R16,1
 0060 CFDF              xcall _set_wclk
 0062                   .dbline 39
 0062 0027              clr R16
 0064 CDDF              xcall _set_wclk
 0066                   .dbline 40
 0066           L15:
 0066                   .dbline 31
 0066 4395              inc R20
 0068           L17:
 0068                   .dbline 31
 0068 4830              cpi R20,8
 006A 88F3              brlo L14
 006C                   .dbline -2
 006C           L13:
 006C 0E940000          xcall pop_gset2
 0070                   .dbline 0 ; func end
 0070 0895              ret
 0072                   .dbsym r i 20 c
 0072                   .dbsym r com 22 c
 0072                   .dbend
 0072                   .dbfunc e ad9850 _ad9850 fV
 0072           ;              i -> R20
                        .even
 0072           _ad9850::
 0072 0E940000          xcall push_gset1
 0076                   .dbline -1
 0076                   .dbline 43
 0076           ;    com>>=1;
 0076           ;    set_wclk(1);
 0076           ;    set_wclk(0);       
 0076           ;   }
 0076           ; }  
 0076           ; void ad9850()
 0076           ; {
 0076                   .dbline 45
 0076           ;  unsigned char i;
 0076           ;  set_fqud(0);
 0076 0027              clr R16
 0078 CBDF              xcall _set_fqud
 007A                   .dbline 46
 007A           ;  for(i=5;i>0;i--)
 007A 45E0              ldi R20,5
 007C 09C0              xjmp L24
 007E           L21:
 007E                   .dbline 47
 007E                   .dbline 47
 007E 80E0              ldi R24,<_str
 0080 90E0              ldi R25,>_str
 0082 E42F              mov R30,R20
 0084 FF27              clr R31
 0086 E80F              add R30,R24
 0088 F91F              adc R31,R25
 008A 0081              ldd R16,z+0
 008C D9DF              xcall _chuli
 008E                   .dbline 47
 008E           L22:
 008E                   .dbline 46
 008E 4A95              dec R20
 0090           L24:
 0090                   .dbline 46
 0090 2224              clr R2
 0092 2416              cp R2,R20
 0094 A0F3              brlo L21
 0096                   .dbline 48
 0096           ;   {chuli(str[i]);}
 0096           ;  set_fqud(1);
 0096 01E0              ldi R16,1
 0098 BBDF              xcall _set_fqud
 009A                   .dbline 49
 009A           ;  set_fqud(0); 
 009A 0027              clr R16
 009C B9DF              xcall _set_fqud
 009E                   .dbline -2
 009E           L20:
 009E 0E940000          xcall pop_gset1
 00A2                   .dbline 0 ; func end
 00A2 0895              ret
 00A4                   .dbsym r i 20 c
 00A4                   .dbend
 00A4                   .dbfunc e setup _setup fV
                        .even
 00A4           _setup::
 00A4                   .dbline -1
 00A4                   .dbline 52
 00A4           ; }
 00A4           ; void setup()
 00A4           ; {
 00A4                   .dbline 53
 00A4           ;   set_wclk(0);
 00A4 0027              clr R16
 00A6 ACDF              xcall _set_wclk
 00A8                   .dbline 54
 00A8           ;   set_fqud(0);
 00A8 0027              clr R16
 00AA B2DF              xcall _set_fqud
 00AC                   .dbline 55
 00AC           ;   set_wclk(1);
 00AC 01E0              ldi R16,1
 00AE A8DF              xcall _set_wclk
 00B0                   .dbline 56
 00B0           ;   set_wclk(0);
 00B0 0027              clr R16
 00B2 A6DF              xcall _set_wclk
 00B4                   .dbline 57
 00B4           ;   set_fqud(1);
 00B4 01E0              ldi R16,1
 00B6 ACDF              xcall _set_fqud
 00B8                   .dbline 58
 00B8           ;   set_fqud(0);
 00B8 0027              clr R16
 00BA AADF              xcall _set_fqud
 00BC                   .dbline -2
 00BC           L25:
 00BC                   .dbline 0 ; func end
 00BC 0895              ret
 00BE                   .dbend
 00BE                   .dbfunc e m128_init _m128_init fV
                        .even
 00BE           _m128_init::
 00BE                   .dbline -1
 00BE                   .dbline 61
 00BE           ; }
 00BE           ; void m128_init()
 00BE           ; {
 00BE                   .dbline 62
 00BE           ;  DDRA=0XFF;
 00BE 8FEF              ldi R24,255
 00C0 8ABB              out 0x1a,R24
 00C2                   .dbline 63
 00C2           ;  PORTA=0XFF;
 00C2 8BBB              out 0x1b,R24
 00C4                   .dbline 64
 00C4           ;  DDRB=0X00;
 00C4 2224              clr R2
 00C6 27BA              out 0x17,R2
 00C8                   .dbline 65
 00C8           ;  PORTB=0XFF;
 00C8 88BB              out 0x18,R24
 00CA                   .dbline 66
 00CA           ;  DDRC=0X00;
 00CA 24BA              out 0x14,R2
 00CC                   .dbline 67
 00CC           ;  PORTC=0XFF;
 00CC 85BB              out 0x15,R24
 00CE                   .dbline 68
 00CE           ;  DDRD=0X00;
 00CE 21BA              out 0x11,R2
 00D0                   .dbline 69
 00D0           ;  PORTD=0XFF;
 00D0 82BB              out 0x12,R24
 00D2                   .dbline 70
 00D2           ;  DDRE=0X00;
 00D2 22B8              out 0x2,R2
 00D4                   .dbline 71
 00D4           ;  PORTE=0XFF;
 00D4 83B9              out 0x3,R24
 00D6                   .dbline -2
 00D6           L26:
 00D6                   .dbline 0 ; func end
 00D6 0895              ret
 00D8                   .dbend
 00D8                   .dbfunc e main _main fV
                        .even
 00D8           _main::
 00D8                   .dbline -1
 00D8                   .dbline 74
 00D8           ; }
 00D8           ; void main()
 00D8           ; {
 00D8                   .dbline 75
 00D8           ;  m128_init();
 00D8 F2DF              xcall _m128_init
 00DA                   .dbline 76
 00DA           ;  set_reset(0);
 00DA 0027              clr R16
 00DC A1DF              xcall _set_reset
 00DE                   .dbline 77
 00DE           ;  setup();
 00DE E2DF              xcall _setup
 00E0                   .dbline 78
 00E0           ;  ad9850();
 00E0 C8DF              xcall _ad9850
 00E2           L28:
 00E2                   .dbline 79
 00E2           L29:
 00E2                   .dbline 79
 00E2 FFCF              xjmp L28
 00E4           X0:
 00E4                   .dbline -2
 00E4           L27:
 00E4                   .dbline 0 ; func end
 00E4 0895              ret
 00E6                   .dbend

⌨️ 快捷键说明

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