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

单片机音乐喷泉程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机音乐喷泉程序9 V7 Q5 b# m- Z# T
* S6 Q- x$ V+ |9 i
/ J% L  k* J  W7 r% J- G: H' ?
单片机音乐喷泉程序源码:: c7 o! O6 @5 t
#include<reg51.h>. X! a4 o! ?0 v4 }9 y, I4 ~$ I
#define uchar unsigned char
3 M" G/ t( j! y' k1 G" r, n% s#define uint unsigned int
; z1 I  e' M: qsbit out=P3^7;
0 `9 V7 Y5 i) Zsbit led1=P0^0;
& u9 _5 r- b: L0 a& N) I9 xsbit led2=P0^1;
4 |4 B  d% L4 Q) h7 ^sbit led3=P0^2;
0 O7 z# }; A& @: l# Bsbit led4=P0^3;. ^/ ?% n# u, m/ ~
sbit led5=P0^4;' k: v) g3 a' T4 ^
sbit led6=P0^5;2 S! q, y/ y3 k$ E, o
sbit led7=P0^6;
+ b' e# ?7 j1 e9 J  Qsbit led8=P0^7;
9 m: {8 c3 W( ^: T0 \# H! w8 B0 c0 [2 J. t
" s8 I/ R! k5 C  y' u
sbit SCL=P1^2;                //SCL定义为P1口的第3位脚,连接ADC0832SCL脚
6 W) s7 E3 q: p4 `5 h4 esbit DO=P1^3;                //DO定义为P1口的第4位脚,连接ADC0832DO脚
9 V& M1 x8 G8 l4 J' {: @2 Wsbit CS=P1^0;                //CS定义为P1口的第4位脚,连接ADC0832CS脚  x$ e7 W: O% B4 T1 F3 I# r% o

0 }- _3 m) i' A. Z
. }4 T4 m% G7 a' S8 Y
& {* @! h( T# {) Z: G1 Y0 j) P
9 N6 d) H3 f& }  w' x
6 f7 \$ D, R7 Y$ R/ z" _, o, v

' l8 ^) `. G" a. P/ X" A& Euchar h1,date;" H$ d" C( D% v/ B
unsigned char adval;- M, U# j& f& a; }$ w! t; a+ C
void delay(uint z)# T0 Z( g/ d. C$ `
{
' C% O! q- o" x   uchar y;
9 w! u; ~" V% `3 V9 o7 R8 y   for(;z>0;z--)( U# x$ Y8 j) r! ]
   for(y=5;y>0;y--);+ W, `8 I1 X  M% I# c" y* I7 j  \$ ~
}2 [/ n5 U, G& E

' d4 q: z- L% O% ]
6 K. \: `6 m3 D& h$ H

1 \9 U5 g% Q" s4 e
& i4 A+ G% g8 y& h: y
/***********读数模转换数据********************************************************/        
8 M3 v% G5 U# h/ W4 R# o//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的6 u4 j+ ?; m0 ~" q$ e# k
                                                //  1  1  0 通道
- t' K& M& o7 i  w$ j                                                //  1  1  1 通道
( y6 Y1 a; ]) k" iunsigned char ad0832read(bit SGL,bit ODD)$ t& z5 l0 N( U; {9 }" H% h
{" |# R9 u5 c4 ~7 l/ t. x+ _
        unsigned char i=0,value=0,value1=0;                # T- s1 Q& p. z# b8 P
                SCL=0;
9 }8 A! h4 ?4 a; }8 d2 C+ [' a                DO=1;- d5 f5 P8 n- l: i9 C0 P
                CS=0;                //开始4 B$ s3 A" V5 B$ U
                SCL=1;                //第一个上升沿        
" F; c3 ]) k8 t2 Q' }% n: i4 r- E; {                SCL=0;
6 [; g% |, G( `8 }5 S# @- j                DO=SGL;( v1 h5 f  M# @1 f
                SCL=1;          //第二个上升沿
6 j$ ]/ q2 p# L, L& ]                SCL=0;
7 v' L  N. _$ ~                DO=ODD;
1 v- v5 d0 M5 F" A1 Q# V0 v                SCL=1;           //第三个上升沿
6 f1 X0 {% B) N. c- }" w                SCL=0;           //第三个下降沿/ K$ x8 W2 P8 q: w3 J
                DO=1;1 ^2 }5 a9 |! `+ e+ @, C2 R
                for(i=0;i<8;i++)
) J' Q" ^$ W/ Q+ i                {
- ^# x7 Y' Z& I                        SCL=1;, l4 ^; J# C6 ?, v2 E0 L4 m
                        SCL=0; //开始从第四个下降沿接收数据
* f: [* w  f- s/ X, k, B                        value<<=1;
& X  r- m0 G5 `$ a0 E: g                        if(DO)* u- j5 H" h4 ?/ R0 k% ?( o: |2 ?7 r
                                value++;                                                * M( n6 v! W) w( F' G
                }7 J. J7 ?: w  Y; u3 w$ N' i: E
                for(i=0;i<8;i++)
; A' m& L4 m7 {/ e2 y8 f                {                        //接收校验数据
) m# q7 {' T$ `$ F: `4 ^                        value1<<=1;# C4 w- z: H5 Q& ~4 r0 V
                        if(DO)
$ P9 n4 F+ l+ A                                value1+=0x80;
1 s, X& d8 \+ ]3 Y/ a) C                        SCL=1;5 B. U7 U  c, F+ h- S7 G
                        SCL=0;1 y! y7 q2 u' w( r( R. o! U
                }* X/ O- ^6 S) f+ f( H1 j, @
                CS=1;( S$ Y: v# d, K; K" Y; v" |( R
                SCL=1;        ; d  O4 W$ ~' {" u; j$ y
                if(value==value1)                                //与校验数据比较,正确就返回数据,否则返回0        5 @/ x$ O. d" s/ b6 w# z# D
                        return value;
. B( K& S, k: j        return 0;% i9 L- j. q7 d( K
}; a4 y6 L2 g1 e8 }! f/ J

" G. u5 h1 L4 `- C6 Y

8 ?$ w% {8 T& Q7 r& uvoid penquan()          //PWM调压( B, h) P6 m' U  @' C+ G5 h5 L/ V$ v
{
: g3 W# ?- L4 c! V    date=ad0832read(1,0);
7 r9 {6 w& k- a        5 o4 N) \7 Q( R/ [  ?! t
    h1=(255-date);
5 @" B- _4 a0 N% e    out=0;; ]" `0 {! {+ N
    delay(h1);
) V$ f& t/ E& D% P        if(h1>30) led1=1; else led1=0;* h2 `4 t- i: Q& T* V) r1 ?- D
        
' j1 d. y1 h# b1 d7 ^/ C  n
( R4 Z2 g0 I+ ~9 V6 a; Y! C
" o: w  v' _, m
; Q8 W. D8 T% {
: J2 Y  y7 m$ s' _) d8 R
…………余下代码请下载附件…………6 Q+ }+ ?/ ~' Z8 w/ f) J0 r0 p: ?

4 L; V' B2 ]" g下载:' y0 t  w/ k; S  ?
游客,如果您要查看本帖隐藏内容请回复

  {9 P4 j8 G9 W  G  D
6 r. S$ @/ g& c, J

该用户从未签到

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

该用户从未签到

3#
发表于 2021-5-27 13:54 | 只看该作者
看看代码,参考参考9 W1 m, o0 V* K8 {
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-2 19:23 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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