|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机模拟低频DDS信号发生器系统仿真加源程序 DAC0832实现) ]' f" @. n% J" ^
% J/ ]$ w5 R6 y8 |* y) _
7 |) F& m" K, h E! Q4 f给论坛的朋友们分享一个用51单片机做的模拟低频DDS信号发生器系统,带proteus仿真工程文件加单片机源程序.
[- _" i9 G8 O* @0 l
: E y5 Z0 a2 t3 F! A5 ^ YDDS信号发生器的部分单片机源程序:1 O; F P( ]" V, R" k: w
# b% _1 n8 x9 d6 r
; U2 E; p7 X' h! d7 x+ `! Z#include "sin_dds.h"9 ]; [/ q# s, P
( G; B/ ]& x1 O. O2 r5 o! K! p6 P( c" @% R/ [2 Y
uchar i,j;
6 q4 }- u! g+ auint counter,step;4 ^9 u4 R1 A. Q' u3 d% Q* H% M6 I5 q
7 [2 E: y" r8 Z# s' |! F
7 C* F+ S' K9 k1 E3 \7 [: I
/**************定时器0初始化**********************************/: `3 @+ e, q0 |' I
void Init_Timer0(void)
( V6 W) D3 ]9 v2 j, I{7 O( D% T: G2 ]1 I# K, y
TMOD = (TMOD & 0XF0) | 0X01; //定时器0,方式1, B/ N* F: ^) ~# s' W
TH0 = 0xff; //定时器初值
5 g. J' O2 {5 p) _ TL0 = 0xff;
5 s! k0 N) H' d TR0 =1; //启动定时器0
/ U, y& \* z% c' R: t G" l, r0 ] ET0 =1; //开定时器0中断) F4 C# m. y2 D" W4 J/ k& K
}
9 p5 V. r0 w) A; {3 ?1 N
* ]+ n: l' ` |
2 N3 J/ J2 O$ r7 W; |/*************************主函数*********************************/! d* c3 o& d6 Q, S# u* w+ K
main()- @5 n0 G7 L h# x
{
6 Q. L1 n! ~1 C/ N2 [9 Z Init_Timer0(); //定时器0初始化. E% H& C1 p/ m( ~3 I% y3 m% U
step=2; //数值采样步数初始化1 D9 ]' c! W! C8 {1 {" f9 M
EA = 1; //CPU开中断/ w7 v' y* Q$ Q
while(1)
0 A1 x; L a h/ q$ U! S! x1 C3 N4 c {
& o* ]- B* g, } z* W if(key_up == 0) if(step<4096) step++; //数值采样步数加1,采样频率变高 ,正弦波周期变小+ W4 N: r. @% C7 C
if(key_dw == 0) if(step>1) step--; //数值采样步数减1,采样频率变低 ,正弦波周期变大
* K! h, a( }' \" R9 m3 Q4 M$ x2 T while((!key_up)||(!key_dw)); //若有一个键按下去,则正弦波周期始终保持不变 t- ]( }+ m7 F+ \. B. K- U& S( @
}
+ q: U2 j. F( o1 X N$ a5 e* o}
& Y9 I; D, W8 f! u/******************系统OS定时中断服务***************************/
0 i: ~* A, p7 z1 z* ]! Tvoid OS_Timer0(void) interrupt 1 using 2
4 F& a ]! ?2 X' F* `# k4 O1 T{
" F4 ~: e% r, l6 @! v TH0 = 0xff; //重装定时器初值9 m" Q: }0 G m# ~. t
TL0 = 0xff;
! k& F' u. l1 s! e, s2 k7 X counter = counter + step; //counter以step的步数递增9 G$ N! r3 S9 b! {0 g9 P( A
dac1=type[(unsigned int)counter>>8]; //当counter加满(256/step)次时,dac1的采样值变化一次# b P6 z7 x# u* d2 Q1 m6 p1 b5 I- g h
}: n- }) ]& j. a
# K9 R( Z9 \1 Z# d W
0 E( v4 Q; W' s2 `3 _9 Q; J p# e% M全部资料下载(含仿真工程文件和完整代码):7 `$ @2 [7 O. D& V3 E0 \
* u% z/ F& v! J$ T- b8 |; }4 ]
" y& T1 x, q9 u) B/ F* l |
|