📄 chuan9850.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 + -