EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机C语言基础编程源码八则
2 g- {' W9 M0 \" | w# A
4 a2 }0 U) a" [7 |" F8 r2 i8 Y% {- S% E
1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直到0,然后再从0逐渐增大,一直这样输出。试编写一函数,使从P2口输出的值产生三角波,并且使三角波的周期和最大值通过入口参数能够改变。 #include<absacc.h> ) E9 F# }3 {# Y% p! x" j: C
#define DAC0832 XBYTE[0x7FFF]: s, Q% X8 c2 _/ o$ i3 S
void san(unsigned char max1,unsigned char zhou1)
. d) y! v( y: |, F8 @, _{5 A3 E1 v c7 l$ o) H5 c; |2 j' {
unsigned char i,j,max,zhou;6 _3 U2 J* ^1 O+ u5 h2 }& t+ e( v
max=max1;" P- ?" |2 z* U2 e
zhou=zhou1;
. l6 |6 z8 l) l$ gwhile(1)
( s: U9 i0 m( b; h {/ L8 g( b4 \* q3 O' h9 |
for(i=0;i<=max,i++)! @* _. a' p4 _
{: p/ } k1 s+ W/ W% c+ S3 g! `
DAC0832=i;
8 G" @5 ~, N; R6 @. a" R9 b for(j=0;j<zhou/max;j++)2 e1 ^, H# n i7 d/ v
delay();! @5 _1 l& c" t1 @; e* k
}
/ ^* g7 U2 O' Q+ {! ? for(i=max-1;i>0,i--)1 X3 z- g: |+ c; B2 r
{
& H+ d; v7 e! M3 H) f DAC0832=i;
, }% r4 C4 o. l% } for(j=0;j<zhou/max;j++)4 k* x' H4 F2 v+ @
delay();+ O# L0 _! v' E, Q W
}
) `9 }+ x A+ V* H; ~; {: O. z$ p0 ~/ P% p}7 U) ?+ D5 x1 J H0 \8 O9 f
& j" e7 q# a$ S) k6 R8 B8 h
7 P( n8 ~) z* r% ~- D' K2 ~0 L
9 L+ a @5 N" U9 u' B& ~- [ |