加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

51单片机音乐喷泉设计音乐盒源代码

2020/04/22
385
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(2)
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

功能实现通过ADC0832芯片对音频信号的采集,转换为数字信号单片机,然后PWM脉冲宽度调制控制水泵水柱对的高低

//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的

// 1 1 0 通道

// 1 1 1 通道

unsigned char ad0832read(bit SGL,bit ODD)

{

unsigned char i=0,value=0,value1=0;

SCL=0;

DO=1;

CS=0;//开始

SCL=1;//第一个上升沿

SCL=0;

DO=SGL;

SCL=1; //第二个上升沿

SCL=0;

DO=ODD;

SCL=1; //第三个上升沿

SCL=0; //第三个下降沿

DO=1;

for(i=0;i<8;i++)

{

SCL=1;

SCL=0; //开始从第四个下降沿接收数据

value<<=1;

if(DO)

value++;

}

for(i=0;i<8;i++)

{//接收校验数据

value1>>=1;

if(DO)

value1+=0x80;

SCL=1;

SCL=0;

}

CS=1;

DO=1;

SCL=1;

if(value==value1)//与校验数据比较,正确就返回数据,否则返回0

return value;

return 0;

}

void penquan() //PWM调压

{

date=ad0832read(1,0); //读取ad值

h1=(255-date);//转换

out=0; //水泵清零

delay(h1);

if(h1>70) led1=1; else led1=0; //ad值对比 点亮相应的灯

if(h1>80) led2=1; else led2=0; //ad值对比 点亮相应的灯

if(h1>90) led3=1; else led3=0; //ad值对比 点亮相应的灯

if(h1>100) led4=1; else led4=0; //ad值对比 点亮相应的灯

if(h1>110) led5=1; else led5=0; //ad值对比 点亮相应的灯

if(h1>115) led6=1; else led6=0; //ad值对比 点亮相应的灯

if(h1>120) led7=1; else led7=0; //ad值对比 点亮相应的灯

if(h1>130) led8=1; else led8=0; //ad值对比 点亮相应的灯

out=1; //关闭水泵

delay(date); //延时时间

}

void main()//主函数

{

while(1)

{

penquan(); //给定个延时次数

}

}

  • 2、源程序(C语言含详细备注).zip
    描述:代码
  • 其他参考资料.docx
    描述:其他相关资料

相关推荐

电子产业图谱