標(biāo)題: 硬之城教你用51單片機(jī)制作一個(gè)門鈴的方法 [打印本頁(yè)]

作者: lsdjgdjg    時(shí)間: 2017-7-11 14:38
標(biāo)題: 硬之城教你用51單片機(jī)制作一個(gè)門鈴的方法

51單片機(jī)應(yīng)用實(shí)例

當(dāng)按下開關(guān)SP1,AT89S51單片機(jī)產(chǎn)生“叮咚”聲從P1.0端口輸出到LM386,經(jīng)過放大之后送入喇叭。

電路原理圖


系統(tǒng)板上硬件連線

(1. 把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0端口用導(dǎo)線連接到“音頻放大模塊”區(qū)域中的SPK IN端口上;

(2. 在“音頻放大模塊”區(qū)域中的SPK OUT端口上接上一個(gè)8歐或者是16歐的喇叭;

(3. 把“單片機(jī)系統(tǒng)”區(qū)域中的P3.7/RD端口用導(dǎo)線連接到“獨(dú)立式鍵盤”區(qū)域中的SP1端口上;

程序設(shè)計(jì)方法

(1. 我們用單片機(jī)實(shí)定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生700HZ和500HZ的頻率,根據(jù)定時(shí)/計(jì)數(shù)器T0,我們?nèi)《〞r(shí)250us,因此,700HZ的頻率要經(jīng)過3次250us的定時(shí),而500HZ的頻率要經(jīng)過4次250us的定時(shí)。

(2. 在設(shè)計(jì)過程,只有當(dāng)按下SP1之后,才啟動(dòng)T0開始工作,當(dāng)T0工作完畢,回到最初狀態(tài)。

(3. “!焙汀斑恕甭曇舾髡加0.5秒,因此定時(shí)/計(jì)數(shù)器T0要完成0.5秒的定時(shí),對(duì)于以250us為基準(zhǔn)定時(shí)2000次才可以。

C語(yǔ)言源程序

#include <AT89X51.H>

unsigned char t5hz;

unsigned char t7hz;

unsigned int tcnt;

bit stop;

bit flag;

void main(void)

{

unsigned char i,j;

TMOD=0x02;

TH0=0x06;

TL0=0x06;

ET0=1;

EA=1;

while(1)

{

if(P3_7==0)

{

for(i=10;i>0;i--)

for(j=248;j>0;j--);

if(P3_7==0)

{

t5hz=0;

t7hz=0;

tcnt=0;

flag=0;

stop=0;

TR0=1;

while(stop==0);

}

}

}

}

void t0(void) interrupt 1 using 0

{

tcnt++;

if(tcnt==2000)

{

tcnt=0;

if(flag==0)

{

flag=~flag;

}

else

{

stop=1;

TR0=0;

}

}

if(flag==0)

{

t7hz++;

if(t7hz==3)

{

t7hz=0;

P1_0=~P1_0;

}

}

else

{

t5hz++;

if(t5hz==4)

{

t5hz=0;

P1_0=~P1_0;

}

}

}



作者: hdhgd    時(shí)間: 2017-7-11 15:01
這個(gè)非常非常的好~
作者: euteug    時(shí)間: 2017-7-11 15:02
給力,送你一朵鮮花
作者: yidfhg    時(shí)間: 2017-7-11 15:03
我覺得說得很有道理的
作者: dshfds    時(shí)間: 2017-7-11 15:06
很好很給力,期待更多
作者: hfsdh    時(shí)間: 2017-7-11 15:07
很好很給力,期待更多精彩
作者: gjdgjkd    時(shí)間: 2017-7-11 15:09
謝謝樓主的分享。。。
作者: faridzled    時(shí)間: 2017-7-11 15:57
thanks for sharing
作者: asusyt    時(shí)間: 2017-7-12 08:24
SP1開關(guān)另一端是接地嗎?




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