最好還買一小塊萬用電路板,用于固定門鈴按鈕開關。當然也可用其他東西固定。
以下工具是必不可少的,記得買它們:電烙鐵,焊錫絲,松香等。
接下來我們便開始做了,大家根據電路圖縣把接線接好。有幾點需要注意:門鈴芯片在焊接的過程中,每次焊接的時間不要太長,否則很容易損壞門鈴芯片;三極管引腳的區分:拿著你手上的9014三極管,把印有字的那一面對著自己,看到的三個腳從左到右依次為e(發射極),b(基極),c(集電極);開關S的引線要長一些,因為按鈕開關S最終要安裝在門外,引線要從門縫引入,然后用透明膠帶固定。
如果你接線無誤,裝上電池便會發出“叮咚…”的門鈴聲,如果沒有聲音,趕快卸下電池檢查電路,一般都是接線有誤,芯片壞掉的情況比較少見。
1. 實驗任務
當按下開關SP1,AT89S51單片機產生“叮咚”聲從P1.0端口輸出到LM386,經過放大之后送入喇叭.
2. 電路原理圖
圖4.19.1
3. 系統板上硬件連線
(1. 把“單片機系統”區域中的P1.0端口用導線連接到“音頻放大模塊”區域中的SPK IN端口上;
(2. 在“音頻放大模塊”區域中的SPK OUT端口上接上一個8歐或者是16歐的喇叭;
(3. 把“單片機系統”區域中的P3.7/RD端口用導線連接到“獨立式鍵盤”區域中的SP1端口上;
4. 程序設計方法
(1. 我們用單片機實定時/計數器T0來產生700HZ和500HZ的頻率,根據定時/計數器T0,我們取定時250us,因此,700HZ的頻率要經過3次250us的定時,而500HZ的頻率要經過4次250us的定時.
(2. 在設計過程,只有當按下SP1之后,才啟動T0開始工作,當T0工作完畢,回到最初狀態.
(3. “叮”和“咚”聲音各占用0.5秒,因此定時/計數器T0要完成0.5秒的定時,對于以250us為基準定時2000次才可以.
5. 程序框圖
主程序框圖
T0中斷服務程序框圖
圖4.19.2
6. 匯編源程序
T5HZ EQU 30H
T7HZ EQU 31H
T05SA EQU 32H
T05SB EQU 33H
FLAG BIT 00H
STOP BIT 01H
SP1 BIT P3.7
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START:MOV TMOD,#02H
MOV TH0,#06H
MOV TL0,#06H
SETB ET0
SETB EA
NSP:JB SP1,NSP
LCALL DELY10MS
JB SP1,NSP
SETB TR0
MOV T5HZ,#00H
MOV T7HZ,#00H
MOV T05SA,#00H
MOV T05SB,#00H
CLR FLAG
CLR STOP
JNB STOP,$
LJMP NSP
DELY10MS:MOV R6,#20
D1:MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
INT_T0:INC T05SA
MOV A,T05SA
CJNE A,#100,NEXT
MOV T05SA,#00H
INC T05SB
MOV A,T05SB
CJNE A,#20,NEXT
MOV T05SB,#00H
JB FLAG,STP
CPL FLAG
LJMP NEXT
STP:SETB STOP
CLR TR0
LJMP DONE
NEXT:JB FLAG,S5HZ
INC T7HZ
MOV A,T7HZ
CJNE A,#03H,DONE
MOV T7HZ,#00H
CPL P1.0
LJMP DONE
S5HZ:INC T5HZ
MOV A,T5HZ
CJNE A,#04H,DONE
MOV T5HZ,#00H
CPL P1.0
LJMP DONE
DONE:RETI
END
7. C語言源程序
#i nclude
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;
}
}
}
如果有線的就簡單點,把話筒的語音放大后接到錄音機原來的音頻放大電路上就可以了。 如果是無線的,你還需要做一個無線發射器,然后用收音機收就可以了。無線發射器也比較簡單,就看你的動手能力的了。
希望對你有幫助