找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1159|回复: 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,如果用串口的话2 I3 y% s% h3 O6 r% x/ a
                     //提示:在调试程序的时候晶振用12MHZ
! j' X1 E1 {* j$ L9 \#define HC_573_C      P2_7  d: d! [+ W6 A
#define MASTER_RESET  P2_1& n6 ]/ p! a( F9 q
#define IO_UP         P2_6
, t; A! Y4 z/ t8 {/ g) N( g#define WRB_SCLK      P2_5
, C9 }: ?% A) c; C; R, d% j#define RDB_CSB       P2_48 v( l" R( T* M  Y" w) i. _
#define FSK_BPSK_HOLD P2_3  p, C; }, u% H6 w7 v
#define SHAPED_LEYING P2_2
# n$ R8 e1 a( h7 a- s. hvoid  AD9854_F();) h/ j1 {* V# h* |/ {( |3 B
void  AD9854_IO_INT();) |, \: `1 T7 i% k8 e# W
void  DLY_400MS();) D* V0 x- t" ]5 _% D# p
void  TAB_DataWord();
, r1 [3 W& [5 hvoid  F_DataWord();
% Z$ z! F, {% O9 X! A) F- Pvoid  V_Int();
$ a! {7 O7 H: q4 T+ nunsigned char temp;
2 s7 ?( g  X/ ?//unsigned char UPFLAG;
5 F, r; u2 {+ L! Runsigned char TAB_Data[40];
0 x, P+ }5 m/ S3 N& lunsigned char F_Data[6];, Y: ]& J+ r0 r4 d* y
void main()
* ]( H5 B, b% _: i5 D9 ?! T6 r7 b {
1 V. O% q9 C: o3 H, y; w3 i( ` V_Int();% O5 e8 m) N" T4 U5 U2 ~
while(1){
  d! l8 Y1 z' k6 o# U* |$ a TAB_DataWord();5 Y4 a% N$ a; m$ m; A
F_DataWord();
1 a3 k$ {0 l; f) K  while(1)
9 ?9 C$ a2 q9 U4 k; ^. W2 w    {$ y( N1 j0 _3 z8 i2 K2 u
    if(!P1_0)1 }% a9 H" r/ v/ ^6 ~
    {
! m0 y) b& c9 ^" _    AD9854_F();
+ w, _! H9 k/ r* ?8 q9 F6 }8 @& v    }  
8 T* q' Y4 u  g1 @) g( d2 f3 T2 C  ~    if(!P1_1)
/ @# P  l0 Y3 v% g    {
' k% m# j) q7 N6 A5 C    AD9854_IO_INT();
# k1 D' ]/ G+ x    }: I# b! @7 u9 D' @5 Y6 Z' t
if(!P1_2)
0 A* s7 r/ g0 k3 A% i {
" V) c: ^; p3 G5 S    MASTER_RESET=1;
+ e' @8 _) |; G0 r$ s        }
6 ?; Q& F' W* t  J% ?2 K0 A   SHAPED_LEYING=1;
* Q( K; ~. e- S/ F0 F5 i2 }+ S   MASTER_RESET=0;
* W/ u+ E: e; Z, ^) |& Y' k   HC_573_C=0;
2 u7 c) t: b) f% D! [8 X    }  w+ g$ U! i. J
                      }. c" G0 n" R0 e, q3 d
   }
1 C( w, i2 ~/ b$ `5 y/***********************************************************************************************/
" Z- o) A; L% W- k6 A% tvoid TAB_DataWord()4 m4 L* L* x( @7 q
{+ a8 h: U6 u8 y9 j: E
TAB_Data[0]=0X00;0 C: ^/ Q, @( P" r, k
TAB_Data[1]=0X00;       //00H Phase Adjust Register #1 <13:8> (Bits 15, 14 don’t care) Phase #1 相位为0
# S. Z- G$ Q  Q! w0 c! y    //01H Phase Adjust Register #1 <7:0> 01H
7 }" \5 o6 y) ` TAB_Data[2]=0X00;  //02H Phase Adjust Register #2 <13:8> (Bits 15, 14 don’t care) Phase #2 相位为0% u5 ~8 c8 T# F) l, y  m
TAB_Data[3]=0X00;       //03H Phase Adjust Register #1 <7:0> 03H
7 s* N/ s; B% g0 i) t% p0 z1 U5 u       h5 v- w+ Z  ]/ H! z: o
TAB_Data[4]=0X00;  //Frequency Tuning Word 1 <47:40>//0000431BDE83        
) E) g3 O( i" F, R  S4 o9 o; s% g1 I TAB_Data[5]=0X10;  //Frequency Tuning Word 1 <39:32>
" O9 T3 w: }$ h2 i1 \) e TAB_Data[6]=0X43;  //Frequency Tuning Word 1 <31:24>
7 U! \9 D5 m! _0 u2 o% [3 Q( w TAB_Data[7]=0X1B;  //Frequency Tuning Word 1 <23:16>
, p, v1 c# `9 b8 D& B TAB_Data[8]=0XDE;  //Frequency Tuning Word 1 <15:8>
" g8 K' k" i& w6 ~* U, @  M TAB_Data[9]=0X83;       //Frequency Tuning Word 1 <7:0>; z% S2 B8 A! h0 c4 ]9 |; w  L
  
0 q' M$ y7 L& O9 X. _$ F, N TAB_Data[10]=0X00;  //Frequency Tuning Word 2 <47:40  o* \- v$ x" X, x' q' b/ P+ [+ J
TAB_Data[11]=0X00;  //Frequency Tuning Word 2 <39:32>
; C4 y8 h1 N# H/ H3 i, R  k+ P TAB_Data[12]=0X43;  //Frequency Tuning Word 2 <31:24>5 {9 Y9 t+ `; d' J  |* z
TAB_Data[13]=0X1B;  //Frequency Tuning Word 2 <23:16>
: t/ {( A8 A8 I TAB_Data[14]=0XDE;  //Frequency Tuning Word 2 <15:8>
  f' v! n( C; e: e, U9 j TAB_Data[15]=0X83;  //Frequency Tuning Word 2 <7:0> //500KHZ* ~+ u' U! ~7 ~8 X
TAB_Data[16]=0X01;  //Delta Frequency Word <47:40># J, E  ]6 C" U; J" Y5 X9 Y0 Q3 P
TAB_Data[17]=0X47;  //Delta Frequency Word <39:32>9 B: P) t  }7 C
TAB_Data[18]=0XAE;  //Delta Frequency Word <31:24>
0 W, s- P! `" Y& O' X TAB_Data[19]=0X14;  //Delta Frequency Word <23:16>6 l9 w* ?; S0 `9 R" T
TAB_Data[20]=0X7A;  //Delta Frequency Word <15:8>
# `3 f- ^, z* G' q! M' m- o TAB_Data[21]=0XE1;  //Delta Frequency Word <7:0> 三角波  //频率为0& E" ~- x- F. V
TAB_Data[22]=0X00;  //Update Clock <31:24>' \) }/ `: |; v
TAB_Data[23]=0X00;  //Update Clock <23:16>
' H/ P% g, M" S0 o) q# ?TAB_Data[24]=0X00;  //Update Clock <15:8>
5 P# T" N" r4 j, O  j/ w5 n7 s, UTAB_Data[25]=0XF0;  //Update Clock <7:0>         //系统出现寄存器更新信号reg. Int Update Clk.=0;外部更新# d" q' b0 i2 v1 I8 U- O
TAB_Data[26]=0X00;  //Ramp Rate Clock <19:16> (Bits 23, 22, 21, 20 don’t care)% Q' s3 ~/ U9 m( W
TAB_Data[27]=0X00;  //Ramp Rate Clock <15:8>4 G7 [7 [: y/ C& F, Y3 Z
TAB_Data[28]=0X00;  //Ramp Rate Clock <7:0>
% B( L1 u& G. E& \& x( wTAB_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).( s8 t1 b9 I4 p' h5 G0 V
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).
5 g& w) P. Y# h, ?- B. ?1 }! ^" ITAB_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). 注意
  M! y  ~0 c1 ^; UTAB_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).
0 _, F- a+ Y0 y* z; l- ZTAB_Data[33]=0X00;  //Output Shape Key I Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
3 a. B( h3 S$ `5 tTAB_Data[34]=0X0F;  //Output Shape Key I Mult <7:0># M9 a6 x- W! h% U
                       
3 U$ C/ t# k$ e& {+ v0 RTAB_Data[35]=0X00;       //Output Shape Key Q Mult <11:8> (Bits 15, 14, 13, 12 don’t care)# Z) t% U- d0 q
TAB_Data[36]=0X0F;       //Output Shape Key Q Mult <7:0>' g: \* T+ a  K9 H4 h
TAB_Data[37]=0X0F;       //Output Shape Key Ramp Rate <7:0>2 w" R- f& F4 K8 q
+ c# C6 u$ t- V0 y# R3 r. v
TAB_Data[38]=0X00;       //QDAC <11:8> (Bits 15, 14, 13, 12 don’t care)
: F+ c) G* K9 i, P( OTAB_Data[39]=0X0F;       //QDAC <7:0> (Data is required to be in twos complement format)& Q' w, e, \( s8 [
}- d* g+ ~: k; c2 @" n5 e+ D. a
/**********************************************************************************************/
7 c2 w$ g5 Z8 L8 t$ M& ~  C' s' y  yvoid F_DataWord()
( \5 P1 G1 a% J; X$ k{
7 x8 l1 ^7 x0 X/ B9 H  L, ` F_Data[0]=0X00; //Frequency Tuning Word 1 <47:40>//00029F16B11C//0000A7C5AC47- d7 o' c# ]- v' S$ z
F_Data[1]=0X02; //Frequency Tuning Word 1 <39:32>0 k% M& `9 y9 j5 l+ ?) W# e7 _
F_Data[2]=0X9F; //Frequency Tuning Word 1 <31:24>
6 u  F. m! g6 I+ U! o3 K7 i F_Data[3]=0X16; //Frequency Tuning Word 1 <23:16> / q' g' s, Q( z3 W% X+ d
F_Data[4]=0XB1; //Frequency Tuning Word 1 <15:8>9 ^5 J; S( o7 N2 |
F_Data[5]=0X1C;        //Frequency Tuning Word 1 <7:0> //
* _$ a* r2 j% P' s9 S}
( g7 Q: r% t9 N) `# d) v/***********************************************************************************************/
( j4 r* R( s0 A! L' P+ _void  AD9854_F()
& Z4 J, H; I( I0 T! o1 @/ u {   
# c6 I# {, v& A. m  unsigned char i;           8 S1 @9 y7 |$ c( `% }# _+ D' A
  unsigned char tempf;  //   HC_573_C=0 ;选通
% _+ ^& G- J% y7 C  MASTER_RESET=0;
, G  Y# _) d7 V: U5 E' C  RDB_CSB=1;) X. j) Z! i; @) g+ L( j( P5 O
  WRB_SCLK=0;
6 u+ f6 d0 A3 B/ y# Z7 X; h, t& n  IO_UP=0;2 T9 h2 Z) G, S& @* C5 q
  tempf="4";2 T3 i) v, B, ?/ U  a% E, q/ a
  for(i=0;i<6;i++)
" n$ }7 Z% P! |8 [  y! @: p {     
9 {+ j, T9 Y4 [1 S7 w3 t  HC_573_C=1;          //选通地址8 B2 ^+ @$ E' o
  P0=tempf;* l7 M, @' p) \! T3 X/ B
  HC_573_C=0;          //关闭HC573$ \+ [# ?' o$ K" C. {
  ACC="F"_Data[i];   
4 V$ _3 l/ ~4 z6 Y9 i1 K  P0=ACC;     
$ w# y  F9 ^% F2 h) G7 t0 a  WRB_SCLK=0;
4 w7 U: E6 X* o; v  R  WRB_SCLK=1;
. @( R9 j; M+ B  tempf++;
& _) U: I+ Q/ m9 C4 v          }     . W1 {9 p/ \4 y) x+ U! F2 H
3 r: S; R7 h1 m
  WRB_SCLK=1;' ^: i6 u% y* M: R! ]1 ~/ }
  . i1 R( m( X5 S! J
  IO_UP=0;
0 t9 r$ u( _, r1 @  IO_UP=1;            
3 E6 T2 ^# |. I% N$ c1 L  }   
# \, |- c) g8 X- z; _. X/************************************************************************************************/+ P, G; G* [' I- r
void AD9854_IO_INT()
2 b4 h! J' O+ l{
% J1 P7 A* b1 B: c" K" h' i- N  unsigned char i;
% H) |* E% Y! |. ~  DLY_400MS();
) N" j& b# S  V$ W# [" O8 M% e1 G2 F  MASTER_RESET=0;0 I; Q& I: W7 V+ J$ u+ E# S
  MASTER_RESET=0;% ?( q* q, Y8 u( S3 p
  FSK_BPSK_HOLD =1; //多功能管脚' w) B/ e. w3 G3 c6 I
  SHAPED_LEYING =1;     //Must First Be Selected in the Programming Control Register
  V+ W+ ^5 D! z/ {          //to Function. A logic high will cause the I and Q DAC outputs & X0 i7 }0 Q' \
   //to ramp-up from zero-scale to full-scale amplitude at a preprogrammed
, L! ^& T5 A2 O7 H. H% y   //rate.Logic low causes the full-scale output to ramp-down 6 ?9 G2 J( }  I3 G+ C; z
          //to zero-scale at the preprogrammed rate.) J/ T4 G1 W2 [: c( Q# @: w% ?
  RDB_CSB=1;            //Active LOW. This pin is shared with RDB when9 v( ]9 }4 q  o8 r  m5 M2 P
  WRB_SCLK=0;           //并行写数据时钟.低电平有效( D$ R2 p  S1 Q, e1 l2 N
  IO_UP=0;              //数据写入准备# I: W0 z3 s! `9 _8 V) K$ ]9 [
  temp="0";         //表格首数据地址
( b! I5 R  D) M% W  ^* ~          //AD9854 寄存器首地址
9 H; H- Q3 G' m8 g& H3 @  for(i=0;i<40;i++)
) K' @4 W( q' }$ T4 { {  
& f3 a, B" U8 x6 f& F; k  HC_573_C=1;' T3 w# Z4 [4 k) U( w7 j; w7 o
  P0=temp;  //送地址
$ H) [; @( ]' V8 [6 @# R$ k  HC_573_C=0;
! n. A5 F! c3 m: p3 r9 E                //取对应地址的数据0 r- [0 A! F* o$ h0 w# J
  ACC="TAB"_Data[i];
9 U! e# W, A# `# J# R  K7 t0 d$ B* y$ q  P0=ACC;
4 t# @4 o9 o0 L# Z! k  WRB_SCLK=0;
. \2 B+ u5 D. y0 P8 s4 k7 D# B2 e  WRB_SCLK=1;
% _0 [% z7 e; a- s  temp++;" @! x8 ]% J, N/ W4 K+ v, i* t( n
  }
' J9 o/ e+ y; k! y. A  WRB_SCLK=1;         //关闭数据接收  m2 {" n7 Y  r* \4 N: |
  IO_UP=0;/ {3 E9 z7 ^6 m; b
  IO_UP=1;
8 b+ v# s3 M6 t* Y   }
* j! j9 j. \# l% n; t6 U2 Y/**********************************************************************/
' [8 O- [: `# S# W' ?void V_Int()
) I+ y9 V$ L) Z7 P: E) X7 _, H {            w1 e- _% }9 l. d) c0 P4 k
  unsigned char tempf;  //   HC_573_C=0 ;选通
: }5 h: Q" N3 v* j' v% s% a  MASTER_RESET=0;. L% Z7 J/ q! M9 Q5 k
  RDB_CSB=1;
9 B2 S, k& r3 e1 q# E  K  WRB_SCLK=0;
9 a$ B6 m) X: }2 P' G$ R  tempf="0X1F";    2 r- L4 A3 [( Y% @( u% Y
  HC_573_C=1;          //选通地址: f6 D  d/ j+ C+ B! ~+ h
  P0=tempf;$ b# z" n7 v! _/ N, n0 H, E
  HC_573_C=0;          //关闭HC573
0 v+ }9 \7 K+ ]6 T$ O  ACC="0X00";    9 I8 b4 ^( L0 N1 C7 t, Y+ V
  P0=ACC;     , Y' M- I7 N2 z9 ^- d" P; l# Z
  WRB_SCLK=0;6 r4 G- f3 i" l+ j3 Y
  WRB_SCLK=1;
9 |6 \2 i* o9 N5 y% n  DLY_400MS();
; X+ G  y0 `. X& O' [  WRB_SCLK=1;
5 j) ~/ A+ g$ H$ Q  DLY_400MS();             % j4 w$ c$ H$ Y" e) X3 L4 S6 ^; m
  }   
  h5 _& y7 Y! _5 e2 D% S
0 X3 N, Z" f; {- y) n* P' O5 j/**************************************************************************/
7 N8 \; _9 r0 J" fvoid DLY_400MS()9 r0 V5 R, h* J1 v, T
{ # L, V3 f, s- c8 {' Y5 a$ G
unsigned char i,j;4 m% e3 S3 C7 U- g5 G! _
for(i=0;i<90;i++)# Q3 X0 p% R* C4 Z/ X7 y
{
- Q  D( S2 e5 _. o for(j=0;j<60;j++);' t) {" S4 C6 M. F+ ~# l4 ^
}
0 L# X& _. r& s' J& h1 | }
分享到:  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 10:43 , Processed in 0.056885 second(s), 32 queries , Gzip On.

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

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

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