用單片機(jī)控制蜂鳴器的實(shí)驗(yàn)電路
}
//主程序
voiDMAin(void)
{
TMOD=OxOl;//將定時(shí)器0定義為16位定時(shí)器
THO=Oxfe://初始化定時(shí)器0的計(jì)數(shù)寄存器
TLO=OxOC;
ETO=1;//使能定時(shí)器0中斷
EA=1;//使能單片機(jī)中斷
TRO=1;//啟動(dòng)定時(shí)器0
//循環(huán)語(yǔ)句,
For(;;){ }
【注1】定時(shí)器0被定義為16位定時(shí)器,因?yàn)镾TCl2C54lO是8位單片機(jī),所以16位定時(shí)器的計(jì)數(shù)器高8位存在THO寄存器中,低8位存在TLO寄存器中,初始化時(shí)要分別寫入;
【注2】程序中將定時(shí)器0的16位計(jì)數(shù)器初始化為OxfeOc,累加499次為Oxffff,再加1就會(huì)溢出產(chǎn)生中斷,即累加500次產(chǎn)生一次中斷。因?yàn)闀r(shí)鐘頻率為12MHz,每12個(gè)時(shí)鐘周期累加1次,累加1次的時(shí)間為1Vs,500次的時(shí)間為500μs(0.5ms),所以每0.5ms會(huì)產(chǎn)生一次中斷;
【注3】定時(shí)器0溢出后的16位計(jì)數(shù)器為OxOOOO,如果不重新初始化,要累加65536次才能再次溢出產(chǎn)生中斷,所以要在中斷服務(wù)程序中重新初始化16位計(jì)數(shù)器為OxfeOc,以保證累加500次后仍能溢出產(chǎn)生中斷。
手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理 蜂鳴器相關(guān)文章:蜂鳴器原理 電流傳感器相關(guān)文章:電流傳感器原理
評(píng)論