蜂鸣器驱动实验
一. 实验目的
利用单片机的P1 口作IO 口,使用户学会蜂鸣器的使用。
二. 实验设备及器件
IBM PC 机 一台
DP-51PROC 单片机综合仿真实验仪 一台
频率计 一台
三. 实验内容
1. 编写一段程序,用P1.3 口控制(输出3K 到4K 频率的方波),使B5 区的蜂鸣器发出嘹亮的响声。
2. 按照例程输入一段程序,用P1.3 口控制,使B5 区的蜂鸣器发出“生日快乐”的音乐。
图3.3 蜂鸣器原理图
四. 实验步骤
1. 使用导线把A2 区的P13 与B5 区的 BUZZ 接线柱相连。
2. 先编写一个延时程序(120~200us)。
3. 再编写一个循环程序,改变P1.3 脚的电平,然后延时。这样,这个循环就使P1.3
口输出一个频率为2.5KHz-4KHz 的方波。在DP-51PROC 单片机综合仿真实验
仪上运行该程序时,B5 区的蜂鸣器将发出嘹亮的响声
4. 按以下例程输入,然后运行,蜂鸣器发出“生日快乐”的音乐。
五. 实验参考程序
ORG 8000H
JMP MAIN
ORG 800BH
JMP INTT0
ORG 8100H
MAIN:
MOV SP,#60H
MOV TMOD,#01H ;初始化定时器及器中断
SETB ET0 ;开定时器0 中断
SETB EA
SETB TR0 ;启动定时器0
START0:
SETB P1.3
MOV 30H,#00H
NEXT:
MOV A,30H
MOV DPTR,#TABLE ;从TABLE 中读取数据――声响时间
MOVC A,@A+DPTR
MOV R2,A
JZ ENDD
ANL A,#0FH
MOV R5,A
MOV A,R2
SWAP A
ANL A,#0FH
JNZ SING
CLR TR0
JMP D1
SING:
DEC A
MOV 22H,A
RL A
MOV DPTR,#TABLE1 ;从TALBE1 中读取数据――声调
MOVC A,@A+DPTR
MOV TH0,A
MOV 21H,A
MOV A,22H
RL A
INC A
MOVC A,@A+DPTR
MOV TL0,A
MOV 20H,A
SETB TR0
D1:
CALL DELAY ;声音延时
INC 30H
JMP NEXT
ENDD:
CLR TR0
JMP START0
INTT0: ;定时器0 中断服务程序
PUSH PSW
PUSH ACC
MOV TL0,20H
MOV TH0,21H
CPL P1.3
POP ACC
POP PSW
RETI
DELAY: ;R5的值就是声响持续时间
MOV R7,#02
DELAY0:
MOV R4,#187
DELAY1:
MOV R3,#248
DJNZ R3,$
DJNZ R4,DELAY1
DJNZ R7,DELAY0
DJNZ R5,DELAY
RET
TABLE:
DB 82H,01H,81H,94H,84H,0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H,0C4H,0B4H,04H
DB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H
DB 82H,01H,81H,94H,84H,0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H,0C4H,0B4H,04H
DB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H,00H
TABLE1:
DW 64260,64400,64524,64580,64684,64777,64820,64898
DW 64968,65030,65058,65110,65157,65178,65217;
END
六. 实验思考题
(1) 请用户思考一下,如何通过程序来编写出音乐。
评论
查看更多