一、
设计任务
1、如图1,单片机的P0口通过一个NPN管接在扬声器上。用单片机实现使扬声器发出滴滴滴滴滴的声音。
2、如图2,单片机的P0口通过一个NPN管接在扬声器上。用单片机实现使扬声器发出嘟—嘟 嘟—嘟的声音。
3、如图3,单片机的P0口通过一个NPN管接在扬声器上,P1.7口接上一个开关,当开关按下时,使扬声器发出悟无- 悟无- 报警器的声音。
二、电路原理图
图1:扬声器发出滴滴滴滴滴滴的声音
图2:扬声器发出:嘟-嘟-嘟-嘟的声音
图3:扬声器输出 悟无- 悟无- 报警器的声音
三、设计程序
//输出滴滴滴滴滴滴的声音
OUTPUT BIT P1.0
ORG 00H
LOOP:CLR C
MOV OUTPUT,C
CALL DELAY
SETB C
MOV OUTPUT,C
CALL DELAY
AJMP LOOP
DELAY:MOV R7,#250
DJNZ R7,$
RET
END
//输出嘟-嘟-嘟-嘟的声音
TCOUNT EQU 30H
FALG
BIT 00H
ORG 00H
SJMP START
ORG 0BH
LJMP INT_T0
START: CLR FALG
MOV TCOUNT,#00H
MOV TMOD,#01H
MOV TH0,#(65536-1000)/256
MOV TL0,#(65536-1000)MOD 256
MOV IE,#82H
SETB TR0
SJMP $
INT_T0:MOV TH0,#(65536-1000)/256
MOV TL0,#(65536-1000)MOD 256
INC TCOUNT
MOV A,TCOUNT
CJNE A,#250,L1
CPL FALG
MOV TCOUNT,#00H
L1:JB FALG,L2
CPL P1.0
SJMP RETUNE
L2:CLR P1.0
RETUNE:RETI
END
//按下开关,输出 悟无- 悟无- 报警器的声音
FLAG BIT 00H
ORG 00H
START:JB P1.7,START
JNB FLAG,NEXT
MOV R2,#200
DV: CPL P1.0
LCALL DELY500
LCALL DELY500
DJNZ R2,DV
CPL FLAG
NEXT: MOV R2,#200
DV1:CPL P1.0
LCALL DELY500
DJNZ R2,DV1
CPL FLAG
SJMP START
DELY500:MOV R7,#250
LOOP:NOP
DJNZ R7,LOOP
RET
END |