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

单片机音乐喷泉程序

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
单片机音乐喷泉程序" N$ l! w1 J( `& F* i( }
8 M; X$ y8 A2 R# F/ [& Q1 J

0 z+ I  u1 {+ ^单片机音乐喷泉程序源码:: a' A  Y& {3 I$ E8 P
#include<reg51.h>7 K6 l$ D+ g4 X& i, s0 [! ^) w
#define uchar unsigned char( Y* v- }3 T$ x* G% Z
#define uint unsigned int- A; E% @. c9 E& `' D6 P7 V$ Z
sbit out=P3^7;- ~/ G6 g2 x" Z+ ?  ^( v0 R4 P
sbit led1=P0^0;9 _; T# h( W. \8 l) m5 u1 l
sbit led2=P0^1;3 {+ f" `* k0 X# E. v" t! Y9 l4 q
sbit led3=P0^2;. \2 }: u; m9 J/ b/ j* Y
sbit led4=P0^3;
' `* ~. s" J$ j9 B1 T, [  xsbit led5=P0^4;
. W1 }% n7 v) t+ V+ X$ w6 Lsbit led6=P0^5;
0 W8 S& D9 R% Z; p9 n, Q8 e" nsbit led7=P0^6;
3 [$ `9 u6 i) usbit led8=P0^7;: g" h, I( i5 g* H* s+ R4 \9 t

( e  n% w/ p) a9 a
; p+ W4 P% t3 k6 |5 X, i
sbit SCL=P1^2;                //SCL定义为P1口的第3位脚,连接ADC0832SCL脚  B0 j: R$ Q! n0 \; U1 I, |8 y$ w5 ]
sbit DO=P1^3;                //DO定义为P1口的第4位脚,连接ADC0832DO脚
6 I& e. w) j0 {9 @+ y5 `sbit CS=P1^0;                //CS定义为P1口的第4位脚,连接ADC0832CS脚1 o& ?3 x/ B: {- i2 @8 h  p. m

+ l. S9 ?: R/ u
0 b3 Q$ ?, y9 K) \$ p- R
7 J+ A. h) k( K* {$ s
  A  {6 x* t- T9 }6 Z# Z
% |( ^- J6 F4 A$ X$ ?
0 l0 g5 u+ G$ `2 J
uchar h1,date;
9 }1 g6 [* Y/ i) z9 Zunsigned char adval;% E! G4 g1 u3 P
void delay(uint z)+ m/ n0 E" s! v/ k: O+ \7 d* d: `
{- L2 J$ r: s: w# _/ r  ^+ j9 n4 D
   uchar y;
; B: y  R# s( y6 P6 }7 j   for(;z>0;z--); n1 o1 a2 q: N+ s, ~6 g1 Y
   for(y=5;y>0;y--);3 L% R; w/ f5 v5 u. y
}
5 b1 h& z4 p3 s& @# M! P  O' ]
6 s$ J% ]9 P; R$ W

2 \9 r4 l3 q: r: D# A' L1 u" I& u: U% y
8 r- r; z) u8 n4 a  k* P2 r
/***********读数模转换数据********************************************************/        $ M' p3 s2 ]% ?4 R
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
# z. _2 r" o! J4 m1 N                                                //  1  1  0 通道
8 h) }9 k  ~% X& r$ E                                                //  1  1  1 通道 ( E& J% Y" c, ?5 D6 m
unsigned char ad0832read(bit SGL,bit ODD)0 X, q3 z/ o+ v, D
{6 V6 m7 S7 ~# a* K/ _
        unsigned char i=0,value=0,value1=0;                  B9 W% q" o9 A; z5 [
                SCL=0;" x& a0 Q) o) c' V' a. h9 c+ c
                DO=1;
( r. k3 Z# O, ?7 Y                CS=0;                //开始/ A/ M5 c4 y$ o( j
                SCL=1;                //第一个上升沿        1 ~  R( s/ ^) Y" K% e9 w5 ]
                SCL=0;4 [! f4 w, o" b' B* m
                DO=SGL;7 m- ]# w1 Q* @
                SCL=1;          //第二个上升沿: }5 l- Q1 e# o2 m( P: T
                SCL=0;
! k8 N1 F' _& t( D5 c! ]/ h                DO=ODD;
) o7 n4 M- _: Z3 p! K' y                SCL=1;           //第三个上升沿/ E$ K0 |- u* l
                SCL=0;           //第三个下降沿+ P+ g; t! [+ k* @- [
                DO=1;
5 i7 G4 H1 \) ?1 }) V3 e* K# e                for(i=0;i<8;i++)
2 E5 K0 F& u4 G* \, l                {
3 x6 g7 d5 q- k7 m; m: Q                        SCL=1;3 G" R% @$ D8 C7 y) ]5 X3 C9 I
                        SCL=0; //开始从第四个下降沿接收数据
9 g$ X! ]6 b/ e; q" B* L. Q* B3 C. H                        value<<=1;0 z+ a% [% t  h9 w1 U
                        if(DO)( A% B# ~" B) d5 k1 H
                                value++;                                                : C8 j5 ?, m9 W. y  F
                }
; L" Y9 n' h2 W. }4 `+ d: x                for(i=0;i<8;i++)
) B! ^' `& E4 r& C) ?$ o                {                        //接收校验数据9 X1 |' M# [1 p' G: t6 X
                        value1<<=1;2 J3 Z8 k5 L$ s' F( }) z2 L
                        if(DO)
" ^" S8 {. Q! i/ A                                value1+=0x80;  N/ K  P0 e% q
                        SCL=1;
2 J0 l3 @9 w' N8 Q  Q/ a                        SCL=0;
% Y6 Y, c3 O& H( d3 |3 j5 ~                }1 u0 q9 s1 W' n! Z5 t! A
                CS=1;, {5 |. l$ h. U( G& T
                SCL=1;        
. H: d6 H! `7 P) f                if(value==value1)                                //与校验数据比较,正确就返回数据,否则返回0        
; b  I9 u( J: q7 T+ y' U                        return value;! \. D6 H7 q( _# R4 @8 O' G
        return 0;
- r. N6 |9 d, k+ C}
5 @% U2 U" p, }0 ~1 f  w
1 Z0 N  y$ S5 F! `- E5 E0 W
* W4 U' O4 f1 k: ~5 V2 i$ D7 {
void penquan()          //PWM调压
4 v) l  r% X; F- K* G; d' [{* C  M. R) L7 l* D# [
    date=ad0832read(1,0);
# Q3 [! ^. h- V; i" _# G2 {+ n# w        9 ^& I: z1 J0 H! v" j" a
    h1=(255-date);
1 d9 x  O) B' r( i; N    out=0;/ b* T, I: A" N4 c0 c9 l# h
    delay(h1);
7 O. K) T& w7 R4 p        if(h1>30) led1=1; else led1=0;; u& ^1 E. r7 f7 n
        
4 D) w+ J5 U! w0 d
9 C1 B0 R  G; @# D

) v/ @& x8 D( h; v2 J. p) y' b/ r" ]$ ^2 A0 K: }
+ Y9 J' b* K# E) g6 G( h) g- i/ y: o
…………余下代码请下载附件…………  I# w0 O* e2 W( ^" U: n

  t- a$ b8 I! c; U  O5 F下载:6 x/ N/ {8 E$ z; _6 ]
游客,如果您要查看本帖隐藏内容请回复
; ?- S1 D% b  N9 A" ?

* m% |4 y2 }: @; H& {1 n" r& O

该用户从未签到

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

该用户从未签到

3#
发表于 2021-5-27 13:54 | 只看该作者
看看代码,参考参考
$ V! b. p2 u4 e2 h; D, u
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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