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

📄 ad9850_main.lst

📁 AD9850的一个实际例子 一般可用于DDS数字合成技术
💻 LST
字号:
   1               		.file	"AD9850_main.c"
   2               		.arch atmega8
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  55               	.global	AD9850WriteBytes
  57               	AD9850WriteBytes:
   1:AD9850_main.c **** //文件名	:ad9850_main 
   2:AD9850_main.c **** //创建人	:尹延辉
   3:AD9850_main.c **** //QQ:329314196欢迎交流
   4:AD9850_main.c **** //创建日期	:2006/08/18
   5:AD9850_main.c **** //FOSC		:8000000
   6:AD9850_main.c **** //BAUDRATE	:9600 
   7:AD9850_main.c **** //哈尔滨工程大学E唯协会,电子爱好者的乐园!
   8:AD9850_main.c **** 
   9:AD9850_main.c **** #include <avr/io.h>  
  10:AD9850_main.c **** #include <avr/interrupt.h>
  11:AD9850_main.c **** 
  12:AD9850_main.c **** #define ConPort PORTC
  13:AD9850_main.c **** #define ConDdr DDRC
  14:AD9850_main.c **** #define DATA PC0
  15:AD9850_main.c **** #define W_CLK PC1
  16:AD9850_main.c **** #define FQ_UD PC2
  17:AD9850_main.c **** #define SetDATA()	ConPort|=1<<DATA
  18:AD9850_main.c **** #define ClrDATA()	ConPort&=~(1<<DATA)
  19:AD9850_main.c **** #define SetW_CLK()	ConPort|=1<<W_CLK
  20:AD9850_main.c **** #define ClrW_CLK()	ConPort&=~(1<<W_CLK)
  21:AD9850_main.c **** #define SetFQ_UD()	ConPort|=1<<FQ_UD
  22:AD9850_main.c **** #define ClrFQ_UD()	ConPort&=~(1<<FQ_UD)
  23:AD9850_main.c **** 
  24:AD9850_main.c **** void AD9850WriteBytes(unsigned char *byte)
  25:AD9850_main.c **** {
  59               	.LM1:
  60               	/* prologue: frame size=0 */
  61               	/* prologue end (size=0) */
  26:AD9850_main.c **** 	unsigned char i,j,temp;
  27:AD9850_main.c **** 	ClrW_CLK();
  63               	.LM2:
  64 0000 A998      		cbi 53-0x20,1
  28:AD9850_main.c **** 	ClrFQ_UD();
  66               	.LM3:
  67 0002 AA98      		cbi 53-0x20,2
  29:AD9850_main.c **** 	for(i=0;i<5;i++)
  69               	.LM4:
  70 0004 30E0      		ldi r19,lo8(0)
  71               	.L11:
  30:AD9850_main.c **** 	{
  31:AD9850_main.c **** 		temp=byte[i];
  73               	.LM5:
  74 0006 FC01      		movw r30,r24
  75 0008 E30F      		add r30,r19
  76 000a F11D      		adc r31,__zero_reg__
  77 000c E081      		ld r30,Z
  78 000e 27E0      		ldi r18,lo8(7)
  79               	.L10:
  32:AD9850_main.c **** 		for(j=0;j<8;j++)
  33:AD9850_main.c **** 		{
  34:AD9850_main.c **** 			ClrW_CLK();
  81               	.LM6:
  82 0010 A998      		cbi 53-0x20,1
  35:AD9850_main.c **** 			if(temp&0x01) SetDATA();
  84               	.LM7:
  85 0012 E0FF      		sbrs r30,0
  86 0014 02C0      		rjmp .L8
  87 0016 A89A      		sbi 53-0x20,0
  88 0018 01C0      		rjmp .L9
  89               	.L8:
  36:AD9850_main.c **** 			else ClrDATA();
  91               	.LM8:
  92 001a A898      		cbi 53-0x20,0
  93               	.L9:
  37:AD9850_main.c **** 			temp=temp>>1;
  95               	.LM9:
  96 001c E695      		lsr r30
  38:AD9850_main.c **** 			SetW_CLK();
  98               	.LM10:
  99 001e A99A      		sbi 53-0x20,1
 101               	.LM11:
 102 0020 2150      		subi r18,lo8(-(-1))
 103 0022 27FF      		sbrs r18,7
 104 0024 F5CF      		rjmp .L10
 106               	.LM12:
 107 0026 3F5F      		subi r19,lo8(-(1))
 108 0028 3530      		cpi r19,lo8(5)
 109 002a 68F3      		brlo .L11
  39:AD9850_main.c **** 		}
  40:AD9850_main.c **** 	}
  41:AD9850_main.c **** 	ClrW_CLK();
 111               	.LM13:
 112 002c A998      		cbi 53-0x20,1
  42:AD9850_main.c **** 	SetFQ_UD();
 114               	.LM14:
 115 002e AA9A      		sbi 53-0x20,2
  43:AD9850_main.c **** 	SetFQ_UD();
 117               	.LM15:
 118 0030 AA9A      		sbi 53-0x20,2
  44:AD9850_main.c **** 	ClrFQ_UD();
 120               	.LM16:
 121 0032 AA98      		cbi 53-0x20,2
 122               	/* epilogue: frame size=0 */
 123 0034 0895      		ret
 124               	/* epilogue end (size=1) */
 125               	/* function AD9850WriteBytes size 27 (26) */
 132               	.Lscope0:
 133               		.data
 134               	.LC0:
 135 0000 FF        		.byte	-1
 136 0001 FF        		.byte	-1
 137 0002 FF        		.byte	-1
 138 0003 53        		.byte	83
 139 0004 01        		.byte	1
 140               		.text
 142               	.global	main
 144               	main:
  45:AD9850_main.c **** }
  46:AD9850_main.c **** int main(void)
  47:AD9850_main.c **** {
 146               	.LM17:
 147               	/* prologue: frame size=5 */
 148 0036 C0E0      		ldi r28,lo8(__stack - 5)
 149 0038 D0E0      		ldi r29,hi8(__stack - 5)
 150 003a DEBF      		out __SP_H__,r29
 151 003c CDBF      		out __SP_L__,r28
 152               	/* prologue end (size=4) */
  48:AD9850_main.c **** 	unsigned char test[5]={0xff,0xff,0xff,0b01010011,0b00000001};//547ae147
 154               	.LM18:
 155 003e 85E0      		ldi r24,lo8(5)
 156 0040 A0E0      		ldi r26,lo8(.LC0)
 157 0042 B0E0      		ldi r27,hi8(.LC0)
 158 0044 FE01      		movw r30,r28
 159 0046 3196      		adiw r30,1
 160 0048 0D90      		ld __tmp_reg__,X+
 161 004a 0192      		st Z+,__tmp_reg__
 162 004c 8A95      		dec r24
 163 004e E1F7      		brne .-8
  49:AD9850_main.c **** 	unsigned char i,j;
  50:AD9850_main.c **** 	ConDdr=0xff;
 165               	.LM19:
 166 0050 8FEF      		ldi r24,lo8(-1)
 167 0052 84BB      		out 52-0x20,r24
  51:AD9850_main.c **** 	for(i=0;i<200;i++)
 169               	.LM20:
 170 0054 90E0      		ldi r25,lo8(0)
 171               	.L24:
  52:AD9850_main.c **** 	for(j=0;j<200;j++);
 173               	.LM21:
 174 0056 80E0      		ldi r24,lo8(0)
 175               	.L23:
 176 0058 8E5C      		subi r24,lo8(-(50))
 177 005a 883C      		cpi r24,lo8(-56)
 178 005c E8F3      		brlo .L23
 180               	.LM22:
 181 005e 9F5F      		subi r25,lo8(-(1))
 182 0060 983C      		cpi r25,lo8(-56)
 183 0062 C8F3      		brlo .L24
  53:AD9850_main.c **** 	AD9850WriteBytes(test);
 185               	.LM23:
 186 0064 CE01      		movw r24,r28
 187 0066 0196      		adiw r24,1
 188 0068 CBDF      		rcall AD9850WriteBytes
 189               	.L25:
  54:AD9850_main.c **** //	AD9850WriteBytes(test);
  55:AD9850_main.c **** //	AD9850WriteBytes(test);
  56:AD9850_main.c **** 	while(1);
 191               	.LM24:
 192 006a FFCF      		rjmp .L25
 193               	/* epilogue: frame size=5 */
 194               	/* epilogue: noreturn */
 195               	/* epilogue end (size=0) */
 196               	/* function main size 27 (23) */
 203               	.Lscope1:
 204               		.text
 206               	Letext:
 207               	/* File "AD9850_main.c": code   54 = 0x0036 (  49), prologues   4, epilogues   1 */
DEFINED SYMBOLS
                            *ABS*:00000000 AD9850_main.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\DSP\LOCALS~1\Temp/ccC6aaaa.s:57     .text:00000000 AD9850WriteBytes
C:\DOCUME~1\DSP\LOCALS~1\Temp/ccC6aaaa.s:144    .text:00000036 main
C:\DOCUME~1\DSP\LOCALS~1\Temp/ccC6aaaa.s:206    .text:0000006c Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack

⌨️ 快捷键说明

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