项目四音乐门铃和简易演奏器设计
设计说明书
任务一音乐门铃
一、任务设计要求
1、实现“滴、滴”报警声
要求:产生频率为500Hz,,,反复循环
2、实现“滴、滴”报警声实现“滴、滴”报警门铃
要求:在1的基础上增加按钮动作。按钮按下一次,“滴、滴”声持续约3秒。
3、技能提高
任选一首歌曲,编制歌谱表,由单片机演奏,实现音乐门铃。
4、计数器应用
设用内部定时器/计数器1的计数功能,工作在方式2,。
设计过程
实现“滴、滴”报警声
要求:产生频率为500Hz,,,反复循环
1、设计方案确定
2、硬件电路设计
(实现“滴、滴”报警声)(实现“滴、滴”报警门铃)和(音乐门铃)的硬件电路设计
计数器的硬件电路设计
3、软件设计
实现“滴、滴”报警声
步骤1:定时参数的计算
1) 要产生频率为500Hz的方波信号,方波信号的周期为2ms 。电路采用12MHz的晶振,利用定时器T0的方式1,产生1ms的定时,。
(a) T0的方式控制字TMOD:
M1M0=01,GATE=0,C/T=0,可取方式控制字为01H
(b) 计算计数初值X
由于晶振为12MHz,机器周期T=,要产生产生1ms的定时,计数初值为
X=65536-1000=64536=FC18H
将 FCH、18H 分别预置给TH0、TL0。
重装计数值
中断入口
Yes
输出声音
?
FLAG=1?
无输出
中断返回
No
No
Yes
、绘制流程图
开始
标志FLAG清0
计时计数值清0
设置定时器
标志位FLAG取反
计时计数值清0
定时1ms
启动定时器
等待中断
主程序流程图
中断程序流程图
2、实现“滴、滴”报警门铃
要求:在1的基础上增加按钮动作。按钮按下一次,“滴、滴”声持续约3秒
、编写源程序:共4个程序
程序一:
实现“滴、滴”报警声
TCOUNT EQU 30H
FLAG BIT 00H
ORG 0000H
SJMP START ;跳转到主程序
ORG 000BH ;T0的中断入口地址
LJMP INT_T0 ;转向中断服务程序
START: CLR FLAG ;标志位清零
MOV TCOUNT,#00H ;计时计数值清零
MOV TMOD,#01H ;置T0工作于方式1
MOV TH0,#(65536-1000)/256 ;装入计数初值
MOV TL0,#(65536-1000)MOD 256
MOV IE,#82H ;开中断
SETB TR0 ;启动T0定时器
SJMP $; ;等待中断
INT_T0: MOV TH0,#(65536-1000)/256 ;重新装入计数值
MOV TL0,#(65536-1000)MOD 256
INC TCOUNT ;计时计数值+1
MOV A,TCOUNT
CJNE A,#250,I1 ;
CPL FLAG ;标志位FLAG取反
MOV TCOUNT,#00H ;计时计数值清零
I1: JB FLAG,I2 ;检查标志位
CPL ;声音输出
SJMP RETUNE
I2: CLR ;关声音
RETUNE: RETI ;中断返回
END
程序二:
按下门铃按键,发出“滴、滴”报警声
TCOUNT EQU 30H
FLAG BIT 00H
ORG 0000H
SJMP START ;跳转到主程序
ORG 000BH ;T0的中断入口地址
LJMP INT_T0 ;转向中断服务程序
; ——————————————主程序———————————
START: CLR FLAG ;标志位清零
MOV TCOUNT,#00H ;计时计数值清零
MOV TMOD,#01H ;置T0工作于方式1
MOV TH0,#(65536-1000)/256 ;装入计数初值
MOV TL0,#(65536-1000)MOD 256
MOV IE,#82H ;开中断
LOOP:
JB ,STOP ;
SETB TR0 ;启动T0定时器
ACALL DELAY ;
STOP: CLR ;关声音
CLR TR0 ;关闭T0定时器
SJMP LOOP; ;反复
;——————————
音乐门铃和简易演奏器设计说明书 来自淘豆网m.daumloan.com转载请标明出处.