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

单片机音乐喷泉程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机音乐喷泉程序
/ d5 F$ h7 ^! s1 v& l3 D5 L9 {$ s9 b% @

% t. X6 z8 ~. G9 ]# E单片机音乐喷泉程序源码:
+ W. q5 c9 C+ j0 q; R#include<reg51.h>! N" {( v$ q8 Z. B9 W
#define uchar unsigned char5 D  y4 K' e5 g8 R2 e: d7 j  e
#define uint unsigned int4 Z1 u4 C& }# G1 o5 k3 A5 ^7 ^
sbit out=P3^7;) I' a& @- {1 ^0 L
sbit led1=P0^0;- M" y5 `! `1 o
sbit led2=P0^1;
$ f  z0 {' p7 {9 [- l6 O0 X7 csbit led3=P0^2;7 S5 y1 }9 M; Y2 U6 N, f5 j2 g$ q2 p
sbit led4=P0^3;4 \: |. X* x, r
sbit led5=P0^4;
3 j2 i4 X, O2 ^# @4 {sbit led6=P0^5;
' {& E! ]9 ?- S! ?& E1 M8 E2 Nsbit led7=P0^6;6 o0 a+ R: y$ E3 N1 l. k6 ]
sbit led8=P0^7;
, a+ v" Z$ v: c+ k6 S' }* E  u4 ^3 b' g; j& W
+ o( u" a( Z# i7 h* C6 r5 {
sbit SCL=P1^2;                //SCL定义为P1口的第3位脚,连接ADC0832SCL脚
, R+ x+ k5 s. r+ g8 C9 Osbit DO=P1^3;                //DO定义为P1口的第4位脚,连接ADC0832DO脚% |; ?0 v; J# y
sbit CS=P1^0;                //CS定义为P1口的第4位脚,连接ADC0832CS脚+ {2 Y9 h$ j, T+ ^- c5 r7 U, A' k" M

; Y, k) I' G0 H+ m0 y( q9 o! D

$ U6 j, G! Y) m2 @8 {- r, T6 h
6 i/ S3 \" ?+ r; {" S

( j& J( K6 w6 T% g* b/ v! R: D: A! {. k- x8 U

+ |+ B% S* e8 i( P8 U4 B+ b; I# zuchar h1,date;- }. B- o) D: x) P7 G7 u# c$ t
unsigned char adval;% D5 {! k$ G  v% X( [
void delay(uint z)
7 S: j8 y+ h" c, `{
. K3 {3 I# J! p1 p+ r7 B   uchar y;
, E2 V' U: R5 e/ T8 a) t# G   for(;z>0;z--)- ?7 P4 O" b# k% _- _3 W" ]1 j
   for(y=5;y>0;y--);
+ {$ w: \" d7 x6 c}; j) l  w4 G6 V) |  t7 S$ T- B0 c2 r
8 `# E7 u, U2 X4 X5 M8 F+ E

1 \' @7 U6 ]. }; b5 m0 k1 v2 _6 ?8 t% G1 B. D6 y

* Q+ }2 r$ a5 I, e/***********读数模转换数据********************************************************/        - ?& b. |( d, s8 K
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
' C# x! m4 P# o                                                //  1  1  0 通道5 D& ]. L4 V. f% n9 }
                                                //  1  1  1 通道
9 E6 t7 w% ~2 junsigned char ad0832read(bit SGL,bit ODD). }: {. @+ Z1 v7 o* I4 w
{. h! ]" Z6 H+ w6 {# D
        unsigned char i=0,value=0,value1=0;               
" U$ B- _$ y' d; y                SCL=0;8 K# F4 K3 P3 M. s4 S
                DO=1;: z* G) S1 J- x+ M: h
                CS=0;                //开始
2 e9 E# J' r* c  w                SCL=1;                //第一个上升沿        
& t8 y" N) e4 e                SCL=0;
, Q* S8 Y9 X  I6 X3 `7 a4 d3 x                DO=SGL;1 g3 }1 y* |0 j3 P5 h" s
                SCL=1;          //第二个上升沿  w. p1 M# ~2 B8 P6 @2 J
                SCL=0;' b; f2 ~, i0 r7 o5 Q% p! s' e
                DO=ODD;) P4 X0 S5 v& X  X$ d; }0 e
                SCL=1;           //第三个上升沿/ Z5 {9 B' w- ]" ~
                SCL=0;           //第三个下降沿
  m3 E) O* g& k: p, O+ M( H                DO=1;
% k9 E- g9 m3 |0 r1 D, Y- z0 `                for(i=0;i<8;i++)
0 F5 z3 g; i1 `! P                {
7 r- h+ x' y& h& n$ D# F2 e                        SCL=1;( u3 M, o% Z: Q9 p$ |& j
                        SCL=0; //开始从第四个下降沿接收数据: Y) i& Z) `6 M; G; C6 R
                        value<<=1;6 _( ]2 A: r1 v& n
                        if(DO)
  N8 w9 C: C7 o! g0 c* b                                value++;                                                
( u% O" `5 A) I4 @" z                }
' [8 `; H# M+ R3 M! x                for(i=0;i<8;i++)% }1 j2 ], m* T
                {                        //接收校验数据
1 n6 t) D: H9 w" E/ A                        value1<<=1;9 z6 v! v8 p; j! ?: x+ @0 S& ]! {" u3 ?
                        if(DO)
2 t* S0 I# v- M# O: R, w5 r  x                                value1+=0x80;
! ]! ^, K: t8 G. Z( k                        SCL=1;" ~+ ]2 _4 I, r( `2 q3 J$ f" R
                        SCL=0;& f$ [$ H  @; |
                }
' Z5 e: s: ^3 L) k% E5 @2 r4 U                CS=1;
# [& q( A. }1 K: h                SCL=1;        " d$ \4 ~: u, x1 h( P
                if(value==value1)                                //与校验数据比较,正确就返回数据,否则返回0        2 q% S, S3 F, O- @5 F4 @& f
                        return value;
3 |- T1 [1 F: B) X: e* ^2 b        return 0;
" S, X* c1 r1 T0 ?0 R/ m" h# p}+ k; `; ]  t" Q7 _

7 O1 z7 Y( M) K" m
3 @$ J; l6 P1 ]& _, w
void penquan()          //PWM调压+ H% t+ d; p% g* \
{
0 U. R! Z' g  A5 B2 }/ T4 a6 v    date=ad0832read(1,0);
( W5 K/ F: L9 U  F1 E3 f1 ~/ t+ w        
! M3 _: f/ r0 h$ Z6 q; s    h1=(255-date);- g; p; x/ G; Q/ W; s
    out=0;& h0 }2 [, x# a/ x& h
    delay(h1);
# S. W3 h% q4 _1 g; o        if(h1>30) led1=1; else led1=0;
6 K+ e5 @% g1 u# G( b        
& X4 r! N$ |! K, m
7 m/ x" D+ F4 K- @' s& l

7 k1 s2 q( s8 y9 B8 m6 G' }% O- ^$ D  s& T1 A" `, g( y0 ]: ~
6 O- o9 b0 p, K" ~! L& @% S0 z
…………余下代码请下载附件…………
) X# l8 {1 n0 u+ }0 V( P8 n' o
; m* h( ~( D7 U( e+ ~$ C; E& {/ O: J下载:& q% j- _4 g: W2 N
游客,如果您要查看本帖隐藏内容请回复

  z0 c' h2 Q0 f# T! f, \$ q6 h) g8 W9 z4 J  X9 u5 \

该用户从未签到

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

该用户从未签到

3#
发表于 2021-5-27 13:54 | 只看该作者
看看代码,参考参考
% W0 L4 G9 x3 F1 H
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-12 03:56 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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