音乐盒实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-3-
单片机音乐盒设计报告
光电 091 朱文明
面的死循环中,并暂停 TR1 定时,直到 R4 再次取反回到主程序中从新启动 TR1。 按键部分电路如下:
仿真电路及制作图
1 2 3 4 5 6 7 8
D8 DLE1D-BIBY LDE2D-BIBY LDE6D-BIBY DLE5D-BIBY LDE7D-BIBY
原理说明
用一块 AT89C51 作为控制中心,编好程序烧录进单片机里,使 I/O 口产生一 定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。
发声程序
接通电源时,启动计数器 T0、T1,工作于模式 1,T0 在主程序中用查询中 断,每次 R0、R1 给定的定时时间到就给 P1.3 口取反,再查询是否有按暂停键, 没有就通过下面的 AJMP L0 循环到 L0 中再次装初值,定时并循环产生一定频率 的脉冲,通过 P1.3 口输出,经过 PNP 三极管的基极放大输出到蜂鸣器。T1 定时 0.006s,并且是利用中断功能,每过 0.OO6 秒就跳入中断程序 YINFU,重装初值 后,经过给 P2 送显示的程序后,用 R2 判断是否经过 150 次定时达到 0.6S,达
按键电路
歌曲的上一首,下一首,暂停按键是利用外部中断 0 与按键查询结合实现 的,三个按键分别接在了 P1.0 — P1.2 口上,由于直接加载信号到 P1 口上信号 会与 89C51 的端口冲突,所以通过一个二输入与门与高电平相与再输出到单片机 中,三个信号同时通过一个三输入与门连接到 89C51 的 P3.2 口上,不论哪个按 键按下,都会触动外部中断,进入外部中断程序 SXS。然后在中断程序中通过查 询 P1.0 — P1.2 口判断哪一个按键按下,并按情况处理相应的 R5 的值。如果正 在播放第一首或第二首,这时按下一首键,则直接给 R5 加一,并回到主程序继 续播放。如果正在播放最后一首,这时按下一首则会从新给 R5 赋值#01H,回到 第一首继续播放。如果是第二首或第三首按下上一首会直接给 R5 减一,但若正 在播放第一首,按下上一首则会给 R5 赋值#03H。不论在播放那一首,按下暂停 键都会给 R4 取反,这样在主程序中循环时判断到 R4 的改变就会跳到主程序最下
-5-
单片机音乐盒设计报告
光电 091 朱文明
//确定 你就是我的唯一 0x72,0x72,0x72,0x52,0x72,0x82,0x92,0xA2,0x84,0x64,0x03,0x51,0xB2,0xA2,0x82, 0x61,0x51, //独自对着电话说我爱你,我真的爱你 0x04,0xA4,0x94,0x82,0x82,0x82,0x82,0x72,0x82,0x52,0x32,0x68, //BABY 我已不能多爱你一些 0x02,0xA4,0x94,0x82,0x82,0x82,0x82,0x72,0x82,0x54,0x42,0x66,0xff //其实 早已超过了爱的极限
AT89C51
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
Hale Waihona Puke Baidu
39 38 37 36 35 34 33 32
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
LED-BIBY
D4 DLE3D-BIBY
LED-BIBY
RP1
RESPACK-7
C2
22pF
X1
12M
R1
10k
C3
10uF
C1
22pF
U1
19 XTAL1
18 XTAL2
9 RST
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
}; uchar code tzdn[]={ //同桌的你[11] 0x56,0x56,0x32,0x42,0x52,0x76,0x66,0x56,0x52,0x22,0x32,0x46,0x16,0x26,0x04, //前奏 0x52,0x52,0x52,0x52,0x32,0x42,0x56,0x86,0x62,0x62,0x62,0x62,0x42,0x62,0x56, 0x04, //明天你是否会想起,昨天你写的日记 0x52,0x52,0x52,0x52,0x72,0x62,0x52,0x44,0x02,0x42,0x42,0x42,0x42,0x33,0x21, 0x16,0x02, //明天你是否还惦记,曾经最爱哭的你 0x82,0x82,0x82,0x82,0x52,0x32,0x86,0x82,0xA4,0x92,0x92,0x92,0x93,0x81,0x72, 0x66,0x02, //谁娶了多愁善感的你,谁看了你的日记 0x72,0x72,0x72,0x72,0x72,0x82,0x96,0x54,0x02,0x72,0x72,0x82,0x92,0x82,0x72, 0x16,0x02, //谁把你的长发盘起,谁给你做的嫁衣 0x84,0x82,0x82,0x52,0x62,0x86,0xA6,0x94,0x92,0x92,0x82,0x72,0x66,0x74,0x72, 0x72,0x72,0x82,0x96,0x56, //啦……,啦……,啦…… 0x72,0x72,0x82,0x92,0x82,0x72,0x86,0x94,0x92,0x92,0x62,0x72,0x96,0xB6,0x94, 0x92,0x92,0x82,0x72,0x66, //啦……,啦……,啦…… 0x72,0x72,0x72,0x72,0x72,0x82,0x96,0x56,0x72,0x72,0x82,0x92,0x82,0x72,0x96, 0x86,0xff //啦……,啦……,啦……,啦…… }; uchar code hlw[]={ //小小葫芦娃 0x83,0x63,0x51,0x61,0x03,0x81,0x61,0x51,0x81,0x63,0x01,0x81,0x61,0x63,0x51, 0x63,0x01,0x61,0x81,0x61,0x51,0x81,0x63,0x03, //前奏 0x12,0x12,0x35,0x11,0x12,0x31,0x02, //葫芦娃,葫芦娃 0x62,0x62,0x61,0x51,0x62,0x51,0x12,0x31,0x02, //一根藤上七朵花 0x81,0x61,0x61,0x51,0x65,0x51,0x12,0x21,0x02,
-4-
单片机音乐盒设计报告
光电 091 朱文明
{0x7f,0x5f,0x57,0x55,0xbf,0xaf,0xab,0xaa,0x3f,0xcf,0xf3,0xfc,0x00};//花样 3 uchar count1;//花样标志 uchar count2;//歌曲标志 uchar timeh,timel,i; uchar code ldzgr[]={ //劳动最光荣 0x52,0x82,0x82,0x52,0x62,0x62,0x54,0x32,0x52,0x12,0x32,0x28, //太阳光,金亮亮,雄鸡唱三唱; 0x52,0x84,0x52,0x62,0x62,0x54,0x52,0x81,0xA1,0x92,0x52,0x88, //花儿 醒来了,鸟儿忙梳妆 0x83,0x91,0x82,0x52,0x62,0x62,0x54,0x33,0x81,0x62,0x52,0x12,0x32,0x24, //小喜鹊 造新房,小蜜蜂 采蜜糖 0x12,0x11,0x21,0x32,0x51,0x51,0x62,0x52,0x84,0x82,0x51,0x61,0x84,0xA4,0x92, 0x52,0x86,0x02, //幸福的生活从哪里来?要靠劳动来创造 0x52,0x81,0x81,0x82,0x52,0x62,0x61,0x81,0x54,0x32,0x51,0x61,0x53,0x31,0x12, 0x32,0x24, //青青的叶儿 红红的花,小蝴蝶 贪玩耍 0x52,0x82,0x82,0x52,0x62,0x62,0x54,0x51,0x61,0x81,0xA1,0x92,0x52,0x88, //不爱劳动 不学习,我们大家不学它 0x83,0x91,0x82,0x52,0x62,0x62,0x54,0x33,0x81,0x62,0x52,0x12,0x32,0x24, //要学喜鹊 造新房,要学蜜蜂 采蜜糖 0x12,0x11,0x21,0x32,0x52,0x82,0x52,0x68,0x52,0x61,0x61,0x84,0xA4,0x92,0x52, 0x84,0xff//歌曲结束符号 //劳动的快乐 说不尽,劳动的创造 最光荣 }; uchar code wy[]={ //唯一[10] 0x33,0x53,0x63,0x53,0x63,0x73,0x63,0x33,0x53,0x03,0x53,0x53,0x53,0x43,0x44, 0x52,0x43,0x33,0x22,0x14,0x38, //我的天空多么的清新,透明的承诺是过去的空气 0x04,0x43,0x43,0x43,0x33,0x23,0x13,0x38,0x03,0x13,0x23,0x13,0x33,0x26,0x04, 0x33,0x23,0x13,0x2c,0x04, //牵着我的手是你,但你的笑容却看不清 0x33,0x53,0x63,0x53,0x63,0x73,0x63,0x33,0x55,0x03,0x53,0x53,0x53,0x43,0x44, 0x52,0x43,0x33,0x23,0x13,0x35, //是否一颗星星变了心,从前的愿望也全都被抛弃 0x04,0x43,0x43,0x43,0x33,0x23,0x13,0x33,0x54,0x83,0x83,0x93,0xA3,0x92,0x81, 0x63,0x62,0xA3,0x93,0x83,0x96,0x04,0x04, //最近我无法呼吸,连自己的影子也都想逃避 0xA4,0x94,0x82,0x82,0x82,0x52,0x82,0x92,0xA4, //Ba By 你就是我的唯一 0x72,0x72,0x72,0x52,0x72,0x82,0x94,0x04,0xA2,0xA2,0xB2,0xA2,0x82,0x92, //两个世界都变心,回去谈何容易 0x04,0xA4,0x94,0x82,0x82,0x82,0x52,0x82,0x92,0xA4,
-2-
单片机音乐盒设计报告
光电 091 朱文明
到 0.6 就先查询 R5 的值看是在播放那一首歌曲,再跳入相应的查询字库程序, 查询 A 的值是否已经为一首歌的最后一个音符,是则从新给 A 赋值#OOH,并改变 R5 的值换下一首歌曲,在换 R5 的值之前还要查询 R5 的值是否为最后一首歌的 值,最终通过寄存器 A 的自动累加,不断替换 R0、R1 的值,改变主程序中 T0 的初值换下一个频率的音,从而达到发出音乐的目的。
21 22 23 24 25 26 27 28
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
10 11 12 13 14 15 16 17
LS1
SOUNDER
汇编程序
#include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit duan=P2^6; sbit key1=P3^2;//按 key1 可切换花样 sbit key2=P3^3;//按 key2 可切换歌曲 sbit fm=P3^7;//蜂鸣器连续的 IO 口 sbit P34=P3^4;//矩阵键盘的一列 uchar code huayang1[]= {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//花样 1 uchar code huayang2[]= {0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e};//花样 2 uchar code huayang3[]=
项目类型: 数字音乐盒
20110337
姓名:冯国宝 班级:电子 111 学号:
导师: 宗老师
单片机音乐盒设计报告
光电 091 朱文明
设计要求
以单片机为核心,设计一个数字音乐盒: 利用 I/0 口产生一定频率的方波驱动蜂鸣器,发出不同音调,从而演奏乐曲 采用 LCD 显示信息,开机时有英文欢迎提示字符,播放时显示歌曲序号。 可通过功能键选择乐曲、暂停、播放。
下图为音乐盒的扬声器部分电路:
数码管显示
由于能力与时间的有限未能实现 LCD 显示而采用的数码管代替,歌曲的序 号显示是通过单片机的 P2 口的输出的信号控制的,P2 口的信号输出程序在 T1 的定时中断中断程序中,由于 T1 的定时中断每过 0.006 秒就执行一次,所以看 不出有闪动。P2 口的信号是由 R5 给的,R5 是暂存播放歌曲序号的寄存器,由于 单片机的驱动电流较小,在输出端加一个 74LS244 来驱动数码管,数码管采用共 阳集,同时 P2 的字库也是对应的共阳字库。
相关文档
最新文档