找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1155|回复: 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,如果用串口的话
0 h+ G5 z& X% V: n) N                     //提示:在调试程序的时候晶振用12MHZ
& ]% Q, t+ }# ?- A- [#define HC_573_C      P2_71 [% P0 ?* Y' Y9 Z6 e3 b
#define MASTER_RESET  P2_1
% F- ?7 L9 d3 Z/ y#define IO_UP         P2_6
; N5 m% {% R- l#define WRB_SCLK      P2_5
2 `  H% Y9 u+ h* u. }+ p. a#define RDB_CSB       P2_44 q& O( d% [, V, T& ?6 [# U& ^+ z
#define FSK_BPSK_HOLD P2_3
- _" p8 t* B! ~8 v+ O$ S6 r. R1 Z#define SHAPED_LEYING P2_2. M6 p0 |& @" g5 G& a
void  AD9854_F();
% m' H; {# }4 ?6 R0 @void  AD9854_IO_INT();
( Q& `2 L/ |% |4 n6 Rvoid  DLY_400MS();' q1 s1 k+ u, e3 ]( V) S+ ]3 x5 I
void  TAB_DataWord();
7 L4 @$ _% ]3 x$ R( r, F6 ovoid  F_DataWord();
: A: U' \' p9 t7 Svoid  V_Int();
$ [) [2 l7 a# p2 u& B8 E4 tunsigned char temp;, V, }9 s" y! R
//unsigned char UPFLAG;
2 m* \8 S4 E9 J( s# m7 aunsigned char TAB_Data[40];( g6 b/ T7 t9 J- X0 `0 q& O4 E
unsigned char F_Data[6];' x6 ~  |5 Y# {# F+ I/ w
void main()) Q9 S! y' p8 L  j" Y
{ 5 H! I  y' `5 C/ i
V_Int();9 y  C' P* u7 o3 H' n7 x" ^
while(1){: o3 g" ?8 ?  F- `# K) J
TAB_DataWord();
4 I( a/ M" x' v3 w8 @) _. F( s F_DataWord();  ]. r0 l3 e: F; l8 u3 M
  while(1)" Q) Z) S6 J0 T3 o
    {8 L2 S; w2 v5 n# X/ h
    if(!P1_0)
% g( R) Z  M- R    { 1 k, _- t# N! `% n2 b: a6 b$ C4 A
    AD9854_F();
! U" T3 V1 ~" Q4 t% S    }  ( l7 X- I# A( v+ p9 E: m! Z
    if(!P1_1)
( m( H5 a! c7 B$ L    {
' p) B# l" w% V9 I  m    AD9854_IO_INT();
. D7 o8 R% p; U' ~+ }$ ~$ Z    }, l/ h: }0 a4 z% c. |, K* |( \1 D1 c
if(!P1_2)
1 n0 C+ s% T9 G3 c { 6 n2 D* D% k+ o1 n2 N2 i, [
    MASTER_RESET=1;/ D2 p8 X  B9 e0 \4 d& }
        }$ q. ?: r, r+ x2 w  w
   SHAPED_LEYING=1;" h. w  x0 b% c- C9 r# l6 H
   MASTER_RESET=0;
2 ]6 p' s7 M2 k   HC_573_C=0;
0 q& @1 r8 |) o1 U% W3 ]2 j1 M2 m3 z    }; n! z! W# ~5 _3 f. |& Z
                      }) |- u7 U2 R& ]6 h7 A, Q7 O2 U7 J' ~
   }
: @" n) v/ B, r) F/***********************************************************************************************/
0 S5 F2 [3 A( B( I5 A8 Xvoid TAB_DataWord()1 ~3 ?, Z: n: M/ b1 Z2 b
{4 I( A0 W3 g0 a3 Z3 L: I* r3 S1 {
TAB_Data[0]=0X00;) n9 }/ q# Y5 u2 V% C
TAB_Data[1]=0X00;       //00H Phase Adjust Register #1 <13:8> (Bits 15, 14 don’t care) Phase #1 相位为02 }: o" q. |' V: [, C1 m
    //01H Phase Adjust Register #1 <7:0> 01H
* R, Y* d. |) a! U TAB_Data[2]=0X00;  //02H Phase Adjust Register #2 <13:8> (Bits 15, 14 don’t care) Phase #2 相位为0
* m) w$ {  Z1 a3 ^* M3 n- e TAB_Data[3]=0X00;       //03H Phase Adjust Register #1 <7:0> 03H
" t: K1 H# n) `( U' f& E% s     & o& G& y$ r* H) N
TAB_Data[4]=0X00;  //Frequency Tuning Word 1 <47:40>//0000431BDE83        
# M* a7 ^8 p7 C; _/ J- I$ { TAB_Data[5]=0X10;  //Frequency Tuning Word 1 <39:32>
4 D1 G4 L% O( }# ~; K; P* M TAB_Data[6]=0X43;  //Frequency Tuning Word 1 <31:24>2 k# ?& A( {& k
TAB_Data[7]=0X1B;  //Frequency Tuning Word 1 <23:16>
- B1 k7 D/ U' Q7 y+ p6 f" k TAB_Data[8]=0XDE;  //Frequency Tuning Word 1 <15:8>
5 A% C& `4 f: B( ~9 |" d9 U# L TAB_Data[9]=0X83;       //Frequency Tuning Word 1 <7:0>
. W$ m! p6 u* b  ( M) k' Z, C8 \" P8 ^% \( [* L( F
TAB_Data[10]=0X00;  //Frequency Tuning Word 2 <47:40! }8 V5 a4 H, Y4 g: q; ^$ P
TAB_Data[11]=0X00;  //Frequency Tuning Word 2 <39:32>
, M3 R6 ^$ D& @0 a2 x TAB_Data[12]=0X43;  //Frequency Tuning Word 2 <31:24>
+ k% u7 q; M8 N- W& B/ T* b# S TAB_Data[13]=0X1B;  //Frequency Tuning Word 2 <23:16>
% h  V3 ?- d: J" Z6 m' \ TAB_Data[14]=0XDE;  //Frequency Tuning Word 2 <15:8>
, M1 G4 f& ]3 B& g4 c. }2 O TAB_Data[15]=0X83;  //Frequency Tuning Word 2 <7:0> //500KHZ
0 \' N/ s/ {, U2 x! G* b+ j TAB_Data[16]=0X01;  //Delta Frequency Word <47:40>
+ P6 P6 O3 ~) D+ J/ \7 f% t TAB_Data[17]=0X47;  //Delta Frequency Word <39:32>
& L. J$ n4 F2 x TAB_Data[18]=0XAE;  //Delta Frequency Word <31:24>
3 t8 u0 J. t5 M+ ~ TAB_Data[19]=0X14;  //Delta Frequency Word <23:16>. K! b8 A! J/ o7 z% B3 u2 @
TAB_Data[20]=0X7A;  //Delta Frequency Word <15:8>
  S1 H( W! r2 g  ] TAB_Data[21]=0XE1;  //Delta Frequency Word <7:0> 三角波  //频率为0
4 X6 y/ J) L% L2 uTAB_Data[22]=0X00;  //Update Clock <31:24>
- J4 X; g$ L- f, UTAB_Data[23]=0X00;  //Update Clock <23:16>
0 b. ~! ?8 f/ y- r8 w9 cTAB_Data[24]=0X00;  //Update Clock <15:8>% }1 A! r( l6 |
TAB_Data[25]=0XF0;  //Update Clock <7:0>         //系统出现寄存器更新信号reg. Int Update Clk.=0;外部更新
" ~% v. z' u- v* [* k( R" rTAB_Data[26]=0X00;  //Ramp Rate Clock <19:16> (Bits 23, 22, 21, 20 don’t care)4 N8 z1 ?6 a0 @
TAB_Data[27]=0X00;  //Ramp Rate Clock <15:8>. o: y! O" l: _; Z; G
TAB_Data[28]=0X00;  //Ramp Rate Clock <7:0>) y5 Y, d' [! f
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).& G& R  O0 E4 u. I9 u$ r
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).
' x0 I! M. j0 |  g7 d2 g- t: qTAB_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). 注意
- t8 Z+ F9 x- _) S0 o& ]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 n( P* {1 C8 M) ?TAB_Data[33]=0X00;  //Output Shape Key I Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
1 o7 I" \6 `4 i4 {! ]4 H. DTAB_Data[34]=0X0F;  //Output Shape Key I Mult <7:0>
4 s% [1 p* ^/ O6 _& }  a% A; Y                       , M9 b+ p) v) R- t
TAB_Data[35]=0X00;       //Output Shape Key Q Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
7 }- N0 {% c, J; [0 _% oTAB_Data[36]=0X0F;       //Output Shape Key Q Mult <7:0>
" M/ F8 [. P& ~; HTAB_Data[37]=0X0F;       //Output Shape Key Ramp Rate <7:0>" f! H! B) \; Q; g! J/ B6 O% a1 i
+ o. `; y4 I$ L: [4 r. i2 a
TAB_Data[38]=0X00;       //QDAC <11:8> (Bits 15, 14, 13, 12 don’t care)
9 \2 ?/ L$ S9 iTAB_Data[39]=0X0F;       //QDAC <7:0> (Data is required to be in twos complement format): Q+ _  o$ O% f: C% h  i
}" J) f" X2 R* v) h) l0 b5 F$ i
/**********************************************************************************************/# j% J& S1 ^9 N0 B% d
void F_DataWord()) X5 J! w, }8 k( b
{
! W0 F/ G% u3 _$ D  l4 A+ [& f3 v) h F_Data[0]=0X00; //Frequency Tuning Word 1 <47:40>//00029F16B11C//0000A7C5AC47
' {  K! o8 @: c. T/ v5 l0 Y6 ]$ u( W F_Data[1]=0X02; //Frequency Tuning Word 1 <39:32>
1 l8 U4 h2 ]) `1 v) k3 r2 v; ^$ N F_Data[2]=0X9F; //Frequency Tuning Word 1 <31:24>% _! }) x6 b; J6 k
F_Data[3]=0X16; //Frequency Tuning Word 1 <23:16>
0 \. l8 s# o7 `* Z  @ F_Data[4]=0XB1; //Frequency Tuning Word 1 <15:8>
+ B$ C9 k- ~! ?/ B% i F_Data[5]=0X1C;        //Frequency Tuning Word 1 <7:0> //* A! v" f" F6 ]
}
; p3 N0 G0 X1 L2 L* @* {/***********************************************************************************************/% A6 W4 ?* K& N! j
void  AD9854_F()
  f3 B' e6 A& l4 p {   
% Y+ a& n3 D; X  unsigned char i;           . b6 M/ L! a% ~0 M
  unsigned char tempf;  //   HC_573_C=0 ;选通7 v7 ~5 u% |8 q& n3 P4 @
  MASTER_RESET=0;
. b8 J% n6 T, @- [# m+ u  RDB_CSB=1;. U" U% c: A7 d* w
  WRB_SCLK=0;
& b  |3 h+ M' f3 h# P% x7 z" _' Y  IO_UP=0;0 n4 j0 x* {" o6 W/ Z7 F1 {5 n# U
  tempf="4";7 m6 j! ~$ E' W% u! z# R) H0 Y
  for(i=0;i<6;i++)
# Y9 s' @( K9 S6 Y' q: I  i {     
& @) p3 j. n' ?; A  u  HC_573_C=1;          //选通地址
5 \7 n+ g3 ~5 M; y- A  P0=tempf;( N7 J6 W* G) `0 U5 G% V
  HC_573_C=0;          //关闭HC5739 H3 s+ \' U! B- @* e8 G
  ACC="F"_Data[i];    $ M: d) W- Q1 |8 `4 P# }
  P0=ACC;     
: @; D( z# S6 y+ a- p$ G  WRB_SCLK=0;1 S# P' Y7 k- B0 `
  WRB_SCLK=1;
: X, G- o8 N; \+ H! r/ A+ x' J3 X% W  tempf++;
2 x, N( e, K' \, I( M          }     
$ o$ F% K" Y7 Z2 y3 u  @ ) d0 ]- q# Z, s; ^2 I
  WRB_SCLK=1;
. y' O! ^2 |6 G5 G  ! ~& O" Y& ]2 j  i# [
  IO_UP=0;
- k! s3 W% Q5 {  Y. J  IO_UP=1;            
( F: D. X! p0 p  }   
& j1 p, D* P0 I+ `3 x0 R/************************************************************************************************/
& ~  E, P, u$ ^7 Q" U9 h2 Avoid AD9854_IO_INT()! ^  r4 h) A7 G/ G/ D
{ * \9 i2 q0 t' `7 o* X- X2 g
  unsigned char i;
, l, F1 y. h6 [) x$ k; e  DLY_400MS();( P& ?9 Y* o  c% O' \3 F: J! o
  MASTER_RESET=0;5 O7 N; q) l$ n& B! D" c6 E. X
  MASTER_RESET=0;8 _+ D' g: u! g% O) ?# p
  FSK_BPSK_HOLD =1; //多功能管脚6 W6 ^$ S3 R' P9 u$ ?' V1 Y7 h+ V' Q. ]# w
  SHAPED_LEYING =1;     //Must First Be Selected in the Programming Control Register5 e9 r, w4 o; T8 ?0 J+ g5 m9 V, Y
          //to Function. A logic high will cause the I and Q DAC outputs . q* U' }/ p4 n7 U4 l) z
   //to ramp-up from zero-scale to full-scale amplitude at a preprogrammed. g+ H' F" g8 a! e: p7 l* w
   //rate.Logic low causes the full-scale output to ramp-down 6 _" @, _3 V3 f; P
          //to zero-scale at the preprogrammed rate.
- R; \. i- h' ?  b  N  RDB_CSB=1;            //Active LOW. This pin is shared with RDB when( X% D, W- f1 s
  WRB_SCLK=0;           //并行写数据时钟.低电平有效
; B) L3 L4 x4 W, R: G: t$ K  IO_UP=0;              //数据写入准备( V% A% |5 x1 A8 f! I  I' M/ G
  temp="0";         //表格首数据地址
. q, b  o" p; T2 H( U" b          //AD9854 寄存器首地址6 x% {' C* o4 H0 y8 e
  for(i=0;i<40;i++)  k8 F  a" d( f2 ~
{  9 m' Z8 h( v) u/ e
  HC_573_C=1;, E! N9 S7 q: k
  P0=temp;  //送地址 - s' i2 p2 P3 @% U/ I' `; C
  HC_573_C=0;
, D% ?* [2 K* D* n) @1 O- i                //取对应地址的数据
. [0 C7 C( ~+ s2 ^3 |  ACC="TAB"_Data[i];' x4 P& g3 G6 U6 @/ M5 Q" x
  P0=ACC;  L- @" C# V( r5 r
  WRB_SCLK=0;- R, w$ N5 O% d- H3 q* b
  WRB_SCLK=1;& ~3 j! i7 V- l1 ?: f
  temp++;
% i; L+ q2 ~* c) z, {  }  F  O/ u1 O, Q0 i* r2 y) z
  WRB_SCLK=1;         //关闭数据接收  _3 y3 ?( ?4 C+ f! m5 r4 X+ {
  IO_UP=0;
- c' [! C: X" R4 Q7 D  IO_UP=1;, {/ W3 p; a1 X1 X
   }& z, F8 Y2 F4 t+ K. Y$ q
/**********************************************************************/
7 L& J( e% h$ m' rvoid V_Int()
+ M0 Y. }( }2 C- D" | {          5 Z! O8 a4 q+ f/ n( ]9 B8 h: u- h
  unsigned char tempf;  //   HC_573_C=0 ;选通
& J  A1 O8 v6 z% B  MASTER_RESET=0;) s3 \- U2 p3 H+ |
  RDB_CSB=1;$ Y" I2 [- O- j7 o6 I$ m0 H
  WRB_SCLK=0;+ S: }6 {7 H0 S2 B
  tempf="0X1F";   
% Q2 s: X+ B; z% A6 S  HC_573_C=1;          //选通地址% \% p7 O. F6 a- S9 h: o
  P0=tempf;3 w5 J6 h5 ]6 N, W. w
  HC_573_C=0;          //关闭HC5734 Y$ y1 P& Q9 {8 b
  ACC="0X00";    : d  A: c9 ^( C! ]0 l, j
  P0=ACC;     
, v! I" d8 m) P4 ~8 G5 H  WRB_SCLK=0;2 ?- Y* i6 t5 J1 @% L8 q
  WRB_SCLK=1;
/ f' z$ \- R3 V9 j8 I% w0 X  DLY_400MS();
( U+ `. J0 V( G4 r: I0 @$ y2 K, f  WRB_SCLK=1;
6 h, `0 R* X  A  DLY_400MS();            
% r/ n1 c1 v  ^  }    5 j- R/ u" {# `! @2 h2 s
7 K) S+ D8 U; {: l" Y) ?5 E/ u! [
/**************************************************************************/
) b+ S$ q4 i8 v8 {void DLY_400MS()
9 V6 K; d6 t9 F0 L: Q1 {{   U  L% }7 X* |2 d1 q
unsigned char i,j;* h- [* i+ Q# G2 c- \) `0 Z( B
for(i=0;i<90;i++)
1 c4 |/ N! D; L; C1 | {
- i$ Q/ Q& I6 [  p! s" @" e for(j=0;j<60;j++);# x0 }( m) k9 C2 H& P$ j& \
} 1 _( B& b- O" J& m. M
}
分享到:  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, 2024-10-23 21:33 , Processed in 0.057714 second(s), 33 queries , Gzip On.

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

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

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