|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机模拟低频DDS信号发生器系统仿真加源程序 DAC0832实现
6 O4 Q) M3 K( e9 `( B
3 R' M. O% R& r6 G; v9 b
$ t9 A5 c1 v6 ^$ a给论坛的朋友们分享一个用51单片机做的模拟低频DDS信号发生器系统,带proteus仿真工程文件加单片机源程序.8 m' o7 p/ Z; {6 h0 [
: D7 z& g* Y0 q$ f2 C! p0 F4 cDDS信号发生器的部分单片机源程序:
6 p6 R( k) Q9 E7 e+ T, O
) c: R3 E* I$ W2 P2 T5 B! x0 n2 r {. j) A. O2 l
#include "sin_dds.h"9 M5 V G$ _( f
+ l& a4 l9 H- B- E' @
5 e& q% @ S3 ^# Nuchar i,j;2 V7 Z5 w/ P9 T' ^
uint counter,step;- ?; y/ l2 p" q. l5 v
_# o4 d1 L8 Q1 D- a% D0 z. l& w& M$ e1 ~- M/ a
/**************定时器0初始化**********************************/
/ R% `# M& M4 Q8 G, Hvoid Init_Timer0(void); C w/ i$ `$ V: m2 R/ N6 x
{
3 l3 n0 `5 P8 g/ ] TMOD = (TMOD & 0XF0) | 0X01; //定时器0,方式1
6 M c/ o" n: |% u4 r3 ^ TH0 = 0xff; //定时器初值
3 ?# ^0 I P" ?8 |0 c TL0 = 0xff;
$ c+ P% ^7 `7 H TR0 =1; //启动定时器0: e' b1 e: a& T1 D5 O4 s
ET0 =1; //开定时器0中断
6 h) R6 G, c4 ?4 s}: Z; r) K1 j, Q: }. A
; j- z- [/ \) q0 X% e: T
. @6 y: n4 r5 b9 r; J s1 r/*************************主函数*********************************/5 L+ E9 Z* q9 |9 @! m
main()
2 d( c D5 [; ]6 Y9 H{
* `2 x; b/ L6 ~5 O4 g7 }2 [% b: l3 ^ Init_Timer0(); //定时器0初始化! |( F$ w" }' B& b% U+ ^
step=2; //数值采样步数初始化
9 [, `0 x! ~# w6 N$ F4 D EA = 1; //CPU开中断/ d6 \ t# z/ @1 j j. w7 c
while(1) $ I1 x% P' }; m6 T" g* o- Q# d/ @
{
* E& O* Z" S5 ?- u if(key_up == 0) if(step<4096) step++; //数值采样步数加1,采样频率变高 ,正弦波周期变小
7 p$ Q! I9 y: B' r a if(key_dw == 0) if(step>1) step--; //数值采样步数减1,采样频率变低 ,正弦波周期变大
/ |1 Z$ R g$ h- d& n- z6 K while((!key_up)||(!key_dw)); //若有一个键按下去,则正弦波周期始终保持不变' i0 K$ G- M/ r
}
7 B+ s. k2 T8 ?1 b$ z% l$ e8 B}. i3 W* [" t; Y& x1 T
/******************系统OS定时中断服务***************************/
3 J' {& n# I. d/ R# x+ cvoid OS_Timer0(void) interrupt 1 using 2+ P# d! C; f9 A
{ 7 y% a, T6 [7 ~3 M9 ~
TH0 = 0xff; //重装定时器初值# D* ^( X3 h3 O P, @
TL0 = 0xff;
& L0 W+ b6 Q, {: R$ T' i2 B counter = counter + step; //counter以step的步数递增
* |8 [6 T; o4 _5 `! E/ o dac1=type[(unsigned int)counter>>8]; //当counter加满(256/step)次时,dac1的采样值变化一次& k2 h5 J7 F5 s! t1 w5 v
}
$ h( f; J8 f- q; _ C! C2 Q. E6 b! W" v
& v# b4 A: e) R+ |8 @
全部资料下载(含仿真工程文件和完整代码):
/ v5 h$ C0 ~! l8 y3 Q. t0 o$ L p7 p. Q# e1 v/ M5 V8 ^
: m) _+ l" o8 o9 H |
|