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

基于c51的AD9854程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include<AT89X52.H>  //晶振可以用11.0592MHZ,如果用串口的话/ y. A1 @- c% D+ r7 o
                     //提示:在调试程序的时候晶振用12MHZ) e. z" Z: C+ t
#define HC_573_C      P2_74 [; P; V4 J5 r9 M$ d! M2 k! o
#define MASTER_RESET  P2_1
9 G" h. |2 w8 |9 l1 S' R% {7 P#define IO_UP         P2_6
3 y0 G" T6 n+ ]! C$ b7 z1 n#define WRB_SCLK      P2_5
! C* `5 B. }: D# A#define RDB_CSB       P2_4  L6 h) F+ l$ n3 j/ ?
#define FSK_BPSK_HOLD P2_3: E9 ^4 D% r' n) C( K5 ?8 Z
#define SHAPED_LEYING P2_2' a4 s  U& D' T0 Z; Y8 o
void  AD9854_F();* G0 ]8 ~& z, C- _2 }0 V: `
void  AD9854_IO_INT();( J' N1 k$ C& K3 Q, m- C
void  DLY_400MS();
0 s4 L5 ]) w! W4 T0 @! uvoid  TAB_DataWord();: |8 P# [% H0 N8 ]- O
void  F_DataWord();
8 I: d9 C4 X2 _, J' C" H; s1 H! Evoid  V_Int();
7 `( K+ t$ ~' D8 K7 i, j- sunsigned char temp;8 ?6 w4 i+ H  K
//unsigned char UPFLAG;  O! K: a1 b, R. I/ a' a
unsigned char TAB_Data[40];
' n& a, d" I4 r+ D# e; V% Qunsigned char F_Data[6];
1 t4 a& Z9 K, Qvoid main()* r9 B& g  q2 q9 I% h
{   R1 f! Q+ h6 F' O$ p/ d+ ^
V_Int();  {0 _7 K8 ]% c( u
while(1){, n' S5 L$ w) z2 M5 `) _
TAB_DataWord();" P; b, J) K  y3 ]( [# T; V1 s
F_DataWord();
3 a4 P" U9 N& g% M  while(1)
! U% k+ z6 b/ u' h% c: `* {    {2 j" z; b8 ?9 _- I
    if(!P1_0)
+ u$ V' E+ U3 ~4 o$ p6 _+ b    { : |9 W, o/ z8 Y9 _
    AD9854_F();
+ q9 B9 l* N7 R1 i( s$ q    }  
: z# E# d; N# L4 i0 F2 H) O+ |    if(!P1_1)! [* I1 X0 u6 k
    { " f. G  _4 K5 e8 O& M, o
    AD9854_IO_INT();7 t2 [4 s9 R! r  k% j) Y: [
    }
8 m2 J. O/ E, G5 X- I- g if(!P1_2)
+ Z, T7 k7 Y7 e, j- C" } {
, d- {7 I' a1 D+ K8 H    MASTER_RESET=1;+ S* I4 y3 ]5 x% o
        }
( g( I. j; j6 y   SHAPED_LEYING=1;
6 t' [: v' M. L2 p   MASTER_RESET=0;3 _1 N% h& H* M. b
   HC_573_C=0;0 r6 _& t. r" x* R1 @6 v4 L. q
    }
  t/ T7 C# D! Y+ Q                      }. Y  l! s2 W2 e4 \% I7 Y
   }. j  g( f% \& O: K  Q: {) j
/***********************************************************************************************/# O$ E# E& C$ b5 ^! s1 U. Z
void TAB_DataWord()7 T# f' U8 B  K2 D, ^4 C
{
! G/ b$ m7 m5 [  C# m0 M TAB_Data[0]=0X00;2 w! t9 v4 q  t- \
TAB_Data[1]=0X00;       //00H Phase Adjust Register #1 <13:8> (Bits 15, 14 don’t care) Phase #1 相位为0* ^6 N  ?& d) Y' G
    //01H Phase Adjust Register #1 <7:0> 01H& ]  k- \9 D/ t. E8 @6 r
TAB_Data[2]=0X00;  //02H Phase Adjust Register #2 <13:8> (Bits 15, 14 don’t care) Phase #2 相位为0& ?6 `3 X) E5 c
TAB_Data[3]=0X00;       //03H Phase Adjust Register #1 <7:0> 03H
" A& O3 J$ g7 |1 @. G+ W     
9 w3 v+ C8 c! N/ Z* }/ ] TAB_Data[4]=0X00;  //Frequency Tuning Word 1 <47:40>//0000431BDE83        
/ Y6 V: z) x" e: k% @ TAB_Data[5]=0X10;  //Frequency Tuning Word 1 <39:32>
$ L+ v2 ]3 m6 d# @ TAB_Data[6]=0X43;  //Frequency Tuning Word 1 <31:24>, l3 G" e7 C/ L% z1 q
TAB_Data[7]=0X1B;  //Frequency Tuning Word 1 <23:16>
0 T$ e; U0 K! ]' U$ t1 D TAB_Data[8]=0XDE;  //Frequency Tuning Word 1 <15:8>
. p7 A" T5 b0 |- h TAB_Data[9]=0X83;       //Frequency Tuning Word 1 <7:0>  W- B4 D% R/ W" ^
  $ ^1 H# A& D2 L+ z$ L# m
TAB_Data[10]=0X00;  //Frequency Tuning Word 2 <47:40
- N) }) v* d8 ]( ~1 S TAB_Data[11]=0X00;  //Frequency Tuning Word 2 <39:32>
, t/ ], c  A, P/ D- j TAB_Data[12]=0X43;  //Frequency Tuning Word 2 <31:24>
9 ]; G0 |: q2 m, D. y' }% r  o8 _5 u TAB_Data[13]=0X1B;  //Frequency Tuning Word 2 <23:16>* ~8 u7 P1 @' \$ k
TAB_Data[14]=0XDE;  //Frequency Tuning Word 2 <15:8>
$ @6 z( S% r' B; x TAB_Data[15]=0X83;  //Frequency Tuning Word 2 <7:0> //500KHZ
2 Q9 p" `6 N/ T2 ~4 f TAB_Data[16]=0X01;  //Delta Frequency Word <47:40>: V# p; ]/ e9 J% w" Q
TAB_Data[17]=0X47;  //Delta Frequency Word <39:32>
, T: ^2 T0 {; W% k- L TAB_Data[18]=0XAE;  //Delta Frequency Word <31:24>
' |$ ]. [% D" k. @; t9 w TAB_Data[19]=0X14;  //Delta Frequency Word <23:16>
, @3 ]) \" X- E: a" @ TAB_Data[20]=0X7A;  //Delta Frequency Word <15:8>6 l* o" n0 c! B8 }" L
TAB_Data[21]=0XE1;  //Delta Frequency Word <7:0> 三角波  //频率为04 P8 w9 P- ^; H7 Y' u# e
TAB_Data[22]=0X00;  //Update Clock <31:24>
# C) R1 x. G* c( w  K6 CTAB_Data[23]=0X00;  //Update Clock <23:16>+ y* m7 R  m7 q  f- v, c
TAB_Data[24]=0X00;  //Update Clock <15:8>1 _8 d* M8 I% g- V0 Q
TAB_Data[25]=0XF0;  //Update Clock <7:0>         //系统出现寄存器更新信号reg. Int Update Clk.=0;外部更新' G# ^% I& }" I( {4 w( y
TAB_Data[26]=0X00;  //Ramp Rate Clock <19:16> (Bits 23, 22, 21, 20 don’t care)
6 g1 u8 O( Q& |. Z0 ?  K; D6 }# GTAB_Data[27]=0X00;  //Ramp Rate Clock <15:8>) w; s  j9 f; p. A
TAB_Data[28]=0X00;  //Ramp Rate Clock <7:0>
* q' d$ v" M: `* m3 E8 _2 rTAB_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).% M0 d" P! X8 B. B. i! S/ P* u( e# b$ N
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).
# j. U) K# f) K) V9 J6 VTAB_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). 注意% ?7 y9 o. L3 F
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)., h0 L% z0 j: g- b5 [/ u( U) c
TAB_Data[33]=0X00;  //Output Shape Key I Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
$ o! f, X. K8 Z  j. l5 b/ r' tTAB_Data[34]=0X0F;  //Output Shape Key I Mult <7:0>/ `$ [- A1 Y+ k8 X; H9 e3 r# l
                       
+ W# v& ^- L8 {) I( QTAB_Data[35]=0X00;       //Output Shape Key Q Mult <11:8> (Bits 15, 14, 13, 12 don’t care)9 h, ?3 u2 u" i# P
TAB_Data[36]=0X0F;       //Output Shape Key Q Mult <7:0>
- {) k  A: X8 |- kTAB_Data[37]=0X0F;       //Output Shape Key Ramp Rate <7:0>) B) X% @# A! w4 N# g" D' J

9 r0 ^$ c$ _- p' u% w5 `' PTAB_Data[38]=0X00;       //QDAC <11:8> (Bits 15, 14, 13, 12 don’t care)
6 g# n, ]& w) p" q% PTAB_Data[39]=0X0F;       //QDAC <7:0> (Data is required to be in twos complement format)
9 l9 K9 U' l7 g% o, @}8 {: G3 z5 C8 k/ S
/**********************************************************************************************/+ R; h6 y7 `+ y& Q0 a$ ^
void F_DataWord()9 `1 Q- l$ U, g
{
% }! |$ k% h8 t F_Data[0]=0X00; //Frequency Tuning Word 1 <47:40>//00029F16B11C//0000A7C5AC473 l" ~& X! G7 I1 V+ q
F_Data[1]=0X02; //Frequency Tuning Word 1 <39:32>
  j$ V& m. K# G6 U% i" [ F_Data[2]=0X9F; //Frequency Tuning Word 1 <31:24>
4 f; V& J* B' i" Z F_Data[3]=0X16; //Frequency Tuning Word 1 <23:16>
' J9 y1 U4 |5 f( ]% O F_Data[4]=0XB1; //Frequency Tuning Word 1 <15:8>
- ~, g) y- @+ `8 _% n. V/ F5 {# B F_Data[5]=0X1C;        //Frequency Tuning Word 1 <7:0> //6 V/ J" `" p7 g/ T, [8 L
}
; z! H# \- k4 f% m. e7 b- H) H/***********************************************************************************************/
3 t3 Z3 D: s% }4 p6 N7 E2 {& lvoid  AD9854_F() . |2 _4 Y" d: z0 ~: ~! w( |* x
{   6 j3 M+ g1 k7 J  K* o( ~2 G- {6 _$ a1 D
  unsigned char i;           4 [7 C4 ^0 r* ~* @
  unsigned char tempf;  //   HC_573_C=0 ;选通
  ^3 j* t& G1 \6 T5 O8 T( ]0 \# ?  MASTER_RESET=0;
! l  Y4 a/ D, Z6 H  I  RDB_CSB=1;6 \- D. @' _, c  ]2 [. W# ^0 r
  WRB_SCLK=0;. M1 b; [. l& [. d
  IO_UP=0;
1 K- ~+ s/ `& u. [5 X6 B  tempf="4";
8 D& S. r8 ~: O  for(i=0;i<6;i++)) O* L, k4 ?  [7 a0 e6 }/ D
{     ( |' m. S5 T$ c- p1 d: |4 _
  HC_573_C=1;          //选通地址  _! H' }7 W& a. Q( E; b( p
  P0=tempf;& V, e* d" a) F8 Z+ R( W- F
  HC_573_C=0;          //关闭HC573& ~: c! x. a( _) v
  ACC="F"_Data[i];    : B2 P) q) R- c: T( _2 y) V
  P0=ACC;     3 w, j+ a$ L5 q  z& |3 h' Q/ O
  WRB_SCLK=0;% b$ O- r7 o7 E; |% b: b
  WRB_SCLK=1;
+ D- l. i5 z: K" ?% v  tempf++;
6 D0 `# L. x8 r9 J/ r7 A          }     
& Q( W3 l! ~; Q4 I: `) P# E 4 I$ l: F& c% ?* w- R+ P
  WRB_SCLK=1;
4 }5 W- z; }2 X. k# @  , E- C) ~( I! h2 ?" }! j) r
  IO_UP=0;
- v( M* |0 k. ?$ W# i  IO_UP=1;             / [" P' u+ b) G% {5 Q: V
  }   
2 m2 B5 C" C  d2 v/************************************************************************************************// S4 N) X. {: c6 g( n
void AD9854_IO_INT()* M% e' o) y7 q- w+ t
{
7 g  Z' h* R& E2 S1 ?% b4 D  unsigned char i;- I& ~7 B( b' r
  DLY_400MS();* Z) M) T" @* n
  MASTER_RESET=0;
' P4 g2 H- ^5 o9 c- t) b  MASTER_RESET=0;9 U3 ?% g* Z; b' G( [8 Z
  FSK_BPSK_HOLD =1; //多功能管脚
" p' O  u7 A- C0 T8 j* u  SHAPED_LEYING =1;     //Must First Be Selected in the Programming Control Register; E8 c& H2 F2 y, i
          //to Function. A logic high will cause the I and Q DAC outputs
  b0 B  T" A- i+ P" X   //to ramp-up from zero-scale to full-scale amplitude at a preprogrammed
" d+ ^# j* @2 m9 t   //rate.Logic low causes the full-scale output to ramp-down " e5 K, L+ D% u( b6 [
          //to zero-scale at the preprogrammed rate.+ o4 w% r1 Z0 h8 {6 i( p% e
  RDB_CSB=1;            //Active LOW. This pin is shared with RDB when8 p5 y, \6 U5 w; b) o* I
  WRB_SCLK=0;           //并行写数据时钟.低电平有效
- j! B/ b+ P" a* T0 R7 \7 s* U. g. K  IO_UP=0;              //数据写入准备
  m3 @6 L9 k1 O3 U! S! R8 `) m6 P. z  temp="0";         //表格首数据地址
5 ]4 n6 `8 B/ V8 |- r  U8 R  C          //AD9854 寄存器首地址
' x- s+ ^2 O+ [" D( k$ q" O  for(i=0;i<40;i++)
- h. p/ _$ h% v' ]$ s+ m {  9 F* T0 t$ H# Q6 h$ w* Y
  HC_573_C=1;
( e/ `- F" _' e/ Y7 P* X# t0 W  P0=temp;  //送地址 ( l( r+ f% I7 i, Y( l: n0 m
  HC_573_C=0;# M! t" Y/ N1 ~( `+ }1 O2 T
                //取对应地址的数据: ^) ^1 I2 C1 v  P
  ACC="TAB"_Data[i];
, G8 C; V4 b9 J" h  P0=ACC;
+ O% W) J7 O( B9 J! D  WRB_SCLK=0;: Q) g# X. V/ `& T: o6 d2 Z
  WRB_SCLK=1;
$ f1 c! L! f% @9 A  temp++;: v; T7 l0 h- I; B2 Q8 l
  }2 F$ v3 E, |/ \
  WRB_SCLK=1;         //关闭数据接收& z! X' V% s4 v
  IO_UP=0;  }' I& v" C0 o4 ^, w/ E/ y. _
  IO_UP=1;; G+ r3 c7 f7 U& ]; b0 `# Y
   }) z6 o% p% F& Z: o9 ~  d3 Y
/**********************************************************************/- U# L$ y/ E' v+ F( q8 ]. ]3 z2 R5 P
void V_Int()' z) `& E% m- P. `5 j. [/ O
{         
+ j5 D" U1 I9 Q. V  unsigned char tempf;  //   HC_573_C=0 ;选通( i' R7 V1 T2 z, }0 u% S
  MASTER_RESET=0;
- w/ `" ], d  g+ R, Z7 w  RDB_CSB=1;3 H" U. P: V! L% V1 i
  WRB_SCLK=0;
2 D( \: O% W8 ~0 k  tempf="0X1F";   
/ \' _; T, q  y0 a; p  HC_573_C=1;          //选通地址% g/ V9 s9 A* B) Q
  P0=tempf;! L  Y- U  f3 t" I( C1 `- D
  HC_573_C=0;          //关闭HC5739 u& R5 w8 @$ d
  ACC="0X00";    / e9 K' A2 b" m  C" u
  P0=ACC;     
6 e3 C* W& N7 m# ?  WRB_SCLK=0;# Q* `" E& Q6 R5 f5 i/ M, W
  WRB_SCLK=1;
8 @& ]2 c" T+ ~( k" T: I0 |  DLY_400MS();- L1 y4 U+ z  Q$ {4 p# M
  WRB_SCLK=1;
8 [1 T# D0 x2 U8 i  K+ \: E  DLY_400MS();            
! o8 T2 C: `; Q0 m) y  }   
" o9 c2 d% i$ r9 H* a. f' N 0 q6 O) Y5 I2 L4 L
/**************************************************************************/
3 N3 A" q) x; g5 @void DLY_400MS()! j- V+ k+ I8 |2 u  r
{
! Y9 q0 L) m/ g) z0 N; [, ~, W1 `4 R, E unsigned char i,j;. c9 I0 U4 G* i8 G" v. t, v
for(i=0;i<90;i++)
8 l2 b6 `" R9 N$ t {
9 m1 F& \, [* O5 n# S8 k1 I+ S8 M for(j=0;j<60;j++);3 X6 R# g: g& x! P
}
6 U) J! z2 ^" ^/ B* S }

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-28 18:40 , Processed in 0.171875 second(s), 25 queries , Gzip On.

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

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

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