找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1158|回复: 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,如果用串口的话! w: @* H4 u/ E+ r
                     //提示:在调试程序的时候晶振用12MHZ5 A; |9 d, L! O2 X9 x/ d2 K8 {
#define HC_573_C      P2_7
% m9 t! E: Q7 Q( c0 M- P5 a4 @#define MASTER_RESET  P2_1
" I3 ~( A2 T7 q1 J8 r) |) v' J#define IO_UP         P2_6
% I5 b/ z( H4 U, E  u& K$ ?" D& R#define WRB_SCLK      P2_5# U) d* @2 Q# P5 y
#define RDB_CSB       P2_49 g7 o1 o4 G1 \8 O# t4 {
#define FSK_BPSK_HOLD P2_3
! {, @9 b' m) R9 x#define SHAPED_LEYING P2_2
- P4 Q  `+ f% ~4 `void  AD9854_F();; R# e/ g- o( @  F9 W4 C& v
void  AD9854_IO_INT();2 X# k8 J) R& e/ G+ q+ u) ?
void  DLY_400MS();
9 T5 b( j0 r1 v4 L7 [+ m: ?void  TAB_DataWord();7 K! d* O, I* p3 r
void  F_DataWord();, o. U$ c: L& d* t: `' g1 c
void  V_Int();# H3 g: h, }8 f; N6 E
unsigned char temp;2 B- s6 D- J. p' J- d
//unsigned char UPFLAG;
  w/ N2 {8 N$ l# Tunsigned char TAB_Data[40];
) J4 z9 ?8 o/ a% M/ u2 z: Punsigned char F_Data[6];
. [7 t( V$ o6 M5 [6 ]: O5 Bvoid main()6 k- M5 h, r- g" b
{ 4 L7 N( O7 x! W6 `, _2 D9 b4 h
V_Int();
' `: d8 o; y% ~1 ]2 g while(1){
  v! p/ v. u. H6 O TAB_DataWord();& c6 Y& V$ \( K, c6 |2 J% ~
F_DataWord();8 s2 L, o& l  j" ?" v; I9 d6 o; ]
  while(1)
4 }" j2 M8 I% {    {
( T* Q, f; T' s) t1 n    if(!P1_0)
4 Q- o# R- w/ V; H$ {5 R; u    { ) M, k9 g0 ^$ X6 N& p. P
    AD9854_F();
. h, L; t1 S4 K2 s    }  
& E' F% J% J% a    if(!P1_1)( w1 p& S, @8 c# I
    {
* h) g( s, P) G. j% F8 I    AD9854_IO_INT();4 A8 F/ Q& [2 B' T, F% D/ c4 I4 Z
    }* _  s- D2 x3 a' M9 L2 p
if(!P1_2)
$ w* G9 k: G: _" h) g { ! z* \! H% I9 Z$ a3 j0 |3 u# k, d
    MASTER_RESET=1;4 R8 l! h- j. N, S+ b. y" \, H
        }8 [' E. C6 i% H& u
   SHAPED_LEYING=1;
% }3 b' ~9 z3 H7 d/ P5 h9 g0 N   MASTER_RESET=0;
% b6 a4 B" P$ c- k/ a: u+ l   HC_573_C=0;
! j  ~1 @0 }+ U* b  v% I    }
% [  s  r( q& N  u                      }
! c/ I# ~( N" ?. d# K   }
) V, ]; B6 [1 o0 r: Y/***********************************************************************************************/; Y/ u8 e# k: W5 c4 b  I8 }
void TAB_DataWord()* G0 r" }! o! n' H, |  l' E$ L' R/ i& E
{/ V. n& N3 \4 Z
TAB_Data[0]=0X00;
5 r5 i: G1 ~7 S2 i4 { TAB_Data[1]=0X00;       //00H Phase Adjust Register #1 <13:8> (Bits 15, 14 don’t care) Phase #1 相位为0
7 x6 Z3 G4 S) E, Y, o: l- k& D! U: a    //01H Phase Adjust Register #1 <7:0> 01H
+ d1 g+ t/ h3 v& D TAB_Data[2]=0X00;  //02H Phase Adjust Register #2 <13:8> (Bits 15, 14 don’t care) Phase #2 相位为08 D1 H8 u6 S- L6 C" p- N/ B
TAB_Data[3]=0X00;       //03H Phase Adjust Register #1 <7:0> 03H
3 m3 T5 T9 D+ J- t  x/ C     
0 R7 ~5 q' u# q7 z6 l* V TAB_Data[4]=0X00;  //Frequency Tuning Word 1 <47:40>//0000431BDE83        ' t5 O/ Z" W* d; e3 a$ Z
TAB_Data[5]=0X10;  //Frequency Tuning Word 1 <39:32>" _" b5 `5 u% ?! s- S# ?& P
TAB_Data[6]=0X43;  //Frequency Tuning Word 1 <31:24>
& N' u* p; Q6 N TAB_Data[7]=0X1B;  //Frequency Tuning Word 1 <23:16> 7 e% b; d  E3 d
TAB_Data[8]=0XDE;  //Frequency Tuning Word 1 <15:8>
9 d9 g: s9 x2 V- i" _ TAB_Data[9]=0X83;       //Frequency Tuning Word 1 <7:0>
& @: v; Y2 H5 N' a: R  W+ R9 R  ) T  E- c' D! \
TAB_Data[10]=0X00;  //Frequency Tuning Word 2 <47:40
0 Y+ A: r9 f$ `& T0 | TAB_Data[11]=0X00;  //Frequency Tuning Word 2 <39:32>
/ b  j% D/ _/ m# _! q7 w  Q TAB_Data[12]=0X43;  //Frequency Tuning Word 2 <31:24>9 V8 l  O9 C6 [/ C
TAB_Data[13]=0X1B;  //Frequency Tuning Word 2 <23:16>
  u1 Q% b& ^8 m3 ?$ n TAB_Data[14]=0XDE;  //Frequency Tuning Word 2 <15:8>+ r4 u5 A* h3 y0 L) B/ Y
TAB_Data[15]=0X83;  //Frequency Tuning Word 2 <7:0> //500KHZ( x; L9 c" B, J- C1 X1 D* c
TAB_Data[16]=0X01;  //Delta Frequency Word <47:40>
& n8 l# i9 F% x* D! k7 r: @ TAB_Data[17]=0X47;  //Delta Frequency Word <39:32>% n$ U8 P: U* g8 z0 x# B
TAB_Data[18]=0XAE;  //Delta Frequency Word <31:24>' V5 h- n5 i  C+ W
TAB_Data[19]=0X14;  //Delta Frequency Word <23:16>9 q* F) @3 l: U  }
TAB_Data[20]=0X7A;  //Delta Frequency Word <15:8>0 ?2 j% r8 r2 U  i9 l
TAB_Data[21]=0XE1;  //Delta Frequency Word <7:0> 三角波  //频率为0
  Z& t$ m: J8 L% WTAB_Data[22]=0X00;  //Update Clock <31:24>
( S- Z9 M! f! |  J2 f# VTAB_Data[23]=0X00;  //Update Clock <23:16>
! y& N3 W" B. r: ]TAB_Data[24]=0X00;  //Update Clock <15:8>1 @9 A" y$ v& d1 `% F* d% G
TAB_Data[25]=0XF0;  //Update Clock <7:0>         //系统出现寄存器更新信号reg. Int Update Clk.=0;外部更新
: u6 s' q6 R2 u4 bTAB_Data[26]=0X00;  //Ramp Rate Clock <19:16> (Bits 23, 22, 21, 20 don’t care)
  |; h( r% ^7 E- s% a% [. eTAB_Data[27]=0X00;  //Ramp Rate Clock <15:8>
: G. v/ x; k& l$ r6 F9 o- ETAB_Data[28]=0X00;  //Ramp Rate Clock <7:0>
7 `$ }1 `1 |7 bTAB_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).
6 T# [" `. i/ fTAB_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).
6 M5 p/ v) k- l. i& D3 KTAB_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). 注意% R. ?& h) M& d5 O1 R3 F( w
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).9 t. }2 E/ ], ~# D+ m" G
TAB_Data[33]=0X00;  //Output Shape Key I Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
- b/ Z' l+ I  S: g4 YTAB_Data[34]=0X0F;  //Output Shape Key I Mult <7:0># Y8 n. B% T3 j
                       & g4 I& w- V$ P& ^* a- m$ o( \2 ^
TAB_Data[35]=0X00;       //Output Shape Key Q Mult <11:8> (Bits 15, 14, 13, 12 don’t care)! f6 ~/ V) k8 K% \
TAB_Data[36]=0X0F;       //Output Shape Key Q Mult <7:0>% t5 s1 U7 J' d' r) J
TAB_Data[37]=0X0F;       //Output Shape Key Ramp Rate <7:0>. y9 ]7 v% c+ C! U0 D

6 E; e" _% F/ Q/ G- k6 XTAB_Data[38]=0X00;       //QDAC <11:8> (Bits 15, 14, 13, 12 don’t care)" M* S% E6 J. X# |6 o
TAB_Data[39]=0X0F;       //QDAC <7:0> (Data is required to be in twos complement format)9 L# m# @) @% b
}
9 T. O) w3 f2 z, u9 D' d/**********************************************************************************************/
5 _: i* O4 I' |" K' C" z2 rvoid F_DataWord()$ T4 L- D, s/ Y& K3 g+ B
{
  d1 h; `0 K& |/ X( P7 t9 W" E  t- Z( L F_Data[0]=0X00; //Frequency Tuning Word 1 <47:40>//00029F16B11C//0000A7C5AC47/ Y. {: F( e' y* d
F_Data[1]=0X02; //Frequency Tuning Word 1 <39:32>) U3 E! Q- q+ d3 b
F_Data[2]=0X9F; //Frequency Tuning Word 1 <31:24>
" `, e" d5 ^# s0 j! Z F_Data[3]=0X16; //Frequency Tuning Word 1 <23:16>
) J# Z( |7 y" @3 d0 l& w F_Data[4]=0XB1; //Frequency Tuning Word 1 <15:8>; ]  m; F; u/ O- p+ ?' j
F_Data[5]=0X1C;        //Frequency Tuning Word 1 <7:0> //
2 L$ ]4 U! l- U}% G6 g6 ~( V9 V0 _- t4 |  w
/***********************************************************************************************/, ~4 m& E+ Y& x+ `7 C& ]
void  AD9854_F()
) z! i# d- ?6 \- _" T1 [: H {   
  o% u4 Y5 Z0 E6 H# U  unsigned char i;           & q/ I! o; Y5 T, n) X& A
  unsigned char tempf;  //   HC_573_C=0 ;选通
4 r9 }3 f: R) s6 S' p4 E  MASTER_RESET=0;3 n3 O5 G9 u; j- a8 K4 F
  RDB_CSB=1;4 B1 x: c- ~5 K- K
  WRB_SCLK=0;7 J5 e* N  A" i( J6 U
  IO_UP=0;
) O& z% b( _- [  r  tempf="4";
# ?: H+ a. Z3 i" A5 y  F  for(i=0;i<6;i++)
; E3 s! Z$ ?4 `% w) F9 W6 | {     4 n( j( B+ b4 N5 n2 O5 N2 P; U
  HC_573_C=1;          //选通地址
4 ~' P* f  p4 }# \  P0=tempf;
. N- N* D  F! K# k! D  HC_573_C=0;          //关闭HC573# |  \; B4 L6 N# m: p
  ACC="F"_Data[i];   
$ h& T/ j% Y% J$ E4 P; W2 r+ W  P0=ACC;     ! p! f6 G5 ]- }; M2 P
  WRB_SCLK=0;$ z& L. E% l6 K) {2 g" R. L# ^  b
  WRB_SCLK=1;: K. F5 m$ M6 Z. k: k2 `+ {: S' u
  tempf++;' c3 M+ F3 L. W
          }     
$ b  b- Z1 J5 u9 u: b
3 e9 V: @4 e+ `; t  WRB_SCLK=1;
; w8 J3 a5 d3 _: C    u4 y% Y! {" w  z' G
  IO_UP=0;
1 k# V* i" W( v( G  x/ b  IO_UP=1;            
8 e  k! |7 ~  ~* L. g! X  }    ! @8 a* n2 U6 u) ~6 {. q
/************************************************************************************************/
8 M" F8 k! a+ s$ a0 W! P0 u  ^void AD9854_IO_INT()
2 u6 E$ h9 w$ O* E: S7 N{
/ K) Z: f# n4 @2 @0 g  unsigned char i;
% m( A% W# j* ?- I8 P  DLY_400MS();5 Q. A' E1 j/ q6 }
  MASTER_RESET=0;. g8 C6 I6 I9 c/ E. l# d! P
  MASTER_RESET=0;
* L% p$ H' h/ q4 e' a3 A  FSK_BPSK_HOLD =1; //多功能管脚6 q/ b: R  n" a+ o0 h/ ~
  SHAPED_LEYING =1;     //Must First Be Selected in the Programming Control Register
7 P/ }9 W4 u3 M1 r! |% \* Y          //to Function. A logic high will cause the I and Q DAC outputs
. o1 |' G7 q. `4 U! O& k   //to ramp-up from zero-scale to full-scale amplitude at a preprogrammed
) G" W. P1 \! K* ]( Z   //rate.Logic low causes the full-scale output to ramp-down
- b' f8 v2 u5 S1 V7 H8 W          //to zero-scale at the preprogrammed rate.
+ Z# ~) U- c  Z$ i) F  RDB_CSB=1;            //Active LOW. This pin is shared with RDB when
4 M  x6 u# r% S  q  WRB_SCLK=0;           //并行写数据时钟.低电平有效3 p  W3 t/ _: x( f2 i1 F
  IO_UP=0;              //数据写入准备2 D7 X' ?, y/ z$ ]2 b; _5 R
  temp="0";         //表格首数据地址8 X$ \4 m; |7 R* u" v! ^" h% l- {* v- a, l
          //AD9854 寄存器首地址! D  q* \3 V5 i: S6 r
  for(i=0;i<40;i++)0 k6 E- n- r/ w  V# \
{  / M0 k+ p4 Y; T# i0 {& b' u
  HC_573_C=1;% c6 H2 ]- c( D/ U
  P0=temp;  //送地址 / O* S  j& @4 E' Z
  HC_573_C=0;; D* O" @3 @+ G  f* C4 x+ Q/ c
                //取对应地址的数据
5 z# V) _7 s7 _6 l  ACC="TAB"_Data[i];
1 o% j" z: y/ X; R& v  P0=ACC;
* [/ m) C% M7 Z! {5 H  WRB_SCLK=0;
# u# {  P7 T( H" V# v  WRB_SCLK=1;) A, u! r, ~& V( b* K" l
  temp++;
1 j* h1 p. s' N+ Q* S/ `  }' k& Y8 J  I$ v
  WRB_SCLK=1;         //关闭数据接收, I) \" _' e4 B+ W: @
  IO_UP=0;! E8 v8 b% r$ x: Y
  IO_UP=1;9 n# b6 g: E+ {# U% |
   }
2 b" P2 e5 O! ]3 J8 ^/**********************************************************************/
6 S  M1 X4 S  [: W: E7 Zvoid V_Int()
" J8 k1 P9 G" j2 O+ c {          ! N& D! U& d0 _9 c
  unsigned char tempf;  //   HC_573_C=0 ;选通
. K" }& G+ {0 V# m. {  MASTER_RESET=0;/ V2 {3 z, G/ z3 p. Y* X, L, @
  RDB_CSB=1;
; r' k+ r. C" b% @5 {& j, g  WRB_SCLK=0;: X5 ]1 w: I0 q. b
  tempf="0X1F";    * O  w/ }" y: z. {6 y+ k0 T
  HC_573_C=1;          //选通地址
* U! A( w) |5 D2 Q- O3 j6 H( I  P0=tempf;" Y+ S% D( @% K5 v/ a+ i
  HC_573_C=0;          //关闭HC573
1 O0 f7 U2 V% u  ACC="0X00";   
) Q% g- l! y2 {$ h* Z. u- G2 O  P0=ACC;     / o7 s/ R7 R4 `3 ~
  WRB_SCLK=0;9 {' f9 ^- P1 \  t5 c0 r5 |
  WRB_SCLK=1;
1 ~4 D- e' n. K2 m( T- N$ U# T  DLY_400MS();
0 |/ T7 q8 |8 H( l  WRB_SCLK=1;
8 {) o  V8 s* W5 G  DLY_400MS();             / Z8 b, i6 O/ @4 W. [
  }    - _$ Z: i6 U9 E9 x& l

$ }3 @  P  B1 l* d/**************************************************************************/5 y/ [4 M: ~3 H) }, U/ [
void DLY_400MS(): j- f, R/ J) M
{ 9 m$ N2 k) d+ `$ H( S9 q; ~6 v
unsigned char i,j;! _- j8 A5 ~$ [6 M( @0 i
for(i=0;i<90;i++)# A2 F4 E/ L7 l0 C
{( T+ v9 j. e& v, H
for(j=0;j<60;j++);" H- S7 N% I; t+ p/ h" |
}
. H9 i7 c# C# a8 n4 c/ U }
分享到:  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-3-11 17:12 , Processed in 0.365663 second(s), 32 queries , Gzip On.

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

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

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