CAD课程设计模板.docx

上传人:b****8 文档编号:9679029 上传时间:2023-02-05 格式:DOCX 页数:20 大小:144.94KB
下载 相关 举报
CAD课程设计模板.docx_第1页
第1页 / 共20页
CAD课程设计模板.docx_第2页
第2页 / 共20页
CAD课程设计模板.docx_第3页
第3页 / 共20页
CAD课程设计模板.docx_第4页
第4页 / 共20页
CAD课程设计模板.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

CAD课程设计模板.docx

《CAD课程设计模板.docx》由会员分享,可在线阅读,更多相关《CAD课程设计模板.docx(20页珍藏版)》请在冰豆网上搜索。

CAD课程设计模板.docx

CAD课程设计模板

 

课程设计说明书

题目简易电子琴的设计

 

姓名曹美丽

学号0910404035

专业年级2009级通信工程4班

指导教师张涛

 

2011年12月12日

摘要

本论文要设计的为基于单片机的简易电子琴,基本要求为能够发出1、2、3、4、5、6、7等七个音符即可。

众所周知,由于一首音乐是由许多不同的音阶组合而成的,而每个音阶则对应着不同的频率,因此我们可以利用不同的频率来进行音阶的组合,即可产生美妙的音乐了。

对于单片机来说,产生不同的频率非常方便,只要算出某一音频的周期,然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后,就将输出脉冲的I/O反相,然后重复计时,此半周期再对I/O反相,即可在I/O脚上得到此频率的脉冲。

因此我们可以利用单片机的定时器,使其工作在计数器模式MODE1下,改变计数值TH0及TL0来产生不同频率的信号。

从而产生不同的音符[1]。

关键词:

音阶,频率,电子琴,单片机

Abstract

Thisthesisdesignedforsimplekeyboard,thebasicrequirementistosend1,2,3,4,5,6,7sevennotes.

Well-known,themusicismadeupbymanydifferentscales,andeachscalecorrespondstodifferentfrequency,sowecanusedifferentfrequencytomakecombinationofscales,andthenproducewonderfulmusic.

Asforsingle-chipmicrocomputer,itisveryconvenienttoproducedifferentfrequency,wejustcalculateanaudiocycle,thenthiscycledividedby2,namelyhalfcycletime,usingtimertotimethehalfcycletime.

Whenevertiming,itwilloutputpulseI/Oreversephase,andrepeatthetiming,thehalfcycleagaintotheI/Oreversed-phase,thencangetthisfrequencypulsefromtheI/Ofeet.Sowecanusemicrocontrollertimertomakeitworkinthecountermodeandgeneratedifferentfrequencysignal.Thusproducedifferentnotes.

Keywords:

scales,frequency,thesis,single-chipmicrocomputer

1绪论

1.1论文特点及研究意义

本论文设计的为电子琴,电子琴又称作电子键盘,属于电子乐器(区别于电声乐器),发音音量可以自由调节。

音域较宽,和声丰富,甚至可以演奏出一个管弦乐队的效果,表现力极其丰富。

它还可模仿多种音色,甚至可以奏出常规乐器所无法发出的声音(如合唱声,风雨声,宇宙声等)。

另外,电子琴在独奏时,还可随意配上类似打击乐音响的节拍伴奏,适合于演奏节奏性较强的现代音乐。

另外,电子琴还安装有效果器,如混响、回声、延音,震音轮和调制轮等多项功能装置,表达各种情绪时运用自如。

本论文设计的电子琴虽是简易电子琴,功能和真正电子琴有不小差距,但本论文设计的电子琴是很多高档电子琴的基础,对进一步研究电子琴有很大的促进作用。

本设计易懂、简练,所用器件常见,上网查询资料方便,电路模块具有通用性,非常适合广大电子爱好者制作。

1.2系统简介

本系统主要由硬件电路和软件流程组成。

硬件电路主要包括芯片AT89C51、和CM38、喇叭和按键等以及由它们组成的电路图,软件流程主要包括主程序流程图和相关程序。

本论文还对本设计用到的芯片AT89C51和CM38等做了一些介绍。

 

2元器件介绍

2.1元器件的种类

本设计要用到的元器件有芯片AT89C51、CM38、喇叭和按键、电阻、电容等。

2.2AT89C51

AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,AT89C51是一种高效微控制器。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如图2.1所示

图2.1AT89C51外形管脚图

主要特性:

与MCS-51兼容4K字节可编程FLASH存储器寿命:

1000写/擦循环数据保留时间:

10年全静态工作:

0Hz-24MHz

AT89C51管脚说明:

VCC:

供电电压。

GND:

接地。

  

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写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.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器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:

来自反向振荡器的输出。

2.3四运放集成电路LM386

LM386是四运放集成电路,采用8脚双列直插塑料封装,外形如图2.2所示。

图2.2LM386外形管脚图

它的内部包含运算放大器,运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vs”为输出端。

两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vs的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vs的信号与该输入端的相位相同。

由于LM386运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。

正是因为如此,本论文才选用它。

3硬件电路

3.1硬件电路图

基于AT89C51芯片的简单电子琴的电路图[4],如图3.1。

图3.1硬件电路图

3.2电路各部分简要分析

单片机P1口为输入接口,接有一组按键,共8个。

这8个按键S1~S8分别按顺序与单片机的P2口P1.0~P1.7相接。

单片机P3.6口与芯片LM386第3各管脚通过电阻R1相连。

3.3元件参数

本论文根据实际要求所选定的元件参数如下:

电阻R1为10k欧,输入电阻R2为470欧,C1、C3分别为10uf和104。

LM386的第五个管脚接一个电解电容C7(47uf)和电阻R3(10欧)、电容C4(473)并联驱动喇叭发声。

单片机P3.6接入一个按键和一个分压电阻,组成放歌按键,来控制整个电路运行扩展功能(播放一段音乐)。

C6、C5接一个晶振,作为控制反向震荡放大器的输入和输出,并且确定内部时钟的工作频率。

单片机RESET端口接入一个复位电路,此部分由电解电容C2(此电容为去耦电容,防止其他信号引起的错位复位)和控制电阻R4共同组成,主要功能是当按下按键时给予芯片RESET端口一个高电平复位信号。

3.4单片机音符与单片机频率的关系

本次设计中,单片机晶振为12MHz,那么定时器的技术周期为1MHz,加入选择工作方式1,那T值便为T=216-x(x为THX、TLX的初值)。

那么根据不同的频率计算出应赋给定时器的计算值,表3.1列出不同音符与单片机计数T0相关的计数值。

表3.1音符与单片机频率对应表

4软件流程

4.1设计思路与流程图

本电子琴的设计我们采用的是设计7个音符,与键盘的7个按键一一对应,并且计算出每个音符对应的频率值。

音符通过定时器T0产生,然后通过键盘不断的扫描,根据按键功能,将不同按键对应的频率信号发送到集成运放中放大,最后送给喇叭发出对应的音符以发出相应的声音。

图4.1为流程示意图[6]

图4.1流程示意图

 

在主程序流程图中,T0初始化以后,首先要通过扫描键盘,判断是否有按键按下。

若没有按键按下,则要继续扫描,不断重复循环过程,直到发现按键按下,程序才能根据按键的功能,将相对应的音符T值装入到T0以后,T0开始启动。

程序随后继续扫描按键,若按键保持按下状态,则T0继续保持工作状态,直到按键松开,T0停止工作,返回初始状态,等待下一次的扫描按键结果。

图4.2为T0中断子程序图。

图4.2T0中断子程序图

当程序中断时,程序保存现场,并重装TH0、TL0的初值,然后将P1、0按位取反,重新送入P1、0,最后中断返回。

4.2程序设计

#include

sbitsp=P1^0;

charth,tl,key;

unsignedintcodetab[]=//音频编码表

{

63628,63836,64020,64103,64260,64400,64524,

64580,64694,64777,64820,64898,64968,65030,

65058,65110,65164,65178,65217,65252,65283,

};

 

unsignedcharcodesrg[]=//生日快乐音谱

{

5,5,6,5,8,7,0,

5,5,6,5,9,8,0,

5,5,12,10,8,7,6,0,

4,4,3,1,2,1,0

};

unsignedcharcodelzlf[]=//两只老虎音谱

{

1,2,3,1,0,1,2,3,1,0,3,4,5,0,

3,4,5,0,5,6,5,4,3,1,0,5,6,5,4,3,1,0,

2,5,1,0,2,5,1

};

dealy(unsignedintz)//延时

{

while(z--);

}

voidmain(void)//主函数

{

unsignedchari,go;

TMOD=0x01;

ET0=1;

EA=1;//定时器初使化

for(i=0;i<28;i++)//播放生日快乐

{

 

key=srg[i]-1;

if(srg[i]!

=0)

{

TR0=1;

dealy(65530);

}

elsedealy(10000);

TR0=0;

dealy(30);

}

dealy(65530);dealy(65530);//停顿

for(i=0;i<39;i++)//播放两只老虎

{

key=lzlf[i]-1;

if(lzlf[i]!

=0)

{

TR0=1;

dealy(65530);

}

elsedealy(10000);

TR0=0;

dealy(30);

}

while

(1)//键盘检测和产生音频

{

 

P3=0xfe;

switch(P3)//检测第一排

{

case0xee:

{dealy(20);if(P3==0xee){key=go+0;TR0=1;while(P3==0xee);TR0=0;}};break;

case0xde:

{dealy(20);if(P3==0xde){key=go+1;TR0=1;while(P3==0xde);TR0=0;}};break;

case0xbe:

{dealy(20);if(P3==0xbe){key=go+2;TR0=1;while(P3==0xbe);TR0=0;}};break;

case0x7e:

{dealy(20);if(P3==0x7e){key=go+3;TR0=1;while(P3==0x7e);TR0=0;}};break;

}

P3=0xfd;

switch(P3)//检测第二排

{

case0xed:

{dealy(20);if(P3==0xed){key=go+4;TR0=1;while(P3==0xed);TR0=0;}};break;

case0xdd:

{dealy(20);if(P3==0xdd){key=go+5;TR0=1;while(P3==0xdd);TR0=0;}};break;

case0xbd:

{dealy(20);if(P3==0xbd){key=go+6;TR0=1;while(P3==0xbd);TR0=0;}};break;

case0x7d:

{dealy(20);if(P3==0x7d){go=7;while(P3==0x7d);}};break;

}

P3=0xfb;

 

switch(P3)//检测第三排

{

case0xeb:

{dealy(20);if(P3==0xeb){key=go+7;TR0=1;while(P3==0xeb);TR0=0;}};break;

case0xdb:

{dealy(20);if(P3==0xdb){key=go+8;TR0=1;while(P3==0xdb);TR0=0;}};break;

case0xbb:

{dealy(20);if(P3==0xbb){key=go+9;TR0=1;while(P3==0xbb);TR0=0;}};break;

case0x7b:

{dealy(20);if(P3==0x7b){key=go+10;TR0=1;while(P3==0x7b);TR0=0;}};break;

}

P3=0xf7;

switch(P3)//检测第四排

{

case0xe7:

{dealy(20);if(P3==0xe7){key=go+11;TR0=1;while(P3==0xe7);TR0=0;}};break;

case0xd7:

{dealy(20);if(P3==0xd7){key=go+12;TR0=1;while(P3==0xd7);TR0=0;}};break;

case0xb7:

{dealy(20);if(P3==0xb7){key=go+13;TR0=1;while(P3==0xb7);TR0=0;}};break;

case0x77:

{dealy(20);if(P3==0x77){go=0;while(P3==0x77);}};break;

}

}

}

voidt0(void)interrupt1//定时器中断函数

 

{

TH0=tab[key]/256;

TL0=tab[key]%256;

sp=~sp;

}

5制作与调试方法

本电子琴的制作比较简单,大的方面主要分为两步,第一步是绘制PCB板并制成电路,第二步是写程序,驱动程序发声。

调试也很简单,共有八个按键,按下不同按键便会产生相对应的声音。

具体步骤如下:

1.由设计要求选择合适元器件设计并绘制出电路图;

实验原理图如图(3.1)所示,在protel99里根据原理图放置元器件

并相应的连好线,此部分比较简单。

首先新建一个设计并保存到自己的目录下,然后再新建一个.sch和.pcb的文件。

然后再打开.sch文件,根据原理图,摆放好元器件并连好线。

2.绘制元器件的元件符号库、封装库;

对于protel99里没有的元件,自己根据相应的要求绘制出来,首先新建一个sch.library文件并在其中绘制好原理图,例如CM38。

然后再添加到.sch文件的原件库中。

对于protel99里没有的封装,自己也要根据相应的要求绘制出来,首先新建一个pcb.library的文件并在其中按要求绘制好相应的封装。

然后一样的添加到.pcb文件的原件库中。

当所有的线都原理图连接好了后,对原理图使用“电气规则检查”,如果电路图没有绘制错误,就可以对各元件添加封装了。

封装添加好后,点击设计—》创建网络表,再在Pcb文件中添加网络表,生成pcb图。

3.PCB设计时的走线、布局技巧;

生成pcb图后就是走线了,首先要摆放好器件,尽量使pcb图摆放紧凑,美观以及跳线尽量少,摆放过程中可以结合原理图及元器件的原理来放置,这样走线是就没那么复杂。

最后我们在底层布线,电源线和接地线一定要粗,其他线路也是越粗越好,但一般连线的宽度是0.8mm,线太细在腐蚀的时候就会断线。

同时在跳线处要放置焊盘。

PCB电路如下:

4.使用热转印方式制作印制电路板;

PCB走线、布局好后,把pcb电路图打印出来,并用热转印方式把pcb图转印到板子上。

使用FeCl3或类似溶液腐蚀电路板;

电路图转印好后,把板子放到FeCl3溶液中对其进行腐蚀。

使用高速对印制电路板打;

板子腐蚀好后,用电钻对焊盘打孔,电钻使用0.8mm或1.0mm的针孔,针孔应大些,不然焊元件的时候针脚会插不进去。

元器件的焊接;

板子只好后就是焊接元器件了,把元器件插在板子上相应的地方,注意有些元器件的正负极不要插反,芯片不要插反,不然上电后会把板子给烧掉。

在焊接的时候要注意技巧,不要有虚焊、漏焊的地方。

使用酒精松香溶液保护电路板防止氧化;

6总结

通过本次论文设计,使我加深了对单片机的认识,并且熟悉了单片机系统的设计流程,收获丰硕。

功能上达标,硬件设施基本合乎要求,软件设计可以配合硬件实现其功能,达到设计预期。

此次PCB板的制作给了我难忘的回忆,虽然以前也自己制作过一些板子,但本次却是我第一次从头到尾完成最认真的一次。

在制作过程中出现了很多问题同时也掌握了一些技巧。

以下是我在此次制作过中得到的一些技巧和方法:

1.在绘制原理图是,元器件一定要选对,有些原理图看似和要求的原理图很像,但稍微一个管脚不同制出来的板子就会出错。

同时在连线的时候有很多同学由于不熟练,使得其中有很多的交叉线,出现一些节点,但他们就只是单单的把节点删掉,在元器件检查的时候出现了很多的错,甚至都找不出原因,不得不重新再绘制。

2.在绘制PCB图时首先要摆放好器件,尽量使pcb图摆放紧凑,美观以及跳线尽量少,摆放过程中可以结合原理图及元器件的原理来放置,这样走线是就没那么复杂。

对于本设计,在PCB走线时可以相应的对按键和89C51的连线顺序做一些该变,这样PCB连线看着没那么复杂同时连线时可以少掉很多不必要的跳线,看起来更清晰、明了。

由于89C51的那些管脚都是输入管脚,功能是一样的,所以对其改变对实验结果不会有什么影响。

在布线时,一定要选择好板层,此次我们制作的是单层板,应选择底层布线。

很多同学对于密密麻麻的线不知从何下手,可以把原理图分成几个小部分,然后先把每个小部分连接好,再放到一起来连接,这样不仅更容易连接、用时也更少。

同时电源线和接地线一定要粗,其他线路也是越粗越好,但一般连线的宽度是0.8mm,线太细在腐蚀的时候就会断线,热转印时也会很难转印到板子上,难度更大。

在跳线处要放置焊盘。

每个元器件的焊盘应该也要重新改过,一般x为2.5mm,y为2.0mm,不然在打孔的时候会将焊盘全部打坏,不利于焊接。

3.在热转印时,一定要仔细,最好一次就全部转印上,否则印上去的线会不清晰甚至断线、移位。

当然如果不熟练可以使用热转印机自动转印。

这样用FeCl3腐蚀后的板子会更加漂亮、清晰,同时也不容易出错。

4.在打孔的时候,要是电钻的针对准孔,打齐,特别是对芯片的焊盘打孔时尤其要注意,如果孔没打齐在插芯片时会插不进甚至会把管脚弄断。

同时,最重要的时注意安全,在打孔时很容易把针弄断伤到自己,所以一定要注意安全不要把眼睛对着针。

5.在焊接元器件时,首先,要把元器件插好,对别是二极管,正负极一

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1