标题: 单片机音乐喷泉程序 [打印本页]

作者: 2787282088    时间: 2017-3-16 22:11
标题: 单片机音乐喷泉程序
单片机音乐喷泉程序源码

  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 led7=P0^6;
  12. sbit led8=P0^7;

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



  16. uchar h1,date;
  17. unsigned char adval;
  18. void delay(uint z)
  19. {
  20.    uchar y;
  21.    for(;z>0;z--)
  22.    for(y=5;y>0;y--);
  23. }


  24. /***********读数模转换数据********************************************************/        
  25. //请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
  26.                                                 //  1  1  0 通道
  27.                                                 //  1  1  1 通道
  28. unsigned char ad0832read(bit SGL,bit ODD)
  29. {
  30.         unsigned char i=0,value=0,value1=0;               
  31.                 SCL=0;
  32.                 DO=1;
  33.                 CS=0;                //开始
  34.                 SCL=1;                //第一个上升沿        
  35.                 SCL=0;
  36.                 DO=SGL;
  37.                 SCL=1;          //第二个上升沿
  38.                 SCL=0;
  39.                 DO=ODD;
  40.                 SCL=1;           //第三个上升沿
  41.                 SCL=0;           //第三个下降沿
  42.                 DO=1;
  43.                 for(i=0;i<8;i++)
  44.                 {
  45.                         SCL=1;
  46.                         SCL=0; //开始从第四个下降沿接收数据
  47.                         value<<=1;
  48.                         if(DO)
  49.                                 value++;                                                
  50.                 }
  51.                 for(i=0;i<8;i++)
  52.                 {                        //接收校验数据
  53.                         value1<<=1;
  54.                         if(DO)
  55.                                 value1+=0x80;
  56.                         SCL=1;
  57.                         SCL=0;
  58.                 }
  59.                 CS=1;
  60.                 SCL=1;        
  61.                 if(value==value1)                                //与校验数据比较,正确就返回数据,否则返回0        
  62.                         return value;
  63.         return 0;
  64. }

  65. void penquan()          //PWM调压
  66. {
  67.     date=ad0832read(1,0);
  68.         
  69.     h1=(255-date);
  70.     out=0;
  71.     delay(h1);
  72.         if(h1>30) led1=1; else led1=0;
  73.         


  74. …………余下代码请下载附件…………
复制代码


下载:
单片机音乐喷泉.zip (1.05 KB, 下载次数: 82)

作者: zqy181818    时间: 2017-3-17 15:09
不错哦
作者: 绝版    时间: 2019-4-30 13:18
没有灯的效果




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1