没有合适的资源?快使用搜索试试~ 我知道了~
单片机课程设计报告电子琴.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
20 浏览量
2021-10-04
15:27:12
上传
评论
收藏 245KB DOC 举报
温馨提示
单片机课程设计报告电子琴.doc
资源推荐
资源详情
资源评论



电子音调发生器
一、实验目的
了解计算机发声原理。
熟悉定时器和键盘扫描电路的工作原理与编程方法。
二、实验完成的功能
利用键盘 进行音调选择,即按下音符产生对应音调。
事先存储三首歌曲,并可进行选择播放。
谱曲功能:通过按键对 菜单选项进行选择,进入谱曲界面,通过按
键 分别输入音高与几分音符类型,由按键输入若干数据完成谱曲。
在播放存储歌曲与谱曲播放时,对应音符与其节奏 显示对应频谱。
在播放音乐时按“返回”键出现返回界面,由键盘按“确认”键选择返回主菜
单或循环播放。
三、实验原理
音节由不同频率的方波产生,音节与频率的关系如表()所示。要产
生音频方波,只要计算出某一音频的周期(频率),然后将此周期除以 ,
即为半周期的时间。利用计时器计时此半周期时间,每当计时到后就将输出方
波的 ()反相,然后重复计时此半周期时间再对 反相,就可在
脚得到此频率的方波。将 经过驱动电路与蜂鸣器相连,随着 口
输出不同频率的方波,蜂鸣器便会发出不同的声音。音乐的节拍是由延时实现
的,如果 拍的时间为 秒, 拍是 秒。只要设定延时时间,就可得
到节拍的时间。延时实现基本延时时间,节拍值只能是它的整数倍。
每个音节相应的定时器初值计算公式如下
()
即
其中, 是音调频率,当晶振 !" 时,音节“#相应的定时器初
值为 ,则可得到 $!,其它的可同样得到。
表(1) 音节与频率的关系
音调 频率(Hz)
X(HEX)
$
$%
$&'
$&'
$('
$(%
$(

) $'$
在编写歌曲代码过程中,音高由三位数字组成:个位是表示这七个音
符;十位是表示音符所在的音区低音,中音,高音;百位表示这个音符是
否要升半音不升,升半音。音长最多由三位数字组成:个位表示音符的时
值,其对应关系是:
*数值+*******
*几分音符****'*** 音符,+
十位表示音符的演奏效果普通,连音,顿音,百位是符点位
无符点,有符点。
.键盘扫描
将单片机引脚'与键盘上对应引脚相连,其中
控制键盘的行,控制键盘的列,这次使用的键盘是行列,键盘上
的第一行到第四行由'位十六进制代码的低四位控制,即第一行若有键按下,
则'位十六进制代码的后四位为',第二行有按键按下,则后四位代码为
,依此规律类推;键盘上的第一列到第四列由'位十六进制代码的高四位控
制,即第一列若有键按下,则'位十六进制代码的前四位为',第二列有按键
按下,则前四位代码为,依此规律类推。综上所述,可以根据'位十六进制
的高四位和低四位数据,分别确定按下的键处于第几行第几列,从而确定按键
的位置,实现键盘扫描的功能。
. 显示
根据写命令函数 -./0 和写数据函数 -.0121 分别控制 的命令写
入和数据写入。具体操作方法是由写命令函数 -./0 编程控制数据输入的行
列,再由写数据函数 -.0121 编程写入需要在 上显示的数据或应执行的操
作,结合两个命令一起控制 显示。
四.产品展示
2 / 24

五.实验程序
3)+0456%$7894!4
30:+456%$7894!4
%%5 函数
关闭 ;<&功能
=)0;4&40)1>?=)0
@
;4985AB
;4 AB
;485CB
D
字节读
EF1.(G24.10E)+2>G24100.
@
%&B关中断
;4985%+4H1)248 %B开启 ;&B并送等待时间
;4 5104 B送字节读命令字
;4&5!EF1.>G24100.II'B送地址高字节
;4&5EF1.>G24100.JA$$B送地址低字节
;485CAB送触发命令字 A、A(
;485CA(B
3 / 24

4+K4B
;4&40)1>?B关闭 ;& 功能
%&B开中断
.2E.+;4&8&B
D
字节编程
=)0(G24K.L.1/E)+2>G24100.<EF1.)K4)1K40121
@
%&B关中断
;4985%+4H1)248 %B开启 ;&B并送等待时间
;4 .L4 B送字节编程命令字
;4&5!EF1.>G24100.II'B送地址高字节
;4&5EF1.>G24100.JA$$B送地址低字节
;4&8&)K4)1K40121B送数据进 ;4&8&
;485CAB送触发命令字 A、A(
;485CA(B
4+K4B
;4&40)1>?B关闭 ;& 功能
%&B开中断
D
扇区擦除
=)0;2.4.1E)+22.4100.
@
%&B关中断
;4985%+4H1)248 %B开启 ;&B并送等待时间
;4 ?4 B送扇区擦除命令字
;4&5!EF1.2.4100.II'B送地址高字节
;4&5EF1.2.4100.JA$$B送地址低字节
;485CAB送触发命令字 A、A(
;485CA(B
4+K4B
;4&40)1>?B关闭 ;& 功能
%&B
D
写入函数
=)0%%5 4-.)2E)+2100.<EF1.)+40121
@
;2.4.1100.B
(G24K.L.1/100.<)+40121B
D
%%5 函数
4 / 24

音乐播放相关子函数
=)0+)2)1?;E+0=)0 初始化定时器
@
(KB
;E+048/K48!;M;8% 4;B 计算 8 应装
入的初值 / 的初装值
;E+048/K48;M;8% 4;NB 计算 8! 应装
入的初值
8!;E+048/K48!B
8;E+048/K48B
8 *B
%8B
%8B
85B
85B
%&B
D
=)0(K8)/.=)0)+2..EK2音符发生中断函数
@
(KO(KB
8!;E+048/K48!B
8;E+048/K48B
D
%9
操作子函数
=)0-./0F1./0 写入命令
@
B4+K4B
.B4+K4B
B4+K4B
.-B4+K4B
/0B4+K4B
.-B4+K4B4+K4B
.-B4+K4B4+K4B4+K4B4+K4B
D
=)0-.0121F1.01214-.) 往液晶中写入数据
@
B4+K4B
5 / 24
剩余23页未读,继续阅读
资源评论


huayuya123
- 粉丝: 24
- 资源: 31万+

下载权益

C知道特权

VIP文章

课程特权

开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
