找回密码
 注册
关于网站域名变更的通知
查看: 1593|回复: 2
打印 上一主题 下一主题

基于c51的AD9854程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-3-20 13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
#include<AT89X52.H>  //晶振可以用11.0592MHZ,如果用串口的话
/ ?2 E" V0 x- f9 D                     //提示:在调试程序的时候晶振用12MHZ, M" t5 B3 j3 p( b0 m  k( ?1 c
#define HC_573_C      P2_7
* i( M) S/ D# ^) g& I- I/ j#define MASTER_RESET  P2_1; Y5 g4 e) n# I7 |* t* K; a  H
#define IO_UP         P2_6
, t! u4 p$ e$ E+ K; M# s# Y#define WRB_SCLK      P2_5
+ R5 q7 P- d% x3 J1 D( ^2 d#define RDB_CSB       P2_4% ~0 \0 J: {/ T- F" E5 U
#define FSK_BPSK_HOLD P2_3" I/ H- @/ u* y5 p
#define SHAPED_LEYING P2_2, I; [. [: o& Y
void  AD9854_F();8 X. S9 d0 z2 |
void  AD9854_IO_INT();4 ~: s3 N5 a) T2 {# p( g9 N
void  DLY_400MS();
8 y  V5 c) \. H9 a* G7 f+ zvoid  TAB_DataWord();% m, [5 Z" \. l& W
void  F_DataWord();
: q5 M1 \7 b7 X4 X6 q+ Ovoid  V_Int();% e7 [0 d4 ?# @+ _
unsigned char temp;
0 e# t2 @* }2 x9 U; s& e//unsigned char UPFLAG;2 r" L  A( x7 A+ E5 V! T6 d
unsigned char TAB_Data[40];) v% i7 b6 x/ U6 A
unsigned char F_Data[6];
- q$ Z' x! c5 H* m. z, Hvoid main(), U( I) f4 c) q( ^
{ " N7 @6 W& A0 {1 J: S. s/ v' \+ S; _; u, y
V_Int();
9 P9 W" r/ B. c7 g* h- j while(1){' \! q6 |% }5 q6 {
TAB_DataWord();
4 [% s, ]7 L/ t+ q F_DataWord();
' e1 S, a2 p  l. d* {" w1 s4 ~3 Q) |" k  F+ S  while(1)
/ j9 k& z' t* z* j    {
6 t; ^8 [7 o0 _& R1 W9 F& ]# O$ A    if(!P1_0)3 [/ Y# x/ W5 ?
    {
: Q' N7 O: N; W: @' I* G    AD9854_F();# D; a  `( k# Q; j' B
    }  7 k* k2 T: q- q
    if(!P1_1)! m+ @3 z" g5 N$ L
    {
6 x0 F$ C3 `) a    AD9854_IO_INT();3 z; u2 s4 x5 g; m4 g9 h  b
    }" p+ b. B$ O' T! ?
if(!P1_2)
2 M3 y- D4 Q7 x8 z1 X% Q# k0 O { 8 [& O1 Y2 u! _+ Z& N) ]0 ~# Z
    MASTER_RESET=1;! B/ T  b4 B" a. j; T. f: D$ L; I
        }
8 B$ @" O+ n3 r7 E, T# _   SHAPED_LEYING=1;
& y+ l; T! F  b9 Y7 G   MASTER_RESET=0;+ E3 i! O. S. ~5 W
   HC_573_C=0;7 F" E  [0 x* `6 G3 ~# Q; m( d
    }
, W3 N8 Z1 P- X2 w' E, V                      }
* x' E5 u9 k+ d8 }5 i   }2 m% I& D8 c7 L) h, Q, |3 [# O( c
/***********************************************************************************************/
6 k: R& y$ a( `+ Y. Ovoid TAB_DataWord()
9 S0 U( V+ d. _3 k: `1 e6 R, Y{
# ^2 B7 s. R6 ?/ i; O# h TAB_Data[0]=0X00;/ A$ ^$ ?% D/ [$ X9 U7 E. u! Y
TAB_Data[1]=0X00;       //00H Phase Adjust Register #1 <13:8> (Bits 15, 14 don’t care) Phase #1 相位为0: L9 D/ T' }  ~2 G: F6 W
    //01H Phase Adjust Register #1 <7:0> 01H
; O) Y9 X: h% `0 U3 G; Z+ K  _, N TAB_Data[2]=0X00;  //02H Phase Adjust Register #2 <13:8> (Bits 15, 14 don’t care) Phase #2 相位为0
1 [1 `$ |: `$ ?$ f( n TAB_Data[3]=0X00;       //03H Phase Adjust Register #1 <7:0> 03H1 F& M( g( M! Q% A: ?
     
6 P) e' R$ v' v1 O3 t TAB_Data[4]=0X00;  //Frequency Tuning Word 1 <47:40>//0000431BDE83        2 _- H$ j9 E* S( W, I  u
TAB_Data[5]=0X10;  //Frequency Tuning Word 1 <39:32>: j- D( A9 a0 A& ], Y- M
TAB_Data[6]=0X43;  //Frequency Tuning Word 1 <31:24>
# o' Y. U0 T, W  g/ q TAB_Data[7]=0X1B;  //Frequency Tuning Word 1 <23:16> , O% w1 s# ~8 B/ s7 n& g' F% C
TAB_Data[8]=0XDE;  //Frequency Tuning Word 1 <15:8>7 Q/ s: u2 r2 f* I  ?) k) S
TAB_Data[9]=0X83;       //Frequency Tuning Word 1 <7:0>5 c, Q" R% @, e) O" K
  
) P$ {4 a/ K4 _9 S2 H TAB_Data[10]=0X00;  //Frequency Tuning Word 2 <47:40
) \4 I/ b4 z+ F  G# Y7 S) v8 Q0 f TAB_Data[11]=0X00;  //Frequency Tuning Word 2 <39:32>
" X- j  ~1 H6 E+ P: F7 W. `0 W TAB_Data[12]=0X43;  //Frequency Tuning Word 2 <31:24>3 e3 r# m: t5 F4 P, I$ {
TAB_Data[13]=0X1B;  //Frequency Tuning Word 2 <23:16>/ D. s4 x3 R3 K$ d! `1 W' \1 L! O
TAB_Data[14]=0XDE;  //Frequency Tuning Word 2 <15:8>
3 H5 j; M- t2 p, F5 a8 T TAB_Data[15]=0X83;  //Frequency Tuning Word 2 <7:0> //500KHZ
7 n/ J& q2 a+ S6 N9 U/ L4 t; `" j& e TAB_Data[16]=0X01;  //Delta Frequency Word <47:40>3 l- [+ m- f, u/ n# g/ W) r% M
TAB_Data[17]=0X47;  //Delta Frequency Word <39:32>
/ ?2 h# S0 L" f2 D TAB_Data[18]=0XAE;  //Delta Frequency Word <31:24>7 o% _) U/ n( @0 r& L( i6 a
TAB_Data[19]=0X14;  //Delta Frequency Word <23:16>
8 o2 j. V% v. I1 B  Q: G% W TAB_Data[20]=0X7A;  //Delta Frequency Word <15:8>
- a0 S+ V% [9 Q9 D4 y TAB_Data[21]=0XE1;  //Delta Frequency Word <7:0> 三角波  //频率为0
4 J* k" _. y$ @7 V2 ETAB_Data[22]=0X00;  //Update Clock <31:24>) ~) z6 W" }8 v
TAB_Data[23]=0X00;  //Update Clock <23:16>
% F6 b; J) j* H/ fTAB_Data[24]=0X00;  //Update Clock <15:8>
0 w9 z' e& e# _7 @' }5 k! m8 g+ _# Q. TTAB_Data[25]=0XF0;  //Update Clock <7:0>         //系统出现寄存器更新信号reg. Int Update Clk.=0;外部更新
# V" ~7 w# A2 y& U! z1 nTAB_Data[26]=0X00;  //Ramp Rate Clock <19:16> (Bits 23, 22, 21, 20 don’t care)
, z3 h+ I3 l' z' {1 M9 PTAB_Data[27]=0X00;  //Ramp Rate Clock <15:8>
$ f  k# _7 _- u- ~TAB_Data[28]=0X00;  //Ramp Rate Clock <7:0>6 @! V+ v& l7 a% ^) m* u
TAB_Data[29]=0X00;  //Don't Care(0),Don't Care(0),Don't Care(0),Comp PD(0),Reserved_Always Low(0),QDAC PD(0),DAC PD(0),DIG PD(0).0 m9 t- t$ E, [: |" d9 l& e8 M" d
TAB_Data[30]=0X60;       //Don't Care(0),PLL Range(1),Bypass PLL(1),Ref Mult 4(0),Ref Mult 3(0),Ref Mult 2(0),Ref Mult 1(0),Ref Mult 0(0).
/ }" X: o; R! f: O9 TTAB_Data[31]=0X00;  //CLR ACC1(0),CLR ACC2(0),Triangle(0)(三角波),SRC QDAC(0),Mode 2(0),Mode 1(0),Mode 0(0),Int Update Clk(0). 注意
. z) ^/ f+ e7 [) N5 b$ M+ j* k4 P( _) ~TAB_Data[32]=0X40;  //Don't Care(0),Bypass_Inv_Sinc(0),OSK EN(0),OSK INT(0),Don't Care(0),Don't Care(0),LSB First(0),SDO_Active(0).
5 P1 j' p2 z# d- FTAB_Data[33]=0X00;  //Output Shape Key I Mult <11:8> (Bits 15, 14, 13, 12 don’t care)3 \1 J4 H3 [+ ]; `) L* E! w
TAB_Data[34]=0X0F;  //Output Shape Key I Mult <7:0>
1 X1 m4 C' Z% T' A                       - v& z+ ?) v+ x- g. G' R/ t
TAB_Data[35]=0X00;       //Output Shape Key Q Mult <11:8> (Bits 15, 14, 13, 12 don’t care)) F9 U# v1 I7 D& R+ K, y
TAB_Data[36]=0X0F;       //Output Shape Key Q Mult <7:0>
0 d7 f" v6 p4 M) k3 H) KTAB_Data[37]=0X0F;       //Output Shape Key Ramp Rate <7:0>
  n" o6 K' @, N8 U$ c ! }- O2 z- }3 s0 O$ g; m( T' g
TAB_Data[38]=0X00;       //QDAC <11:8> (Bits 15, 14, 13, 12 don’t care)9 h8 V4 }1 ^9 \+ G. K
TAB_Data[39]=0X0F;       //QDAC <7:0> (Data is required to be in twos complement format)
9 j8 F# G5 N0 ^/ N: r" {1 R' H4 K% s}8 }$ R9 r8 D+ A1 s! `7 ^2 k  V2 o8 N
/**********************************************************************************************/
: ^- i' y; o6 e) q: r9 bvoid F_DataWord()
8 @- y9 W; I3 ^! i$ i$ O{, `5 ^  ]& a. S
F_Data[0]=0X00; //Frequency Tuning Word 1 <47:40>//00029F16B11C//0000A7C5AC47
* _6 `# R& e3 P* N; s) J& K F_Data[1]=0X02; //Frequency Tuning Word 1 <39:32>
. P2 g  {, R1 r+ }: W F_Data[2]=0X9F; //Frequency Tuning Word 1 <31:24>9 {& `- w$ D& K: L- s
F_Data[3]=0X16; //Frequency Tuning Word 1 <23:16>
. n( f) {0 s& _# B5 v F_Data[4]=0XB1; //Frequency Tuning Word 1 <15:8>4 Z# M; ]- L& P( V$ x
F_Data[5]=0X1C;        //Frequency Tuning Word 1 <7:0> //# ?$ a- `0 ~7 p9 [4 X
}  [  t  A6 S# p, ^2 w) d3 I
/***********************************************************************************************/6 s7 Q# O# v+ a' W
void  AD9854_F()
5 j# G& u& b0 z- e" d+ U" Y {   
( S& Z2 }3 U3 U. V- }  unsigned char i;           
) }2 b" a) M* w3 v9 c; O) p' v/ C( g  unsigned char tempf;  //   HC_573_C=0 ;选通
, P: F0 D% q  V" m+ X  MASTER_RESET=0;9 B: j7 V/ o& \2 m$ g
  RDB_CSB=1;
' i, j- s. H! B  WRB_SCLK=0;7 G$ l& e& l* ?9 Q
  IO_UP=0;
4 e. L! A; G9 g6 d  tempf="4";
- A! b, _6 P* v  for(i=0;i<6;i++)
: X3 J- B" V+ s( I4 M {     $ P! F. j5 U8 P4 }" s
  HC_573_C=1;          //选通地址" }$ N/ d) \+ E. m! v" Q+ S
  P0=tempf;9 V3 x% g, e, j4 m" h
  HC_573_C=0;          //关闭HC5731 c3 A& e  V* V" Z: s" |5 v' C7 N
  ACC="F"_Data[i];   
/ u, P! h" i, W# y8 r  P0=ACC;     % q# T  S3 [8 M9 k$ o
  WRB_SCLK=0;  y8 l! M- n7 l( v% |5 p# g
  WRB_SCLK=1;
8 B# K# n9 L5 P' ], D. C! e  tempf++;" W9 ?2 K% B8 O0 ?' s9 M# q" i
          }     4 w1 f. o9 `( g- r# b+ a6 n

% g" A/ X1 W  D' r; ~7 Z  WRB_SCLK=1;
* P1 G0 k  D) s  
  ?( F6 Z" E8 `- |: ?  IO_UP=0;8 m5 L) D6 R/ B( V5 B# U
  IO_UP=1;             " c5 \  K# P  i& @( {
  }    + H" H' H( ]) B3 }$ U
/************************************************************************************************/0 {2 Q0 K' g6 y0 v
void AD9854_IO_INT()
/ k" r4 c2 E5 j: K2 c0 z{
+ j- o7 N* v* z% l3 c8 T  H  unsigned char i;2 q  r4 _8 `3 c. h: ]3 E
  DLY_400MS();
8 s- y# p6 b  X  G5 V9 U! y  MASTER_RESET=0;
5 C+ c6 C, x2 D7 ?  s4 g  MASTER_RESET=0;
4 a5 I6 `( c' C! F& p  FSK_BPSK_HOLD =1; //多功能管脚
1 t4 r) |4 @* D  SHAPED_LEYING =1;     //Must First Be Selected in the Programming Control Register/ v4 ~8 ~; M4 U) O& _5 w+ B
          //to Function. A logic high will cause the I and Q DAC outputs
- }+ P& J( y7 j7 p8 d" t+ S   //to ramp-up from zero-scale to full-scale amplitude at a preprogrammed
* ]( p) q" L1 x: }  t  j   //rate.Logic low causes the full-scale output to ramp-down # ?4 s, H! L/ ?0 Q  m; p
          //to zero-scale at the preprogrammed rate.- n" A) B; C! E. Y3 r
  RDB_CSB=1;            //Active LOW. This pin is shared with RDB when
  Q5 y, B5 A; ]- P  WRB_SCLK=0;           //并行写数据时钟.低电平有效2 u- X. L2 F& p5 z2 M/ B4 x! R
  IO_UP=0;              //数据写入准备# ~" k$ O) V* t
  temp="0";         //表格首数据地址
; {2 N3 S0 Z1 j+ W' f5 |          //AD9854 寄存器首地址) a! Z# I7 m( T+ Z
  for(i=0;i<40;i++)
  ]2 n4 F& `4 U {  5 Z. z! h% x! n5 q1 W) ~
  HC_573_C=1;
2 P! d& Z, l( m$ b& r  P0=temp;  //送地址 3 y7 @' ?& p1 y; z
  HC_573_C=0;
( ]1 Q7 {7 e% B; u7 S  ]                //取对应地址的数据
2 X" ?$ h- V; G. n  ACC="TAB"_Data[i];
! T. O' X( ?! X& n; a  P0=ACC;+ l! }: k4 {2 s9 _5 x3 E
  WRB_SCLK=0;
6 D5 ^2 g: X1 B3 s$ `9 N0 i  WRB_SCLK=1;; P$ ^! B  i9 t
  temp++;! \! Z5 G. D5 c6 v+ @" |$ O% e
  }
0 U! x# l$ I3 U  WRB_SCLK=1;         //关闭数据接收% f# J7 k% F; d+ D2 M* Y  Y
  IO_UP=0;" V# e5 k5 Q' ~4 [
  IO_UP=1;
3 o, `- B( m# H) V% e   }
; n3 W. B+ B3 b/ _+ T. q2 P/**********************************************************************/# w) s' B9 ~( d
void V_Int(), Z% B2 n1 \+ L
{          6 X- S6 C# F; s  V/ X+ s
  unsigned char tempf;  //   HC_573_C=0 ;选通
, Z& Z, Z9 V( e9 y; I5 o) t; J  MASTER_RESET=0;
' j4 V6 ^5 t/ x6 u# g, Y8 \  RDB_CSB=1;* q8 [: t% E: X3 D( e
  WRB_SCLK=0;- l! f, A/ ^# k/ L; V. ^
  tempf="0X1F";   
4 c  O) _+ M9 h  HC_573_C=1;          //选通地址' e- l2 M# C7 }6 Z, H, _
  P0=tempf;
1 M  v" h" V6 x* y9 V- p/ F  HC_573_C=0;          //关闭HC5731 x) Z8 b- ?# v* u: @
  ACC="0X00";   
% c4 X' V) _7 {4 H  W4 `& q  P0=ACC;     ! \' i7 b$ ?* G$ q9 L6 P% f( b
  WRB_SCLK=0;2 G- P* \3 K: z7 U* i# F
  WRB_SCLK=1;3 p, @8 C5 e* s4 p3 C
  DLY_400MS();3 V0 e3 G/ q3 G$ T
  WRB_SCLK=1;- o- J% b# E9 S: j
  DLY_400MS();             6 M4 o7 F+ u9 z
  }   
- o# @* \: h7 D: {! `1 [2 X& ~
" I  X" _7 I2 i/**************************************************************************/
- g' M- k3 E0 C4 q6 N' H: L; dvoid DLY_400MS()
! q9 C) X- o8 J{
( E4 W$ r0 Z+ p1 f  ` unsigned char i,j;' U* V& v9 F2 x4 Y) p
for(i=0;i<90;i++)" H" z# F- ?' C: t' J+ R
{1 r/ \( a2 ?# W$ I
for(j=0;j<60;j++);
( W4 v& k6 Z/ G2 f/ N } 5 H; i! A% ?: g; T
}

该用户从未签到

2#
发表于 2009-3-25 11:40 | 只看该作者

该用户从未签到

3#
发表于 2010-2-13 20:42 | 只看该作者
没原压缩代码啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-20 05:10 , Processed in 0.125000 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表