找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1165|回复: 2
打印 上一主题 下一主题

基于c51的AD9854程序

[复制链接]

47

主题

223

帖子

1417

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

EDA365欢迎您!

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

x
#include<AT89X52.H>  //晶振可以用11.0592MHZ,如果用串口的话
) G" o- x% b5 D5 y3 M                     //提示:在调试程序的时候晶振用12MHZ# Q0 I4 h; m5 A$ q
#define HC_573_C      P2_79 e3 o3 m! q8 ?; f
#define MASTER_RESET  P2_1$ A! j# H5 L( @2 n) v. R
#define IO_UP         P2_6: M' ^$ d8 B& D( ^& F2 ]' s, d
#define WRB_SCLK      P2_5
6 o8 V  I% l# b1 x#define RDB_CSB       P2_4
' P+ K0 ~# k) Q) L8 w8 ~# k/ c# s$ D5 s2 F#define FSK_BPSK_HOLD P2_3
" D/ k7 j" }5 w3 L! n#define SHAPED_LEYING P2_2
6 q% Q% {8 [2 G' Svoid  AD9854_F();$ w  [2 Q2 K" [( C# x1 Q4 x' R5 D
void  AD9854_IO_INT();
5 A( k& [# g( `# M( Wvoid  DLY_400MS();$ f5 j& g- S* R1 M
void  TAB_DataWord();! |8 d/ q% i. Q9 |
void  F_DataWord();
$ J, }3 q- W/ ?2 x0 |0 Hvoid  V_Int();2 ~: G, |+ O: G) |
unsigned char temp;
( g/ x+ B: s$ ^; t9 q1 T8 J6 }//unsigned char UPFLAG;
7 O% P) J& ~# Q8 e4 |, @9 @unsigned char TAB_Data[40];! F  M  T9 Z- s4 F; ^/ c( b
unsigned char F_Data[6];
' R4 z* M6 T2 w' Hvoid main()
9 q* [+ ]2 v5 w { ) [$ X; W0 j8 H" I% G/ X
V_Int();
2 B9 x% a! ^) a while(1){* _5 X8 n( Z4 r+ E
TAB_DataWord();0 I; l' u: w3 k
F_DataWord();
6 K3 }# v& y4 B4 k$ N' S  while(1)
( q1 F$ [7 K) M7 D6 |9 `    {. l  E" l. g- w& }# A. _5 ~+ @
    if(!P1_0)0 R7 g4 m5 U2 B
    {
1 u: I. w0 U% a: @8 o. [    AD9854_F();
9 T% O+ J, x, B) R/ V+ U    }  
) q" O( v" w( O& w" T    if(!P1_1)4 U4 \; k# A! ~% G7 Q- R  H
    {
0 y  {/ r) C9 \* u! @    AD9854_IO_INT();
8 {2 P% \, C2 H0 q* X    }1 A% n% y: P: ?
if(!P1_2)
4 d( M1 `7 b2 E, T  p. } { & t$ @1 n# L8 q5 ]3 ^
    MASTER_RESET=1;5 [. |$ Q  g: u  n+ ]8 F! @
        }7 o9 \4 ]& }( _- J+ ]
   SHAPED_LEYING=1;
6 l& ]1 I* m, R8 D& v   MASTER_RESET=0;
/ d2 \- @" @+ T# v8 y% F# @  Y( ?   HC_573_C=0;
+ N- t; t  M3 c- n& b  e    }
7 a' j9 x" Q9 j6 p- v4 f                      }$ `( E" c% @2 q( \
   }: C! U- C7 `4 v! q2 [' j
/***********************************************************************************************/( B' t: I% f* o( c
void TAB_DataWord()3 P8 Y& t! x4 f+ R& y9 l
{5 B) I2 R8 S% N
TAB_Data[0]=0X00;
5 h  G& a& ?' p' A TAB_Data[1]=0X00;       //00H Phase Adjust Register #1 <13:8> (Bits 15, 14 don’t care) Phase #1 相位为0
0 U  f/ E0 U8 M; B$ ?. J    //01H Phase Adjust Register #1 <7:0> 01H' a2 \; L0 u$ K6 f# Y
TAB_Data[2]=0X00;  //02H Phase Adjust Register #2 <13:8> (Bits 15, 14 don’t care) Phase #2 相位为0
5 Q& b3 _% m7 n6 { TAB_Data[3]=0X00;       //03H Phase Adjust Register #1 <7:0> 03H
" w1 {; f( V  p0 x: @9 \3 x     
0 a. V6 N; ]0 z9 a. @ TAB_Data[4]=0X00;  //Frequency Tuning Word 1 <47:40>//0000431BDE83        
5 I# j) N# g4 f; G" H+ V* L% @% v TAB_Data[5]=0X10;  //Frequency Tuning Word 1 <39:32>7 Y- D. s8 `1 V+ w
TAB_Data[6]=0X43;  //Frequency Tuning Word 1 <31:24>
. C& V0 u; M# N0 C TAB_Data[7]=0X1B;  //Frequency Tuning Word 1 <23:16>
8 w& `* K! a1 l2 H TAB_Data[8]=0XDE;  //Frequency Tuning Word 1 <15:8>
6 v5 [5 t& V% I% D$ q2 v TAB_Data[9]=0X83;       //Frequency Tuning Word 1 <7:0>2 }' I3 C2 Y5 c9 V8 @) f) P
  0 X! j. B" U) e# U% t8 O
TAB_Data[10]=0X00;  //Frequency Tuning Word 2 <47:40, i7 ]9 f2 `% ^4 |( X
TAB_Data[11]=0X00;  //Frequency Tuning Word 2 <39:32>; v) @& c7 l+ x9 F6 P, {7 S6 ~2 K
TAB_Data[12]=0X43;  //Frequency Tuning Word 2 <31:24>% m- V, U% R# |+ V' s0 [, }
TAB_Data[13]=0X1B;  //Frequency Tuning Word 2 <23:16>
# o$ G. ^9 W, ^, G5 M4 J: u TAB_Data[14]=0XDE;  //Frequency Tuning Word 2 <15:8>& x5 c6 S) H2 {" a) J! D( y( n( }7 }! t
TAB_Data[15]=0X83;  //Frequency Tuning Word 2 <7:0> //500KHZ
+ x/ u' `5 m) Z0 W1 H8 \: T" {  ^$ F+ m TAB_Data[16]=0X01;  //Delta Frequency Word <47:40>
& J% ?8 D: D* v6 z1 ? TAB_Data[17]=0X47;  //Delta Frequency Word <39:32>
* j( S, s/ `3 U1 ~' y4 w# ^$ b* S TAB_Data[18]=0XAE;  //Delta Frequency Word <31:24>$ M! p9 |& e( d; T3 v) i" q) C& |
TAB_Data[19]=0X14;  //Delta Frequency Word <23:16>
  W" l! f, b% x" i TAB_Data[20]=0X7A;  //Delta Frequency Word <15:8>0 t7 J# v$ ~& B- Y
TAB_Data[21]=0XE1;  //Delta Frequency Word <7:0> 三角波  //频率为08 Q8 B4 h+ }; c) V+ b
TAB_Data[22]=0X00;  //Update Clock <31:24>
& s/ {8 ?7 n2 {/ D) f7 {TAB_Data[23]=0X00;  //Update Clock <23:16>
3 O) o$ H& w+ E; U$ \; kTAB_Data[24]=0X00;  //Update Clock <15:8>6 A7 W) S- s6 T/ K  `) N0 F
TAB_Data[25]=0XF0;  //Update Clock <7:0>         //系统出现寄存器更新信号reg. Int Update Clk.=0;外部更新
2 m. w  B" J( `* {# A' FTAB_Data[26]=0X00;  //Ramp Rate Clock <19:16> (Bits 23, 22, 21, 20 don’t care)
: }7 L9 F! i8 d! H4 T9 _TAB_Data[27]=0X00;  //Ramp Rate Clock <15:8>) u% C$ f: T1 c. I, W
TAB_Data[28]=0X00;  //Ramp Rate Clock <7:0>
) [# c% i) ], V: y, w& [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).3 A9 P. T7 |8 |5 ?4 J
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).
% {1 q) [( j% W; y  j" Y$ e, L9 STAB_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). 注意
  S; n. f. F+ Z+ K7 cTAB_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).3 K  R2 t: ~+ v- U6 v2 s% }; D
TAB_Data[33]=0X00;  //Output Shape Key I Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
3 R& p( q0 q; V$ t, h+ a$ O; t% vTAB_Data[34]=0X0F;  //Output Shape Key I Mult <7:0>6 R1 D2 k0 Q- ]' F" s' c
                       " M: O! u. u& W
TAB_Data[35]=0X00;       //Output Shape Key Q Mult <11:8> (Bits 15, 14, 13, 12 don’t care)* t0 C5 _2 U( ^; G( P- i4 W, ~3 X, K
TAB_Data[36]=0X0F;       //Output Shape Key Q Mult <7:0>
( D# D1 b8 U% s/ TTAB_Data[37]=0X0F;       //Output Shape Key Ramp Rate <7:0>
1 j- ~$ v$ n3 L; N" e 4 X0 X$ w/ }1 S! B+ L
TAB_Data[38]=0X00;       //QDAC <11:8> (Bits 15, 14, 13, 12 don’t care). O6 {9 p4 s1 ?0 Z( }/ H- D
TAB_Data[39]=0X0F;       //QDAC <7:0> (Data is required to be in twos complement format)
9 e3 u, |: g. m* Q, N' l}; M/ k) r% t: W7 I8 ~8 t& D
/**********************************************************************************************/
1 S! j7 ^. i# @! M* Bvoid F_DataWord()
) p# Y- ]: s! R  D; W{. t  m) x% Y" [0 h1 T; D4 ]# k
F_Data[0]=0X00; //Frequency Tuning Word 1 <47:40>//00029F16B11C//0000A7C5AC47# Q% Y! C0 c& ~. W4 \/ K( h
F_Data[1]=0X02; //Frequency Tuning Word 1 <39:32>3 s  R2 S# W3 D5 [
F_Data[2]=0X9F; //Frequency Tuning Word 1 <31:24>
( \7 g" C2 O" k$ K) Q, x! s F_Data[3]=0X16; //Frequency Tuning Word 1 <23:16> % j- t6 D' E- n7 }" R0 N1 q
F_Data[4]=0XB1; //Frequency Tuning Word 1 <15:8>/ G9 z; D2 b" O3 ~9 e$ O2 g
F_Data[5]=0X1C;        //Frequency Tuning Word 1 <7:0> //4 `+ a2 l7 _" ^- K) S
}
" s; s5 r+ j; V+ r  K9 m9 Y9 G/***********************************************************************************************/9 H- \+ o6 b1 e# T$ t
void  AD9854_F()
' C. B% c. j) a( z6 w% I7 J {   
5 `# z. r' g0 G: a  f  unsigned char i;           2 X6 u& g9 L+ P9 N5 t
  unsigned char tempf;  //   HC_573_C=0 ;选通
* B5 {+ K0 u4 p. y7 j, k# Q  MASTER_RESET=0;
: f' T* u& `% K  J2 t  RDB_CSB=1;
: b9 X: H$ E& t5 i/ y0 t  WRB_SCLK=0;
4 K  i0 c! B2 r" i: k) l% q  IO_UP=0;
# f" u+ m3 s) W) i4 \& ?  tempf="4";
* }8 P1 a+ _+ r  for(i=0;i<6;i++)6 v# E2 x: A/ ]2 F" }% U- S
{     . K4 c: E: Y  k" g
  HC_573_C=1;          //选通地址
7 @& Y, g# s, k3 |$ G+ g. J  P0=tempf;5 `' H( A, `% N, }
  HC_573_C=0;          //关闭HC573+ P. X9 y& ~# q4 g( y* c
  ACC="F"_Data[i];   
# o4 f6 R- [" h% e7 w$ _# X  P0=ACC;     ! ^- M7 e: v: x3 e8 X
  WRB_SCLK=0;
* _; }6 s; [1 Z' y, T( S  WRB_SCLK=1;
) x$ U) U/ k! F9 {+ T% S7 F  tempf++;
/ b1 f4 \& m+ s  ~          }     
) ~$ s2 |7 e3 `( b6 Z8 g ; O4 L1 [" ^8 B0 ^* L+ g0 N* U
  WRB_SCLK=1;$ b) N1 z( T( |( j* ], L
  
' d3 v" Q/ y$ x, ^; n" D. R  IO_UP=0;
' u" ], F0 F% @) n  IO_UP=1;             * b7 t" h" _" G$ z6 U, X+ ^! Y
  }    " G4 O  w& o' K8 z6 F
/************************************************************************************************/
+ @: [, r; L" b! `- n" r' B" {void AD9854_IO_INT()
+ A. T5 K- {$ k! V/ d2 d* i{ 2 x! y5 K9 k* T' T8 w" ?5 S# K4 g
  unsigned char i;) t6 ~& M" Y0 G: w; M( E
  DLY_400MS();1 ^& e1 N# K  T" o
  MASTER_RESET=0;
$ [6 z9 o# ]; b9 B. ?  MASTER_RESET=0;
% q" p" t" P1 i  }& _7 v  m" M  FSK_BPSK_HOLD =1; //多功能管脚
. i% T1 a- g/ M& d  SHAPED_LEYING =1;     //Must First Be Selected in the Programming Control Register
$ I0 x' ]/ n( E) k3 p          //to Function. A logic high will cause the I and Q DAC outputs 9 h/ x; E( H7 [: u0 i
   //to ramp-up from zero-scale to full-scale amplitude at a preprogrammed
: i& R4 s, Q( E# \   //rate.Logic low causes the full-scale output to ramp-down
+ D8 l/ `$ ~3 D7 M8 b          //to zero-scale at the preprogrammed rate.
0 T1 f) P5 q' t3 g# W# J  RDB_CSB=1;            //Active LOW. This pin is shared with RDB when
' l' V8 Q0 B) B  V  WRB_SCLK=0;           //并行写数据时钟.低电平有效3 \  ^6 z- {2 D
  IO_UP=0;              //数据写入准备' Q" [7 ~* y/ K0 H4 d
  temp="0";         //表格首数据地址
3 O$ p1 f2 c; Z5 |( X4 [9 I+ j          //AD9854 寄存器首地址
$ c* w* i2 L4 \; R- Q  for(i=0;i<40;i++)
6 q/ l# [% y" D) D' R {  
: ~6 D5 |% ~3 D9 J* H8 l' w! Z4 z' E  HC_573_C=1;3 W( [, m% m0 H& D( b' Z& p: _
  P0=temp;  //送地址 . t1 ]8 [. w* w& H) q/ r
  HC_573_C=0;
$ Q2 O  f( y9 o% `$ y5 P( _/ U. D                //取对应地址的数据, _4 Y, _0 t, a( }. N
  ACC="TAB"_Data[i];
  \, L2 n% _: o4 P, G% F) ?  P0=ACC;
  v8 ]1 e- `6 i9 N  WRB_SCLK=0;  O% c8 C0 R9 X
  WRB_SCLK=1;2 G4 F! P/ q( x2 B
  temp++;
+ Y2 m2 i% ^) _3 U  }' V4 k+ J  r4 U$ X" ?' R
  WRB_SCLK=1;         //关闭数据接收% \0 _) H3 F* h$ j
  IO_UP=0;
* s9 d0 A3 |; F$ D8 S5 G* F% q! T9 N  IO_UP=1;
3 o; w8 H2 p# r) P/ i   }4 y. N$ N1 T+ v$ ]9 u8 t
/**********************************************************************/1 M0 n2 m7 C% z
void V_Int()
) {7 f; K- ]$ b- n7 K) p+ ^6 U {            [7 _% D; ~- o' O' W1 X
  unsigned char tempf;  //   HC_573_C=0 ;选通6 ^" F% e) N. |+ L0 I
  MASTER_RESET=0;! ]1 j) S6 z8 P3 X4 Q# `3 R6 B
  RDB_CSB=1;; _6 s! r/ b$ R2 @/ H
  WRB_SCLK=0;) m. ~3 Y, E+ z5 _
  tempf="0X1F";   
+ ]6 B0 ?4 Q5 ~. J( u0 }1 d, V  HC_573_C=1;          //选通地址! v8 }  B, @$ \; k+ _! w  b
  P0=tempf;' i2 N) j; _7 |5 f
  HC_573_C=0;          //关闭HC573! j$ ?) M+ a" A2 {
  ACC="0X00";    ) l0 K9 l* ~6 Y8 g/ X
  P0=ACC;     
0 [% B4 E% e  v9 c  WRB_SCLK=0;
4 {+ v$ n2 g8 \$ X: h0 g+ i  WRB_SCLK=1;
. z* ]- a; P' l3 _7 j: r; `* R  DLY_400MS();. G1 l! S6 l* E5 w. k: {
  WRB_SCLK=1;
4 h9 T/ ?; m, Y% B6 G# i* t( E- e  DLY_400MS();            
3 Z( s+ a8 {" N" ]0 H# l- J  }   
. h  ]' s! y9 `" A0 M3 z2 T   P% m% J( s4 B# A! F
/**************************************************************************/
" [; D# g' w- O' L5 U' hvoid DLY_400MS()
( [0 j! Y4 o9 B( M' T- I4 z, d4 y{
1 d# Z: }- z" {  d$ B unsigned char i,j;1 M) ?/ f/ F& O1 A/ S
for(i=0;i<90;i++)
: O/ X1 U# m# ]2 n# X2 w {
) o8 t. E4 g5 _5 z, O for(j=0;j<60;j++);5 _6 l# ]4 B" Z) M
} ( n: D" j* ^' R$ ?2 Y2 Y" ]# V1 _
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

45

主题

175

帖子

-8969

积分

未知游客(0)

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

2

主题

61

帖子

-8970

积分

未知游客(0)

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

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-5-26 05:52 , Processed in 0.054534 second(s), 32 queries , Gzip On.

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

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

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