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

標(biāo)題: 單片機控制蜂鳴器發(fā)出1~7音階 [打印本頁]

作者: 吧更符合個    時間: 2020-8-2 20:13
標(biāo)題: 單片機控制蜂鳴器發(fā)出1~7音階
這是關(guān)于51單片機驅(qū)動蜂鳴器的一個很簡單的代碼。主要功能是依次輸出 do re mi fa so la si,然后反復(fù)循環(huán)輸出。

單片機源程序如下:
  1. #include<reg52.h>
  2. /*反復(fù)輸出1~7七個音階*/
  3. typedef unsigned int u16;
  4. typedef unsigned char u8;
  5. sbit beep=P1^5;
  6. sbit led=P2^0;
  7. /*C調(diào)音符對應(yīng)的hz:1:523 1#:553 2:586 2#:621 3:658 4:697
  8.                    4#:739 5:783 5#:830 6:879 6#:931 7:987
  9.                                    根據(jù)T=1/f,單片機通過對beep的IO口反復(fù)跳轉(zhuǎn)電平從而輸出相應(yīng)的頻率
  10.                                    輸出的每一個脈沖的高電平和低電平時間都為T的一半
  11. C調(diào)音符對應(yīng)的小時間為:1:956;  2:853; 3:760; 4:717; 5:639; 6:569; 7:507;
  12.   關(guān)于節(jié)拍:設(shè)四分音符一拍等于400ms;則八分音符一拍等于200ms;十六分音符一拍等于100ms;                                            
  13. */

  14. int csign[]={956,853,760,717,639,569,507};
  15. int tho[]={0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfe};//高位定時器的值
  16. int tlo[]={0x44,0xab,0x08,0x33,0x81,0xc7,0x05};//低位定時器的值
  17. static u8 k=0;
  18. static int HT,LT;//高低位定時器的值
  19. void Time0_init()
  20. {
  21. TMOD|=0X01;
  22. TR0=1;
  23. TH0=HT;
  24. TL0=LT;
  25. ET0=1;
  26. EA=1;
  27. }
  28. void delay(u16 ms){u16 b;for(ms;ms>0;ms--)for(b=120;b>0;b--);}

  29. void main()
  30. {


  31. Time0_init();
  32. while(1)
  33. {
  34. HT=tho[k];
  35. LT=tlo[k];
  36. k++;
  37. if(k>6)k=0;
  38. delay(1000);TR0=0;
  39. delay(1000);TR0=1;
  40. }
  41. }

  42. void intf() interrupt 1
  43. {
  44. TH0=HT;
  45. TL0=LT;
  46. beep=~beep;
  47. }
復(fù)制代碼

hex文件51hei提供下載:
蜂鳴器輸出1~7音階.rar (18.83 KB, 下載次數(shù): 21)







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1