找回密码
 注册
关于网站域名变更的通知
查看: 881|回复: 3
打印 上一主题 下一主题

单片机音乐喷泉程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-18 07:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
单片机音乐喷泉程序  J& p  s( F) r& B# B9 v7 f0 A" m: a
8 e# R* W2 w" p9 d1 Z4 Z8 x4 `

$ ^( h# W0 [/ \6 e" q! l9 x单片机音乐喷泉程序源码:
' s% S; [; \' Y+ `# S: ]#include<reg51.h>
# ?6 U0 O5 H7 y#define uchar unsigned char
8 K! @6 w, C/ K; h, k6 y$ x#define uint unsigned int
4 f7 X9 I1 u; r' ?sbit out=P3^7;% P( `1 r1 j6 M( U2 `# o" C' m. T5 d
sbit led1=P0^0;) H9 L( ], P% W$ h+ I: d
sbit led2=P0^1;, z* s: \9 J/ H0 N: H+ i; z# b
sbit led3=P0^2;
- e2 L" K6 f$ P; g6 Tsbit led4=P0^3;, F6 `1 D% x* R
sbit led5=P0^4;
: j. c. S7 P5 p$ M1 W7 ], F" N, c' Zsbit led6=P0^5;7 q- J5 P& l6 ]; @% A, d% R1 ~0 ~/ U4 j
sbit led7=P0^6;: x1 \& [; R1 u$ ~
sbit led8=P0^7;' \4 v' p7 [8 j* R" B6 @

2 ~8 I4 N1 y4 s
. }# R, G# f4 O6 i7 U! P
sbit SCL=P1^2;                //SCL定义为P1口的第3位脚,连接ADC0832SCL脚5 M( p+ j" n3 C+ d; k6 T6 |* `
sbit DO=P1^3;                //DO定义为P1口的第4位脚,连接ADC0832DO脚; `! n+ v( d+ _5 \4 c
sbit CS=P1^0;                //CS定义为P1口的第4位脚,连接ADC0832CS脚
. [& d2 L$ t( M6 l( @
, N' \* i6 M7 ?/ q- d9 Q* }

" |9 _* w& O5 R- V- e, _& k  _" U  }! S+ E8 b' C' o: S8 z

7 @6 W" P8 T( @8 h9 Y3 U+ i6 h# _4 ~0 r, ~0 m( G

8 c1 y6 V( ^0 z0 s6 Auchar h1,date;0 M% W  F$ I; R
unsigned char adval;
4 n0 \1 @+ n1 t- g) g" T1 lvoid delay(uint z)8 o$ ]: E! q4 j" n3 X) }+ G
{4 U$ L: ^9 X- J2 C
   uchar y;+ ]1 ~& Q7 _& v$ T- Q6 t# f: L
   for(;z>0;z--)* R( y0 W8 w* W9 i
   for(y=5;y>0;y--);
0 d' t, E/ A) n* l}
2 C( m/ G7 G1 o* c2 I8 k
9 m) ~4 D  B  n" Y& ~5 E
; b- H1 s+ Y, i& A
3 A: O5 _  X7 C7 {) \

$ e6 C& z0 A2 H& R, Y  p- |/***********读数模转换数据********************************************************/        ! j1 p# ?- I9 Z" p$ j" |
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
8 E# m. z. r1 b& ]  X& ]                                                //  1  1  0 通道7 O+ _% p0 s- R  k9 x5 u% x
                                                //  1  1  1 通道 & A4 T$ M3 X% G! e& |
unsigned char ad0832read(bit SGL,bit ODD)
! X# B% ?2 M5 m{
- O/ z+ P5 h3 L, X        unsigned char i=0,value=0,value1=0;               
; a$ ^6 q* b- ?- f! Q0 h1 ]  k" d                SCL=0;: S/ a" ?! Y4 b
                DO=1;+ ^' z# y& r! ]$ P0 Q* |( w
                CS=0;                //开始
( y4 u  Z, A. B                SCL=1;                //第一个上升沿        
! d; H/ c6 p* J& u+ L% U' H  A$ o                SCL=0;! P9 O# k# n  q
                DO=SGL;
3 e3 [8 N9 s6 q- a9 J                SCL=1;          //第二个上升沿
2 z7 X% t# |$ j! x                SCL=0;
$ ?7 K1 D% I0 ]: r5 W/ X                DO=ODD;
+ e# Z7 }/ f# A4 F- p- \                SCL=1;           //第三个上升沿
# ?: C% u; O% i0 o                SCL=0;           //第三个下降沿4 o" u" S) b6 c; v8 M
                DO=1;8 V( _  P1 g; y
                for(i=0;i<8;i++)
+ q0 Z8 c" I5 d8 i                {8 Q3 s0 z4 d' x
                        SCL=1;
( w. K7 A" X. u$ [) t                        SCL=0; //开始从第四个下降沿接收数据3 S2 V. W( i) f: l6 J3 i. I
                        value<<=1;
8 {. t' Z3 E. N+ e0 P% N  u% g                        if(DO)9 }& N' b6 Q' }& S+ h% o
                                value++;                                                , h% s  T7 D9 `: b, O" {0 e7 T
                }6 t! I3 R+ A3 c) |4 T0 }, b& t( T
                for(i=0;i<8;i++)3 |, ]$ w7 `& c# b$ Q( `5 R
                {                        //接收校验数据5 [& h  k  n. l& Y  U
                        value1<<=1;! T. s. p- P! ~  h0 S: Y" y8 h
                        if(DO)5 g; S8 f7 K3 g+ D/ r' O1 e3 `
                                value1+=0x80;
1 {; M6 ^) z1 I  s4 I2 C. C' i                        SCL=1;
! g* c  R+ T" ]# j0 b/ {( t                        SCL=0;
6 h$ r6 ~' n! e8 D5 R                }1 T: r$ m7 G$ R2 b
                CS=1;
" ]% M* Y9 M2 ^  e, b                SCL=1;        : O; [' w3 V# n& _) x" q9 J
                if(value==value1)                                //与校验数据比较,正确就返回数据,否则返回0        2 c9 [* ?5 J8 g4 z
                        return value;' f6 p3 Y, Q. _9 a# u" q: `, N
        return 0;! w% [# Q6 R7 R2 x
}7 q$ C+ f4 Q7 Y1 A& {

- f8 r6 A* |; G. E) Y! {
- A% x0 s2 T" r% p2 ^' O& ^. i6 A2 V
void penquan()          //PWM调压5 P# w6 h. ]! s+ o
{
) X! P2 }- I  o    date=ad0832read(1,0);7 X& B  E9 {8 _! Z9 X% [
        
7 W" E: i0 I! D5 F7 k4 }7 k    h1=(255-date);# A# V1 Q# Y. q0 M/ P
    out=0;; X' I) }( P. t( ?( x5 E
    delay(h1);
$ R# Z8 e& Y+ d3 |/ s9 o        if(h1>30) led1=1; else led1=0;" q5 J+ U7 F  G. k
        * b! C5 A0 m, B/ n/ }) f. v
- }/ D: d. D' [% n; H% M  g
, W) f6 K, k* h3 B" B" t6 _

' X$ s. D. _: A5 J+ r

2 e$ p* D% r( b! K…………余下代码请下载附件…………
1 o6 S* _! O0 D' F( j+ @% V- U. Y- l" Y0 {  h1 a" R1 q& E
下载:
/ S7 A8 W8 `: G
游客,如果您要查看本帖隐藏内容请回复

* z( {$ t) b& I+ ]/ z6 K5 F. v4 u( R( }" x2 C: ?5 Q

该用户从未签到

3#
发表于 2021-5-27 13:54 | 只看该作者
看看代码,参考参考
  R. ]! H7 u' q

该用户从未签到

2#
发表于 2019-1-18 11:35 | 只看该作者
看看楼主的代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-26 13:31 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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