基于单片机的简易电子琴的设计与实现 联系客服

发布时间 : 星期一 文章基于单片机的简易电子琴的设计与实现更新完毕开始阅读c05dae1b571252d380eb6294dd88d0d232d43c74

基于单片机的简易电子琴的设计与实现

摘要:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。该文的主要内容是用8253芯片为核心控制元件,设计一个简易电子琴。通过按动STAR ES598PCI单板机的G6区的1~7号键,使用单板机上的8255A芯片进行音调的选择,由8253芯片控制产生不同频率的方波,输出到单板机上D1区的蜂鸣器,使其对应于G6区的1~7号键由低到高发出1~7的音阶,并由8255A芯片控制8253芯片的工作状态,使其能够控制蜂鸣器的发声与否,从而实现简易电子琴的演奏功能。同时,也可以通过事先设置好的“乐谱”回放一段音乐,实现简易电子琴的回放功能以及对用户演奏过的一段音乐进行重放功能。用户可以通过DOS界面下的菜单对电子琴的回放和重放或是演奏功能进行选择。

关键词:电子琴;单片机;8253芯片

中图分类号:TP313 文献标识码:A 文章编号:1009-3044(2014)13-3179-03

Design and Implementation of Simple Microcontroller

Based Keyboard ZHANG Dan

(Hefei University, Hefei 230601, China) Abstract: The keyboard is a combination of modern electronic music technology and the product is a new type of keyboard instrument. It plays an important role in modern music , SCM has a powerful control functions and flexible programming features, it has been integrated into the modern people's lives , become an irreplaceable part . The main content of this paper is to use 8253 as the core control elements , the design of a simple flower . By pressing the number keys 1-7 STAR ES598PCI SBC G6 zone , 8255A chips on a single board computer for tone selection control 8253 generates a square wave of different frequencies , the output of the SBC to bee region D1 buzzer to make it correspond to the G6 District No. 1 to 7 keys issued from low to high scale of 1 to 7 , 8253 by the 8255A chip to control the working status of the chip so that it can control the buzzer sound or not, thus achieve simple keyboard playing capabilities. Meanwhile , you can also pre-set \, playback achieve simple keyboard and the user had to play a piece of music for playback function. DOS user interface via the menu

next to the keyboard to play or replay and replay function selection.

Key words: Keyboard ; SCM ; 8253 1 解决问题方法及思路 1.1硬件部分

电子琴的主要的器件有一个并行接口8255和一个8253定时器。输入部分主要是由8个按键和一个并行接口8255组成。8个按键一端接地,另一端接到8255的A口输入,并且通过一个电阻接到+5V。因此,在按键不按下时,从8255A口输入的是高电平,当开关按下时,输入的则是低电平,这样通过低电平触发,既方便也对芯片起保护作用。当不同的开关按下时,从A口输入就对应一个8位的数据。通过软件检测输入的数据,然后给8253送相应频率的计数值。 电子琴以8253的2号计数器为核心。系统初始化时,2号计数器工作在“方波发生器”方式,CPU通过对定时器的通道2进行编程,使其I/O寄存器接收一个控制声音频率的16位计数值,写入顺序为先低后高,端口61H的最低位控制通道2门控的开断,,CLK2为1MHZ,当计数初值为3E8H时,OUT2输出的方波大约为1000 HZ,经过简单的滤波之后,送至蜂鸣器。改变2号计数器的计数初值就可以使蜂鸣器发出不同频率的声音。

在送出频率计数值之前,还要给方式寄存器送一个方式

值,该数决定对哪一个通道编程,采用什么模式,送入通道的计数值是一字节还是两字节,是二进制码还是BCD码。 芯片8255A的A口工作于基本输入方式下。G6区的1~7号按键(S29~S36)直接连接到8255A芯片的A口中,用于控制芯片8253的2号计数器的计数初值,从而使8253芯片能够对于不同的按键产生与其相对应的方波频率。从定时器输出的方波信号,经功率放大和滤波后驱动蜂鸣器。 芯片8255A的C口工作于基本输出方式下。8255A芯片的C口的引脚PC0连接至8253芯片2号计数器的GATE引脚上,只有当PC0输出高电平至GATE引脚时,8253芯片的2号计数器才正常工作,产生方波,从而使蜂鸣器发出有规则的声音。反之则不会产生任何频率方波,那么蜂鸣器也就不会发出任何的声音。通过8255A芯片对8253芯片的控制来达到对蜂鸣器的是否发声的控制。

在设计过程中,采用独立编址时,用地址线的高位部分和控制信号(如RD、WR、M/IO)进行组合产生 I/O接口电路的片选信号(CS),用地址线的低位部分直接连到 I/O接口芯片实现端口的选择。在此采用的是译码器译码,经过74LS138译码后,Y2输出作为8253的片选信号(CS),即其端口地址为40H~43H。Y3输出作为8255的片选信号(CS),即其端口地址为60H~63H。 1.2 软件部分