欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12857|回復: 12
收起左側

51單片機音樂噴泉原理圖+源程序

  [復制鏈接]
ID:306990 發表于 2018-12-17 13:33 | 顯示全部樓層 |閱讀模式
這是我之前做的一個基于51單片機的音樂噴泉
附有原理圖
0.png

單片機源程序如下:
  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 scale;
  17. uchar m;
  18. uchar h1,date;
  19. unsigned char adval;
  20. void delay(uint z)
  21. {
  22.    uint y;
  23.    for(;z>0;z--)
  24.    for(y=5;y>0;y--);
  25. }

  26. /***********讀數模轉換數據********************************************************/       
  27. //請先了解ADC0832模數轉換的串行協議,再來讀本函數,主要是對應時序圖來理解,本函數是模擬0832的串行協議進行的
  28.                                                 //  1  1  0 通道
  29.                                                 //  1  1  1 通道
  30. unsigned char ad0832read(bit SGL,bit ODD)
  31. {
  32.         unsigned char i=0,value=0,value1=0;               
  33.                 SCL=0;
  34.                 DO=1;
  35.                 CS=0;                //開始
  36.                 SCL=1;                //第一個上升沿       
  37.                 SCL=0;
  38.                 DO=SGL;
  39.                 SCL=1;          //第二個上升沿
  40.                 SCL=0;
  41.                 DO=ODD;
  42.                 SCL=1;           //第三個上升沿
  43.                 SCL=0;           //第三個下降沿
  44.                 DO=1;
  45.                 for(i=0;i<8;i++)
  46.                 {
  47.                         SCL=1;
  48.                         SCL=0; //開始從第四個下降沿接收數據
  49.                         value<<=1;
  50.                         if(DO)
  51.                                 value=value|0x01;                                               
  52.                 }
  53.                 for(i=0;i<8;i++)
  54.                 {                        //接收校驗數據
  55.                         value1=value1>>1;
  56.                         if(DO)
  57.                                 value1=value1|0x80;
  58.                         SCL=1;
  59.                         SCL=0;
  60.                 }
  61.                 CS=1;
  62.                 SCL=1;
  63.                 DO=1;       
  64.                 if(value==value1)                                //與校驗數據比較,正確就返回數據,否則返回0       
  65.                         return value;
  66.                 return 0;
  67. }

  68. void penquan()          //PWM調壓
  69. {
  70.         date=ad0832read(1,0);
  71.         if(date>130&&date<=200)
  72.         {
  73.                 scale=(date-100)/10+2;
  74.                 if(scale>10)
  75.                 scale=10;
  76.         }
  77.        
  78.         else if(date>200)
  79.         scale=10;
  80.         else if(date<=130)
  81.         scale=0;
  82.         if(date>=0&&date<130) P0=0xfe;
  83.         else if(date>=130&&date<140) P0=0xfc;         
  84.         else if(date>=140&&date<150) P0=0xf8;
  85.         else if(date>=150&&date<160) P0=0xe0;
  86.         else if(date>=160&&date<170) P0=0xe0;
  87.         else if(date>=170&&date<180) P0=0xc0;
  88.         else if(date>=180&&date<200) P0=0x80;
  89.         else if(date>=200) P0=0x00;
  90. //        if(date>120) led1=0; else led1=1;
  91. //        if(date>130) led2=0; else led2=1;
  92. //        if(date>140) led3=0; else led3=1;
  93. //        if(date>150) led4=0; else led4=1;
  94. //        if(date>160) led5=0; else led5=1;
  95. //        if(date>170) led6=0; else led6=1;
  96. //        if(date>180) led7=0; else led7=1;
  97. //        if(date>200) led8=0; else led8=1;
  98.         delay(300);
  99. }

  100. void init()
  101. {
  102.         TMOD=0x01;
  103.         TH0=0xfc;
  104.         TL0=0x18;
  105.         ET0=1;
  106.         TR0=1;
  107.         EA=1;
  108. }
  109. void main()
  110. {
  111.    init();
  112.    while(1)
  113.    {       
  114.                 penquan();                   //給定個延時次數        
  115.    }
  116. }

  117. void T0_time() interrupt 1
  118. {
  119.         TH0=0xfc;
  120.         TL0=0x18;
  121.         m++;
  122.         if(m<scale)
  123.         {
  124.                 out=0;
  125.         }
  126.         else
  127.         {
  128.                 out=1;
  129.         }
  130.         if(m>10)
  131.         {
  132.                 m=0;
  133.         }
  134. }
復制代碼

所有資料51hei提供下載:
1-程序V1.0.rar (21.04 KB, 下載次數: 188)
原理圖.pdf (60.16 KB, 下載次數: 138)


評分

參與人數 1黑幣 +10 收起 理由
任夕畫 + 10

查看全部評分

回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:540071 發表于 2019-5-17 17:41
畢業設計參考一下

無效樓層,該帖已經被刪除
ID:726982 發表于 2020-4-11 16:39 來自觸屏版 | 顯示全部樓層
這原理圖,可以直接在protues打開用嗎
回復

使用道具 舉報

ID:726982 發表于 2020-4-11 17:23 來自觸屏版 | 顯示全部樓層
樓主,這protues仿真有沒
回復

使用道具 舉報

7#
無效樓層,該帖已經被刪除
ID:762095 發表于 2020-7-22 11:41 來自觸屏版 | 顯示全部樓層
景帝劉啟 發表于 2020-4-11 16:39
這原理圖,可以直接在protues打開用嗎

proteus.不能打開PDF格式文件,所以打不開的,這個原理圖簡單,自己畫也是很快就畫好的
回復

使用道具 舉報

ID:559084 發表于 2020-11-29 21:30 | 顯示全部樓層
一年后才看見,不知道樓主還在沒
回復

使用道具 舉報

ID:846386 發表于 2020-12-2 00:01 | 顯示全部樓層
技術知識不錯,學習了
回復

使用道具 舉報

ID:399179 發表于 2020-12-20 20:32 來自觸屏版 | 顯示全部樓層
正想做一個,謝謝樓主無私奉獻!
回復

使用道具 舉報

ID:898721 發表于 2021-3-30 20:05 | 顯示全部樓層
快樂眼淚 發表于 2020-12-20 20:32
正想做一個,謝謝樓主無私奉獻!

終于找到了,感謝樓主分享
回復

使用道具 舉報

ID:810127 發表于 2021-4-12 21:18 | 顯示全部樓層
這個是用AD繪制的圖嗎,有沒有proteus繪制的圖啊
回復

使用道具 舉報

ID:908878 發表于 2021-5-8 08:28 | 顯示全部樓層
我想問一下,你這代碼實現的彩燈變化是什么形式的啊?
回復

使用道具 舉報

ID:995475 發表于 2021-12-21 23:40 | 顯示全部樓層
樓主,還在嗎?能不能分享你的Proteus圖
回復

使用道具 舉報

16#
無效樓層,該帖已經被刪除
17#
無效樓層,該帖已經被刪除
ID:1025314 發表于 2022-5-10 11:44 | 顯示全部樓層
為啥程序中的中斷程序沒有用到呢?
回復

使用道具 舉報

ID:1025314 發表于 2022-5-10 11:45 | 顯示全部樓層
樓主,為啥程序中的中斷程序沒有被調用,能解釋一下嗎?
回復

使用道具 舉報

20#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

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