1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
音乐盒实验报告 2010-10-08 一、实验材料 1、仪器设备,软件工具 软件 用途 keil 软件 源程序的编译 Proteus软件 实现电路的仿真 Progisp软件 将程序下载到学习板上进行实验 硬件 用途 万用表 检测硬件电路 学习板 实现源程序的调试,并通过实验现象来修改程序 2、元器件清单 元件名称 参数 数量 IC插座 DIP40 1 单片机 89C51 1 晶体振荡器 12MHZ 1 瓷片电容 22PF 2 按键 4 IC插座 DIP8 1 三极管 2N5088 1 电阻 1K 4 电解电容 47uF 1 电阻 510 8 蜂鸣器 无源式 1 小喇叭 1 放大器 LM386 1 二、实验过程描述 1、设计功能描述 (1)通过改变单片机输出脉冲高低电平的保持时间和频率,可以得到音阶和调节不同的音调,运用定时中断来控制节拍,从而来演奏乐曲。 (2)用数码管显示当前播放的歌曲序号。 (3)通过功能键控制上,下曲目的选择以及乐曲的暂停和播放。 2、原理图设计思路 由P1.0口控制一个LM386功率放大器,经功率放大器控制发声器件小喇叭。当P1.0口输出低电平时,三极管导通,小喇叭通电;当P1.0口输出高电平时,三极管截止,小喇叭断电。通过连续不断周期性地改变P1.0口的高、低电平,就会产生一定频率的矩形波,小喇叭就能产生一定频率的声音,再配合延时程序控制高、低电平的持续时间,就能改变音调。由P3.2、P3.3、P3.4、P3.5分别作为开始键/停止键,暂停键、下一曲键、上一曲键。图中还将共阳级数码管相应的段选控制端用P0口控制,将数码管的公共端,也称“位选端”由P2口控制。 原理图如下: 3、程序设计思路,并画出流程图 程序思路:初始化设置,开延时与外部中断,按下P3.2键先唱第一首,然后循环播放。若有按下P3.3键则执行暂停作用,再按一次则继续播放;若有按下P3.3,P3.4键则分别执行下一曲、上一曲功能。播放歌曲是多少数码管则显示相应的数字。流程图如下: 4、写出源程序与必要的注释 shuzhi equ 3fh ;选曲目的地址 song equ p1.0 ;扬声器播放P1.0 play equ p3.2 ;播放停止键P3.2 addone equ p3.4 ;曲目加一键P3.4 subone equ p3.5 ;曲目减一键P3.5 dul equ p0 ;数码管段选P0口 wel equ p2 ;数码管位选P2口 org 0000h ljmp start org 000bh ;定时器0溢出中断入口地址 ajmp cont ;指向定时器中断程序 org 0013h ;外部中断一入口地址 ajmp pause ;指向外部中断程序 org 0100h start: mov sp,#50h mov th0,#0dbh ;定时器赋初值 mov tl0,#0ffh mov tmod,#01h mov ie,#86h ;开中断 mov tcon,#00h mov r0,#00h mov shuzhi,#00h main: jnb play,first ;判断P3.2键是否按下 sjmp main first: acall del20 jnb play,first ;判断P3.2键是否释放 mov shuzhi,#00h mov dul,#0f9h ;显示数值1 mov wel,#7fh ;显示位送P2口 mov dptr,#dat1 ;表1首地址送DPTR acall music0 acall next ret next: inc shuzhi ;shuzhi+1 mov a,shuzhi cjne a,#01,loop3 ;A是否=1,不等就跳转到LOOP3 mov dptr,#dat2 ;表2首地址送DPTR mov dul,#0a4h ;显示数值2 mov wel,#7fh acall music0 inc a loop3: cjne a,#02,loop4 ;A是否=2,不等就跳转到LOOP4 mov dptr,#dat3 ;表3首地址送DPTR mov dul,#0b0h ;显示数值3 mov wel,#7fh acall music0 inc a loop4: cjne a,#03,next ;A是否=3,不等就跳转到next acall

文档评论(0)

14576 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档