找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 6247|回復: 4
打印 上一主題 下一主題
收起左側

單片機音樂噴泉電路與程序設計

[復制鏈接]
跳轉到指定樓層
樓主
ID:325844 發(fā)表于 2018-5-9 13: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 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模數轉換的串行協(xié)議,再來讀本函數,主要是對應時序圖來理解,本函數是模擬0832的串行協(xié)議進行的
  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 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:365089 發(fā)表于 2018-7-6 16:29 | 只看該作者
音頻輸入的那三個腳分別輸入什么啊
回復

使用道具 舉報

板凳
ID:555227 發(fā)表于 2019-6-5 07:36 | 只看該作者
請問如果去掉噴泉部分,只保留彩燈,程序應該是什么呢
回復

使用道具 舉報

地板
ID:281113 發(fā)表于 2019-10-30 23:24 | 只看該作者
五個噴泉水珠如何做呢?
回復

使用道具 舉報

5#
ID:600558 發(fā)表于 2019-12-20 14:39 | 只看該作者
水泵如何實現水柱高度不同?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表