單片機制作“ 叮咚”門鈴,AT89S51 DOORBELL
關(guān)鍵字:AT89S51,門鈴電路
1.實驗任務(wù)
2.電路原理圖

3.系統(tǒng)板上硬件連線
(1.把“單片機系統(tǒng)”區(qū)域中的P1.0端口用導(dǎo)線連接到“音頻放大模塊”區(qū)域中的SPK IN端口上;
(2.在“音頻放大模塊”區(qū)域中的SPK OUT端口上接上一個8歐或者是16歐的喇叭;
(3.把“單片機系統(tǒng)”區(qū)域中的P3.7/RD端口用導(dǎo)線連接到“獨立式鍵盤”區(qū)域中的SP1端口上;
4.程序設(shè)計方法
(1.我們用單片機實定時/計數(shù)器T0來產(chǎn)生700HZ和500HZ的頻率,根據(jù)定時/計數(shù)器T0,我們?nèi)《〞r250us,因此,700HZ的頻率要經(jīng)過3次250us的定時,而500HZ的頻率要經(jīng)過4次250us的定時。
(2.在設(shè)計過程,只有當(dāng)按下SP1之后,才啟動T0開始工作,當(dāng)T0工作完畢,回到最初狀態(tài)。
(3.“?!焙汀斑恕甭曇舾髡加?.5秒,因此定時/計數(shù)器T0要完成0.5秒的定時,對于以250us為基準(zhǔn)定時2000次才可以。
6.匯編源程序
T5HZEQU 30H
T7HZEQU 31H
T05SAEQU 32H
T05SBEQU 33H
FLAGBIT 00H
STOPBIT 01H
SP1BIT 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語言源程序
#include
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;
}
}
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
深入剖析AT89C51RC:8位微控制器的卓越之選
深入剖析AT89C51RC:8位微控制器的卓越之選 引言 在嵌入式系統(tǒng)的廣闊領(lǐng)域中,微控制器扮演著至關(guān)重要的角色。AT89C51RC作為一款經(jīng)典的8位微控制器,以其高性能、低功耗和豐富的功能特性,在
深入解析AT89S51:8位微控制器的卓越之選
深入解析AT89S51:8位微控制器的卓越之選 在電子設(shè)計領(lǐng)域,微控制器是眾多項目的核心組件。AT89S51作為一款經(jīng)典的8位微控制器,以其低功耗、高性能和豐富的功能,在嵌入式控制應(yīng)用中占據(jù)著重
AT89LV52單片機特性與應(yīng)用全解析
AT89LV52單片機特性與應(yīng)用全解析 在嵌入式控制應(yīng)用領(lǐng)域,單片機扮演著至關(guān)重要的角色。AT89LV52作為一款經(jīng)典的低電壓、高性能CMOS 8位微計算機,憑借其豐富的特性和廣泛的適
AT89LS52:低成本高性能8位單片機的設(shè)計秘訣
AT89LS52:低成本高性能8位單片機的設(shè)計秘訣 作為一名電子工程師,在嵌入式系統(tǒng)設(shè)計中,單片機是我們常用的核心組件之一。今天,我要給大家詳細介紹一款功能強大、應(yīng)用廣泛的8位單片機
深入解析AT89C51:一款經(jīng)典8位微控制器
深入解析AT89C51:一款經(jīng)典8位微控制器 在嵌入式控制領(lǐng)域,AT89C51這款8位微控制器可謂是經(jīng)典之作。盡管它已不推薦用于新設(shè)計(建議使用AT89S51),但它的技術(shù)特點和工作原理仍值得我們
8XC51FX:高性能8位單片機的全方位解析
8XC51FX:高性能8位單片機的全方位解析 在單片機的世界里,8XC51FX系列以其卓越的性能和豐富的功能脫穎而出,成為眾多電子工程師在設(shè)計項目時的熱門選擇。今天,我們就來深入探討一
51 AVR 編程器USBASP下載器驅(qū)動安裝及程序下載
支持AT89S51/52單片機AVR所有ASP芯片。輸出端口為ATMEL標(biāo)準(zhǔn)端口。有USB取電和支持目標(biāo)板電壓5V,可通過跳線帽連接選擇。可AUTOSPEED自動調(diào)速固件,下載器會自動跟蹤要編程的芯片頻率,自動改變速度,達到自動調(diào)速。預(yù)留PROGRAMMING編程接口
學(xué)習(xí)單片機快速方法
的80C51系列單片機主要產(chǎn)品有:Intel的80C31、80C51、87C51,80C32、80C52、87C52 ATMEL的89C51、89
發(fā)表于 01-14 07:42
叮咚門鈴的工作原理
專用語音芯片原理
現(xiàn)代“叮咚”門鈴更多采用專用語音芯片(如AC3CM23 ,AC8DD1218等)。 這些芯片內(nèi)部集成了預(yù)先錄制的“叮咚”音頻文件。當(dāng)接收到觸發(fā)信號(如按鈕按下或無線遙控信號
單片機最小系統(tǒng)工作原理及搭建
單片機最小系統(tǒng)是指使單片機正常運行所需的最簡電路配置,它是所有單片機應(yīng)用的開發(fā)基礎(chǔ)。以下是其核心組成、工作原理及搭建指南: 一、最小系統(tǒng)核心組成 單片機芯片 常見型號 :STC
基于51單片機的多功能萬年歷設(shè)計
基于51單片機的多功能萬年歷設(shè)計? ? 本項目是基于51單片機STC89系列,運用protues仿真軟件開發(fā),使用模塊化編程方法,模塊化電路
發(fā)表于 06-03 17:17
?1次下載
基于51單片機的溫濕度檢測與調(diào)節(jié)系統(tǒng)電路圖
電子發(fā)燒友網(wǎng)站提供《基于51單片機的溫濕度檢測與調(diào)節(jié)系統(tǒng)電路圖》資料免費下載
發(fā)表于 05-12 17:23
?4次下載
單片機制作“ 叮咚”門鈴,AT89S51 DOORBELL
評論