找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1163|回复: 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,如果用串口的话
3 J- Y/ @* ~" G. n3 e                     //提示:在调试程序的时候晶振用12MHZ
/ @5 a$ h5 z5 u: ?& r#define HC_573_C      P2_7- ]% o2 X. v  j
#define MASTER_RESET  P2_1; x, L7 B0 T' E
#define IO_UP         P2_66 z& x- k/ q& a* \
#define WRB_SCLK      P2_59 ~! _: K/ M6 s0 A; i. Q
#define RDB_CSB       P2_4
$ I3 a" C, M1 a#define FSK_BPSK_HOLD P2_3
3 c/ J7 Z7 F, n% ^#define SHAPED_LEYING P2_2
4 |& p' ^, }1 [, z- G; gvoid  AD9854_F();
. x8 ~1 }! k" c! T+ svoid  AD9854_IO_INT();6 ~/ @  h8 u- E, M" o" Q8 }. v
void  DLY_400MS();
, j$ Q9 O$ S  q0 l4 Z, u) ^void  TAB_DataWord();
( I% {4 L! z4 fvoid  F_DataWord();
8 E3 B7 g1 g1 k5 r0 O; ?9 G9 @void  V_Int();
0 c2 ]/ b$ c- z5 o2 [unsigned char temp;# X0 E7 @! B3 v- E7 D2 a% o
//unsigned char UPFLAG;
1 n' ^  v2 X& y. z; v" C/ [unsigned char TAB_Data[40];) Z' G, [" z' F$ X3 {/ b
unsigned char F_Data[6];
0 g( r0 e4 i5 ]  v" Dvoid main(), K+ b/ R5 D# \  t% c" M3 P
{
9 C* u0 k9 b6 Y9 d3 r0 o- U V_Int();
. a0 F2 f/ g# B& h. u1 N while(1){' G* L0 e3 C, p+ Y' j
TAB_DataWord();/ y6 d4 i2 X, T1 S! |% L
F_DataWord();
0 N! o, d- m) }, ~( z. l5 z  while(1)
- E* v; ^9 f5 }- \, o% `* o* ?9 R    {
2 Y$ d! q* N1 T    if(!P1_0)
- S% H6 U6 k& Y( [  H    {
) ?$ L2 X, ~  x! d    AD9854_F();
7 J) w# }) E3 A* W    }  
8 O: M% b! c4 B8 U" w' }9 l; {    if(!P1_1)
/ H; R3 _8 N6 {' U" Z5 T    {
  E: T/ Z% x3 M9 N. U    AD9854_IO_INT();
& a1 G- B8 k0 l' h    }
* _/ V, Y$ L, ?- w if(!P1_2)
) n5 w9 M: g0 x2 t, ] {
. M1 _8 M8 a/ m9 S# Z    MASTER_RESET=1;% P; X; y) c' n5 t  V, n
        }
  n6 n0 u6 L) S   SHAPED_LEYING=1;* u- H$ t/ |+ m( G0 i
   MASTER_RESET=0;
+ K4 W+ i0 X% _8 i) C9 }   HC_573_C=0;
' j2 H( N3 m0 l6 `7 Q1 @: B    }
* N6 R' J7 R+ ?2 l) f' f7 k                      }& K6 i3 p. N2 K& v: g
   }8 [/ m- _1 r# P9 i$ F- `' M
/***********************************************************************************************/
" d) d$ }  W2 {; }! n9 bvoid TAB_DataWord()7 y9 _  y& S% w0 D- Z% M; O# Y
{
4 V; b2 r' U3 C4 m' n0 M' e TAB_Data[0]=0X00;
& a7 l3 f% s! @ TAB_Data[1]=0X00;       //00H Phase Adjust Register #1 <13:8> (Bits 15, 14 don’t care) Phase #1 相位为0
* L1 T, x- ^+ R9 [/ l+ X    //01H Phase Adjust Register #1 <7:0> 01H
+ L6 `* }  n, ^1 U TAB_Data[2]=0X00;  //02H Phase Adjust Register #2 <13:8> (Bits 15, 14 don’t care) Phase #2 相位为06 w) J- b, T- L+ f' M
TAB_Data[3]=0X00;       //03H Phase Adjust Register #1 <7:0> 03H
6 o# t1 h5 P, @3 Z6 ~4 `& [: v% G5 B     ) C+ X# c2 s$ u
TAB_Data[4]=0X00;  //Frequency Tuning Word 1 <47:40>//0000431BDE83        2 `) x' R: C& w3 k$ v# l- B
TAB_Data[5]=0X10;  //Frequency Tuning Word 1 <39:32>
( W, w5 f- U0 r! W4 D+ |4 a TAB_Data[6]=0X43;  //Frequency Tuning Word 1 <31:24>
; ~! D8 ^7 l! K. q0 T5 Q4 x) ~ TAB_Data[7]=0X1B;  //Frequency Tuning Word 1 <23:16>
  g; L6 F7 ?1 r9 H/ M8 x TAB_Data[8]=0XDE;  //Frequency Tuning Word 1 <15:8>& a  ?: j7 n' e$ c* L5 I4 J
TAB_Data[9]=0X83;       //Frequency Tuning Word 1 <7:0>
- }* j2 N9 X$ ~+ S' j- B9 b* U! E  $ c; R1 T# k; e( J  [
TAB_Data[10]=0X00;  //Frequency Tuning Word 2 <47:40
( c% L# x* _! T TAB_Data[11]=0X00;  //Frequency Tuning Word 2 <39:32>
! D1 V7 U) J  ^+ C* A5 e! `, ? TAB_Data[12]=0X43;  //Frequency Tuning Word 2 <31:24>. n6 j; i3 E+ n7 }5 n( O$ r
TAB_Data[13]=0X1B;  //Frequency Tuning Word 2 <23:16>
+ A( V4 Y: t: T& q/ n$ Y TAB_Data[14]=0XDE;  //Frequency Tuning Word 2 <15:8>$ A* u0 i; l7 e1 h
TAB_Data[15]=0X83;  //Frequency Tuning Word 2 <7:0> //500KHZ* C9 ?! e% ]% C5 j' k3 D
TAB_Data[16]=0X01;  //Delta Frequency Word <47:40>) x0 }, g* D& I- p- ~6 b3 u
TAB_Data[17]=0X47;  //Delta Frequency Word <39:32>  N; D/ |% s  q/ [
TAB_Data[18]=0XAE;  //Delta Frequency Word <31:24>  G) z$ X% y1 r
TAB_Data[19]=0X14;  //Delta Frequency Word <23:16>
$ R4 ]/ N  [6 D; R& w9 K TAB_Data[20]=0X7A;  //Delta Frequency Word <15:8>
/ Y( U! s- }- n+ o( m TAB_Data[21]=0XE1;  //Delta Frequency Word <7:0> 三角波  //频率为0. F9 x& f) w: W% ]
TAB_Data[22]=0X00;  //Update Clock <31:24>
; e5 {3 |7 t7 H+ U  QTAB_Data[23]=0X00;  //Update Clock <23:16>1 Z1 {# Z: K5 L0 I
TAB_Data[24]=0X00;  //Update Clock <15:8>
' u8 I7 p! z6 B0 K! U9 k! k, KTAB_Data[25]=0XF0;  //Update Clock <7:0>         //系统出现寄存器更新信号reg. Int Update Clk.=0;外部更新
5 c& T( r0 X% S6 XTAB_Data[26]=0X00;  //Ramp Rate Clock <19:16> (Bits 23, 22, 21, 20 don’t care)
9 g7 o% [: E. G- rTAB_Data[27]=0X00;  //Ramp Rate Clock <15:8>1 _+ F  s8 e' u
TAB_Data[28]=0X00;  //Ramp Rate Clock <7:0>
& }7 k6 C* x8 g4 q1 qTAB_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).
" [' P4 u! Z: k& }# Z: [  e# }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).. P( @. A  h" Z
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). 注意1 h7 D* w$ L; s* |. I) ?) e. W% 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).
: h  |7 A7 s- G4 VTAB_Data[33]=0X00;  //Output Shape Key I Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
: D+ k. S2 y/ e$ _# ?) PTAB_Data[34]=0X0F;  //Output Shape Key I Mult <7:0>- W1 I% M: l1 \
                       
# V0 V2 k, N9 E6 J7 o( H0 I4 l5 P/ R8 @TAB_Data[35]=0X00;       //Output Shape Key Q Mult <11:8> (Bits 15, 14, 13, 12 don’t care)6 H' g% e( O" z: \- r- r
TAB_Data[36]=0X0F;       //Output Shape Key Q Mult <7:0>
: P+ v4 \. s, LTAB_Data[37]=0X0F;       //Output Shape Key Ramp Rate <7:0>- U8 b/ Q/ O7 _; D
6 W6 K3 Q9 o8 k) v" o& G
TAB_Data[38]=0X00;       //QDAC <11:8> (Bits 15, 14, 13, 12 don’t care)
: }# D( D. m* u) a! a( D" j3 NTAB_Data[39]=0X0F;       //QDAC <7:0> (Data is required to be in twos complement format)
5 N; T& `3 q& W7 y; @6 O}
$ }+ g" H7 y# {; [; V/**********************************************************************************************/3 i: g0 y, |5 o: X) J
void F_DataWord(). C8 ^0 v9 x- E* X9 o
{
( B! r+ J( w) ]( V- m/ D F_Data[0]=0X00; //Frequency Tuning Word 1 <47:40>//00029F16B11C//0000A7C5AC47
8 D1 W" @, K# ]* | F_Data[1]=0X02; //Frequency Tuning Word 1 <39:32>6 B9 Y* W. m" K9 \) n
F_Data[2]=0X9F; //Frequency Tuning Word 1 <31:24>
- Z, \( D% u/ O2 |+ F& H. T F_Data[3]=0X16; //Frequency Tuning Word 1 <23:16> 5 s7 Y! y3 o$ N: l& I2 m2 }
F_Data[4]=0XB1; //Frequency Tuning Word 1 <15:8>' M* q" O7 C; k( U$ |
F_Data[5]=0X1C;        //Frequency Tuning Word 1 <7:0> //" w# N6 L" C% Q' `7 U
}
+ L- Q* k7 x8 d# {1 X! j0 g- p7 x/***********************************************************************************************/: C1 S/ `1 u; \
void  AD9854_F()
. q; I% S: a3 K1 p$ z2 n {   ; _9 G: g2 h4 M
  unsigned char i;           
+ \  Q5 W) g" c( `( |/ I  unsigned char tempf;  //   HC_573_C=0 ;选通( F& X9 ]# k( W( }
  MASTER_RESET=0;
; H" y% {& D& l, K% ^7 u; N  RDB_CSB=1;
1 c2 i9 C$ J2 R. H$ A& p  WRB_SCLK=0;
3 h; Y3 C) f  O  i  IO_UP=0;
6 o9 b/ e! |5 Y* H" l( X1 m  tempf="4";: i% H5 ^+ r8 c; X( S, J; E
  for(i=0;i<6;i++)# K0 ^9 ~5 D; f% K
{     & L% t/ a9 H1 V# {  a; s# I2 M
  HC_573_C=1;          //选通地址
: j0 \, |, p, h! U6 j4 o. {  P0=tempf;
% [( l' w( y1 A( ]! R  HC_573_C=0;          //关闭HC573
( G* E4 W3 b. G, z: f  ACC="F"_Data[i];   
% Z3 q" ^+ R( a8 b, R$ `2 L  P0=ACC;     
2 C" r5 z: e. {' B5 N, B7 c- j  WRB_SCLK=0;
  `1 y" I: d/ N" Y6 O! Z  WRB_SCLK=1;. Y- R1 V  q) v& {" `
  tempf++;* ?/ N& H' t1 Z  X+ q8 w
          }     6 f6 \) X# m& V: E+ f$ T7 ^$ R
8 g% V  i1 |' v& \( c
  WRB_SCLK=1;; \+ M* s! L- o9 o% x
  
6 @: a1 i3 |1 J# P; T  IO_UP=0;9 j( W! Y. H0 H! h- A) j! m$ r
  IO_UP=1;            
# x9 @: ^: a) R2 j& {  }   
% v) W4 D2 o" W; W0 I- y/************************************************************************************************/
. ~7 F# f+ @' X+ r, H) c/ I- avoid AD9854_IO_INT()
8 B- R4 U; I# L9 I{
0 A9 U4 W: l& z  unsigned char i;
& T# v2 u+ G; y  DLY_400MS();3 |+ [! Q/ z+ U6 |4 L
  MASTER_RESET=0;
8 V9 [, @( v) Y# ^7 w$ m# C! ?  MASTER_RESET=0;. `2 S& Y) N8 S$ O2 v* I6 f
  FSK_BPSK_HOLD =1; //多功能管脚; b  ]" s( b# |3 U- G
  SHAPED_LEYING =1;     //Must First Be Selected in the Programming Control Register+ f, u8 M" q5 @! t) S% ?. @
          //to Function. A logic high will cause the I and Q DAC outputs
: t; r% c& z- _5 r* z- ?5 ~   //to ramp-up from zero-scale to full-scale amplitude at a preprogrammed
- y7 u* L, M- w4 D6 U. m   //rate.Logic low causes the full-scale output to ramp-down
4 B3 n% e5 Z# N4 H          //to zero-scale at the preprogrammed rate.
" R$ M0 Z: H& L+ `" `# K- Y  RDB_CSB=1;            //Active LOW. This pin is shared with RDB when
; t. d3 x* S8 v4 @  WRB_SCLK=0;           //并行写数据时钟.低电平有效
( z! t1 G. M4 p+ O$ K  IO_UP=0;              //数据写入准备
9 l# W0 O7 h5 _. H1 A- a3 S$ g& @' W  temp="0";         //表格首数据地址
; ~% p9 N* O; C          //AD9854 寄存器首地址  A7 C& C! @  v. L
  for(i=0;i<40;i++); Z6 M1 x/ u! t6 @/ Z! d" I
{  
- Q( I* q/ D# S* N, c  HC_573_C=1;. c0 M, z/ W6 Z9 `1 p3 m, z" ]
  P0=temp;  //送地址
5 \, G' Q+ @; z( a& [  HC_573_C=0;
& N3 j6 z* [* J- T2 ]" E) [                //取对应地址的数据
. i* c3 z2 B3 [2 D% {  ACC="TAB"_Data[i];
  n- X+ V$ |' c0 w  P0=ACC;
# t. P; L9 }7 _3 z' T1 R/ f  WRB_SCLK=0;
4 k5 O& j+ I% Z  WRB_SCLK=1;" w4 v9 a1 F  a9 ]- }6 U
  temp++;
5 `( }, n% j# P! X* Y  }7 ^4 G! {, U( ~8 T, }# o( U
  WRB_SCLK=1;         //关闭数据接收! s2 Q) O" a) D7 i. G1 \8 d7 Q2 V+ K7 w
  IO_UP=0;
0 M% x+ f: ^& [& h/ i1 ~8 E' [" G  S  IO_UP=1;0 d+ [$ i9 h  D: ^5 ]7 e
   }& S& J+ X* E* W3 n: S/ v
/**********************************************************************/
) Y( i% }( I+ v9 b2 Kvoid V_Int()
( A9 U. P7 b/ I; ~) g7 t {          5 r  W' Q: u! }; I& P
  unsigned char tempf;  //   HC_573_C=0 ;选通1 f' C! ?2 N7 M; M, R! x4 F# Y
  MASTER_RESET=0;
5 n7 k% b. ^: b* G4 q  RDB_CSB=1;( F$ y- }' q1 Q" n+ y5 F) v# @
  WRB_SCLK=0;, `5 I8 W0 m/ Y, L" i
  tempf="0X1F";    4 P5 u& z& d, \+ W8 c
  HC_573_C=1;          //选通地址
9 a! V5 f# V. r$ k& H  P0=tempf;: k! E( U: G! \1 {
  HC_573_C=0;          //关闭HC573# \+ m0 L! W7 H7 |
  ACC="0X00";   
; }/ I+ n8 `6 L( k  P0=ACC;     
  O! ]5 M+ q( C0 o/ U5 ^$ u. U  WRB_SCLK=0;
+ `4 n2 I+ ~6 V& A! |1 f  WRB_SCLK=1;
; ?+ V$ Q6 y: \+ v  DLY_400MS();- a0 l5 I6 w( w( Q9 k- c* k& h
  WRB_SCLK=1;0 o  z2 b3 L7 B# x1 @
  DLY_400MS();             4 t8 x" _! F- D+ o; @+ n
  }    7 n1 O/ d/ @; M1 r, y2 t, a+ ]1 r) f
% Q9 J7 l+ ]8 @4 q- z% f
/**************************************************************************/
7 T) e1 E5 P! [" H+ jvoid DLY_400MS()
% V6 k, p+ J/ g0 a3 a4 v{
9 H$ W" B/ a1 ?) } unsigned char i,j;% m2 |+ M# g# I$ I! T& C
for(i=0;i<90;i++)
5 O* r% y9 \2 r# V  j {* i- L% @  l% V5 Y' }. b+ B
for(j=0;j<60;j++);
1 `8 C9 B3 n6 z. A+ V }
; d( J7 y- X4 w; X- d  O% A. \9 y4 z }
分享到:  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-12 22:17 , Processed in 0.065270 second(s), 32 queries , Gzip On.

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

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

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