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

单片机音乐喷泉程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机音乐喷泉程序
' `$ w$ d1 R. W, X8 {/ @( \
+ g# M! n1 n- {4 O
, }% c5 P$ |5 Y) ~/ M: L& g- C" W
单片机音乐喷泉程序源码:
, f' |" M" p. U, V% t% \0 A) Q7 C4 c' n#include<reg51.h>
- [$ t# p8 Q) @6 h0 x: D& ^#define uchar unsigned char2 y; g5 Z& B, z6 S3 p0 k3 U
#define uint unsigned int
* W- E( ~" S, a4 s- P+ w4 msbit out=P3^7;# C: O1 x& U, z  V
sbit led1=P0^0;% F) j1 s- _; f4 d8 t+ g( f; o
sbit led2=P0^1;
6 J& {1 l" N- B: S# \, psbit led3=P0^2;
  I: M" b& _' p  `' Usbit led4=P0^3;
) ~, C- q3 |, E' v  Tsbit led5=P0^4;
3 v' e7 f8 b7 F4 Msbit led6=P0^5;' F) i$ N) c, R: n1 z+ P
sbit led7=P0^6;
) z# F" z8 S! U* F# m3 usbit led8=P0^7;
% H' \" P% z, I  P/ p% `5 n, _8 E

  J  j0 S( P1 [' L% ~sbit SCL=P1^2;                //SCL定义为P1口的第3位脚,连接ADC0832SCL脚' `, t# g& o8 K/ H# Q; d, X5 S: H
sbit DO=P1^3;                //DO定义为P1口的第4位脚,连接ADC0832DO脚$ g+ i& c: P, d: u) T' ]" E4 O: l9 J
sbit CS=P1^0;                //CS定义为P1口的第4位脚,连接ADC0832CS脚
) o1 E% d4 e3 r" K' U) o
) R, e. K! Z' M, x7 X6 C

) n! G; @$ `& r4 a, n' g0 `( t5 {2 }' @& x8 |
2 M/ |9 k0 Z/ I2 s  L& L, m

* B! {- r3 X1 `$ y! k3 x

8 B  I. \4 J$ D7 Buchar h1,date;
# \1 x" u: R& k; y. H+ n, Junsigned char adval;
+ Y1 w: O3 k+ K! Zvoid delay(uint z)$ t* C% {( D! ~+ }8 q* x$ Y, g
{1 k& j8 n, z& s( a) j
   uchar y;9 ^% }4 q7 A  z& C% \* q+ f* d
   for(;z>0;z--)- D1 @9 c) ]9 [
   for(y=5;y>0;y--);' |2 [/ k* P9 J; \
}
1 F  o4 d6 W% ]. P# P; g$ w5 `; Z$ d& b* O' g- V' {

; g# I& z# [* n: b1 p# I
8 m( k2 i+ v$ B' J

' W1 h3 N( s$ e7 r0 D) K* t+ i/***********读数模转换数据********************************************************/        , U8 `: ]' R$ b7 K% C) ~
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
2 N6 X! P! D9 i# N1 ?                                                //  1  1  0 通道
5 ]3 g! L* _: p  E) K* ]" f# C                                                //  1  1  1 通道
- Z+ R2 ]: h# u/ B; X! }+ H9 Kunsigned char ad0832read(bit SGL,bit ODD)$ k8 i2 L4 J8 a" Z
{
: i9 x( A: m0 \) o# U2 S. X        unsigned char i=0,value=0,value1=0;                1 }1 j4 W! N% M' Y" P0 ~- o
                SCL=0;0 b8 F' F; F& Y) A+ c
                DO=1;5 H6 c0 @% K, X% c
                CS=0;                //开始
7 ^& C& n5 y3 |; `                SCL=1;                //第一个上升沿        . ^$ |1 X7 G9 X; B
                SCL=0;
( d* }& w* }( f" b! ?' {# }3 f1 I                DO=SGL;
1 T; Y" I% ~& ]* Z( Y                SCL=1;          //第二个上升沿6 \5 G  G9 e9 |/ |% S+ S
                SCL=0;
+ Z) s. c% n' E, X1 ]                DO=ODD;
$ n7 y7 a( d. S+ S" k                SCL=1;           //第三个上升沿
% @/ v7 q7 O7 f                SCL=0;           //第三个下降沿
. }6 b9 @2 x( ~# {3 x) {) d* X                DO=1;9 {/ t6 X# g2 G
                for(i=0;i<8;i++)
9 I+ V' R2 {; \9 n4 N3 a& O                {
4 e, n! q8 v. [+ m1 w5 o2 Z                        SCL=1;! [% D: ^3 g6 l% h5 j) R! ~8 R8 `
                        SCL=0; //开始从第四个下降沿接收数据
& F5 [0 r. {# l! @                        value<<=1;
: Y1 [! \' e" ^% L9 i, `                        if(DO)9 R+ C* C; u3 E* P# T8 r/ z: ]- J! z
                                value++;                                                
% V, b& ~1 _, w0 b# _* ^1 `                }3 m9 @) X1 a1 r% e( y: s! @8 D+ ]
                for(i=0;i<8;i++)
/ I1 {, p$ W2 _. I$ J                {                        //接收校验数据7 ~8 y3 ?% Z/ d0 m: K9 R: K1 y
                        value1<<=1;
; \( p7 Q. ?9 ?( |( s/ o5 D6 R5 d; S                        if(DO)
: m( p9 g' @$ C1 i. w                                value1+=0x80;
6 F( R# p6 J) j' C: E                        SCL=1;  n! S! k. [+ F6 `3 ]/ _9 x
                        SCL=0;
7 l0 q' U$ Q7 W+ A( f/ q& o                }" ?8 ?5 `1 a; ]: _0 L9 c9 N
                CS=1;
5 q# m  s  Q7 ]                SCL=1;        5 b* Q. u- R3 Q4 Q# ]
                if(value==value1)                                //与校验数据比较,正确就返回数据,否则返回0        
9 R! ^  w+ L$ Y, z  L9 o: F0 N                        return value;
; v* u- e5 o  I/ B4 h        return 0;2 r* `$ [  I1 x& M% {; o
}
. L. y: m% Y) w5 K" h4 D
6 M  T' o) w% ~$ D% \

0 H0 t" ^9 L0 f+ |  {( [void penquan()          //PWM调压
- K- U1 T/ Q1 {0 O$ f  ?7 @{
. S2 i6 k6 i. B$ X! ]    date=ad0832read(1,0);
4 t% P: R- Q2 Z        . B( W2 {: y) O. _4 d+ M$ q9 @
    h1=(255-date);0 w1 D$ N/ ^5 a1 R4 Q* e
    out=0;
( @0 z& `, E% ]+ H2 f    delay(h1);
: [  ~+ w) U1 d% k! O        if(h1>30) led1=1; else led1=0;$ _4 ^/ d6 f0 ]" z
        
; i! @* Y; _" N9 X/ R# q( h
  F8 l, m3 x' B3 G, O

5 n- X( _, G( c7 v$ d$ f
& |: i% l/ M) Y5 p, M  B
# V1 r/ T# W% G, A& D; ^; F) w/ s
…………余下代码请下载附件…………4 h0 T9 l0 ^2 ~' H' o

0 q( l# Z8 r* ]- v下载:8 S; ~$ I$ {* D) V- @" D
游客,如果您要查看本帖隐藏内容请回复

6 D$ y$ l# [( d) ^" m
. [/ \4 H$ ^6 O) b& E" i: a1 ~

该用户从未签到

2#
发表于 2019-1-18 11:35 | 只看该作者
看看楼主的代码

该用户从未签到

3#
发表于 2021-5-27 13:54 | 只看该作者
看看代码,参考参考
+ r2 o6 @% p5 \# i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-4 10:42 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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