范文一:简易电子琴设计
※※※※※※※※※
※※ 2009级电子实习
※※ 课程设计 ※※ ※※※※※※※※※
电子实习课程设计报告书
简易电子琴设计 课题名称
姓 名
学 号
电气系 院、系、部
电子信息工程 专 业
指导教师
2011年 6 月28日
1
简易电子琴设计
20096404 安占峰
本报告讲述了用555制作简易电子琴,从而产生三种不同音阶控制电路的设计,它能实现在按下3个按键的情况下产生3种不同的音调。
本实验完成了简易电子琴的设计。基本设计思路是采用了模块设计:实现基
本要求是用555构成多谐振荡器和NPN三极管(9013)构成的放大电路等元件构建三按键简易电子琴电路。
一、设计目的
1、了解由555定时器构成的简易电子琴电路及原理
2、掌握多级三极管组成放大电路,合理使用和搭配其他电子元件,并计算各元件的参数使其实现简易电子琴的功能。
二、设计要求
要求:用555定时器构成单稳态触发器实现,当按键按下后发光二极管(3个)发光,给电路提供电源;同时隔离选频电阻之间的电平。选频用电位器调节实现(可加在开关和触发器输入之间),信号经多谐震荡器输出后通过两个NPN三极管(9013)组成的功率放大电路,来驱动喇叭。调节电位器(转换成固定组值的电
、2、3。 阻,按键就可以实现电位器的功能),使其音阶发出1
三、设计方案及原理框图
1、多谐振荡器的工作原理:
多谐振荡器是能产生矩形波的一种自激振荡器电路,由于矩形波中除基波外还含有丰富的高次谐波,故称为多谐振荡器。多谐振荡器没有稳态,只有两个暂稳态,在自身因素的作用下,电路就在两个暂稳态之 间来回转换,故又称它为无稳态电路。
由555定时器构成的多谐振荡器如图1所示,R1,R2和C是外接定时元件,电路中将高电平触发端(6脚) 和低电平触发端(2脚)并接后接到R2和C的连接处,将放电端(7脚)接到R1,R2的连接处。
由于接通电源瞬间,电容C来不及充电,电容器两端电压uc为低电平,小于(1/3)Vcc,故高电平触发 端与低电平触发端均为低电平,输出uo为高电平,放电管VT截止。这时,电源经R1,R2对电容C充电,使 电压uc按指数规律上升,当uc上升到(2/3)Vcc时,输出uo为低电平,放电管VT导通,把uc从(1/3)Vcc 上升到(2/3)Vcc这段时间内电路的状态称为第一暂稳态,其维持时间TPH的长短与电容的充电时间有关 。充电时间常数T充=(R1,R2)C。 由于放电管VT导通,电容C通过电阻R2和放电管放电,电路进人第二暂稳态.其维持时间TPL的长短与电 容的放电时间有关,放电时间常数T放,R2C0随着C的放电,uc下降,当uc下降到(1/3)Vcc时,输出uo。 为高电平,放电管VT截止,Vcc再次对电容c充电,电路又翻转到第一暂稳态。不难理解,接通电源后,电 路就在两个暂稳态之间来回翻转,则输出可得矩形波。电路一旦起振后,uc电压总是在(1/3,2/3)Vcc 之间变化。图1(b)所示为工作波形。
2
f=1.43/((R1+2R2)C) 2、5V直流电压源转化流程图:
3、整体流程图:
四、单元电路设计及主要元器件参数计算
1、5V直流电压源转化电路图:
3
R1=100Ω,R2=300Ω,Rw=200Ω,VDZ=3V,
2、电位器电阻的确定:
由555多谢振荡器可算出,
f=1.43/((R1+2R2)C)
电位器(用单个固定阻值的电阻代替)调整输入信号电路:
可得:f=1.43/((2R'+Rk)C),故得下表:
4
音阶 1 2 3 4 5 6 7 i
f hz 261.6 293.7 329.6 349.2 392.0 440 493.9 523.3
RkΩ 34.7 28.7 23.4 21.0 16.5 12.5 8.95 7.33
3、两级三极管(NPN9013)组成的多级放大电路:
上图是由两个NPN三极管(9013)组成的两级放大电路,因555多谢震荡器的最大输出电压为3.6V,本设计中所用的扬声器的规格为(9Ω,4W),故放大电路的放大倍数不宜过大,为1.5--2倍最合适,故有:
设该放大电路的参数:
β1=β2=50,VCC=5V,
UT=26MV,rbb'=300Ω;
Rb1=285KΩ,
Rc1=2KΩ,Rc2=2KΩ,
Re1=1KΩ,Re2=2KΩ
UBEQ1=UBEQ2=0.6V。
这个放大倍数Au=1.78,符合设计要求。
五、电路图
5
总体电路图:
六、调试及故障分析
*******************************************************************************
*************************************************************************
七、设计总结:
通过对此课程的设计,我不但巩固了以前学过的知识,更重要的是还学会了如何运用所学的知识去解决实际问题,还结合数字电子技术和模拟电子技术,让我明白了学以致用的真谛。
八、参考文献:
[1]余孟尝.数字电子技术基础简明教程.高等教育出版社,2010 [2] 杨素行.模拟电子技术基础简明教程.高等教育出版社,2010 [3] 杨刚,龙海燕.现代电子技术——VHDL与数字系统设计.北京:电子工业出版社,2004
[4] 曹昕燕,周凤臣.EDA技术实验与课程设计.北京:清华大学出版社,2006
6
范文二:EDA简易电子琴设计
合肥工
业大
学
业子科技业业业学与
《集成业路业程业业》
业易业子琴业业一、业业目的
使用VerilogHDL业言业行前端业业~使用并Quaruts业件在GW48
PK2业业上业业~业业硬件业子琴。业子琴要求有仿真8音业~使用个外部业业信号3MHz~能同步业示音业。
二、业业要求
1、 业业一业易业子琴。要求能演奏的音域业个D业的do到E业do。
2、 用GW48
PK2中的8按业作业琴业。 个
3、 GW48
PK2中有蜂业器。
4、 可以使用GW48
PK2上的12MHz作业业入业业信号
三、业业思路
通业可业程业业器件;PLD,和VHDL硬件描述业言业业业子琴的基来本要求。 业业的主是控分业器~业业入的业率按照每音业业业的分业体数与个
系业行分业~得到各音业业业的业率分业在蜂业器和业管上以音和业数个数声
率业的形式作业业出。 数
四、业业业成原理与
下业业系业的工作原理业。框
分业置 数
按
业
分
业
器
12MHZ
蜂 业 器
数业管业示
五、模业业业
1.音名业率的业系与
音业的12平均率业定,每2八度音;如业业中的中音个1高音与
1,之业的业率相差1倍。在2八度音之业~又可分业个12半音个。
灵位~音符A;业业中的低音6,的业率业440HZ~音符B到C之
业、,到,之业业半音~其余业全音。由此可以业算出业业中所有的
音符的业率~在业我业只需业算出中音,到高音,的业率可。如即
下所示,
表一 业业音名业率的业业业系与
音名中音中音中音中音中音中音中音高音
,,,,,,!,业
率/HZ523.3587.3659.3698.5784880987.81046.5
由于各音符业业的业率多业非整~而分业系又不能业小~故必业业数数数将
算得到的分业四舍五入取整。若分业器业业业率业低~业由于分业系业小数数~
四舍五入取整后的业差业大~若业业业率业高~业然业差业小~但分业业大数将。业业的业业业业合考业方面的因素~在量少业率业差的前提下取合适的两尽减
业业业率。本业业要求用12MHZ的业业信~所以不必考业业方面的因脉冲号
素。业业上~只要各音符业的相业业率业系不业~业奏出的音业起是个来听来
不走业的。会
2.分业系初始业;业置,数与数
本例业业的音业业子琴业取12MHZ的系业业业业率。在控分业器模业中~数
由于控分业器业出的波形是业窄的波~业了更好地业业业器业数脉极脉冲声
生~少业出的偶次业波分量~在到业器之前需要均衡占空比~业减达声从
而生成各音符业业业率的业方波业出。业业程业业上业行了一次二分业~业称个
率业业原的二分之一~来即6MHZ。
因此~分业系的业算可以按照下面的方法业行。以中音数1业例~业业的业率业业523.3HZ~的分业系业业业,它数
Divider=6MHz/523.3=6*106 /523.3=11466
至于其他音符~同业由上式求出业业的分业系~业业利用程序可以业松数
地得到相业的业。各音名业业的分业系如下表,声数
表二 各音名业业的分业系数
音名中音中音中音中音中音中音中音高音1
1234567分业系数1146610216910185907653681860745733
;divider,
由于最大的分业系业数11466~故采用14位二业制业器已能业足分业要数
求。分业系业业将数0~其初始业业16383;214 -1 ,可~此业业器不即声
会声数即参业。业于不同的分业系~加业不同的初始业可。本业业业考王金明,《Verilog HDL程序业业程》~采用差业法业行分业。把差业作业初教
始业~业不同音业的业的源。各音名业业的初始业如下表,声来
表三 各音名业业的初始业
中音中音中音中音中音中音中音高音1音名1234567初始业4917616772827793873095651030910650
;origin,
3.数控分业器
数与个数控分业器是业基准业率业行分业~得到各音业业业的业率业出。
控分业模业是由一初始业可业的个14位加法业器成~业业器的数构数
模业214=16384~业器业业业~业生一业位信~业信业就是用当数个号号
作业音的业率信。其分业业分业和展业部分。号脉冲两
a) 业分业
assign preclk=(divider==16383)?1:0;
always@(posedge clk)
begin
if(preclk)
divider=origin;
else
divider=divider+1;
end
b) 展业;二分业,脉冲
always@(posedge preclk)
begin
speaker=~speaker;目的是业分业业生的占空比小的波形业行拓业~使得波形有足业业的高将很
业平业业业业器。来声
六、业业仿真
;一, 业业使用的业器业件与
业器
康芯GW48系列EDA业业-----GW48-PK2
业业业路业和适用范业,本业业适用模式3~其业业如下构
1.Altera公司的Cyclone系列的EP2C5T144C8芯片
2.康芯业业教学箱
业件
Quartus II
Quartus II 是Altera公司的业合性PLD业业业件~支持原理业、VHDL、VerilogHDL以及AHDL;Altera Hardware Description
Language,等多业业业业入形式~内仿真嵌自有的业合器以及器~可以完成业业业入到硬件从配置的完整PLD业业流程
以下业使用Quartus II业件得到的RTL业业业
(二) 业业方法
注,业业模式3~此模式下按业业琴业式~适合本业业演奏。1.打业Quartus?业件~file-NewProjectWizard-业业程序e_piano2.2.Assignment-Device-业置芯片业Cyclone?系列的EP2C5T144C8
3.定业管脚如下
clkPIN_128index[2]PIN_3code[0]PIN_39index[3]PIN_4code[1]PIN_40index[4]PIN_5code[2]PIN_41index[5]PIN_6code[3]PIN_42index[6]PIN_7dPIN_47index[7]PIN_10index[0]PIN_1spkPIN_129index[1]PIN_2
下业业管脚定业界面
4.定业完成后再次业业~再业行Programmer~业中e_piano.sof,业始下业。下业业业业下业界面
5.下业完成后控制按业~业察音业准~音~业管能业确声清晰数正常业示音业。七、业业业业
根据老业的要求~我业先一起通业所学懂知业业业了业业原理~不的业了下其他同~最后定制出了大学划体致业。在具业业业程中~我业根据步业逐次业业~业业了有业业料~主要包括王金明,《Verilog HDL程序业业教程》以及潘松~业业~黄潘明的《EDA技业业用程》教
在初次业分业模业业写数写候~使用的是比业基本的业器分业法~业程序后在modelsim业件中业行了~业业仿真况无法业察到分业情。业业分析~原因是由于分业比业大~因此在波形业中业业很察到。而且由于业分业的占空比小~更业以业很找察到高业平。在原因到后~业了考察程序的性能~我业业入业率小。同业适业小分业比~业业就得到了模业中的分业将减当仿真
波形。
通业此次业业~我业不业了学会Quartus II业件的使用方法~业业集成业路业业有了更深的业业~业业业知业得到了加强。同业业业到了自己的不足~比如有些知业已业模糊~所以有待于业业~所业“温学故而知新”~我业要业的业西业多。业次的业业很学将研学将来很自己以后的究生业和的工作有大的帮践助~也是一次业的业业,
参献考文
1.王金明,《Verilog HDL程序业业程》 教
2.潘松~业业~黄潘明《EDA技业业用程》教
3.其他上业网料
附业,程序源代业
//信定业业明,号与
//clk:用于业生各业音业业率的基准业率~
//key:业子琴音符业入端口~
//speaker:用于激励声业器的业出信业~本例中业号
方波信~号
//med,high:分业用于业示中音~高音音符~各业业
一业业示管和个数LED来业示~
//origin:业控分业模业提数供音符业率的初始业~
module dianziqin(clk,key,speaker,med,high);
input clk; //12MHZ
input [7:0] key;
output speaker;
output high; //高音业示
output [3:0] med; //中音业示
reg [13:0] divider; //分业系和初始业数
reg [13:0] origin;
reg speaker;
reg high;
reg [3:0] med;
wire preclk;
assign preclk=(divider==16383)?1:0; //14位~业业业业率业行业分业
always@(posedge clk)
begin
if(preclk)
divider=origin;
else
divider=divider+1;
end
always@(posedge preclk)
begin
speaker=~speaker;
//业行2分业~拓业波形~业生方波信号
end
parameter do=8'b00000001,
re=8'b00000010,
mi=8'b00000100,
fa=8'b00001000,
so=8'b00010000,
la=8'b00100000,
xi=8'b01000000,
do_=8'b10000000; //状独业业业~采用业业业业方式
always@(key) //分业比业置
case(key)
do: begin
origin=4917;
med=1;
high=0;
end
re: begin
origin=6167;
med=2;
high=0;
end
mi: begin
origin=7282;
med=3;
high=0;
end
fa: begin
origin=7793;
med=4;
high=0;
end
so: begin
origin=8730;
med=5;
high=0;
end
la: begin
origin=9565;
med=6;
high=0;
end
xi: begin
origin=10309;
med=7;
high=0;
end
do_: begin
origin=10650;
med=1;
high=1;
end
default:begin
origin=16383;
high=0;
end
endcase
endmodule
范文三:简易电子琴设计
新疆农业大学科学
课程名称:
学生姓名: 完成时间: 技术学院
课 程 设 计 报 告
单片机原理与应用
梁保军
2015年7月2日
I
II
摘 要
本次设计为简易电子琴设计,利用8051单片机内定时器和I|O端口,设计一台简易电子琴,能通过按键进行简单的乐曲演奏。每个不同的音符对应着不同的频率,利用单片机内部定时器TO 结合I|O端口来产生不同频率的方波信号改变TO 的计数值即可改变不同的音符。
关键词:8501单片机 音符 频率 内部定时器
III
目 录
一、概 述 ··················································································································· 1
1.1 课题设计目的及其意义 ······················································································ 1 1.2 课题设计的任务与主要内容 ················································································ 1 二、基本组成和原理 ····································································································· 1
2.1 音乐相关知识 ·································································································· 1 2.2 简易电子琴基本原理及其框图 ··········································································· 3
2.2.1基本思想 ································································································ 3 2.2.2硬件框图 ································································································ 3 2.2.3软件设计流程图 ······················································································· 4
····················································································· 4 3.1 元器件清单及其电路图 ·
3.2 单片机89C51的简介 ························································································· 5 3.3 键盘电路 ········································································································ 6 3.4 振荡电路 ········································································································ 7 3.5 复位电路 ········································································································ 7 3.6 音频放大电路 ·································································································· 8 ·································································································· 9 四、 系统软件的设计 ·
··························································································· 9 4.1 系统的软件主程序 ·
·················································································· 12 4.2 系统的软件的调试仿真 ·
总结 ······················································································································· 13 参考文献 ················································································································· 14 附录 ······················································································································· 15
附录1简易电子琴PCB 二维图 ··············································································· 15 附录2简易电子琴PCB 三维图 ··············································································· 15
IV
基于单片机简易电子琴
一、概 述
1.1 课题设计目的及其意义
单片机(单片微型计算机)是大规模集成电路技术发展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠等特点。单片机的应用相当广泛,从平常的家用电器到航空航天系统和国防军事、尖端武器都能找到它的身影。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
随着社会的发展进步,人们的生活水平也逐步提高,音乐已经成为了我们生活中很重要的一部分,在工作和学习之余,欣赏音乐不仅使身心得到放松,同时也提高人们的精神品质和个人素养。当代,爱好音乐的年轻人越来越多,也有不少人自己练习弹奏乐器,作为业余爱好和一种放松的手段,鉴于一些乐器学习难度大需花费太多精力,且其价格太过于高昂,使得一部分有这种想法的人不得不放弃这种想法,而电子琴又是一种新型的键盘乐器,它是现代电子科技与音乐结合的产物,价格相对便宜,能够满足一般爱好者的需求,因此,在现代音乐中扮演着重要的角色。 故简易电子琴的研制具有一定的社会意义。
1.2 课题设计的任务与主要内容
本文的主要内容是用AT89C51单片机为核心控制元件,设计一个简单的电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。定时器按设置的定时参数产生中断,由于定时参数不同,就会发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。
先根据要求设计硬件电路和编写相应的程序,然后进行仿真调试,最后细心焊接硬件电路图,将程序烤入芯片中,最终达到设计目的。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
具体实现的功能:按下音符键可以发出相应的音符。
二、基本组成和原理 2.1 音乐相关知识
在人类还没有产生语言时,就已经知道利用声音的高低、强弱等来表达自己的思想和感情。声带、琴弦等物体振动时会发出声波,声波通过空气传播进入人耳,人们就听到了声音。声音有噪音和乐音之分振动有规律的声音是乐音,音乐中所用的声音主要是乐音。
1
乐音听起来有的高、有的低,这就叫做音高。音高是由发声物体振动频率的高低决定的,频率高声音就高,频率低声音就低。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。
一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率, 这样就可以利用不同的频率组合,加以拍数对应的延时,构成音乐。如果单片机要自己播放音乐就必须考虑到节拍的设置。
对于AT80C51而言要产生一定频率的方波一般是先将某口线输出高电平,延迟一段时间后再输出低电平。通过改变延迟时间可以改变单片机的输出频率。单片机的延时主要有两种方式,即软件延时和使用定时/计数器延时。其中软件延时不是很精确,而电子琴电路由于每个音符的频率值要求比较严格,因此我们选用定时/计数器延时。
由于本课程设计是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。因此,我们只需弄清楚音乐中的音符和对应的频率,利用单片机的定时/计数器来产生方波频率信号即可。
要产生相应的音频脉冲,只需要计算出某音频的周期,再除以2。利用计数器计时半周期,计满时使P2.0反向,然后重复计时再反向。本例中,单片机工作在12MHz 时钟,使用定时器/计数器T0,工作模式为1,改变计数初值TH0、TL0就可产生不同频率的脉冲信号。
例如低3MI 音,频率为330Hz ,其周期T=1/f=1/330=3030us,计数值N=3030/2=1515,所以每计数1515次P2.0反向。计数初值T=65536-N=64021。C 调的各音符频率与计数值T 的对照表如表1所示。
表1 C 调各音符频率与计数值T 对照表
2
2.2 简易电子琴基本原理及其框图 2.2.1基本思想
简易的电子琴系统主要是采用AT89C51单片机,单片机工作于12MHZ 的时钟频率,使用其定时/计数器T0,工作模式为1,设计4*4键盘矩阵,设置成16个音,可随意弹奏想要表现的音乐,因为单片机产生的音频脉冲没有足够的驱动能力,所以用三极管放大电路实现音频的放大,保证扬声器能产生所要实现的音符声音。
2.2.2硬件框图
3
2.2.3软件设计流程图
本设计采用AT89C51单片机作为核心处理器件,按下复位键,进入初始化,调用键盘扫面子程序,获得键值,查询音阶表,获取定时初值,向喇叭输入相应频率的脉冲驱动,发出相应的音调,若按键没有释放,则一直发声;若按键松开,则停止发声。当读到结束符时,停止播放音乐。 具体软件流程图如下:
三、系统的硬件结构 3.1 元器件清单及其电路图
4
简易电子琴硬件电路图:
3.2 单片机89C51的简介
AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable) 的可反复擦写1000次的Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM ),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT )电路,片内时钟振荡器。
5
此外,AT89S51设计和配置了振荡频率可为0Hz 并可通过软件设置省电模式。空闲模式下,CPU 暂停工作,而RAM 定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP 、TQFP 和PLCC 等三种封装形式,以适应不同产品的需求。 该系列单片机引脚与封装如下图所示:
主要引脚功能:
1、RST (9):复位输入。当振荡器复位时,要保持RST 引脚2个机器周期的高电平时间;
2、XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入; 3、XTAL2(18):来自反向振荡器的输出;
4、P1口(1-8):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL 门电流; 5、
EA /V P P
__
:当EA 保持低电平时,单片机只访问外部程序存储器。EA 为高电平时,
____
单片机只访问内部程序存储器。
3.3 键盘电路
键盘是最常用的单片机输入设备,大致可以分为独立连接式键盘和矩阵式。独立连接式键盘是最简单的键盘电路,每个键独立接入一根数据线。这种键盘结构简单,使用
6
方便,但是占用的I/O口线较多。矩阵式键盘由行线和列线组成,按键位于行列的交叉点上,行列式键盘可节省I/O口,适合按键数较多的场合。所以本设计的4*4键盘采用矩阵式键盘。
3.4 振荡电路
单片机的时钟信号用来提供单片机内各种位操作的时间基准,时钟信号通常有两种电路形式得到:内部振荡方式和外部振荡方式。
在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部震荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。晶振通常选用6MHz 、12MHz 或者24MHz 。本设计中采用的是12MHz 。电容器C1、C2起稳定振荡频率、快速起振的作用,电容值一般5~30pF。
内部振荡方式所得的时钟信号比较稳定,电路中使用较多。振荡方式如下图:
3.5 复位电路
复位操作完成单片机内电路的初始化,是单片机从一种确定的状态开始运行。 当单片机的复位引脚RET 出现5ms 以上的高电平时,单片机就完成了复位操作。如果RST 持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位
后能脱离复位状态。
根据应用要求,复位操作通常有2种基本形式:上电复位、开关复位。
上电复位要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。
上电后,由于电容要充电,是RST 持续一段时间高电平时间。当单片机已经在运行之中时,按下复位键也能使RST 持续一段时间的高电平,从而实现上电且开关复位的操作。
通常选择C=10~30uF,R=10~1k? 常用的复位电路如下图所示:
在单片机启动后,电容C 两端的电压持续充电为5V ,这是时候10K 电阻两端的电压接近于0V ,RST 处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压从5V 释放到变为了1.5V ,甚至更小。根据串联电路电压为各处之和,这个时候10K 电阻两端的电压为3.5V ,甚至更大,所以RST 引脚又接收到高电平。单片机系统自动复位。
3.6 音频放大电路
使用PNP 管来放大,其中发射极接5V 电源,集电极接喇叭,电路中的电容是用来隔离直流电用的。
PNP 管放大原理:当PNP 管的VC<><>
本课程设计的音频放大电路图(三极管型号为9015):
四、 系统软件的设计 4.1 系统的软件主程序
/*
名称:简易电子琴设计
说明:本程序运行时,按下矩阵键盘中的按键,数码管会显示当前的按键值,蜂鸣器会播放对应的音符 */
#include #define uchar unsigned char #define uint unsigned int #define SmgIO P0 //数码管显示的控制IO #define KeyIO P1 //矩阵键盘的控制IO sbit BEEP = P2^7; //蜂鸣器对应的控制IO //共阳数码管编码数据 uchar code Table_Smg[] = { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e }; //各音符对应的延时 uint code Table_Tone[] = { 64021, 64103, 64260, 64400, 64524, 64580, 64684, 64777, 64820, 64898, 64968, 65030, 65058, 65110, 65157, 65178 }; uchar KeyNo; //按键序号 /** 延时子函数 **/ void DelayMS(uchar time) { uchar i; while(time--) { for(i=0; i<120; i++);="" }="">120;> /** 矩阵键盘的扫描子函数 **/ void Key_Scan(void) { uchar Temp, Num; P1 = 0x0f; //高四位置 0 ,放入四列 DelayMS(2); //按键按下后 00001111 将变成 0000XXXX,X 中 1 个为 0,3个仍为 1 Temp = KeyIO ^ 0x0f; //异或操作会把3个1变成0,唯一的0变成1 switch(Temp) { case 1 : Num = 0; break; case 2 : Num = 1; break; case 4 : Num = 2; break; case 8 : Num = 3; break; default : return; } KeyIO = 0xf0; //低四位置 0 ,放入四列 DelayMS(2); //按键按下后 11110000 将变成 XXXX0000,X 中 1 个为 0,3个仍为 1 Temp = (KeyIO >> 4) ^ 0x0f; //将高四位移至低四位,并将其中唯一的 0 变为 1,其余为 0 switch (Temp) { case 1 : Num += 0; break; case 2 : Num += 4; break; case 4 : Num += 8; break; case 8 : Num += 12; break; default : return; } KeyNo = Num; } /** 定时器 0 中断服务程序,不同频率的声音由该中断产生 **/ void Play_Tone() interrupt 1 { TH0 = Table_Tone[KeyNo] / 256; TL0 = Table_Tone[KeyNo] % 256; BEEP = ~BEEP; } /** 主函数 **/ void main(void) { SmgIO = 0xbf; //初始显示 "-" TMOD = 0x01; IE = 0x82; while(1) { KeyIO = 0xf0; //发送扫描码 if (KeyIO != 0xf0) //如果有按键按下 { Key_Scan(); //矩阵键盘的扫描 SmgIO = Table_Smg[KeyNo]; //显示按键数值 TR0 = 1; //启动定时器,并发出对应的声音 } else { TR0 = 0; //停止播放声音 } DelayMS(2); } } 4.2 系统的软件的调试仿真 硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。这里我们使用Proteus 软件进行仿真,加载编译好的.HEX 即文件到单片机后,点击运行按钮 即可,仿真电路图如下:(当我们按键时如果成功就会听到我们想要的音乐) 总结 本次课程设计制作简易电子琴,虽然花费了我们很多精力,但收获颇丰,一方面,将自己的理论知识与实践相结合起来,进一步巩固了专业基础知识和相关专业课程知识;另一方面,也培养了自己独立自主、综合分析的思维与创新能力,更让我知道了团队的力量是巨大的。 设计的过程不是一帆风顺,遇到过各种各样的问题。特别是设计软件时,一些很细小的问题都可能导致功能性的错误,修改了多次才通过仿真。在设计过程中我发现自己对以前所学过的知识理解得不够深刻,掌握得不够牢固,请教了老师和同学。同时在具体的制作过程中我们发现一些书本上的知识与实际的应用存在着一定的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方面的问题,这也让我更深刻地体会到在今后的学习工作中也要注重理论联系实际。 参考文献 [1]《单片机原理与应用》,机械工业出版社,2013.8 [2]《电路》,等教育出版社,2006.5 [3]《Protel 2004 电路设计》,清华大学出版社,2006.8 [4] 楼然苗,李光飞,《单片机课程设计指导》,北京,北京航空航天大学出版社,2007年 [5] 吴金戌,沈庆阳,郭庭吉,《8051单片机实践与应用》,北京,清华大学出版社,2002年 [6] 吴国经,《单片机应用技术》,北京,中国电力出版社, 2004.年 [7]高天康《音乐知识词典》甘肃人民出版社2003.08 [8] 董雷刚, 崔晓微, 程书伟. 基于单片机的数字计算器的设计[J]. 电脑知识与技 术,2012,10:2386-2388+2414. [9] 张旭强. PIC单片机键盘电路应用四例[J]. 电子制作,2007,08:20-24. [10] 童诗白. 模拟子技术基础. 北京:高等教育出版社,2006.5 附录 附录1简易电子琴PCB 二维图 附录2简易电子琴PCB 三维图 简易电子琴的设计 摘 要 随着基于 CPLD 的 EDA 技术的发展和应用领域的扩大与深入, EDA 技术在电子信 息、通信、自动控制用计算机等领域的重要性日益突出。作为一个学电子信息专业的学 生,我们必须不断地了解更多的新产品信息,这就更加要求我们对 EDA 有个全面的认识。 本程序设计的是简易电子琴的设计。采用 EDA 作为开发工具, VHDL 语言为硬件描述语言, MAX + PLUS II作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步 实现了设计目标。本程序使用的硬件描述语言 VHDL ,可以大大降低了硬件数字系统设计 的入门级别,让人感觉就是 C 语言的近亲。通过老师的指导和自己的学习完成了预想的 功能。 1 引言 1.1 课程设计的目的 巩固和运用所学课程,理论联系实际,提高分析、解决计算机技术实际问题的独立 工作能力,通过对一个简易的八音符电子琴的设计,进一步加深对计算机原理以及数字 电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和 步骤。巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立 工作能力。为了进一步了解计算机组成原理与系统结构,深入学习 EDA 技术,用 VHDL 语言去控制将会使我们对本专业知识可以更好地掌握。 1.2 课程设计的内容 (1)设计一个简易的八音符电子琴,它可通过按键输入来控制音响。 (2)演奏时可以选择是手动演奏(由键盘输入)还是自动演奏已存入的乐曲。 (3)能够自动演奏多首乐曲,且每首乐曲可重复演奏。 2 开发工具简介 2.1 EDA技术 EDA 是电子设计自动化(Electronic Design Automation )缩写,是 90年代初从 CAD (计算机辅助设计) 、 CAM (计算机辅助制造) 、 CAT (计算机辅助测试)和 CAE 语言 HDL (Hardware Description language) 完成的设计文件, 自动地完成逻辑编译、 化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下 载等工作。典型的 EDA 工具中必须包含两个特殊的软件包,即综合器和适配器。综合 器的功能就是将设计者在 EDA 平台上完成的针对某个系统项目的 HDL 、原理图或状态 图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲 实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能 就是将软件描述与给定的硬件结构用一定的方式联系起来。也就是说,综合器是软件描 述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换低级的、可与目标 器件 FPGA/CPLD相映射的网表文件。 适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中, 产生最终的 下载文件,如 JED 文件。适配所选定的目标器件(FPGA/CPLD芯片)必须属于在综 合器中已指定的目标器件系列。 硬件描述语言 HDL 是相对于一般的计算机软件语言,如:C 、 PASCAL 而言的。 HDL 语言使用与设计硬件电子系统的计算机语言, 它能描述电子系统的逻辑功能、 电路 结构和连接方式。设计者可利用 HDL 程序来描述所希望的电路系统,规定器件结构特 征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制 FPGA 和 CPLD 内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。目前, 就 FPGA/CPLD开发来说, 比较常用和流行的 HDL 主要有 ABEL-HDL 、 AHDL 和 VHDL 。 2.2硬件描述语言— VHDL VHDL 的 英 文 全 名 是 Very-High-Speed Integrated Circuit Hardware Description Language, 诞生于 1982年。 1987年底, VHDL 被 IEEE 和美国国防部确认为标准硬件描 述语言 。自 IEEE 公布了 VHDL 的标准版本, IEEE-1076(简称 87版 ) 之后,各 EDA 公司相继推出了自己的 VHDL 设计环境,或宣布自己的设计工具可以和 VHDL 接口。 此后 VHDL 在电子设计领域得到了广泛的接受, 并逐步取代了原有的非标准的硬件描述 语言。 1993年, IEEE 对 VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容, 公布了新版本的 VHDL , 即 IEEE 标准的 1076-1993版本, (简称 93版) 。 现在, VHDL 和 Verilog 作为 IEEE 的工业标准硬件描述语言,又得到众多 EDA 公司的 支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪 中, VHDL 于 Verilog 语言将承担起大部分的数字系统设计任务。 VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件 特征的语句外, VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语 言。 VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个 电路模块或一个系统)分成外部(或称可是部分 , 及端口 ) 和内部(或称不可视部分) ,既 涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内 部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的 概念是 VHDL 系统设计的基本点。应用 VHDL 进行工程设计的优点是多方面的。 (1) 与其他的硬件描述语言相比, VHDL 具有更强的行为描述能力,从而决定了他 成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构, 从逻辑行为上描述和设计大规模电子系统的重要保证。 (2) VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计 系统的功能可行性,随时可对设计进行仿真模拟。 (3) VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和 已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至 多个代发组共同并行工作才能实现。 (4) 对于用 VHDL 完成的一个确定的设计,可以利 用 EDA 工具进行逻辑综合和优化,并自动的把 VHDL 描述设计转变成门级网表。 (4) VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理 最终设计实现的目标器件是什么,而进行独立的设计。 2.3 VHDL的设计流程: (1) 设计输入根据电路设计所提出的要求, 将程序输入到 VHDL 编辑器中去编辑。 (2) 功能级模拟用 VHDL , 模拟器对编辑后的程序进行模拟, 如果达不到设计要求, 则可以重新修改程序,直到通过功能模拟。 (3) 逻辑综合与优化 将通过功能模拟的程序放到 VHDL 编译器中, 进行逻辑综合 与优化。 (4) 门级模拟对电路用 VHDL 。仿真器仿真。可对门级电路的延时、定时状态、驱 动能力等进行仿真。如不符合要求,可重复步骤 (3),再门级模拟,直到符合要求止。 (5) 版图生成 用相应的软件处理后,就可以拿去制版。 3设计过程 3.1设计规划 根据系统设计要求,系统设计采用自顶向下的设计方法,系统的整体组装设计原理 图如图 3-1所示,它由乐曲自动演奏模块、音调发生模块和数控分频模块三部分组成。 图 3-1 系统的整体组装设计原理图 3.2 各模块的原理及其程序 (1)乐曲自动演奏模块 乐曲自动演奏模块(AUTO.VHD )的作用是产生 8位发声控制输入信号 /当进行自 动演奏时,由存储在此模块中的 8位二进制数作为发声控制输入,从而自动演奏乐曲。 VHDL 源程序(AUTO.VHD ) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY AUTO IS PORT ( CLK : IN STD_LOGIC; AUTO : IN STD_LOGIC; CLK2 : BUFFER STD_LOGIC; INDEX2 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); INDEX0 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END AUTO; ARCHITECTURE BEHAVIORAL OF AUTO IS SIGNAL COUNT0: INTEGER RANGE 0 TO 31; BEGIN PULSE0 :PROCESS(CLK,AUTO) V ARIABLE COUNT :INTEGER RANGE 0 TO 8; BEGIN IF AUTO ='1' THEN COUNT := 0;CLK2<> ELSIF(CLK'EVENT AND CLK ='1')THEN COUNT :=COUNT +1; IF COUNT =4 THEN CLK2 <> ELSIF COUNT =8 THEN CLK2<='0'; count:="">='0';> END IF ; END IF ; END PROCESS; MUSIC:PROCESS(CLK2) BEGIN IF (CLK2'EVENT AND CLK2='1')THEN IF (COUNT0=31)THEN COUNT0<> ELSE COUNT0<> END IF ; END IF ; END PROCESS; COM1:PROCESS(COUNT0,AUTO,INDEX2) BEGIN IF AUTO ='0' THEN CASE COUNT0 IS WHEN 1=>INDEX0<> WHEN OTHERS =>NULL; END CASE; ELSE INDEX0<> END IF; END PROCESS; END BEHAVIORAL; (2) 音调发生模块 音调发生模块的作用是产生音阶的分频预置值。 当 8位发声控制输入信号中的某一 位为高电平时,则对应某一音节的数值将输出,该数值即为该音阶的分频预置值,分频 预置值控制数控分频模块进行分频,由此可得到每个音阶对应的频率。 VHDL 源程序 (TONE.VHD) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY TONE IS PORT (INDEX: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CODE: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HIGH: OUT STD_LOGIC; TONE0: OUT INTEGER RANGE 0 TO 2047); END TONE; ARCHITECTURE ART OF TONE IS BEGIN SEARCH : PROCESS(INDEX) BEGIN CASE INDEX IS WHEN WHEN WHEN WHEN WHEN WHEN WHEN WHEN OTHERS =>TONE0<><> END CASE; END PROCESS; END ART; (3) 数控分频模块 数控分频模块是对时基脉冲进行分频,得到与 1、 2、 3、 4、 5、 6、 7七个音符相对 应的频率。 VHDL 源程序(FENPIN.VHD ) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FENPIN IS PORT(CLK1: IN STD_LOGIC; TONE1: IN INTEGER RANGE 0 TO 2047; SPKS: OUT STD_LOGIC); END ENTITY FENPIN; ARCHITECTURE ART OF FENPIN IS SIGNAL PRECLK:STD_LOGIC; SIGNAL FULLSPKS:STD_LOGIC; BEGIN PROCESS(CLK1) V ARIABLE COUNT:INTEGER RANGE 0 TO 8; BEGIN COUNT:=COUNT +1; IF COUNT=2 THEN PRECLK<> ELSIF COUNT =4 THEN PRECLK<> END IF ; END IF ; END PROCESS; PROCESS(PRECLK,TONE1) V ARIABLE COUNT11:INTEGER RANGE 0 TO 2047; BEGIN IF (PRECLK'EVENT AND PRECLK='1')THEN IF COUNT11 COUNT11:=COUNT11+1;FULLSPKS<> ELSE COUNT11:=0;FULLSPKS<> END IF ; END IF ; END PROCESS; PROCESS(FULLSPKS) V ARIABLE COUNT2 :STD_LOGIC:='0'; BEGIN IF (FULLSPKS'EVENT AND FULLSPKS='1')THEN COUNT2:=NOT COUNT2; IF COUNT2='1'THEN SPKS<> ELSE SPKS<> END IF ; END IF; END ART; (4) 顶层设计 VHDL 源程序 (DIANZIQIN.VHD) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DIANZIQIN IS PORT(CLK32MHZ: IN STD_LOGIC; HANDTOAUTO:IN STD_LOGIC; CODE1: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--音符显示信号 INDEX1: IN STD_LOGIC_VECTOR(7 DOWNTO 0);--键盘输入信号 HIGH1: OUT STD_LOGIC;--高低音节信号 SPKOUT: OUT STD_LOGIC);--音频信号 END; ARCHITECTURE ART OF DIANZIQIN IS COMPONENT AUTO PORT(CLK: IN STD_LOGIC; AUTO: IN STD_LOGIC; INDEX2: IN STD_LOGIC_VECTOR(7 DOWNTO 0); INDEX0: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END COMPONENT; COMPONENT TONE PORT(INDEX: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CODE: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HIGH: OUT STD_LOGIC; TONE0: OUT INTEGER RANGE 0 TO 2047); END COMPONENT; COMPONENT FENPIN PORT(CLK1: IN STD_LOGIC; SPKS: OUT STD_LOGIC); END COMPONENT; SIGNAL TONE2:INTEGER RANGE 0 TO 2047; SIGNAL INDX:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN U0:AUTOPORTMAP(CLK=>CLK32MHZ,INDEX2=>INDEX1,INDEX0=>INDX,AUTO= >HANDTOAUTO); U1:TONEPORTMAP(INDEX=>INDX,TONE0=>TONE2,CODE=>CODE1,HIGH=>HIGH1 ); U2:FENPIN PORT MAP(CLK1=>CLK32MHZ,TONE1=>TONE2,SPKS=>SPKOUT); END ART; 4波形仿真 (1)乐曲自动演奏模块的仿真(如图 4-1所示) 图 4-1乐曲自动演奏模块的仿真图 (2)音调发生模块的仿真(如图 4-2) 图 4-2 音调发生模块的仿真图 (3)数控分频模块的仿真(如图 4-3) 图 4-3数控分频模块仿真图 (4)简易电子琴整个系统的仿真(如图 4-4) 图 4-4简易电子琴整个系统的仿真图 5 结束语 经过努力 , 简易电子琴的设计基本上完成了。在整个设计过程中,包括前期中期和 后期,我都有着许多不同的体会: 1) 这个设计的基本是接触一门新的语言并加以应用,对于我来说,没有想到的是 入手的速度比我的预料快,在以前编程的基础上,从接触到开始动手编程的时间得到了 很大的缩短。知识的接收速度在很大的程度上决定了动手的时间。 2) VHDL 的编程与 C 语言的编程有着本质的不同, 然而以往形成的旧编程习惯在 VHDL 编程中依然起着很大的作用。一通百通,不是没有道理的。对于学习新的知识并予以应 用的信心,显得更足了。 3) VHDL的设计关键是电路逻辑设计,而一个程序的关键是总体设计。对于硬件设 计接触不多的我们清楚这一点也许不无好处。 4) 通过这个程序设计让我学会一种新的语言, 对数字系统结构也有了更进一步的了 解和认识,对我以后的学习有很大的帮助。希望其他人在看再做类似设计时有所借鉴。 通过几天的课程设计,我对数据库软件 EDA 技术、 VHDL 、等系列知识都有了一定 的了解。使用 EDA 技术开发页面的能力也有了很大提高。 在整个设计过程中,有很多人对任务的完成给予了重要的支持和帮助。感谢老师给 了我本次设计的机会并提供指导; 感谢许多同学在我此课程设计遇到问题时给我的帮助 使我能够顺利地进行设计的工作; 论坛中有很多认识不认识的朋友也都为我的设计提出 了很宝贵的建议,同样在这里感谢他们。 参考文献 《 VHDL 与数字电路设计》 . 卢毅 , 赖杰 . 科学出版社 《 VHDL 语言 100例详解——北京理工大学 ASIC 研究所》 . 北京理工大学 ASIC 研究 所 . 清华大学出版社 《 VHDL 程序设计》 (第二版 ). 曾繁泰等 . 清华大学出版社 《 VHDL 入门与应用》陈雪松 , 滕立中 . 人民邮电出版社 《 VHDL 简明教程》 . 王小军 . 清华大学出版社 1.学习调试电子电路的方法,提高实际动手能力。 2.了解由555定时器构成简易电子琴的电路及原理。 555定时器是一种中规模集成电路,外形为双列直插8脚结构,体积很小,使用起来方便。只要在外部配上几个适当的阻容元件,就可以构成史密特触发 器、单稳态触发器及自激多谐振荡器等脉冲信号产生与变换电路。它在波形的 产生与变换、测量与控制、定时电路、家用电器、电子玩具、电子乐器等方面 有广泛的应用。 1.多谐振荡器的工作原理 多谐振荡器是能产生矩形波的一种自激振荡器电路,由于矩形波中除基波外 还含有丰富的高次谐波,故 称为多谐振荡器。多谐振荡器没有稳态,只有两个 暂稳态,在自身因素的作用下,电路就在两个暂稳态之 间来回转换,故又称它为无稳态电路。 由555定时器构成的多谐振荡器如图1所示,R ,R和C是外接定时元件,12 电路中将高电平触发端(6脚) 和低电平触发端(2脚)并接后接到R2和C的 连接处,将放电端(7脚)接到R,R的连接处。 12 由于接通电源瞬间,电容C来不及充电,电容器两端电压uc为低电平,小于(1/3)Vcc,故高电平触发 端与低电平触发端均为低电平,输出uo为高电平,放电管VT截止。这时,电源经R1,R2对电容C充电,使 电压uc按指数规律上升,当uc上升到(2/3)Vcc时,输出uo为低电平,放电管VT导通,把uc从(1/3)Vcc 上升到(2/3)Vcc这段时间内电路的状态称为第一暂稳态,其维持 时间TPH的长短与电容的充电时间有关 。充电时间常数T充=(R+R)C。 12 由于放电管VT导通,电容C通过电阻R2和放电管放电,电路进人第二暂稳 态.其维持时间TPL的长短与电 容的放电时间有关,放电时间常数T放=R2C0 随着C的放电,uc下降,当uc下降到(1/3)Vcc时,输出uo。 为高电平,放 电管VT截止,Vcc再次对电容c充电,电路又翻转到第一暂稳态。不难理解, 接通电源后,电 路就在两个暂稳态之间来回翻转,则输出可得矩形波。电路一 旦起振后,uc电压总是在(1/3~2/3)Vcc 之间变化。图1(b)所示为工作波 形。 图1 555定时器构成的多谐振荡器电路及工作波形 集成555定时器有双极性型和CMOS型两种产品。一般双极性型产品型号的最后 三位数都是555,CMOS型产品型号的最后四位数都是7555.它们的逻辑功能和外部引线排列完全相同。器件电源电压推荐为4.5~12V,最大输出电流200mA以内,并能与TTL、CMOS逻辑电平相兼容。其主要参数见表8.1。 555定时器的内部电路框图及逻辑符号和管脚排列分别如图 引脚功能: (TH):高电平触发端,简称高触发端,又称阈值端,标志为TH。 i1 V V():低电平触发端,简称低触发端,标志为。 i2 V:控制电压端。 CO V:输出端。 O Dis:放电端。 :复位端。 555定时器内含一个由三个阻值相同的电阻R组成的分压网络,产生VCC 和V两个基准电压;两个电压比较器C、C;一个由与非门G、G组成的基本CC1212RS触发器(低电平触发);放电三极管T和输出反相缓冲器G。 3 是复位端,低电平有效。复位后, 基本RS触发器的端为1(高电平),经反相缓冲器后,输出为0(低电平)。 分析图8.1的电路:在555定时器的V端和地之间加上电压,并让VCCCO 悬空,则比较器C的同相输入端接参考电压V,比较器C反相输入端接参考1CC2电压V ,为了学习方便,我们规定: CC 时,写为V=1,当TH端的电压 当端的电压>V时,写为V=1,当端的电压 当TH端的电压>V ? 低触发:当输入电压V =0,经输出反相缓冲器后,V=1,T截止。这时称555定时器“低触发”; O ? 保持:若V>V 且V<> 器保持,V和T状态不变,这时称555定时器“保持”。 O ? 高触发:若V>V,则V=1,比较器C输出为低电平,无论C输出何i1CCTH12 种电平,基本RS触发器因=0,使=1,经输出反相缓冲器后,V=0;T导通。O 这时称555定时器“高触发”。 555定时器的“低触发”、“高触发”和“保持”三种基本状态和进入状态 的条件(即V、V的“0”、“1”)必须牢牢掌握。 THTR V为控制电压端,在V端加入电压,可改变两比较器C、C的参考电压。COCO12 正常工作时,要在V和地之间接0.01μF(电容量标记为103)电容。放电管CO T的输出端Dis为集电极开路输出。555定时器的控制功能说明见表8.2。 l 2音阶频率 本实验采用的是C调音阶,其音阶频率与对应电阻R8值如下表 根据T=0.7(R9+R8)C可计算R8的值 本实验采用两个555集成定时器组成简易电子琴。整个电路由主振荡器, 颤音振荡器,扬声器和琴键按钮等部分组成。 主振荡器由555定时器,七个琴键按钮S1~S7,外接电容C1、C2,外接电阻R8以及R1~R7等元件组成,颤音振荡器由555定时器,电容C5及R9、R10等元件组成,颤音振荡器振荡频率较低为64Hz,若将其输出电压U连接到主振荡器555定时器复位端4,则主振荡器输出端出现颤音。 实验图如下所示:按图接线后闭合不同开关即可令喇叭发出不同频率的声 响,从而模拟出电子琴的工作。 原理图如下: IC555组成自激多谐振荡器,在?脚与电源之间加入一组音调电阻R1~R15,即是一架玩具电子琴。未按琴键K1~K5时,时基电路555不振荡,扬声器不发声;按下某一琴键时,扬声器依555的振荡频率,发出相应的声响。 电阻R1~R15的选择调整方法,是用一只60~100kΩ的电位器,先接入电路, 从高音(或低音)开始,转动电位器,使扬声器发出一个起始的标准音阶,测出 电位器的阻值,并换上相同阻值的固定电阻,这样即可确定各音阶所需的电阻阻 值。 原理主要是555的多谐振荡。多谐振荡的频率: ,这是个约等于,其中R指7管脚与电源之间的电阻,R’指7管脚与6管脚之间的电阻,C是2管脚与地之间的电容。 实验中通过按键使R的阻值改变,从而改变振荡频率,扬声器就可与发出不 同的声音,如果R的阻值取得好,扬声器就可以发出类似电子琴的声音了。 1. 根据电路图组装电路。 2. 检查元件的接。 3. 接通电源,按各键,看是否有结果。 4.:得到了预期的结果。 通过对简易电子琴的设计,认识到了“理论联系实际”的这句话的重要性与 真实性。而且通过对此课程的设计,我不但知道了以前不知道的理论知识,而且 也巩固了以前知道的知识。最重要的是在实践中理解了书本上的知识,明白了学 以致用的真谛。也明白老师为什么要求我们做好这个课程设计的原因。他是为了 教会我们如何运用所学的知识去解决实际的问题,提高我们的动手能力。在整个 设计到电路的焊接以及调试过程中,我个人感觉调试部分是最难的,因为你理论 计算的值在实际当中并不一定是最佳参数,我们必须通过观察效果来改变参数的 数值以期达到最好。而参数的调试是一个经验的积累过程,没有经验是不可能在 短时间内将其完成的,而这个可能也是老师要求我们加以提高的一个重要方面 吧! L1 131 L2 147 L3 165 L4 175 L5 19 6 L6 220 L7 247 N1 262 N2 296 N3 330 N4 349 N5 39 2 N6 440 N7 494 H1 523 H2 587 H3 659 H4 698 H5 78 4 H6 880 H7 988 6 1760 I7 1976 I1 1047 I2 1175 I3 1319 I4 1397 I5 156 8 I范文四:VHDL简易电子琴设计
范文五:简易电子琴设计