




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的简易电子琴设计doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 电子系统设计实验 设计报告 一 摘要 介绍了用单片机设计微型电子琴的方法。给出了电路、程序框图及程序。本设计包括单 片机学习的外设,如 LED 灯、独立键盘、矩阵键盘、蜂鸣器等。 关键词:单片机,电子琴,程序。 关键词:单片机,电子琴,程序。 二 设计要求 设计一个简易电子琴。 (1)用喇叭发 1、2、3、4、5、6、7、。 (2)要求按下按键发声,松开延时一段时间停止。 (3)中间再按别的键则发另一音调的声音。 (4)键盘输入功能。 (5)按键同时对应指示灯点亮,按键结束,指示灯熄灭。 方案设计 三 方案设计 1.音乐产生原理 由于一首音乐是许多不同的音阶组成的, 而每个音阶对应着不同的频率, 这样我们就可 以利用不同的频率的组合, 即可构成我们所想要的音乐了, 当然对于单片机来产生不同的频 率非常方便,我们可以利用单片机的定时/计数器 T0 来产生这样方波频率信号,因此,我们 只要把一首歌曲的音阶对应频率关系弄正确即可。 本次设计中单片机晶振为 12MHZ,那么定时器的计数周期为 1MHZ,假如 选择工作方式 1,那 T 值便为 T=216-5105/相应的频率,那么根据不同的频 率计算出应该赋给定时器的计数值,列出不同音符与单片机计数 T0 相关的计数 值如下表所示: 按键 S1 音阶 中音 do 参数 108 S2 S3 S4 S5 S6 S7 S8 中音 re 中音 mi 中音 fa 中音 so 中音 la 中音 xi 高音 do 102 91 86 77 68 61 57 2.方案设计 (1)方案一:采用 CPLD 外接扬声器、键盘、数码管等。 8 个译码输出显示的数码管,以显示目标芯片的 32 位输出信号,且 8 个发 光管也能显示目标器件的 8 位输出信号。时钟为 50MHz ,输出接扬声器。 具体过程:主系统可由两个模块组成:当系统检测到有按键按下时,对应音 符的频率由模块 1 获得,这是一个数控分频器。由其 clk 端输入一具有较高频率 的信号,分频后输出。 音符的持续时间须根据乐曲的速度及每个音符的节拍数决定, 模块 2 的功能 而此数在模块 1 输入口停留的时间即 是为模块 1 提供决定所发音的分频预置值, 为此音符的节拍值。 (2)方案二:采用单片机外接扬声器、键盘、数码管等。 具体过程: 当系统扫描到键盘上有键子被按下, 则快速检测出是那一个键子, 然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电 路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一 个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序, 发出后按的键的音。 3.方案选择 对比两套方案各有优缺点,方案一采用 CPLD,工作速度快,系统稳定,效 果好,但是其价格昂贵;而方案二在设计这样小型电子系统方面,无论是效果还 是工作速度与方案一都相差不大,而且价格较为便宜。因此,选择方案二即单片 机加外设的方式设计该系统较好。 四 系统硬件设计 根据设计题目要求,该系统需要涉及如下几个方面: (1)电源部分 (2)单片机部分 (3)音频功放部分 (4)扬声器、键盘及 LED 指示灯部分 1.电源部分设计 由于本系统构造简单,不宜使用自制或者购买的 5v 稳压电源,采用三节 5 号电池供电即可。 2.单片机部分设计 根据本系统的特点,采用 AT89C51 单片机即可完成全部功能。 (FPEROMFalsh AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器 Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微 处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存储 器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输 ATMEL 出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本。AT89C 单 片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 单片 机引脚图见下图: (1)主要特性 与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 (2)管脚说明 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 口的管脚被外部拉低,将输出电流。这是由于 内部上拉的缘故。 口当用于外部程序存储器或 16 位地址外部数据存储器进行 P2 存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当 对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为 输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示: 口管脚 备选功能 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 口同时为闪烁编程和编程校验接收一些控制信号。 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)振荡器特性 XTAL1 和 XTAL2 分别为反向放大器的输入和输出。 该反向放大器可以配置 为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件, XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外 部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 (4)芯片擦除 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并 保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1” 且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两 种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计 数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振 荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 3.音频功放部分设计 音频功放部分可用一片 LM386 来对信号进行放大在输入扬声器发声。 LM386 是美国国家半导体公司生产的音频功率放大器,主要应用于低电压 消费类产品。为使外围元件最少,电压增益内置为 20。但在 1 脚和 8 脚之间增 加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位 参考,同时输出端被自动偏置到电源电压的一半,在 6V 电源电压下,它的静态 功耗仅为 24mW,使得 LM386 特别适用于电池供电的场合。 LM386 的封装形式有塑封 8 引线双列直插式和贴片式。下图为 LM386 芯片 引脚图: 4.其他部分设计 由该系统特点及设计要求可知,LED、外扩键盘及扬声器用手边能找到的型 号即可。 五 电路原理设计 1.系统原理框图 LED 键 盘 输 入 AT89C51 音频 2.电路原理图 该系统硬件单路由 AT89C51 单片机、键盘电路、LM386 音频功放电路、扩 展电路及扬声器发生组组成。 具体原理图如下: D1 D2 D3 D4 D5 D6 D7 VCC S RES2 C? ELECTRO1 C4 10 u U2 U1 C? 8 7 6 5 ELECTRO1 C? CAP SPEAKER P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 13 12 VCC 15 14 X1 KEY S9 C1 30 p Y1 11 .0 592 M C2 30 p 1K R1 X2 10 u C3 31 X1 19 X2 18 9 17 16 INT1 INT0 T1 T0 EA/VP X1 X2 RESET RD WR RXD TXD ALE/P PSEN 10 S 11 30 29 LS1 D1 D2 D3 D4 D5 D6 D7 D8 1 2 3 4 5 6 7 8 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 P2 0 P2 1 P2 2 P2 3 P2 4 P2 5 P2 6 P2 7 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 S1 S2 S3 S4 S5 S6 S7 S8 R? RES2 R? RES2 LM3 86 1 2 3 4 Z Z IN- P IN+ VCC GND OUT C? ELECTRO1 VCC R? D8 该系统驱动程序由主程序,发声程序以及延时程序构成。 1.程序: 驱动程序设计 六 驱动程序设计 /* panio.c-电子琴设计*/ #include Sbit speaker=P30; Sbit led=P1; Unsigned char keys; /包含 reg51.h 文件 /声明喇叭位置 /声明指示灯位置 /声明变量 /*声明音阶数组- Do Re Mi Fa So La Si Do# */ unsigned char freq=108,102,91,86,77,68,61,57; void sound(unsigned char); void delay(unsigned char); /声明发声函数 /声明延迟函数 /=主程序=/ main() P2=0xff; while(1) keys=P2; switch(keys) case 0x01: sound(0); led=0x01; break; case 0x02: sound(1); led=0x02; break; case 0x04: sound(2); /按下 S2,发 Re 音,同时对应指示灯亮 /按下 S1, 发 Do 音,同时对应指示灯亮 /主程序开始 /将 P2 规划成输入口 /while 循环 /读取按钮 /判断 led=0x04; break; case 0x08: sound(3); led=0x08; break; case 0x10: sound(4); led=0x10; break; case 0x20: sound(5); led=0x20; break; case 0x40: sound(6); led=0x40; break; /按下 S7, Si 音, 发 同时对应指示灯亮 /按下 S6,发 La 音,同时对应指示亮 /按下 S5,发 So 音,同时对应指示灯亮 /按下 S4,发 Fa 音,同时对应指示灯亮 /按下 S3,发 Mi 音,同时对应指示灯亮 case 0x80: sound(7); led=0x80; break; /按下 S8,发 Do 音,同时对应指示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论