蜂鸣器驱动实验

单片机实验

28人已加入

描述

蜂鸣器驱动实验

一. 实验目的
利用单片机的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) 请用户思考一下,如何通过程序来编写出音乐。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分