欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機T1定時器做音頻信號發(fā)生器 附程序
[打印本頁]
作者:
LYF6666
時間:
2018-12-16 15:29
標題:
單片機T1定時器做音頻信號發(fā)生器 附程序
利用T1控制發(fā)出1kHz的音頻信號
一、設計要求
1、利用定時器T1的中斷來使P1.7控制蜂鳴器發(fā)出1kHz的音頻信號。
2、系統(tǒng)時鐘頻率為12MHz。
二、技術路線
利用定時器T1的中斷來使P1.7控制蜂鳴器發(fā)出1kHz的音頻信號,驅(qū)動蜂鳴器發(fā)聲。系統(tǒng)時鐘為12MHz。方波音頻信號的周期為1ms,因此T1的定時中斷時間為0.5ms,進入中斷服務程序后,對P1.7求反。
三、系統(tǒng)原理圖
圖1-1系統(tǒng)原理圖
如圖1-1所示把晶振,復位按鍵以及一些外圍電路如圖連接,組成AT89C51單片機的最小系統(tǒng)。定時器T1中斷控制P1.7引腳輸出頻率1kHz的音頻信號,驅(qū)動蜂鳴發(fā)聲。
四、仿真圖
圖1-2系統(tǒng)仿真圖
五、源程序
#include<reg51.h> //包含頭文件
sbit sound=P1^7; //將sound位定義為P1.7引腳
#define f1(a)(65536-a)/256 //定義裝入定時器高8位的時間常數(shù)
#define f2(a)(65536-a)%256//定義裝入定時器低8位的時間 常數(shù)
unsigned int i=500;
unsigned int j=0;
void main(void)
{
EA=1; //開關中斷
ET1=1; //允許定時器T1中斷
TMOD=0x10; //TMOD=0001 0000,使用T1的方式1定時
TH1=f1(i); //給定時器T1高8位賦初值
TL1=f2(i); //給定時器T1低8位賦初值
TR1=1; //啟動定時器T1
while(1)
{ //循環(huán)等待
i=460;
while(j<2000);
j=0;
i=360;
while(j<2000);
j=0;
}
}
void t1(void) interrupt 3 using 0 //定時器T1中斷函數(shù)
{
TR1=0; //關閉定時器T1
sound=~sound; //P1.7輸出求反
TH1=f1(i); //定時器T1的高8位重新賦初值
TL1=f2(i); //定時器T1的低8位重新賦初值
j++;
TR1=1; //啟動定時器T1
}
六、總結
通過這次課程設計使我懂得了理論與實際相結合,只有理論知識是遠遠不夠的,只有把所學的理論與實踐相結合,才能提高自己的實際動手能力和創(chuàng)立思考的能力。同時在設計過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解不夠深刻,掌握得不夠牢固……通過這次課程設計之后,一定要把以前所學過的知識重新溫故。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1