找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1154|回复: 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 x0 Q  [3 H6 n) U1 {, f6 n
                     //提示:在调试程序的时候晶振用12MHZ
" F0 |( n4 B% P3 ]#define HC_573_C      P2_73 G) q" X7 H! ?/ T. ?
#define MASTER_RESET  P2_1' R& g  ~& E" }: T  f1 @/ m
#define IO_UP         P2_6
6 t7 k5 y- b) k; M* D, D) z, S#define WRB_SCLK      P2_5
0 w. ^* m7 v3 `: m#define RDB_CSB       P2_4! {5 M# \# T/ M3 a0 X( A
#define FSK_BPSK_HOLD P2_3) ~4 K4 N0 A* m. x* ^# V
#define SHAPED_LEYING P2_2- Z5 p/ |% {  {- |2 _
void  AD9854_F();
2 G; M+ u# y- M# ]5 H+ Rvoid  AD9854_IO_INT();
, S8 ~, j+ Y0 {5 n" k- J  qvoid  DLY_400MS();  K  \" B. x: j% T. d( z
void  TAB_DataWord();
5 \- q. L# D2 b" avoid  F_DataWord();5 F4 T" r3 X3 h% w6 f: {
void  V_Int();
( D, t6 g' p  c; i% F$ {; O% Iunsigned char temp;
, r$ g! j+ l$ T2 t1 }//unsigned char UPFLAG;
. r3 s1 b+ u5 {8 Y- W0 C" l6 z! S$ Munsigned char TAB_Data[40];
4 h; p# ]& S" |2 A* \; w& Nunsigned char F_Data[6];- r3 Q) V# F$ K! O* t4 h8 ~: w. ~
void main()
; `4 q# N9 _1 O6 }) |  P. \  J) y {
0 N$ y& Z5 g: ?/ r V_Int();2 `$ _3 M' k6 ^- M( A
while(1){
, V" a7 N$ \& ~ TAB_DataWord();( p  W, Q& }2 r. K/ x7 r( E
F_DataWord();
6 P1 o; Y* i0 O/ ]* c) z. \  while(1)4 ?; T+ F" \" v+ M( i, f$ c
    {
( B7 `2 P' W* v1 W    if(!P1_0)
% W9 J3 D6 @, g( C. b    { ! r$ t3 G0 X- e
    AD9854_F();; }; L) ~) F* ]( N7 [4 i% H+ L$ r
    }  
2 Q; e) E" F4 f! F% x    if(!P1_1)
0 o/ g: T1 D9 r: E5 c& d# ?    { 4 U+ p' ?9 U' f
    AD9854_IO_INT();
/ G4 W0 ~5 ?0 q; n# |    }# q% e9 v5 V9 {0 G# [5 H
if(!P1_2): _! w0 z+ B- N
{
# S$ ~5 H2 K  A7 i) y    MASTER_RESET=1;
0 |: F' u! {- e% x0 T) U        }
; H# t3 y$ N7 `) R3 R! L" t   SHAPED_LEYING=1;! X) @( g. r' e' A
   MASTER_RESET=0;
4 Z# i9 o+ v0 B5 u) z   HC_573_C=0;3 I* g+ V" c- x5 Q1 u5 G
    }4 `2 x( G3 W) ]
                      }
- k1 z4 s, x* o9 x# \7 [   }: r4 U) k: ?, j- L' F
/***********************************************************************************************/% C( c6 V( B6 T/ a. c
void TAB_DataWord()
" N3 }* X# C+ n. K9 y{: N: [" [9 k! n
TAB_Data[0]=0X00;
2 l9 F- l$ N, h. ~  Q7 C: b TAB_Data[1]=0X00;       //00H Phase Adjust Register #1 <13:8> (Bits 15, 14 don’t care) Phase #1 相位为0% G* h3 p& k: ?3 t7 ?) ~
    //01H Phase Adjust Register #1 <7:0> 01H( X' R1 ~' Y) i- A! w2 q- w
TAB_Data[2]=0X00;  //02H Phase Adjust Register #2 <13:8> (Bits 15, 14 don’t care) Phase #2 相位为0. a# E) x+ `& j/ G1 H6 b9 H
TAB_Data[3]=0X00;       //03H Phase Adjust Register #1 <7:0> 03H
3 s0 [) u  V* |( h5 y: [     % X$ |; ~( M/ Z+ M5 N
TAB_Data[4]=0X00;  //Frequency Tuning Word 1 <47:40>//0000431BDE83        
8 p7 w- {# F- w4 j4 w6 l* I TAB_Data[5]=0X10;  //Frequency Tuning Word 1 <39:32>
5 _2 b! b, [- y1 T' X- G% _0 c TAB_Data[6]=0X43;  //Frequency Tuning Word 1 <31:24>
9 ?/ N1 ^- L: F0 ^0 F$ f TAB_Data[7]=0X1B;  //Frequency Tuning Word 1 <23:16>
: O- V4 a* c& V8 Z" I8 ~; D TAB_Data[8]=0XDE;  //Frequency Tuning Word 1 <15:8>
/ e7 X/ ~9 g, o# p; o) f8 t1 B TAB_Data[9]=0X83;       //Frequency Tuning Word 1 <7:0>
: n- @( i1 f! a  R  . ^: [% a/ x% f& }$ s) N3 @# ?
TAB_Data[10]=0X00;  //Frequency Tuning Word 2 <47:40
/ h  Z$ ?& `( x8 q TAB_Data[11]=0X00;  //Frequency Tuning Word 2 <39:32>" J) p: w6 j9 F6 Q8 Z) ^" ^
TAB_Data[12]=0X43;  //Frequency Tuning Word 2 <31:24>4 k2 O+ _, [- q) G* O4 l, R8 R
TAB_Data[13]=0X1B;  //Frequency Tuning Word 2 <23:16>
0 a7 ^3 C' F$ S+ n* U- X, S TAB_Data[14]=0XDE;  //Frequency Tuning Word 2 <15:8>+ O0 J# F1 W' A& v' \
TAB_Data[15]=0X83;  //Frequency Tuning Word 2 <7:0> //500KHZ6 w+ L, E! \. U  q; w2 h# q" q
TAB_Data[16]=0X01;  //Delta Frequency Word <47:40>4 x4 V2 y' z) F
TAB_Data[17]=0X47;  //Delta Frequency Word <39:32>% r6 Q+ K/ }, N/ t3 ?
TAB_Data[18]=0XAE;  //Delta Frequency Word <31:24>
$ L8 ^/ z' X- N8 r, K% H# y5 |: F; _ TAB_Data[19]=0X14;  //Delta Frequency Word <23:16>1 o& G! B/ W* ?" B# u, R0 D
TAB_Data[20]=0X7A;  //Delta Frequency Word <15:8>
* Z) ]+ y$ g  a7 h5 m" }/ | TAB_Data[21]=0XE1;  //Delta Frequency Word <7:0> 三角波  //频率为0, ]$ A& E& `3 b( A
TAB_Data[22]=0X00;  //Update Clock <31:24>/ P4 l/ W0 Z& I7 E% S
TAB_Data[23]=0X00;  //Update Clock <23:16>: A% f* j& t+ H2 L
TAB_Data[24]=0X00;  //Update Clock <15:8>3 }, m7 M( m! P/ d
TAB_Data[25]=0XF0;  //Update Clock <7:0>         //系统出现寄存器更新信号reg. Int Update Clk.=0;外部更新
1 K; a$ Z8 b5 i& m% JTAB_Data[26]=0X00;  //Ramp Rate Clock <19:16> (Bits 23, 22, 21, 20 don’t care)
8 d. Q* r. e, i7 cTAB_Data[27]=0X00;  //Ramp Rate Clock <15:8>
; v! f$ v' u" F* Y  ATAB_Data[28]=0X00;  //Ramp Rate Clock <7:0>
. M% l( y7 Z7 P% ^TAB_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).4 T4 [. u: m2 \: |. ^5 l& p
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).
" I; S4 E- F* U& r  \! S3 y: sTAB_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). 注意% k- [5 L, P: f7 F5 T6 f8 {
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).1 c- b4 L6 J6 o, z8 A3 F
TAB_Data[33]=0X00;  //Output Shape Key I Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
, V( ^6 F9 ?% X! u% W& w. S2 BTAB_Data[34]=0X0F;  //Output Shape Key I Mult <7:0>
; L: q2 ~, Q3 Y2 x; W. B                       
1 I/ g" U' G! {( g2 MTAB_Data[35]=0X00;       //Output Shape Key Q Mult <11:8> (Bits 15, 14, 13, 12 don’t care)
- k4 [! ]+ [* t% NTAB_Data[36]=0X0F;       //Output Shape Key Q Mult <7:0>
( [/ [! R$ r" n0 Y! Y# e9 RTAB_Data[37]=0X0F;       //Output Shape Key Ramp Rate <7:0>
- [/ g7 `9 f1 f ( t6 c: h0 J5 J6 r
TAB_Data[38]=0X00;       //QDAC <11:8> (Bits 15, 14, 13, 12 don’t care)
0 i5 W- B6 u. C, M& vTAB_Data[39]=0X0F;       //QDAC <7:0> (Data is required to be in twos complement format)5 A* B8 I+ F* B$ K' k
}
6 @6 P6 i( K7 G' |/**********************************************************************************************/' P& {' ^; K# J/ J7 }* b
void F_DataWord()
! N  b3 Z) j, L3 T{  m! f; g. @$ N. X+ S( V
F_Data[0]=0X00; //Frequency Tuning Word 1 <47:40>//00029F16B11C//0000A7C5AC47
7 f% ~. h# X3 r6 e9 T$ j+ L) x F_Data[1]=0X02; //Frequency Tuning Word 1 <39:32>
  N6 d! C1 l" a  W F_Data[2]=0X9F; //Frequency Tuning Word 1 <31:24>
1 L( R7 }6 K0 s* C8 G1 X) C F_Data[3]=0X16; //Frequency Tuning Word 1 <23:16>
! b: r: \! l$ Q# ]0 Z F_Data[4]=0XB1; //Frequency Tuning Word 1 <15:8>
" Y6 f: }3 Q! L- j) X- _# r F_Data[5]=0X1C;        //Frequency Tuning Word 1 <7:0> //
; p& n: b, N% T- L4 {$ z}
, X  O+ f: y  O0 J/***********************************************************************************************/9 j! z" \0 S% Z, K  ^
void  AD9854_F() / L& f  ]8 h) q2 b3 n, E, p/ z8 N
{   7 K9 `8 o! p: W$ _6 G
  unsigned char i;           - ]& R% Y* {7 N4 f
  unsigned char tempf;  //   HC_573_C=0 ;选通
4 k" K5 t. q, x3 y8 @7 n, P5 i  MASTER_RESET=0;
0 _* F/ C! h4 I; B5 _  RDB_CSB=1;4 A: I- w/ x. S2 I! y
  WRB_SCLK=0;
& B) }6 y! J, U) w. ?  IO_UP=0;
  ]0 q/ C: Z. o  f5 _  tempf="4";( C4 j( c. H0 S, C# @6 M
  for(i=0;i<6;i++)+ _8 t$ B4 S% z  g* J/ I
{     
5 k$ `( g$ H/ S1 v: m) Y  HC_573_C=1;          //选通地址
% j+ N0 g+ W, D/ v  P0=tempf;
  W. U  h$ ?% v1 \7 c3 T  HC_573_C=0;          //关闭HC573
& h/ I2 {' P. k$ A. ?# I  ACC="F"_Data[i];    ( Y2 M! _3 _8 p  n
  P0=ACC;     
; f5 [8 p2 s, H' F+ L  WRB_SCLK=0;
9 a- a4 M# Q! h1 [( z* L  WRB_SCLK=1;1 }: D+ d! B# {* M" Z/ Q
  tempf++;
8 ~" ?5 R0 v; M5 L5 m+ [( ]          }     " v  T2 B& T5 A/ R. a5 g! M4 ?5 @

7 h+ h3 l. |, v  WRB_SCLK=1;( r* k* U2 W& o6 b2 a1 C9 n
  
5 v4 `) f1 f! a8 N/ n  IO_UP=0;. F, f+ K5 }( N, m+ \, J, R0 F9 f
  IO_UP=1;            
7 i2 A1 D' g8 W  h, k  }   
9 I5 _7 E) ~/ h; l8 t* r4 A/************************************************************************************************/
: {1 h7 r; C  o9 B* O( o1 d% ovoid AD9854_IO_INT()- _/ i# F7 d* H# D+ q! @
{ 2 D5 S; K$ w$ C9 `! J1 d
  unsigned char i;7 G# m: c, Z, o5 d3 b/ u
  DLY_400MS();) ?# U  W! O7 C0 |# R/ V5 v
  MASTER_RESET=0;( I$ T. V. K) r" b
  MASTER_RESET=0;
% O( O! P+ ^5 p2 G! W6 d  FSK_BPSK_HOLD =1; //多功能管脚
  c  K4 ]( |6 f& H4 B- W* {! U. G  SHAPED_LEYING =1;     //Must First Be Selected in the Programming Control Register& @- q, K! l: n( u: [4 C" P$ P9 y: Q
          //to Function. A logic high will cause the I and Q DAC outputs
0 V8 b% \3 z8 p, Z$ y  A* e8 }   //to ramp-up from zero-scale to full-scale amplitude at a preprogrammed; `$ }+ ]1 e- i9 ]' V
   //rate.Logic low causes the full-scale output to ramp-down
5 G* {1 \3 ]6 ^7 {  w/ t          //to zero-scale at the preprogrammed rate.
- }" x' Q2 C  r, G5 u6 E8 i  RDB_CSB=1;            //Active LOW. This pin is shared with RDB when
: z5 u2 ^8 |; C+ M7 |" C  WRB_SCLK=0;           //并行写数据时钟.低电平有效
- M* B: w% J) m# m/ u- A% k! V$ ~  IO_UP=0;              //数据写入准备
) @, E1 X1 _; V# f9 V, \  temp="0";         //表格首数据地址
% c- p* |# e1 Q; A% I8 E7 W. K9 r3 R          //AD9854 寄存器首地址
* i3 f5 z' a! b) G$ `, I5 u  for(i=0;i<40;i++)0 j+ Y+ i0 n4 h8 x: c
{  4 T: [6 c" Q! o7 u5 b1 |4 T
  HC_573_C=1;
" B" u* c1 w0 q! `" p( f9 U; g0 y9 _  P0=temp;  //送地址 / F8 @' m% P. j* `9 v
  HC_573_C=0;
, r& S. B" L; S$ E; ?- k$ G7 }) {                //取对应地址的数据1 J7 V; l$ g* Q% i  n
  ACC="TAB"_Data[i];7 z3 C3 a+ M, A1 s5 ~
  P0=ACC;
; m; r7 f5 y: T4 O  WRB_SCLK=0;
! O+ J/ Z3 ?3 C: C  WRB_SCLK=1;5 v5 D3 ^- b8 {7 j% f, `
  temp++;
9 Y& A- c) j" [5 I. Q4 {8 O  }
5 f( A$ C: ^% ]$ y1 \/ D' j; B  WRB_SCLK=1;         //关闭数据接收
2 j, @4 Z+ S* A0 s  IO_UP=0;5 w  Y2 u7 M) F7 N+ f' @
  IO_UP=1;9 l" \: E* |9 J' W$ x4 z
   }
% q- N1 ]5 g" \% P/**********************************************************************/, G) E' H) k% e6 [) D: ?( S6 R
void V_Int()
; j/ `' u+ Z! V/ W5 `  n* z& ~ {         
8 u3 _- D; Q# ?, _; R  unsigned char tempf;  //   HC_573_C=0 ;选通
2 ]6 J* Q2 c; ]2 q  MASTER_RESET=0;
. ^$ ^" m" b8 T. y# k$ x9 D+ D* E  RDB_CSB=1;
9 a3 m3 j$ w# [/ T  WRB_SCLK=0;9 D; \* m; d1 _5 g* S
  tempf="0X1F";   
* J1 H$ v* A0 b4 L  HC_573_C=1;          //选通地址5 \2 T# v* G8 T3 h/ X4 U# y
  P0=tempf;. t) z, c/ {1 x
  HC_573_C=0;          //关闭HC573
' j2 O  C. E" H  ACC="0X00";    , ~  T/ i6 y# s
  P0=ACC;     
" [# w$ h; H3 ?- F0 D  WRB_SCLK=0;+ q- l6 p" Q, @2 i, L
  WRB_SCLK=1;1 L/ b8 c: u8 `7 `# H1 {' N! @
  DLY_400MS();
4 ~( ?* x2 `8 J  WRB_SCLK=1;
5 u2 }5 s4 R. u) C. I2 w) ~  DLY_400MS();             ; }) e1 H6 j* {; E* F
  }   
! k. r* O9 Q% N# {0 ~+ {9 B# T 2 e  L$ o  o; g6 M! Z( Z
/**************************************************************************/
& ?3 t0 A  h; }7 W0 p. Dvoid DLY_400MS()6 j2 A5 Z$ S0 [; a% D: _# D0 j  X8 k
{ & o, L3 h0 J3 v6 T  Q+ V* q
unsigned char i,j;
! j( Q/ H6 |1 T% w for(i=0;i<90;i++)/ k  T1 ^: n1 Z: h' @
{8 F  ?  e, O$ ~5 k5 k! b' H
for(j=0;j<60;j++);% N9 Q# N) ~( a4 `
} ' R8 |  p! @4 ?) y! V  m
}
分享到:  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, 2024-10-23 19:29 , Processed in 0.072097 second(s), 32 queries , Gzip On.

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

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

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