日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言外部中断th0,帮忙看看void int0() interrupt 1 //采用中断0 控制节拍 { TH0=0xd8; TL0=0xef; n--; } 啥意思...

發布時間:2025/6/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言外部中断th0,帮忙看看void int0() interrupt 1 //采用中断0 控制节拍 { TH0=0xd8; TL0=0xef; n--; } 啥意思... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

幫忙看看void?int0()?interrupt?1?//采用中斷0?控制節拍?{?TH0=0xd8;?TL0=0xef;?n--;?}?啥意思0

/************************************************************************

[文件名] C51音樂程序(八月桂花)

[功能] 通過單片機演奏音樂

注意:通過了74HC14控制ULN2003 驅動芯片驅動蜂鳴器 *

/**********************************************************************/

#include

#include

//本例采用89C52, 晶振為11.0592MHZ

//關于如何編制音樂代碼, 其實十分簡單,各位可以看以下代碼.

//頻率常數即音樂術語中的音調,而節拍常數即音樂術語中的多少拍;

//所以拿出譜子, 試探編吧!

sbit Beep = P1^5 ;

unsigned char n=0; //n為節拍常數變量

unsigned char code music_tab[] ={

··············

void int0() interrupt 1 //采用中斷0 控制節拍

{ TH0=0xd8;

TL0=0xef;

n--;

}

void delay (unsigned char m) //控制頻率延時

{

unsigned i=3*m;

while(--i);

}

void delayms(unsigned char a) //豪秒延時子程序

{

while(--a); //采用while(--a) 不要采用while(a--); 各位可編譯一下看看匯編結果就知道了!

}

void main()

{ unsigned char p,m; //m為頻率常數變量

unsigned char i=0;

TMOD&=0x0f;

TMOD|=0x01;

TH0=0xd8;TL0=0xef;

IE=0x82;

play:

while(1)

{

a: p=music_tab[i];

if(p==0x00) { i=0, delayms(1000); goto play;} //如果碰到結束符,延時1秒,回到開始再來一遍

else if(p==0xff) { i=i+1;delayms(100),TR0=0; goto a;} //若碰到休止符,延時100ms,繼續取下一音符

else {m=music_tab[i++], n=music_tab[i++];} //取頻率常數 和 節拍常數

TR0=1; //開定時器1

while(n!=0) Beep=~Beep,delay(m); //等待節拍完成, 通過P1口輸出音頻(可多聲道哦!)

TR0=0; //關定時器1

}

}

總結

以上是生活随笔為你收集整理的c语言外部中断th0,帮忙看看void int0() interrupt 1 //采用中断0 控制节拍 { TH0=0xd8; TL0=0xef; n--; } 啥意思...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。