8键电子琴设计_8按钮电子琴设计
8键电子琴设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“8按钮电子琴设计”。
目录
一.摘要-----4 二.方案设计------------------------------5 1.方案一------5 2.方案二-----5 3.方案对比--5 三.系统硬件设计------------------------5 1.电子琴所用引脚------------------------6 四.系统原理图----------------------------7 1.复位电路--7 2.振荡电路--7 3.音频功放部分设计---------------------7 4.电路仿真图-----------------------------8 五.仿真程序设计-----------------------9 六.实验总结-----------------------------10 1.该系统实现的功能---------------------10 2.实验心得体会---------------------------10 2
一.摘要
本实验的目的是设计一个8键电子琴,它能够用喇叭发1、2、3、4、5、6、7、8,并且要求按下按键发声,松开延时一段时间停止,.中间再按别的键则发另一音调的声音。通过按键盘输入功能,,按键同时对应指示灯点亮,按键结束,指示灯熄灭。本系统采用AT89C51完成全部功能,T89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。它通过单片机得到不同的频率来得到相应的音阶,奏出完整的曲子。该系统硬件单路由AT89C51单片机、键盘电路、LM386音频功放电路、扩展电路及扬声器发生组组成。该系统驱动程序由主程序,发声程序以及延时程序构成。
关键字:AT891;程序3
二.方案设计
1.方案一:采用CPLD外接扬声器、键盘、数码管等。
8个译码输出显示的数码管,以显示目标芯片的32 位输出信号,且8个发光管也能显示目标器件的8位输出信号。时钟为50MHz,输出接扬声器。
具体过程:主系统可由两个模块组成:当系统检测到有按键按下时,对应音符的频率由模块1获得,这是一个数控分频器。由其clk端输入一具有较高频率的信号,分频后输出。
音符的持续时间须根据乐曲的速度及每个音符的节拍数决定,模块2的功能是为模块1提供决定所发音的分频预置值,而此数在模块1输入口停留的时间即为此音符的节拍值。
2.方案二:采用单片机外接扬声器、键盘、数码管等。
具体过程:当系统扫描到键盘上有键子被按下,则快速检测出是那一个键子,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音。
3.方案对比
对比两套方案各有优缺点,方案一采用CPLD,工作速度快,系统稳定,效果好,但是其价格昂贵;而方案二在设计这样小型电子系统方面,无论是效果还是工作速度与方案一都相差不大,而且价格较为便宜。因此,选择方案二即单片机加外设的方式设计该系统较好。
三.系统硬件设计
单片机4
1.电子琴所用管脚说明
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口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能
P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)5
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:来自反向振荡器的输出。
四.电路原理图
1.振荡器电路
振荡器电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。在为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个22P的独石电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。具体连接图如图5所示: 6
2.系统复位电路的设计
智能系统一般应有手动或上电复位电路。复位电路的实现通常有两种方式:RC复位电路和专用µP监控电路。
本次课程设计采用了上电按钮电平复位电路,如图4
3.音频功放部分设计
音频功放部分可用一片LM386来对信号进行放大在输入扬声器发声。
LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。
LM386的封装形式有塑封8引线双列直插式和贴片式。下图为LM386芯片引脚图:
4.电路仿真图7
该系统硬件单路由AT89C51单片机、键盘电路、LM386音频功放电路、扩展电路及扬声器发生组组成。
具体原理图如下:
五.仿真程序设计
该系统驱动程序由主程序,发声程序以及延时程序构成。
程序:
#include //包含reg51.h文件 Sbit speaker=P3^0;//声明喇叭位置 Sbit led=P1;
//声明指示灯位置 Unsigned char keys;
//声明变量 /*声明音阶数组--Do Re Mi Fa So La Si Do# */ unsigned char freq[]={108,102,91,86,77,68,61,57};void sound(unsigned char);//声明发声函数8
void delay(unsigned char);//声明延迟函数 //===================主程序=======================// main()
//主程序开始 {P2=0xff;
//将P2规划成输入口 while(1)
//while循环 { keys=~P2;//读取按钮 switch(keys)
//判断 { case 0x01: sound(0);led=0x01;break;
//按下S1, 发 Do 音,同时对应指示灯亮
case 0x02: sound(1);led=0x02;break;//按下S2,发 Re 音,同时对应指示灯亮
case 0x04:
六.实验总结
1.该系统实现的功能
根据功能需求与电路结构得知,当按钮开关ON时,将可有其连接的输入口读取到低电平,再次制作的一个八键的电子琴,若按S1,则发出中音DO,如按S2,则发中Re……依次类推。
2.实验心得体会
本周单片机原理及应用技术的课程设计,我通过查找资料,设计了简单的电子琴,这个电子琴有八个按键,按下不同的按键可以发出七个不同的音符。在次过程中,应用PROTEL软件画出相应的原理图,应用KEIL软件编译程序输入PROTEUS仿真软件进行了电路仿真。
在这一系列程序中,了解了产品制作过程,掌握了PROTEL软件KEIL软件PROTEUS仿真软件的应用,还有对单片机工作原理的掌握。受益匪浅。9