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

单片机音乐喷泉程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机音乐喷泉程序3 f& c( a' I3 [% t

. Y7 j7 H  R8 G

6 t2 ?) N$ ?; c% M- o% O单片机音乐喷泉程序源码:
4 c) E2 ?# W5 `8 d" J9 |  c0 Y: s#include<reg51.h>, I! H+ R5 H/ o8 O
#define uchar unsigned char
* i- [1 G4 C7 q3 S* \#define uint unsigned int
! l8 S- X2 F- Q: `/ y# xsbit out=P3^7;
% W3 H! b8 M6 {, A2 v# R2 R; {. Esbit led1=P0^0;
6 C/ A; `2 M, w! w+ f' ]/ hsbit led2=P0^1;/ ?, i) i8 @5 |; x" Z2 [  h# ^9 G
sbit led3=P0^2;* {$ |1 z0 w* a0 A
sbit led4=P0^3;
7 o& `, b" O0 x1 H1 L2 A4 L' l. g) Zsbit led5=P0^4;
6 Q! c/ Q( U# F4 T3 T, ]# y* ksbit led6=P0^5;
0 A" x1 g' V/ Ksbit led7=P0^6;
) J4 n+ N4 y7 x2 [( msbit led8=P0^7;
+ B. t' F+ Y8 K5 e6 h3 i: f5 d8 a+ T9 q7 U" o# H
4 F5 l. G# Z0 X2 U
sbit SCL=P1^2;                //SCL定义为P1口的第3位脚,连接ADC0832SCL脚
, i' L' r$ M) z! Y7 S& qsbit DO=P1^3;                //DO定义为P1口的第4位脚,连接ADC0832DO脚$ W) I' N) n  b$ r
sbit CS=P1^0;                //CS定义为P1口的第4位脚,连接ADC0832CS脚2 m1 x: C& W# R- |7 W, B
1 Y) N$ G0 p9 b2 ~3 R; s0 p

+ x9 O# W2 @& R; [; M) t! K; s9 U/ y8 [
+ ?' z6 R6 V% K4 _* u0 z: X
8 F1 ?3 _" @+ r9 [/ ?( ^
) v, l6 g' {5 |. s# z+ v0 U# `) X! a
uchar h1,date;# z; p, B: j0 I1 I6 ?1 d" q# L
unsigned char adval;8 H; h* X- @1 U! m6 s
void delay(uint z)
$ Z+ |% h6 `. c6 z+ g% H' \0 L' \{, p  F- m- a4 T
   uchar y;
- A. I* Z$ {! X( j) u   for(;z>0;z--)7 a6 M! S" i' |, |
   for(y=5;y>0;y--);
& H6 F7 a4 e2 i% |: Q  t. j}
, z, R0 p6 _, p& t" [  q+ u4 {6 S( R
+ K: e  Y- v: Z' W2 x8 [2 P1 V

- n( t0 r) {0 ?, u; J
# ?4 c  p' k; ?( {( O; l7 C5 |7 R
/***********读数模转换数据********************************************************/        
7 c8 H9 F5 a  u: V9 j  B2 t- }( f//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的+ G2 V: H6 ~) f" i- {6 Q
                                                //  1  1  0 通道7 ~; t7 p% b, x1 [6 K: b% _
                                                //  1  1  1 通道 * s' _4 u0 a5 f: u+ [, C
unsigned char ad0832read(bit SGL,bit ODD)! {2 s+ i2 D7 x9 {$ J/ z0 u8 k
{! W4 E% X  f( }' k
        unsigned char i=0,value=0,value1=0;               
! y: I9 ^- V/ W/ A. d                SCL=0;
& G. Q! l$ ~- q                DO=1;: b2 E, U8 ?' G( N
                CS=0;                //开始
8 g- M' D4 ~# x4 E# S' |* K, A* v: R; D                SCL=1;                //第一个上升沿        
  m7 \- z! X. {6 v; t                SCL=0;5 z, E  s" t: S# `
                DO=SGL;
$ O9 d1 ~8 |6 N+ t                SCL=1;          //第二个上升沿
& ]& r  T) ]3 |# a$ |+ C                SCL=0;
& k6 ]# w- ?5 \( [0 K! ?1 b7 @' B/ d                DO=ODD;9 r, \8 P) w" J, J4 z6 c4 T
                SCL=1;           //第三个上升沿( g0 A: `2 n1 i# U
                SCL=0;           //第三个下降沿6 Z5 s$ r: y$ l- u3 [  g
                DO=1;* Z, D9 j, y6 H' ~% \+ F4 {% i- D
                for(i=0;i<8;i++)
. Y% x; L) P  h' a# d                {
% h* K. A; B9 f- t, n+ L                        SCL=1;) t: h$ {( t6 j( P. o2 ?
                        SCL=0; //开始从第四个下降沿接收数据2 K" x) P( u5 Z8 \" k# @! q
                        value<<=1;
0 {( G. u- v6 P7 [- H                        if(DO)3 K. D/ w) V. Y
                                value++;                                                
: n0 W+ I8 c; k+ j5 h$ z) C' V                }
' N7 \0 x$ Z! E  k! v4 p                for(i=0;i<8;i++)
/ T! A3 `) w& }. m2 C                {                        //接收校验数据
/ w& a: L' ?  T                        value1<<=1;
  k' T/ ^- W' [. Y) I# R                        if(DO)4 e! V6 z  d, X) }1 h4 U3 \
                                value1+=0x80;3 g/ W" {4 @  g8 O
                        SCL=1;# r+ w5 v2 X7 _- S( O
                        SCL=0;
( N" }; u! [4 L: s+ }) E$ p5 c$ g                }& L) k' j: D+ O$ x
                CS=1;
. N( @7 l) _; K' M                SCL=1;        ' H! N6 W; k8 ^" o/ v8 j- C& I9 ^
                if(value==value1)                                //与校验数据比较,正确就返回数据,否则返回0        * p, J$ C# s3 w  Z% C! u4 t1 o
                        return value;# m# d: X2 f% O7 s
        return 0;5 C0 Y! l2 q4 X
}
2 p' k# L8 w  P# r* n5 r4 G- `, ]* g4 r' f  A' |# G
  o& c. [/ U0 e" x" s
void penquan()          //PWM调压5 f5 l8 P% P4 ?* X3 s% o
{
" a5 y. ?5 @! G6 }  G+ x    date=ad0832read(1,0);
. T% r8 V% @- Z/ n5 E# M9 b7 q        
& n5 F# R4 M/ ^/ R    h1=(255-date);& k9 Y% D9 P6 X0 {! g5 F. T
    out=0;1 r; }* F6 U  s2 I
    delay(h1);
6 T- A; y! z7 V        if(h1>30) led1=1; else led1=0;
3 m# u+ ?: k3 N" R        
- m8 P. N; O; L3 f, T
* v- `# k2 A( q8 A# P

* Y) P1 a5 N/ x$ H6 ^7 N: _8 Y  Y3 C, V2 S' b# b( ~

2 Y) J  D5 ^) `, d+ [/ P) \…………余下代码请下载附件…………
! T9 c% Y9 P# w, D0 m4 {6 J4 d3 V9 ~) ?% _3 ]+ ?. l( D* s
下载:
+ V. Q) c/ Z) q
游客,如果您要查看本帖隐藏内容请回复
6 v1 V1 z! O+ z3 o1 n! Q

3 u5 p* ]4 K* m4 p/ r' {3 m

该用户从未签到

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

该用户从未签到

3#
发表于 2021-5-27 13:54 | 只看该作者
看看代码,参考参考
: ^4 S! q7 J& t( h
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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