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

基于c51的AD9854程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include<AT89X52.H>  //晶振可以用11.0592MHZ,如果用串口的话0 G2 H! J- C" `& e! O# P
                     //提示:在调试程序的时候晶振用12MHZ, X" l8 M: v; U
#define HC_573_C      P2_7
: R# _& u/ ?0 B6 Y; c#define MASTER_RESET  P2_1
# Z: T+ T, Q) U#define IO_UP         P2_65 r5 q& g( i  |& J$ L8 m/ l
#define WRB_SCLK      P2_5
1 L  ?! p) o: ~#define RDB_CSB       P2_4+ X  d$ a! ^% r1 f0 ]4 h! p
#define FSK_BPSK_HOLD P2_36 u" r4 b1 p) _2 z! a% v  W
#define SHAPED_LEYING P2_23 r, W8 h, l* d4 W5 M3 Z7 e
void  AD9854_F();) b! v4 u. ?1 R, B5 ~! z3 G: ^$ e9 b
void  AD9854_IO_INT();, Q3 L. S! \6 C+ M9 K+ T
void  DLY_400MS();. a6 b2 y! j) v" j2 E$ J
void  TAB_DataWord();
' p- D9 ^/ k% g5 i, f% [) w: ]6 gvoid  F_DataWord();
$ s1 A0 N6 j& j3 nvoid  V_Int();
$ U+ L# c5 T$ Y8 X& Punsigned char temp;
! ]# X1 D5 Y" W2 I' J9 }//unsigned char UPFLAG;, Z" }7 b; {7 {2 R
unsigned char TAB_Data[40];- b( T% H( L1 q9 P' q
unsigned char F_Data[6];
/ V- X' H0 ~9 c3 z8 z. kvoid main()
/ e+ @  H0 {# `" I) P+ F {
# q1 P" g  n* c& q5 n" e% I: e V_Int();3 \  L3 {/ P" E
while(1){
( e0 \$ d$ B6 V* U TAB_DataWord();
  {& f' g3 @1 _) b1 |& P8 P' N& \: f F_DataWord();
/ f. V1 K5 l/ P1 F  O, s( N  while(1)# A# L# s7 o  M  W! t
    {% P" S9 V. Z& D, r
    if(!P1_0)* x+ B8 \5 X6 |5 q6 e- ?
    {
3 Q9 X# I, a  x5 k2 s9 r% ]) M    AD9854_F();
- I9 x$ f( y( k! X! ~( |! |    }  & F1 t& q1 ^+ H- m/ h" k
    if(!P1_1)
4 R# G0 d# t$ H7 Z  D* K    { ) |  p8 H) k6 t/ D) j. A+ X
    AD9854_IO_INT();- V" E( Z( S9 N! I
    }; B. M4 h( Q% O/ u# C' k/ o  @
if(!P1_2)- S+ A: `& a  j9 t& v- z$ z' v1 F
{
0 j- X6 O. T$ {9 x6 U    MASTER_RESET=1;
; w1 r4 S, q; \7 {0 y& R  Y% T        }
  g+ B8 z, [- w3 `6 w   SHAPED_LEYING=1;9 C0 I  J, ^2 M# h% }
   MASTER_RESET=0;: K5 H! D7 J$ s7 g$ V8 a$ Z
   HC_573_C=0;
# h$ l' @% |) r/ b; n    }
$ H  |9 @( z5 P                      }
1 n% r8 A6 @1 s   }! H4 t' c' r, O( _9 q" M
/***********************************************************************************************/
# J) r1 e" O, L# Cvoid TAB_DataWord()  j, s" y# f' I/ }
{
, n$ Q# H# Q, k* H TAB_Data[0]=0X00;) e+ k% c/ R! K6 f4 R' [% k
TAB_Data[1]=0X00;       //00H Phase Adjust Register #1 <13:8> (Bits 15, 14 don’t care) Phase #1 相位为01 _5 u6 A$ m7 E5 C  Q  G. U
    //01H Phase Adjust Register #1 <7:0> 01H/ F+ q; R# u( c* _' a
TAB_Data[2]=0X00;  //02H Phase Adjust Register #2 <13:8> (Bits 15, 14 don’t care) Phase #2 相位为0$ h# U. u) ^; ?9 y' \& e4 S6 V  O
TAB_Data[3]=0X00;       //03H Phase Adjust Register #1 <7:0> 03H* H' I: h: {  z% o2 f  A
     
1 X2 @5 M5 p6 K3 s6 F8 `' I# @) J TAB_Data[4]=0X00;  //Frequency Tuning Word 1 <47:40>//0000431BDE83        5 e% M5 X' H( K$ D! Z' D! X
TAB_Data[5]=0X10;  //Frequency Tuning Word 1 <39:32>
3 e4 l$ y. Q9 v+ y, }: m. _ TAB_Data[6]=0X43;  //Frequency Tuning Word 1 <31:24>
* i$ V& ?" n1 D3 @1 \& W TAB_Data[7]=0X1B;  //Frequency Tuning Word 1 <23:16>
$ J6 X. Q" s$ O: K3 Z TAB_Data[8]=0XDE;  //Frequency Tuning Word 1 <15:8>
# X: {- Q0 x0 _8 [+ Z- G' V) d TAB_Data[9]=0X83;       //Frequency Tuning Word 1 <7:0>% F" u5 r! ]! e" e4 }2 f
  
+ G1 i7 H1 @( u. ^ TAB_Data[10]=0X00;  //Frequency Tuning Word 2 <47:40
* `( j/ k# D; C) {! @) ^% D1 H TAB_Data[11]=0X00;  //Frequency Tuning Word 2 <39:32>
3 Z7 p# @6 q+ M3 M+ d7 \3 c9 K TAB_Data[12]=0X43;  //Frequency Tuning Word 2 <31:24>
% I: w$ j3 A/ @, O# F+ e, c TAB_Data[13]=0X1B;  //Frequency Tuning Word 2 <23:16>
6 y! s3 r: ~" G, E! d* v TAB_Data[14]=0XDE;  //Frequency Tuning Word 2 <15:8>
: J) D; _  u" e  i* T6 i TAB_Data[15]=0X83;  //Frequency Tuning Word 2 <7:0> //500KHZ
, J5 N0 _+ q$ ^: l+ w+ k TAB_Data[16]=0X01;  //Delta Frequency Word <47:40>+ {8 d; i$ i, }8 Y
TAB_Data[17]=0X47;  //Delta Frequency Word <39:32>1 e* S  y7 q2 B" N$ i# W
TAB_Data[18]=0XAE;  //Delta Frequency Word <31:24>
; v% d9 N5 `1 u1 W( a  V- @ TAB_Data[19]=0X14;  //Delta Frequency Word <23:16>
6 B8 V. s9 l% w8 M" Q. r, f TAB_Data[20]=0X7A;  //Delta Frequency Word <15:8>
& ?( t0 W. [# U, F4 |( b3 ` TAB_Data[21]=0XE1;  //Delta Frequency Word <7:0> 三角波  //频率为09 a1 r% @+ ?: K( z
TAB_Data[22]=0X00;  //Update Clock <31:24>
8 B3 V: q2 B; l$ C! C( cTAB_Data[23]=0X00;  //Update Clock <23:16>. R! _$ N  m# \7 G  ^$ m  f
TAB_Data[24]=0X00;  //Update Clock <15:8>6 t$ Z8 f# t' d% v* A* i
TAB_Data[25]=0XF0;  //Update Clock <7:0>         //系统出现寄存器更新信号reg. Int Update Clk.=0;外部更新" t3 Z8 D6 O# p% m! T  n
TAB_Data[26]=0X00;  //Ramp Rate Clock <19:16> (Bits 23, 22, 21, 20 don’t care)4 A/ T5 a7 W! t$ h0 y, u
TAB_Data[27]=0X00;  //Ramp Rate Clock <15:8>
$ `; A8 C3 [. OTAB_Data[28]=0X00;  //Ramp Rate Clock <7:0>
2 d$ |( o- f7 S5 f7 Y! a- V) xTAB_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).
. Q! Z3 M+ c# r) B& Q8 I/ z* u9 YTAB_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).2 t" p) U7 x: j1 F
TAB_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). 注意
3 A( u, T1 u' JTAB_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).
/ ~8 j: f' z* A" |TAB_Data[33]=0X00;  //Output Shape Key I Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
/ j2 r: l4 k6 a* w( F! |  c- oTAB_Data[34]=0X0F;  //Output Shape Key I Mult <7:0>
" f" i# C7 F- s, Y# u" n5 b                       * [" i8 _' L- X6 r. m, b
TAB_Data[35]=0X00;       //Output Shape Key Q Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
2 b/ `  h' G/ R3 gTAB_Data[36]=0X0F;       //Output Shape Key Q Mult <7:0>* d1 z% l- }9 T) C; q. N5 C
TAB_Data[37]=0X0F;       //Output Shape Key Ramp Rate <7:0>
0 c0 A4 K8 K& Z
9 b3 o) r$ `& OTAB_Data[38]=0X00;       //QDAC <11:8> (Bits 15, 14, 13, 12 don’t care)
8 o: N6 {; u1 a9 G7 v4 W2 b1 w* A; fTAB_Data[39]=0X0F;       //QDAC <7:0> (Data is required to be in twos complement format)9 C: }# X5 c4 Q5 i. E
}4 n) ~8 R& T! z" ?, X" U  Z
/**********************************************************************************************/9 r! J' v2 ~& A; u7 d
void F_DataWord()9 l/ o$ a# J3 q0 f; E
{
& d  c& b9 `  A; l  O6 ^# y F_Data[0]=0X00; //Frequency Tuning Word 1 <47:40>//00029F16B11C//0000A7C5AC47' H. ]( l/ F: H* N8 o. Q  T0 l
F_Data[1]=0X02; //Frequency Tuning Word 1 <39:32>
: h6 r) o, T8 q" S- a F_Data[2]=0X9F; //Frequency Tuning Word 1 <31:24>
3 C% l* O( `" _" T F_Data[3]=0X16; //Frequency Tuning Word 1 <23:16> 5 `6 Y! V/ l- u; o  ]& [( h
F_Data[4]=0XB1; //Frequency Tuning Word 1 <15:8>  u9 a7 u+ J0 x9 k/ x6 e
F_Data[5]=0X1C;        //Frequency Tuning Word 1 <7:0> //
: U+ z" U( O) F( }7 Z! z6 A5 z5 k7 j2 ?}
# Z; \1 c. o: h$ o0 }' H3 q/***********************************************************************************************/
% d! f) T1 I1 d! l; g& `! V- ?6 Mvoid  AD9854_F() ' K7 T0 D1 ?5 ~8 r" ~* w
{   
' t/ z: F! X' J; E  unsigned char i;           
! v7 N8 ?5 \3 N, ^0 X6 m  unsigned char tempf;  //   HC_573_C=0 ;选通7 u# F# q, o+ g; y
  MASTER_RESET=0;
; M8 ~9 j: x: S  RDB_CSB=1;5 M1 G  ]( F8 d: H8 t$ m
  WRB_SCLK=0;, L9 t4 a, y" U  K+ g% w
  IO_UP=0;( M% n! V/ G* L
  tempf="4";- Z5 ?3 a8 o% b
  for(i=0;i<6;i++)- a) T- m$ k/ i5 U/ t; ~5 p
{     ; q# O/ X# M: {' ?' I: G
  HC_573_C=1;          //选通地址
; ^8 J! |2 S) r& p# ^$ r& i  P0=tempf;# ^0 S' E( P9 `# k! a
  HC_573_C=0;          //关闭HC573( O) Y  j! g+ Y0 A
  ACC="F"_Data[i];    # [/ g' l2 b% |! |8 }
  P0=ACC;     . e& T4 `: t* e4 P4 |
  WRB_SCLK=0;
# Y6 i3 D# E& _$ l9 D  WRB_SCLK=1;: U) b! j0 @$ P/ y, b
  tempf++;& b2 A/ s# n5 ]
          }     
0 E4 u& ~# ]2 f6 g7 r: Y$ d$ u
3 S1 ~4 A, Q& ~: z) f3 o6 {0 `  WRB_SCLK=1;
" s! w& W+ z' O( I) g7 D5 d/ r  
" L: h9 Y5 [8 e# _7 p: l  IO_UP=0;
0 U5 S. O* E  p) u1 P4 H3 o( q  IO_UP=1;             2 V  ~$ P- \" ?- B
  }    ; A8 ]* m9 R. x% C* s* m6 ]
/************************************************************************************************/
. z+ x9 p  N* h! \6 Z" Wvoid AD9854_IO_INT()
: w  I, _+ w5 g* U) n" N{
. U3 x  i7 e9 ]8 U. F  unsigned char i;. t5 h' @6 U" n
  DLY_400MS();
/ q& C9 ?  ]1 W. G  t  MASTER_RESET=0;# K  t6 j& j2 V- y2 I0 K
  MASTER_RESET=0;
( w4 k6 _- Q" m  FSK_BPSK_HOLD =1; //多功能管脚; h- {6 g' Z. b  ?$ ~/ k
  SHAPED_LEYING =1;     //Must First Be Selected in the Programming Control Register3 x5 P. ]  ~9 a0 g
          //to Function. A logic high will cause the I and Q DAC outputs + D7 X/ ~8 \% e1 ?; M
   //to ramp-up from zero-scale to full-scale amplitude at a preprogrammed9 e* u- e2 C! U
   //rate.Logic low causes the full-scale output to ramp-down " ?3 L- }0 |5 t, b( Q
          //to zero-scale at the preprogrammed rate.# D  N1 q; u+ z6 E3 g! E* e
  RDB_CSB=1;            //Active LOW. This pin is shared with RDB when) L6 [4 a" F+ l8 I: e- g/ S
  WRB_SCLK=0;           //并行写数据时钟.低电平有效5 ]  |: b6 a2 U2 E
  IO_UP=0;              //数据写入准备, T7 e# N8 P- A9 S) q( y* F4 g
  temp="0";         //表格首数据地址
# ]& Z7 H1 X6 l! j# z          //AD9854 寄存器首地址) M+ V. M* D5 R- R; M3 E" {6 V& V0 m
  for(i=0;i<40;i++)
- n# ?: s6 v" T+ |/ [1 H) w- B. o. f {  
7 D9 ^0 G0 n; T' b, V) \- I  HC_573_C=1;
) S- m) m+ J0 l' Y; W  P0=temp;  //送地址 & ~4 c, l/ F' z6 J. M% j4 Q
  HC_573_C=0;4 ]: ]0 a4 G3 r# ~  L* P1 T, S
                //取对应地址的数据4 S+ A1 J5 L/ ^' L  r
  ACC="TAB"_Data[i];
% {1 f3 l2 f1 u, D! T  P0=ACC;
% @$ v* j: f. |  g  N2 Z  WRB_SCLK=0;& v6 S9 R+ m6 N* q: V. C
  WRB_SCLK=1;- v7 m  |- Q( ?6 Z* n
  temp++;
8 g5 j1 F6 `5 v6 B" E; S8 H$ E  }$ g6 b7 Z3 e/ U$ B4 O: w
  WRB_SCLK=1;         //关闭数据接收" F6 N+ d, j. a+ t9 ^
  IO_UP=0;5 \& t/ b" \- m  X5 R
  IO_UP=1;# [+ g& n) h' `2 q
   }
0 ?' b; n  n0 x, e/**********************************************************************/- O. S" z, i5 i9 v
void V_Int()
" u8 s# u1 ~: y+ Q. G' N {         
, f: {" Q. d# B! {8 n  unsigned char tempf;  //   HC_573_C=0 ;选通. y) o8 L, j- @5 @, U
  MASTER_RESET=0;
% [# M  T* k* \2 V% w" J  RDB_CSB=1;
+ ^$ v/ }" n# w; q% r- D; {! Z3 x  WRB_SCLK=0;
& l. P5 h$ l* a  tempf="0X1F";    " D8 q2 o/ x. I6 a7 J3 l6 `
  HC_573_C=1;          //选通地址
; ?9 T, B- O7 S1 d; ]; k  P0=tempf;
8 M) N  M- G* N  HC_573_C=0;          //关闭HC573
3 ^5 ?0 `. b! p- s: u4 A  ACC="0X00";    0 E" ~$ R! C( I5 x
  P0=ACC;     
6 H: k4 e& i1 F2 k$ k  WRB_SCLK=0;
% q/ P3 v3 k' V. a  WRB_SCLK=1;7 I0 ]- I& y4 y
  DLY_400MS();
6 u) B0 r' ?- k/ A$ h4 V6 @7 a  WRB_SCLK=1;
+ I# n7 |: n# U$ {! U  DLY_400MS();             3 y8 }/ M/ U2 T
  }   
$ R- f+ {. \4 f, c, A0 r/ s & [" Z5 w: P) H
/**************************************************************************/
. U% k$ m4 b1 N' \void DLY_400MS()
% ]$ d% c: b3 b1 I* n2 X{
2 a4 x, v8 f, ]4 L9 r0 H. z+ x' k unsigned char i,j;
1 \; y$ T4 L& g4 @+ Y" R for(i=0;i<90;i++)
! I7 A# m$ v; h( U$ x2 p2 ] {* e: z9 H, G9 l- E* A2 K1 }  ?3 i( V
for(j=0;j<60;j++);
; z, l) Y! X7 B# x/ C, P }
3 r: J, T" K  s: K& ~% a( A }

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-5 12:33 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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