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

单片机音乐喷泉程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机音乐喷泉程序; E5 b$ `+ s9 e" J: k6 x! f- ]

' w6 h# G8 q1 z6 ^
  _+ @8 p2 c  q5 r
单片机音乐喷泉程序源码:( k* H1 h+ M5 n( e6 r1 W
#include<reg51.h>
  L% q. D  M6 D' Q2 h2 Y6 u#define uchar unsigned char
- P6 I' z3 t4 P3 h6 G' j#define uint unsigned int
& D3 ]) v9 ]; ~$ Fsbit out=P3^7;- \- R% Z0 c0 i# t0 p
sbit led1=P0^0;
  ~5 w' n; Y5 |) bsbit led2=P0^1;
1 ~2 q: x' M1 usbit led3=P0^2;
+ a6 t  h7 I# M+ h! w( B9 }$ asbit led4=P0^3;
5 t/ w# M$ y0 t0 M* A" d- {$ Z% `sbit led5=P0^4;) w, d! R1 K! r' o$ Z
sbit led6=P0^5;
" J* P. E8 ~& W# R' k! Wsbit led7=P0^6;7 s: I7 I. l% J2 X9 D3 X+ C
sbit led8=P0^7;
8 A, P8 v* x" ^$ K
+ z2 [( u4 E8 ]( X& n" Y
4 [, G- P4 \; U* i+ L8 L. K
sbit SCL=P1^2;                //SCL定义为P1口的第3位脚,连接ADC0832SCL脚$ R; \2 B( s  E/ q
sbit DO=P1^3;                //DO定义为P1口的第4位脚,连接ADC0832DO脚
/ p% I6 @+ B3 {* hsbit CS=P1^0;                //CS定义为P1口的第4位脚,连接ADC0832CS脚( V" a0 X0 v* s' ~% k& e

6 z( w# q9 }5 C( W' H$ R5 y

+ Y; T- x2 U' r+ Z+ E6 W, a# Z. v" b4 Z' @: W) g! f

) C& M) Y$ K! u; a+ k: H/ `7 d( Q  S2 X* y

7 w" C; J" p; r2 Q/ G# E/ Xuchar h1,date;" v9 v: `1 e6 w" n2 M+ _. N
unsigned char adval;3 f8 }% K8 l: v- x/ n, ^
void delay(uint z)$ _* A4 z" q: \4 \6 Z* T
{- M/ @4 F0 i7 I9 c! o3 d
   uchar y;6 A' W& E* c/ K9 K" s( n
   for(;z>0;z--)& O% X% s3 d2 h. D2 \
   for(y=5;y>0;y--);
3 x5 e5 m+ c" R5 F( `4 M}
* {+ K- s. ?5 P5 O3 G  s
. Y+ X8 Y4 d$ ~: L
8 F; e8 ^( G; m& w% P( T- \

# u) ]' A& w* ~1 @$ g

2 R, T7 S1 w4 G* {; O1 J/ }/***********读数模转换数据********************************************************/        2 l. v& l! F% t5 N# [3 u/ r
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的8 ?8 X8 g2 L3 Z( S! D# d% G# G
                                                //  1  1  0 通道6 i: W5 w7 a, N
                                                //  1  1  1 通道
5 C" J: m6 W6 E. _* vunsigned char ad0832read(bit SGL,bit ODD)1 z$ A. `+ T9 w; L5 X! v
{
% K& Q. w; c3 ^        unsigned char i=0,value=0,value1=0;               
: L5 k. G8 o% w# m2 c. t                SCL=0;/ s, Z- w6 }" y$ v, @  I
                DO=1;
# X2 Y. d; L  O2 k: D3 ~3 ]                CS=0;                //开始2 L/ S- \, O$ ~: {9 u+ E6 W
                SCL=1;                //第一个上升沿        4 [: A" D+ o2 n2 y
                SCL=0;
: t, ~! R) h( M, G. Z4 P) e+ F                DO=SGL;/ Y& P2 Q0 {- w
                SCL=1;          //第二个上升沿
! s  j3 A4 G8 T7 J5 t/ v                SCL=0;
1 F7 t% Y4 M8 e: _6 P: W- ^                DO=ODD;0 O) W/ ^1 G  M9 z$ ~
                SCL=1;           //第三个上升沿
) l3 _' M4 i5 V6 O! `( _8 x- b                SCL=0;           //第三个下降沿
' y9 A" _; _& X0 i: ^1 I: @% ^& L- Z                DO=1;
4 s) \. G) [/ r1 B' ]                for(i=0;i<8;i++)
: `3 Y0 U" c+ W# M# U, ~3 m                {0 }: ^) B5 L! G9 ^8 a4 K
                        SCL=1;
& l3 F6 j& D0 z3 t6 ^. ?# U                        SCL=0; //开始从第四个下降沿接收数据
! M! [! v6 G9 b$ X. t9 i                        value<<=1;4 M  R+ i2 u+ `9 P: ^" u! v
                        if(DO)
, I# {- |2 b- _4 j! t1 r; K                                value++;                                                * {- A: ?3 s- i  P1 B3 A1 F
                }
8 J4 n* t  d' @1 I' L$ H                for(i=0;i<8;i++)
- V5 @  g: R7 _4 M! j, e; T, W; C# ^                {                        //接收校验数据* Q9 n$ Z" h* b0 s5 f3 ^4 @
                        value1<<=1;
& M1 f) P: |9 [1 M1 e. K                        if(DO)
/ g: y- L5 b* T4 W7 ~) t2 l                                value1+=0x80;8 |4 V0 W6 r( u- Y5 h/ D
                        SCL=1;- F* T6 _: Y2 p5 f7 \  r
                        SCL=0;+ C' U9 X9 y* i2 W  L+ k: R
                }
2 X2 e, Y3 G( `; u0 m; x8 |# R                CS=1;
: G% D0 D, F6 j0 ^5 h1 X) C                SCL=1;        ; m9 f  r& u+ ?' e& K
                if(value==value1)                                //与校验数据比较,正确就返回数据,否则返回0        7 L. m7 T- p2 E4 t9 l
                        return value;8 T0 V- w4 p( S( F
        return 0;
" K8 |+ N2 j" u, z) x9 |! ?. x6 p}. a0 G* ^6 R; x+ L6 P
1 L: L& z3 E  ~9 K' V, e7 a, k
5 @0 X! O# ~8 @% `; e
void penquan()          //PWM调压, \0 M% e4 V4 N2 ?, h# o( O- B
{/ ~, m2 w3 a( u, |+ l7 R" C
    date=ad0832read(1,0);* W' G. z8 @/ B- V7 g6 A2 Z
        
# b8 K9 U: X( v5 V    h1=(255-date);
% H% R' P. U! f" I! P    out=0;( u2 Z4 V& ~5 J1 U! o) P
    delay(h1);
* W' K1 |  A5 u- k- G. O        if(h1>30) led1=1; else led1=0;7 i1 i% s! D, Q. I( _# G
        
' E- p; C7 l1 @# |. F3 ?
- x4 N6 i. F& c" e1 M: k

) y4 M" m% q, x+ s  a0 b  p& L" d2 t  F. J- R

) L' k  E8 F# e7 {! B…………余下代码请下载附件…………
  p  p, A, g, N( Z* u- m
' s( c' t7 H- J& v下载:. Z- G- c6 X" t' ~$ ~
游客,如果您要查看本帖隐藏内容请回复

. j$ z- I. N: ~: ~0 s
1 X+ G2 s, h) i4 o

该用户从未签到

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

该用户从未签到

3#
发表于 2021-5-27 13:54 | 只看该作者
看看代码,参考参考
" d9 |1 h+ H) ?  X0 n9 C3 L9 `6 t
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-26 11:20 , Processed in 0.187500 second(s), 26 queries , Gzip On.

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

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

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