找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5505|回复: 4
打印 上一主题 下一主题
收起左侧

单片机音乐喷泉电路与程序设计

[复制链接]
跳转到指定楼层
楼主
电路原理图如下:


单片机源码:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. //sbit out=P3^7;
  5. sbit led1=P0^0;
  6. sbit led2=P0^1;
  7. sbit led3=P0^2;
  8. sbit led4=P0^3;
  9. sbit led5=P0^4;
  10. sbit led6=P0^5;

  11. sbit LED1=P2^0;
  12. sbit LED2=P2^1;
  13. sbit LED3=P2^2;
  14. sbit LED4=P2^3;
  15. sbit LED5=P2^4;
  16. sbit LED6=P2^5;

  17. sbit led11=P1^4;
  18. sbit led12=P1^5;
  19. sbit led13=P1^6;
  20. sbit led14=P1^7;
  21. sbit led15=P3^0;
  22. sbit led16=P3^1;

  23. sbit led31=P3^2;
  24. sbit led32=P3^3;
  25. sbit led33=P3^4;
  26. sbit led34=P3^5;
  27. sbit led35=P3^6;
  28. sbit led36=P3^7;


  29. sbit SCL=P1^2;                //SCL定义为P1口的第3位脚,连接ADC0832SCL脚
  30. sbit DO =P1^3;                //DO 定义为P1口的第4位脚,连接ADC0832DO脚
  31. sbit CS =P1^0;                //CS 定义为P1口的第4位脚,连接ADC0832CS脚

  32. uchar h1,date;
  33. unsigned char adval;
  34. void delay(uint z)
  35. {
  36.    uchar y;
  37.    for(;z>0;z--)
  38.    for(y=5;y>0;y--);
  39. }


  40. /***********读数模转换数据********************************************************/        
  41. //请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
  42.                                                 //  1  1  0 通道
  43.                                                 //  1  1  1 通道
  44. unsigned char ad0832read(bit SGL,bit ODD)
  45. {
  46.         unsigned char i=0,value=0,value1=0;               
  47.                 SCL=0;
  48.                 DO=1;
  49.                 CS=0;                //开始
  50.                 SCL=1;                //第一个上升沿        
  51.                 SCL=0;
  52.                 DO=SGL;
  53.                 SCL=1;          //第二个上升沿
  54.                 SCL=0;
  55.                 DO=ODD;
  56.                 SCL=1;           //第三个上升沿
  57.                 SCL=0;           //第三个下降沿
  58.                 DO=1;
  59.                 for(i=0;i<8;i++)
  60.                 {
  61.                         SCL=1;
  62.                         SCL=0; //开始从第四个下降沿接收数据
  63.                         value<<=1;
  64.                         if(DO)
  65.                                 value++;                                                
  66.                 }
  67.                 for(i=0;i<8;i++)
  68.                 {                        //接收校验数据
  69.                         value1<<=1;
  70.                         if(DO)
  71.                                 value1+=0x80;
  72.                         SCL=1;
  73.                         SCL=0;
  74.                 }
  75.                 CS=1;
  76.                 SCL=1;        
  77.                 if(value==value1)                                //与校验数据比较,正确就返回数据,否则返回0        
  78.                 return value;
  79.         return value;
  80. }

  81. void penquan()          //PWM调压
  82. {
  83.     date=ad0832read(1,0);
  84.         
  85.     h1=(255-date);
  86.     delay(h1*16);
  87.         if(h1>120) {led1=1;LED1=1;led11=1;led31=1; } else {led1=0;LED1=0;led11=0;led31=0;}

  88.         if(h1>140) {led2=1;LED2=1;led12=1;led32=1; } else {led2=0;LED2=0;led12=0;led32=0;}

  89.         if(h1>160){led3=1;LED3=1;led13=1;led33=1; }  else {led3=0;LED3=0;led13=0;led33=0;}

  90.         if(h1>180) {led4=1;LED4=1;led14=1;led34=1; } else {led4=0;LED4=0;led14=0;led34=0;}

  91.         if(h1>200) {led5=1;LED5=1;led15=1;led35=1; } else {led5=0;LED5=0;led15=0;led35=0;}

  92.         if(h1>220) {led6=1;LED6=1;led16=1;led36=1; } else {led6=0;LED6=0;led16=0;led36=0;}
  93.                         
  94.         delay(date*16);

  95. }
  96. void main()
  97. {   
  98.    while(1)
  99.    {           
  100.                 penquan();                   //给定个延时次数                 
  101.    }
  102. }

复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:365089 发表于 2018-7-6 16:29 | 只看该作者
音频输入的那三个脚分别输入什么啊
回复

使用道具 举报

板凳
ID:555227 发表于 2019-6-5 07:36 | 只看该作者
请问如果去掉喷泉部分,只保留彩灯,程序应该是什么呢
回复

使用道具 举报

地板
ID:281113 发表于 2019-10-30 23:24 | 只看该作者
五个喷泉水珠如何做呢?
回复

使用道具 举报

5#
ID:600558 发表于 2019-12-20 14:39 | 只看该作者
水泵如何实现水柱高度不同?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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