欧美极品高清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)輸出。
單片機源程序如下:
#include<reg52.h>
/*反復(fù)輸出1~7七個音階*/
typedef unsigned int u16;
typedef unsigned char u8;
sbit beep=P1^5;
sbit led=P2^0;
/*C調(diào)音符對應(yīng)的hz:1:523 1#:553 2:586 2#:621 3:658 4:697
4#:739 5:783 5#:830 6:879 6#:931 7:987
根據(jù)T=1/f,單片機通過對beep的IO口反復(fù)跳轉(zhuǎn)電平從而輸出相應(yīng)的頻率
輸出的每一個脈沖的高電平和低電平時間都為T的一半
C調(diào)音符對應(yīng)的小時間為:1:956; 2:853; 3:760; 4:717; 5:639; 6:569; 7:507;
關(guān)于節(jié)拍:設(shè)四分音符一拍等于400ms;則八分音符一拍等于200ms;十六分音符一拍等于100ms;
*/
int csign[]={956,853,760,717,639,569,507};
int tho[]={0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfe};//高位定時器的值
int tlo[]={0x44,0xab,0x08,0x33,0x81,0xc7,0x05};//低位定時器的值
static u8 k=0;
static int HT,LT;//高低位定時器的值
void Time0_init()
{
TMOD|=0X01;
TR0=1;
TH0=HT;
TL0=LT;
ET0=1;
EA=1;
}
void delay(u16 ms){u16 b;for(ms;ms>0;ms--)for(b=120;b>0;b--);}
void main()
{
Time0_init();
while(1)
{
HT=tho[k];
LT=tlo[k];
k++;
if(k>6)k=0;
delay(1000);TR0=0;
delay(1000);TR0=1;
}
}
void intf() interrupt 1
{
TH0=HT;
TL0=LT;
beep=~beep;
}
復(fù)制代碼
hex文件51hei提供下載:
蜂鳴器輸出1~7音階.rar
(18.83 KB, 下載次數(shù): 21)
2020-8-2 20:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1