1.實(shí)驗(yàn)任務(wù)
當(dāng)按下開關(guān)SP1,AT89S51單片機(jī)產(chǎn)生“叮咚”聲從P1.0端口輸出到LM386,經(jīng)過放大之后送入喇叭。
2.電路原理圖
圖4.19.1
3.系統(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端口上;
4.程序設(shè)計(jì)方法
(1. 我們用單片機(jī)實(shí)定時(shí)/計(jì)數(shù)器T0來產(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次才可以。
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語(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;
}
}
}
-
單片機(jī)
+關(guān)注
關(guān)注
6043文章
44622瀏覽量
638518 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2261瀏覽量
94981 -
源代碼
+關(guān)注
關(guān)注
96文章
2946瀏覽量
66953
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
使用單片機(jī)實(shí)現(xiàn)音樂播放器的源代碼程序免費(fèi)下載
![使用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>音樂播放器的<b class='flag-5'>源代碼</b>程序免費(fèi)下載](https://file.elecfans.com/web1/M00/8E/E1/pIYBAFy2gYaAPRyfAARGiQe71ZU052.png)
STC12C5616AD單片機(jī)實(shí)現(xiàn)16位AD按鍵的電路圖和源代碼等資料說明
![STC12C5616AD<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>16位AD按鍵的電路圖和<b class='flag-5'>源代碼</b>等<b class='flag-5'>資料</b><b class='flag-5'>說明</b>](https://file.elecfans.com/web1/M00/AD/CB/pIYBAF3OakWAFFytAAIh9WOaMMc420.png)
使用單片機(jī)實(shí)現(xiàn)萬年歷的源代碼資料合集免費(fèi)下載
![使用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>萬年歷的<b class='flag-5'>源代碼</b><b class='flag-5'>資料</b>合集免費(fèi)下載](https://file.elecfans.com/web1/M00/B7/08/pIYBAF5p0FmAJ2DjAAotRnaqqUE042.png)
使用51單片機(jī)和MFRC522實(shí)現(xiàn)RFID的源代碼和資料合集免費(fèi)下載
![使用51<b class='flag-5'>單片機(jī)</b>和MFRC522<b class='flag-5'>實(shí)現(xiàn)</b>RFID的<b class='flag-5'>源代碼</b>和<b class='flag-5'>資料</b>合集免費(fèi)下載](https://file.elecfans.com/web1/M00/B9/58/pIYBAF6BbUOAZGCWAASAd-234fw219.png)
使用51單片機(jī)實(shí)現(xiàn)溫度上下限控制的源代碼資料合集免費(fèi)下載
![使用51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>溫度上下限控制的<b class='flag-5'>源代碼</b><b class='flag-5'>資料</b>合集免費(fèi)下載](https://file.elecfans.com/web1/M00/BD/54/o4YBAF7QvX-Ae572AAGG4dW0no4071.png)
單片機(jī)閃爍燈設(shè)計(jì)的源代碼
使用單片機(jī)實(shí)現(xiàn)門鈴設(shè)計(jì)的程序和資料說明
![使用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>門鈴</b>設(shè)計(jì)的程序和<b class='flag-5'>資料</b><b class='flag-5'>說明</b>](https://file.elecfans.com/web1/M00/BE/75/pIYBAF7eCL-AU8DUAABnGgbtlhY604.png)
實(shí)現(xiàn)單片機(jī)實(shí)現(xiàn)籃球計(jì)分器的設(shè)計(jì)源代碼免費(fèi)下載
![<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>籃球計(jì)分器的設(shè)計(jì)<b class='flag-5'>源代碼</b>免費(fèi)下載](https://file.elecfans.com/web1/M00/BE/E1/o4YBAF7q43-ABbT9AAS5V2KJ7qc199.png)
使用STM32單片機(jī)實(shí)現(xiàn)無人機(jī)的源代碼和原理圖資料合集
![使用STM32<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>無人機(jī)的<b class='flag-5'>源代碼</b>和原理圖<b class='flag-5'>資料</b>合集](https://file.elecfans.com/web1/M00/C3/71/pIYBAF8iIMqAXcXWAAGKSxoTumM934.png)
使用單片機(jī)串口通信控制步進(jìn)電機(jī)的源代碼詳細(xì)說明
![使用<b class='flag-5'>單片機(jī)</b>串口通信控制步進(jìn)電機(jī)的<b class='flag-5'>源代碼</b>詳細(xì)<b class='flag-5'>說明</b>](https://file.elecfans.com/web1/M00/C4/9A/pIYBAF82W0-ADAylAAMBNMkq6c4819.png)
使用單片機(jī)實(shí)現(xiàn)跑馬燈實(shí)驗(yàn)的資料和電路圖與源代碼免費(fèi)下載
![使用<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>跑馬燈實(shí)驗(yàn)的<b class='flag-5'>資料</b>和電路圖與<b class='flag-5'>源代碼</b>免費(fèi)下載](https://file.elecfans.com/web1/M00/C6/82/pIYBAF9YjpCAFL5bAAQLXSCh1X0046.png)
單片機(jī)遙控解碼的源代碼詳細(xì)說明
51單片機(jī)實(shí)現(xiàn)流水燈的源代碼
![51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>流水燈的<b class='flag-5'>源代碼</b>](https://file.elecfans.com/web1/M00/CF/D4/pIYBAF-uVWWAPJuSAARKtZ5k-ZY831.png)
評(píng)論