毕业设计(论文)-基于STC89C51数字式音乐盒的设计.doc_第1页
毕业设计(论文)-基于STC89C51数字式音乐盒的设计.doc_第2页
毕业设计(论文)-基于STC89C51数字式音乐盒的设计.doc_第3页
毕业设计(论文)-基于STC89C51数字式音乐盒的设计.doc_第4页
毕业设计(论文)-基于STC89C51数字式音乐盒的设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

黑龙江职业学院黑龙江职业学院 毕业论文毕业论文 基于 STC89C51 的数字式音乐盒设计 姓姓 名:名: 指导教师:指导教师: 专专 业:业: 应用电子技术应用电子技术 班班 级:级: 电子电子 091091 20112011 年年 1010 月月 2020 日日 黑龙江职业学院机电工程系毕业论文 目 录 摘摘 要要.3 前前 言言.4 1.1.系统基本设计思路系统基本设计思路.5 1.1 课题意义.5 1.2 设计方案.5 1.3 研究内容.5 2.2.单元电路方案论证单元电路方案论证.5 2.1 控制器模块.5 2.2 显示模块.5 2.3 放声模块.6 2.4 最终方案.6 3.3.系统总体方案介绍系统总体方案介绍.6 3.1 系统硬件组成图.6 3.2 主控芯片介绍.6 3.2.1 时钟电路.8 3.2.2 复位电路.9 3.3 主控机模块.9 3.4 音乐机模块.10 3.5 显示模块.10 3.6 按键模块.11 3.7 LM386 功放模块.12 4.4.节拍的确定节拍的确定.12 5.5.系统软件设计系统软件设计.14 5.1 设计的软件环境简介.14 5.1.1 Keil_c51.14 5.1.2 Protel99SE.15 5.2 主函数程序设计.16 5.2.1 主控机程序流程图.16 5.2.2 音乐机程序流程图.17 结结 论论.18 参考文献参考文献.19 致致 谢谢.20 附录:附录:.21 主控机程序.21 主控机程序.23 黑龙江职业学院机电工程系毕业论文 基于 STC89C51 数字式音乐盒的设计 摘摘 要要:本设计是以 STC89C51 芯片的电路为基础,外部加上放音设备,以此来实现音乐演奏控制 器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。用户可以按照 自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。对于不同型号的单片机只需要相应 的改变一下地址即可。该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和 音乐爱好者提供了很好的借鉴。 关键词关键词:单片机,音乐盒,设计,数字式 全套设计加扣全套设计加扣 30122505823012250582 黑龙江职业学院机电工程系毕业论文 黑龙江职业学院机电工程系毕业论文 前前 言言 21 世纪,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域, 有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高, 产品更新换代的节奏也越来越快。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着 CMOS 化、低功耗、小体积、大 容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应用的重要意义还在于它从根本上 改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现 在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控 制技术的一次革命。单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。 导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控 制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动 洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。 随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且日益复杂。面对浩如烟 海的信息,人们已经能够利用计算机等工具高效准确地对之进行处理,但要想将处理完的信息及时, 清晰地传递给别人,还必须通过寻求更加卓越的显示技术来实现。单片机技术与液晶显示技术的结合, 使信息传输交流向着智能可视化方向迅速发展。 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以 给人们带来美好的回忆,提高人们的精神文化享受。传统音乐盒多是机械型的,体积笨重,发音单调, 不能实现批量生产。本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能 演奏和旋音乐,功能多,外观效果多彩,使用方便,并具有一定的商业价值。 黑龙江职业学院机电工程系毕业论文 1.系统基本设计思路 1.1 课题意义 音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。当时为使教会的钟塔报时,而将大小的钟表 装上机械装置,被称为“可发出声音的组钟” 。音乐盒有着 300 多年的发展历史,是人类文明发展的历 史见证。 传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁 钉撞击铁片制成的琴键,从而发出声音。但是,机械式的音乐盒体积比较大,比较笨重,且发音单调。 水、灰尘等外在因素,容易使内部金属发音条变形,从而造成发音跑调。另外,机械音乐盒放音时为 了让音色稳定,必须放平不能动摇,而且价格昂贵,不能实现大批量生产。 本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。与传统的机械式音乐盒相比更小巧, 音质更优美且能演奏和弦音乐。电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所 以价格便宜。基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。根据存 储容量的大小,可以尽可能多的存储歌曲。另外,可以设计彩灯外观效果,使音乐盒的功能更加丰富。 1.2 设计方案 设计一个单片机的音乐盒,利用按键切换演奏出不同的乐曲。扬声器发出乐曲,数码管显示当前 为第几首歌曲。使用六个按键,两个用来切换歌曲,一个为电路的复位按键。两个用来启动和停止, 另一个为流水灯的花样切换。 1.3 研究内容 (1)电路的工作模式:演奏歌曲,数码管显示当前的歌曲。 (2)按下按键启动键进入演奏音乐模式,按上一曲下一曲来切换歌曲,共三首歌曲。 (3)按下按键停止键进入播放音乐停止数码管灭显。 (4)播放音乐时可以切换流水灯的花样。 2.单元电路方案论证 根据设计要求,本系统主要由控制器模块、显示模块构成。为较好的实现各模块的功能,我们分 别设计了几种方案并分别进行了论证。 2.1 控制器模块 方案 1:采用 51 系列作为系统控制器 单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由 于其功耗低、体积较小、技术成熟和成本低等优点,在各个领域应用广泛。而且抗干扰性能好。 方案 2:采用凌阳系列单片机为系统的控制器 凌阳系列单片机可以实现各种复杂的逻辑功能,模块大,密度高,它将所有器件集成在一块芯片 上,减少了体积,提高了稳定性。凌阳系列单片机提高了系统的处理速度,适合作为大规模实时系统 的控制核心。 因 51 单片机价格比凌阳系列低得多,且本设计不需要很高的处理速度,从经济和方便使用角度考 虑,本设计选择了方案 1。 2.2 显示模块 方案 1:采用 LED 数码管 黑龙江职业学院机电工程系毕业论文 采用控制用单片机,显示用 LED 数码管这种方案。虽然显示的内容有限,但是也可以显示数字和 几个英文字母,在这个设计中已经足够了,并且价格比液晶字符式要低的多,为了控制设计制作的成 本,在此设计中我们选用 LED 数码管显示。 方案 2:采用液晶字符显示器 控制用单片机,显示用液晶字符式,可以用软件达到很好的控制,硬件不复杂,液晶字符显示器 可以显示很丰富的内容,但是液晶字符式价格昂贵,在本设计中不需要用到复杂的显示内容,因此我 们放弃了此方案。 从济济的角度考虑,我们选择了方案 1。 2.3 放声模块 方案 1:采用 LM386 驱动 由于单片机输出的是方波,不经过电路信号放大驱动喇叭发声很小,基本听不见,采用典型的 386 运放驱动电路可以将声音驱动的清晰动听。LM386 功放电路特点是外围电路复杂,声音清晰。 方案 2:采用三极管驱动 利用三极管的放大原理也可以作为喇叭的驱动,此方案的特点是,电路简单明了,但是声音不是 那么清晰,因此我们放弃了此方案。 从实用性的角度考虑,我们选择了方案 1。 2.4 最终方案 经过反复论证,最终确定了如下方案: 1.主控制器:选用两片 51 内核的单片机作为主控制器 主控机:负责显示状态,检测按键以及向下位机传输数据 音乐机:在接受到上位机的引号后产生一定频率方波从而发声 2.外设装置:这部分是由按键、数码管、led、LM386 功放电路和扬声器等组成 3.系统总体方案介绍 3.1 系统硬件组成图 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10/T 1 P11/T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 GND 20 Vcc 40 一 一 一 89C51RC EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10/T 1 P11/T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 GND 20 Vcc 40 一 一 一 89C51RC P33 P34 P36 P37 10uf R1 10k S1 一 一 一 一 一 一 一 一 一 一 一 一 一 一 VCC 10uf R5 10k VCC 30p 30p 12MHZ 30p 30p 12MHZ Vcc P27 P26 P25 BEEP P36 P37 P33 P34 IN+ 3 IN- 2 GND 4 V OUT 5 GAIN 1 GAIN 8 BYPASS 7 Vcc 6 386一 一 LM386 R2 1k R3 10k BEEP 10uf 100uf 104 473 R4 10 Vcc + - BEEP a bf c g d e 1 2 3 4 5 6 7 a b c d e f g 8 dp dp COM SHUMAGUAN P25 P26 P27 VCC 10k + 10uf S1 1 2 一 一 一 一 VCC LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8 P00 P01 P02 P03 P04 P05 P06 P07 10K 10K 10K 10K 10K 10K 10K 10K P00 P01 P02 P03 P04 P05 P06 P07 S7 一 一 图1 设计原理图 3.2 主控芯片介绍 STC89C51 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。 在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C51 为众多嵌入式控制应用系 黑龙江职业学院机电工程系毕业论文 统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k 字节 Flash,512 字节 RAM, 32 位 I/O 口线,看门狗定时器,内置 4KB EEPROM,MAX810 复位电路,三个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口。另外 STC89X51 可降至 0Hz 静态逻辑操作,支持 2 种软件可选 择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电 保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为 止。最高运作频率 35Mhz,6T/12T 可选。 EA/VP 31 X1 19 X2 18 RESET 9 P37/RD 17 P36WR 16 P32/INT0 12 P33/INT1 13 P34/T 0 14 P35/T 1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE /P 30 P31/T XD 11 P30/RX D 10 GND 20 VCC 40 U1 ST C89C52 图 2 STC89C51 单片机引脚图 单片机是美国 STC 公司最新推出的一种新型 51 内核的单片机。片内含有 Flash 程序存储器、 SRAM、UART、SPI、PWM 等模块。 (一)STC89C51 主要功能、性能参数如下: (1)内置标准 51 内核,机器周期:增强型为 6 时钟,普通型为 12 时钟; (2)工作频率范围:040MHZ,相当于普通 8051 的 080MHZ; (3)STC89C51RC 对应 Flash 空间:4KB; (4)内部存储器(RAM):512B; (5)定时器计数器:3 个 16 位; (6)通用异步通信口(UART)1 个; (7)中断源:8 个; (8)有 ISP(在系统可编程)IAP(在应用可编程),无需专用编程器仿真器; (9)通用 IO 口:3236 个; (10)工作电压:3.85.5V; (11)外形封装:40 脚 PDIP、44 脚 PLCC 和 PQFP 等。 (二)STC89C51 单片机的引脚说明: VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次 写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。 在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被 拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这 是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流, 黑龙江职业学院机电工程系毕业论文 当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被 外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数 据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外 部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验 时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口 写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将 输出电流(ILL)这是由于上拉的缘故。 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断 0) P3.3 /INT1(外部中断 1) P3.4 T0(记时器 0 外部输入) P3.5 T1(记时器 1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 I/O 口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读 入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只 有读端口时才真正地把外部的数据读入到内部总线。上面图中的两个三角形表示的就是输入缓冲器 CPU 将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。这是由硬件自动完成的,不 需要我们操心,1 然后再实行读引脚操作,否则就可能读入出错,为什么看上面的图,如果不对端口 置 1 端口锁存器原来的状态有可能为 0Q 端为 0Q为 1 加到场效应管栅极的信号为 1,该场效应管就导 通对地呈现低阻抗,此时即使引脚上输入的信号为 1,也会因端口的低阻抗而使信号变低使得外加的 1 信号读入后不一定是 1。若先执行置 1 操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中 实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类 I/O 口被称为准双向口。 89C51 的 P0/P1/P2/P3 口作为输入时都是准双向口。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号, 此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当 用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此 时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处 理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部 程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序 存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.2.1 时钟电路 89C51 单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。内部时 钟方式如图 3 所示。在 89S51 单片机内部有一振荡电路,只要在单片机的 XTAL1(18)和 XTAL2(19) 引脚外接石英晶体(简称晶振) ,就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容 C1 和 C2 的作用是稳定频率和快速起振,电容值在 530pF,典型值为 30pF。晶振 CYS 的振荡频率范围 在 1.212MHz 间选择,典型值为 12MHz 和 6MHz。 黑龙江职业学院机电工程系毕业论文 Y1 11.0592MHz C2 30pF C3 30pF 18 19 图3 89c51内部时钟电路 3.2.2 复位电路 当在 89C51 单片机的 RST 引脚引入高电平并保持 2 个机器周期时,单片机内部就执行复位操作 (若该引脚持续保持高电平,单片机就处于循环复位状态) 。 复位电路通常采用上电自动复位和按钮复位两种方式。 最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。只要 Vcc 的上升时间不超过 1ms,就可以实现自动上电复位。 除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电 平方式和脉冲方式两种。其中电平复位是通过 RST(9)端与电源 Vcc 接通而实现的。按键手动复位电 路见图 4。时钟频率用 11.0592MHZ 时 C 取 10uF,R 取 10k。 R1 10k C1 10uF S4VCC 9 图4 89C52 复位电路 3.3 主控机模块 作为此次设计的核心硬件,主控机的作用几乎囊括了除音乐播放外的其他所有功能。 功能一:控制显示模块 功能二:控制按键模块 功能三:向下位机传输控制信号 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10/T 1 P11/T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 GND 20 Vcc 40 一一一 89C52RC P33 P34 P36 P37 10uf R1 10k S1 一一一一 一一 一一 一一一 一一一 VCC 30p 30p 11.0592MHZ Vcc P36 P37 P33 P34 a bf c g d e 1 2 3 4 5 6 7 a b c d e f g 8 dp dp COM SHUMAGUAN P25 P26 P27 S1 1 2 一一一一 VCC 图 5 主控机模块 黑龙江职业学院机电工程系毕业论文 3.4 音乐机模块 作为此次设计的存储音乐的核心硬件,音乐机机的作用就是根据主控机传输的相应信号进行判断, 相应的播放对应的歌曲。通过主控机的 P2.5P2.7 传过来的数据给音乐机的 P1.0P1.2,实现两块单片机 的通讯,最终通过音乐机的 P0.0 口传输出音乐信号,后经声音驱动电路放出美妙的音乐。 EA/V P 31 X 1 19 X 2 18 RESET 9 RD 17 WR 16 IN T0 12 IN T1 13 T 0 14 T 1 15 P10/T 1 P11/T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 T X D 11 RX D 10 GND 20 V cc 40 一一一 89C51RC 10uf R5 10k V CC 30p 30p 12MHZ P27 P26 P25 BEEP V CC 10k 图 6 音乐机模块 3.5 显示模块 显示模块主要包括数码管、LED、单片机等其他元件。该模块的主要功能: (1)播放开机动画 (2)显示点歌的曲目 (3)led 流水灯 LED 数码管(LED Segment Displays)是由多个发光二极管封装在一起组成 “8”字型的器件, 引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管分为动态显示和静态显 示驱动两种, 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机 的 I/O 端口进行驱动,或者使用如 BCD 码二-十进制译码器译码进行驱动。静态驱动的优点是编 程简单,显示亮度高,缺点是占用I/O 端口多,如驱动 5 个数码管静态显示则需要 58=40 根 I/O 端口来驱动,要知道一个 STC89C52 的 I/O 端口才 32 个呢:) ,实际应用时必须增加译码驱动 器进行驱动,增加了硬件电路的复杂性。数码管动态显示接口是单片机中应用最为广泛的一种显 示方式之一,动态驱动是将所有数码管的8 个显示笔划 a,b,c,d,e,f,g,dp的同名端连在一起,另外 为每个数码管的公共极 COM 增加位选通控制电路,位选通由各自独立的I/O 线控制,当单片机 输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于 单片机对位选通 COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位 就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM 端,就 使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为 12ms,由于人的视觉暂留现象及发光二极管的 余辉效应,尽管实际上各位数码管并非同时点亮, 但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效 果和静态显示是一样的,能够节省大量的I/O 端口,而且 功耗更低。 黑龙江职业学院机电工程系毕业论文 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10/T 1 P11/T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 GND 20 Vcc 40 一一一 89C52RC VCC a bf c g d e 1 2 3 4 5 6 7 a b c d e f g 8 dp dp COM SHUMAGUAN LED1LED2LED3LED4LED5LED6LED7LED8 P00 P01 P02 P03 P04 P05 P06 P07 图 7 显示模块 3.6 按键模块 (1)按键是输入信号的主要工具。 (2)该模块主要由五个独立按键组成: 按键 1:复位 按键 2:上一曲 按键 3:启动 按键 4:下一曲 按键 5:停止 按键 6:切换 单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个 I/O 口上只接一个按键,按键的另一 端接电源或接地(一般接地) ,这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较 复杂,但是占用的 I/O 少。根据本设计的需要这里选用了独立式键盘接法。 独立式键盘的实现方法是利用单片机 I/O 口读取口的电平高低来判断是否有键按下。将常开按键 的一端接地,另一端接一个 I/O 口,程序开始时将此 I/O 口置于高电平,平时无键按下时 I/O 口保护 高电平。当有键按下时,此 I/O 口与地短路迫使 I/O 口为低电平。按键释放后,单片机内部的上拉电 阻使 I/O 口仍然保持高电平。我们所要做的就是在程序中查寻此 I/O 口的电平状态就可以了解我们是 否有按键动作了。 在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。这里说的抖动是 机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过 注意可以避免的。这种抖动一般 10200 毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而 对于时钟是微秒的单片机而言则是慢长的。硬件去抖动就是用部分电路对抖动部分加之处理,软件去 抖动不是去掉抖动,而是避抖动部分的时间,等键盘稳定了再对其处理。所以这里选择了软件去抖动, 实现法是先查寻按键当有低电平出现时立即延时 10200 毫秒以避开抖动(经典值为 20 毫秒) ,延时结 黑龙江职业学院机电工程系毕业论文 束后再读一次 I/O 口的值,这一次的值如果为 1 表示低电平的时间不到 10200 毫秒,视为干扰信号。 当读出的值是 0 时则表示有按键按下,调用相应的处理程序。硬件电路如图 8 所示: 一一 一一 一一一 一一一 P36 P37 P33 P34 S7 一一 P24 图 8 按键模块 3.7 LM386 功放模块 功率放大器的作用是给音响放大器的负载(扬声器)提供一定的输出概率。当负载一定时,希望 输出的功率尽可能大,输出的信号的非线性失真尽可能小,效率尽可能高。 LM386 是美国的国家半导 体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为 20,但在 1 脚和 8 脚之间增加一只外接电阻或电容,便可将电压增益调为任意值,直至 200。输入端 以地为参考,同时输出端被自动地偏置到电源电压的一半,工作电压范围宽,412V 或 518V,在 6V 电源电压下,它的静态功耗仅为 24mV,且外围元件少。 LM386 是 8 引脚双排直插式塑料封装结构,其外形与引脚排列如图所示, 图 9 LM386 引脚图 2 脚为反向输入端,3 脚为同向输入端,5 脚为输出端,6 脚与 4 脚分别为电源和地端,1 脚和 8 脚为电压增益设定端;使用时,引脚 7 和地之间接旁路电容,通常为 10uf。 功放电路如图 10 所示; IN + 3 IN - 2 GND 4 V OU T 5 GAIN 1 GAIN 8 BYPASS 7 V cc 6 386一一 LM386 R2 1k R3 10k BEEP 10uf 100uf 104 473 R4 10 V cc + - BEEP 图 10 LM386 运放电路 4.节拍的确定 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象 电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍” 黑龙江职业学院机电工程系毕业论文 。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。在音乐中所谓“音调”,其实就 是我们常说的“音高”。在音乐中常把中央 C 上方的 A 音定为标准音高,其频率 f=440Hz。当两个声音 信号的频率相差一倍时,也即 f2=2f1 时,则称 f2 比 f1 高一个倍频程, 在音乐中 1(do)与,2(来) 与正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音内,有 12 个半音。以 1i 八音区为例,12 个半音是:11、12、22、23、34、44,45、5 一 5、56、66、67、7i。这 12 个音阶的分度基本上是以对数关系来划分的。如果我们 只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音 符基本音调的频率。知道了一个音符的频后,怎样让单片机发出相应频率的声音呢?一般说来,常采 用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的 I/O 口来回取反,或者说来回 清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不 同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高 A 为例: A 的频率 f = 440 Hz,其对应的周期为: T = 1/ f = 1/440 =2272s t T 图 11 频率表 由上图可知,单片机上对应蜂鸣器的 I/O 口来回取反的时间应为: t = T/2 = 2272/2 = 1136s 这个时间 t 也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时定时器为工 作方式 1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为 f0, 则定时器的予置初值由下式来确定: t = 12 *(TALL THL)/ f0,式中 TALL = 216 = 65536,THL 为定时器待确定的计数初值。因此定时 器的高低计数器的初值为: TH = THL / 256 = (TALLt* f0/12) / 256TL = THL % 256 = (TALLt* f0/12) %256 将 t=1136s 代入上面两式(注意:计算时应将时间和频率的单位换算一致) ,即可求出标准音高 A 在单片机晶振频率 f0=12Mhz,定时器在工作方式 1 下的定时器高低计数器的予置初值为 : TH440Hz = (65536 1136 * 12/12) /256 = FBH TL440Hz = (65536 1136 * 12/12)%256 = 90H 根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论