找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1161|回复: 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,如果用串口的话
9 |8 C' h6 H6 [( b& m                     //提示:在调试程序的时候晶振用12MHZ, ?9 }) |3 y7 @, t/ n3 `
#define HC_573_C      P2_75 h& o4 a" c7 [5 z7 C
#define MASTER_RESET  P2_1
  S0 O" q' P+ k# m3 g  s7 h) i' A#define IO_UP         P2_6
; d. k6 t6 U; S5 G#define WRB_SCLK      P2_5
, i' z3 ?3 ?+ y5 l0 W4 t#define RDB_CSB       P2_4
& e7 e# t3 |- c( E. H  K' J#define FSK_BPSK_HOLD P2_3
# M% I- U, {2 K#define SHAPED_LEYING P2_2
7 ^+ E' z6 q' T/ ?. ^; D( Ivoid  AD9854_F();9 q4 }- _; f$ P  \
void  AD9854_IO_INT();1 p/ J4 m/ e% ^8 S# O* T( x; C7 g
void  DLY_400MS();
5 g2 g1 \: T$ t( @7 S% W! ]3 svoid  TAB_DataWord();
1 a; F6 H7 j& `+ xvoid  F_DataWord();
& a+ E+ D; U. L1 ]* m; e* Z) K, Evoid  V_Int();2 X( m+ o: b: p
unsigned char temp;6 _' y6 n8 Q$ l! Y, ]  `9 Q
//unsigned char UPFLAG;) n4 [5 o; g/ l$ C
unsigned char TAB_Data[40];8 ~# S* v. q( Q5 g2 ?# E
unsigned char F_Data[6];
& b* x6 c- o" e- z1 S4 hvoid main()5 Q$ ?- o* t) b" t0 i- J7 |5 q$ Z! ~
{ 1 _3 l7 {. z0 V
V_Int();' t& w. Y7 r9 A
while(1){5 f8 e% U, `: z: i# a7 k; \, s- G& y
TAB_DataWord();& B6 B. l' y: {; s! r
F_DataWord();% _/ X7 d# u, ?" Z
  while(1)
7 h% B* E4 v" `: p    {
# s1 _: Q5 F! T" `$ L9 D" R    if(!P1_0)4 ?/ @8 ?' i; C& `( ^
    { 7 A; B( z& F, b
    AD9854_F();* ]! N5 F, t9 q3 ~) g" `3 |. w( U
    }  : V1 I( k" \% D
    if(!P1_1)
) G5 Z  J* W: r    { ; d1 @1 ~! c' z' z, w& x
    AD9854_IO_INT();
, k8 u: ~" z$ o% ~    }
; S- y6 p; c7 {' J% ]' l5 u% q if(!P1_2)4 C  q- A8 |) F3 ]
{ 3 J, g5 }: Z  U% j. J
    MASTER_RESET=1;
) i) A' W- d% u2 G( |/ Q* E        }5 @) `& m; B. s/ X* ^  P
   SHAPED_LEYING=1;
5 Y8 ~& o" h1 p$ S   MASTER_RESET=0;* t3 T9 [. [# \. q  i+ d
   HC_573_C=0;
( \) Q  F$ G, G    }
7 q9 k. P( o# L5 `' G                      }
* n. u) u5 U3 w# M/ X  C, ^( t   }# I+ i; L0 q1 G4 N: J
/***********************************************************************************************/
& X$ C* N) T, E8 ~* J! |1 mvoid TAB_DataWord()
0 L5 c5 D- N2 _/ @7 ~, ]: z{0 V/ U+ Q5 ]% u1 z1 F# t6 k" r6 _
TAB_Data[0]=0X00;
1 g# {/ J2 e( C3 o4 d TAB_Data[1]=0X00;       //00H Phase Adjust Register #1 <13:8> (Bits 15, 14 don’t care) Phase #1 相位为02 `5 G/ Z6 N2 w+ @
    //01H Phase Adjust Register #1 <7:0> 01H
. T+ `2 U4 [% H$ `) `1 |, z2 ] TAB_Data[2]=0X00;  //02H Phase Adjust Register #2 <13:8> (Bits 15, 14 don’t care) Phase #2 相位为0
) f6 ]" b% G! F TAB_Data[3]=0X00;       //03H Phase Adjust Register #1 <7:0> 03H
8 b) s: U" J7 @# n7 U; R     
2 w, K8 ]# @& K* I* E) N4 a TAB_Data[4]=0X00;  //Frequency Tuning Word 1 <47:40>//0000431BDE83        
' u6 V2 I+ G5 H5 C" X/ ^+ J2 `5 z TAB_Data[5]=0X10;  //Frequency Tuning Word 1 <39:32>
( D: H4 U: W$ |# U5 j TAB_Data[6]=0X43;  //Frequency Tuning Word 1 <31:24>
2 N2 w  H& {2 ~9 X( I TAB_Data[7]=0X1B;  //Frequency Tuning Word 1 <23:16> 2 J, }0 q. l# Y2 e& S7 n' X) y
TAB_Data[8]=0XDE;  //Frequency Tuning Word 1 <15:8>
$ P3 u, x* i5 c8 x TAB_Data[9]=0X83;       //Frequency Tuning Word 1 <7:0>
( c; y3 J& k2 s% f, B  - r2 U+ a% }: O  Y
TAB_Data[10]=0X00;  //Frequency Tuning Word 2 <47:40
. j0 H$ ]3 F" d8 P! r4 o0 E3 w TAB_Data[11]=0X00;  //Frequency Tuning Word 2 <39:32>6 m8 e! i2 {0 ~3 a
TAB_Data[12]=0X43;  //Frequency Tuning Word 2 <31:24>
( _' F: m& h" n6 Z) p. f4 t1 r TAB_Data[13]=0X1B;  //Frequency Tuning Word 2 <23:16>. F* v+ H# t) Q9 y
TAB_Data[14]=0XDE;  //Frequency Tuning Word 2 <15:8>
* X: b7 y6 v6 b TAB_Data[15]=0X83;  //Frequency Tuning Word 2 <7:0> //500KHZ
4 @+ |  b% A7 a* U! t9 p' \' q# p, ? TAB_Data[16]=0X01;  //Delta Frequency Word <47:40>  v3 a- d% H% [, @; q0 p! d, z' S
TAB_Data[17]=0X47;  //Delta Frequency Word <39:32>
6 ]$ V/ Y  F4 Q; b" c% U7 f5 ~- B, G TAB_Data[18]=0XAE;  //Delta Frequency Word <31:24>
3 n& l' W' ]7 g TAB_Data[19]=0X14;  //Delta Frequency Word <23:16>) J4 N3 s4 C( ]
TAB_Data[20]=0X7A;  //Delta Frequency Word <15:8>
8 {. V3 S, e6 {+ z TAB_Data[21]=0XE1;  //Delta Frequency Word <7:0> 三角波  //频率为0- P9 q: D4 w$ k' ]& A' F
TAB_Data[22]=0X00;  //Update Clock <31:24>
1 T9 F; Y9 k' v% aTAB_Data[23]=0X00;  //Update Clock <23:16>
& b( g: o- x! K+ ^TAB_Data[24]=0X00;  //Update Clock <15:8>
1 Q8 K1 U; s! e0 K* ?6 JTAB_Data[25]=0XF0;  //Update Clock <7:0>         //系统出现寄存器更新信号reg. Int Update Clk.=0;外部更新) @5 f: \9 ~- x
TAB_Data[26]=0X00;  //Ramp Rate Clock <19:16> (Bits 23, 22, 21, 20 don’t care)5 P. T' `( v( @
TAB_Data[27]=0X00;  //Ramp Rate Clock <15:8>
( y5 v  B* r& Z) c9 xTAB_Data[28]=0X00;  //Ramp Rate Clock <7:0>
2 d- c( ~- B% b8 N( k. [# ^+ ETAB_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).# E; m$ O  F  `) f2 i. p1 \
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).+ r) W  K* w) c% S" V% v
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). 注意
  J2 t8 P8 Q7 R6 lTAB_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).6 t2 u; b% Z- J# h; W3 f
TAB_Data[33]=0X00;  //Output Shape Key I Mult <11:8> (Bits 15, 14, 13, 12 don’t care)8 e) y' U" E& ~
TAB_Data[34]=0X0F;  //Output Shape Key I Mult <7:0>" [* a2 ^" p( M' n
                       2 ?' p! B2 b6 W  J
TAB_Data[35]=0X00;       //Output Shape Key Q Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
' K! g+ t+ B/ b6 @1 y7 P' e, A! x7 JTAB_Data[36]=0X0F;       //Output Shape Key Q Mult <7:0>
& l3 p& [, R- t7 o" s6 w1 TTAB_Data[37]=0X0F;       //Output Shape Key Ramp Rate <7:0>
# a' [5 @: ~2 @! p! I* W9 V0 q; } # S- G5 {7 ~6 e; _; w/ z
TAB_Data[38]=0X00;       //QDAC <11:8> (Bits 15, 14, 13, 12 don’t care)
! s- |, L' M% l# M- tTAB_Data[39]=0X0F;       //QDAC <7:0> (Data is required to be in twos complement format)1 ^. J4 X+ |& a1 y
}* }0 v8 v: k& J8 l& n! K
/**********************************************************************************************/" ~9 Z& T( d- Y  s
void F_DataWord()5 J4 g. |% j- j. c( Z; b  t, q
{
: W7 N  `5 B. o F_Data[0]=0X00; //Frequency Tuning Word 1 <47:40>//00029F16B11C//0000A7C5AC47
2 a5 e* i$ V- ~+ ` F_Data[1]=0X02; //Frequency Tuning Word 1 <39:32>
" q* g" u/ ~  R& S F_Data[2]=0X9F; //Frequency Tuning Word 1 <31:24>) R0 e6 D. ^# A+ X2 O
F_Data[3]=0X16; //Frequency Tuning Word 1 <23:16>
- @$ w# t4 ?& P1 }  i! g: \6 U8 H; V7 D F_Data[4]=0XB1; //Frequency Tuning Word 1 <15:8>5 j- ~3 K1 X8 ^8 L8 O; b5 K$ G# E
F_Data[5]=0X1C;        //Frequency Tuning Word 1 <7:0> //% M! j: ^1 {6 D% U6 ?% S6 p# ^
}. f+ y8 }" C$ F9 i5 c( V
/***********************************************************************************************/1 q# J3 O$ f6 S) C# Z1 M
void  AD9854_F()
9 I2 H0 x* H' a" i {   7 _  ~9 l3 q+ U7 i0 s# A* T
  unsigned char i;           4 }4 Z% Q9 {& Y' K! C3 r8 ?  P
  unsigned char tempf;  //   HC_573_C=0 ;选通9 D# K% m' @4 g( e4 \( E2 x. Y4 g. |
  MASTER_RESET=0;$ D8 l. O8 H0 Q  e
  RDB_CSB=1;9 s* ?- q2 L% S) A4 ^# q6 n. j
  WRB_SCLK=0;
0 i" F) Z4 y2 F  IO_UP=0;) w4 t  X9 z5 t5 }& A
  tempf="4";
  e: N* q/ [1 D0 N. Y8 h4 S% n  for(i=0;i<6;i++)$ z2 Z6 Y5 u3 K% I9 K# a$ w0 W
{     
: B( X" Q. \4 J9 l$ f% m4 y& p1 T  HC_573_C=1;          //选通地址
% E, `* j9 P+ }( U: \  P0=tempf;
" O/ q  x+ U2 }5 l7 b  HC_573_C=0;          //关闭HC573
* f6 S0 W6 S) L! h# q8 \, V  ACC="F"_Data[i];   
5 H4 r$ E; D1 T7 C  P0=ACC;     ( {" o5 V7 L) P  l5 ?
  WRB_SCLK=0;7 y; `) G) G$ r4 t5 |5 S
  WRB_SCLK=1;
1 p4 P6 i# x3 x  tempf++;
) U2 ?, G$ t  U5 e! R0 e' C          }     ) L1 t" q, m) l7 _
; E  X8 I8 P( l5 ~' j& W, c7 ~
  WRB_SCLK=1;/ p  a" }( @' S8 \& W" w7 D
  ! {$ V8 u3 I" M
  IO_UP=0;
5 z. s+ @! X  t, F7 V  IO_UP=1;            
; t: O% F% F# s$ H  }    3 y- D; M% l% a5 B5 |
/************************************************************************************************/
4 i2 M) p: u0 Y; {, b7 U( @void AD9854_IO_INT()
8 o! U5 A$ C4 ?7 u) \8 g  i& W{
% Q) b' _( f  m. S( v% C  unsigned char i;) ?" v5 [/ v7 S6 K* C  |
  DLY_400MS();1 W" |8 Q0 f! k% i
  MASTER_RESET=0;3 E' b: p/ _5 B0 s6 S: `
  MASTER_RESET=0;+ \# W" Q$ W* f) v- c, L% ~6 K  R
  FSK_BPSK_HOLD =1; //多功能管脚3 A- g7 _. H5 a0 x% h" i
  SHAPED_LEYING =1;     //Must First Be Selected in the Programming Control Register
7 p' a# O- ?( }$ f( ^          //to Function. A logic high will cause the I and Q DAC outputs ) P0 N! `8 p: `4 x0 d+ H$ h+ s! D# F
   //to ramp-up from zero-scale to full-scale amplitude at a preprogrammed
6 ~6 I& i9 ~- P" x1 [6 Z. i* U   //rate.Logic low causes the full-scale output to ramp-down
/ T. t8 a3 P" I* m6 _          //to zero-scale at the preprogrammed rate.
/ |( b& U$ \4 y; y: [  RDB_CSB=1;            //Active LOW. This pin is shared with RDB when! N& X) X. K1 U) q, p
  WRB_SCLK=0;           //并行写数据时钟.低电平有效# J* s! @, |3 u1 ^+ A  x4 u
  IO_UP=0;              //数据写入准备3 D3 h4 v. }* }! _( c/ e
  temp="0";         //表格首数据地址! |/ E% C$ B2 l) p6 B; ^9 r
          //AD9854 寄存器首地址+ y# p; j' L  t' \8 J' B0 l# Z; t
  for(i=0;i<40;i++)
& l+ L9 l, \- ]3 r {  " k/ v" V2 F7 l$ ^0 X: ^
  HC_573_C=1;
: _- R8 @: b% Z6 k3 Z% A  P0=temp;  //送地址
" ?5 U% n. Z$ c$ s8 \' w, \+ o  HC_573_C=0;; y  g. _$ K, {( I& n/ K2 ~- z
                //取对应地址的数据2 O2 @- X3 R4 Z* F# I+ h  v9 v" J
  ACC="TAB"_Data[i];
/ o# \% P$ ?7 m+ }9 X# L  P0=ACC;
0 C' B9 O- q& ~1 e  WRB_SCLK=0;# y& H+ G# o6 C! D3 [4 h
  WRB_SCLK=1;
" W  t- B; h: l- e# `- |  temp++;
. u& x3 G- t8 U$ N8 \7 e& g  }( C" e/ c8 i' }' w
  WRB_SCLK=1;         //关闭数据接收
: ]9 c/ n7 y, T0 j$ G# f1 }+ V' W  IO_UP=0;
$ Z/ B8 L% ?# y  IO_UP=1;8 K+ e  U5 j  E* @4 [
   }; K( J& W( W+ y+ ^7 U) @
/**********************************************************************/" }7 b) c* O- U5 ?' X% c
void V_Int(), k. n! Y' @- w
{         
3 Y4 [: a$ k6 c9 c, |; s  unsigned char tempf;  //   HC_573_C=0 ;选通
7 F3 |! |3 B; V' ^$ ^1 v  MASTER_RESET=0;
$ ?* y) P# v5 ?1 ~$ n; W& s  RDB_CSB=1;
% P  B% N) t+ I8 H2 d' ?  WRB_SCLK=0;5 X4 Z& f7 w9 ]& }5 p" U/ ~* |4 \
  tempf="0X1F";   
/ }% }! P: I9 _) c- m% C8 P  HC_573_C=1;          //选通地址  s1 @0 W- W8 C* X- _+ }  m, O5 C
  P0=tempf;6 ~( _0 ^/ c9 k+ {5 A! @. s9 a
  HC_573_C=0;          //关闭HC573
# Z" H# ]: U, U" f) u  ACC="0X00";   
. V6 x/ k3 _3 E8 N* A. k  P0=ACC;     
. R2 n& z  D. N9 a1 M0 ^  WRB_SCLK=0;
" z7 ]( V  q+ d4 F- q+ s' F  WRB_SCLK=1;4 J3 R9 {/ ?# I
  DLY_400MS();
% T( H& h! G8 X, C: H! }1 c  p  WRB_SCLK=1;
2 R0 I! T! D/ ~& C  DLY_400MS();             , D! ~& A/ }9 X. S; z
  }    % T4 h7 e6 T: w0 Q* N' x% f
3 T  d! M( i+ t
/**************************************************************************/
. h& @, ^0 `; h3 l. svoid DLY_400MS()
6 H: a0 @# W/ w* C: p$ G{ 8 z# P. D0 X- @- M- ]$ v; l4 F
unsigned char i,j;" j; |& C" a4 A# w# m
for(i=0;i<90;i++)5 o: h; ]6 q' V
{1 @  C/ s2 c0 R' s. V
for(j=0;j<60;j++);) W0 ^7 z, v6 G3 K. ~% F1 b1 w
}
0 A3 G4 v: M4 a# h }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

2

主题

61

帖子

-8970

积分

未知游客(0)

积分
-8970
3#
发表于 2010-2-13 20:42 | 只看该作者
没原压缩代码啊!

45

主题

175

帖子

-8969

积分

未知游客(0)

积分
-8969
2#
发表于 2009-3-25 11:40 | 只看该作者
ss
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-3-12 17:39 , Processed in 0.058709 second(s), 33 queries , Gzip On.

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

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

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