基于ADC0809的声音采集电路,程序和仿真_第1页
基于ADC0809的声音采集电路,程序和仿真_第2页
基于ADC0809的声音采集电路,程序和仿真_第3页
基于ADC0809的声音采集电路,程序和仿真_第4页
基于ADC0809的声音采集电路,程序和仿真_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与单片机接口技术课程设计题目:基于51单片机的声音感应灯学院: 电气学院专业: 自动化班级: 12-05 班姓名: *学号: *摘要在今天,对51单片机的运用已经成为电器设备开发人员的基本功之一。同时,51单片机也是低端电器设备开发人员很喜欢用的一个芯片,因为它价格低廉、功能强大。本次的设计是用ADC0809采集声音信号,通过51单片机处理,来根据声音大小、远近来点亮64个LED灯中的一个。程序虽然简单,电路也不复杂,但是做出来的成品,会很有意思。关键字:51单片机;AD转换;声音采集;电子玩具;DIY正文元器件该电路的元器件组成:一片AT89C51,一片ADC0808,两片74HC5

2、73,64个LED灯,一块MIC咪头,一片LM358,电容、电阻、导线若干,装饰物若干。AT89C51AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是

3、它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。现在AT89S51/52已经取代了AT89C51/52。本次设计的仿真模型使用的是AT89C51。AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工

4、作并禁止其它所有部件工作直到下一个硬件复位。管脚说明如下:VCC:供电电压。GND:接地。P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FLASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编

5、程和校验时,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

6、门电流。当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脚两个机

7、器周期的高电平时间。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/P

8、SEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不

9、接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。ADC0808ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。IN0IN7:8 条模拟量输入通道。ADC0809 对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模

10、拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条。ALE 为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A, B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和C 为地址输入线,用于选通IN0IN7 上的一路模拟量输入。ST 为转换启动信号。当ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D 转换;在转换期间,ST 应保持低电平。EOC 为转换结束信号。当EOC 为高电平时,表明转换结束;否则,表明正在进行A/D 转换。OE为输出允许信号,用于控制三条输出锁

11、存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0 为数字量输出线。CLK为时钟输入信号线,因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF()、VREF()为参考电压输入。注意:在Proteus中如果要使用51单片机的ALE口,还得有一步设置:双击单片机;在Advanced Properties选项的第一个下拉框中选中Simulate Program Fetches;在第二个下拉框中选中Yes;再点击右上方的OK键即完成设置!74HC7474HC74为单输入端的双D触发器。一个片子里封装着两个

12、相同的D触发器,每个触发器只有一个D端,它们都带有直接置0端RD和直接置1端SD,为低电平有效。CP上升沿触发。D触发器D触发器(data flip-flop或delay flip-flop。)该触发器由6个与非门组成,其中G1和G2构成基本RS触发器。电平触发的主从触发器工作时,必须在正跳沿前加入输入信号。如果在CP 高电平期间输入端出现干扰信号,那么就有可能使触发器的状态出错。而边沿触发器允许在CP 触发沿来到前一瞬间加入输入信号。这样,输入端受干扰的时间大大缩短,受干扰的可能性就降低了。边沿D触发器也称为维持-阻塞边沿D触发器。SD 和RD 接至基本RS 触发器的输入端,它们分别是预置和

13、清零端,低电平有效。当SD=1且RD=0时(SD的非为0,RD的非为1,即在两个控制端口分别从外部输入的电平值,原因是低电平有效),不论输入端D为何种状态,都会使Q=0,Q非=1,即触发器置0;当SD=0且RD=1(SD的非为1,RD的非为0)时,Q=1,Q非=0,触发器置1,SD和RD通常又称为直接置1和置0端。我们设它们均已加入了高电平,不影响电路的工作。工作过程如下:1.CP=0时,与非门G3和G4封锁,其输出Q3=Q4=1,触发器的状态不变。同时,由于Q3至Q5和Q4至Q6的反馈信号将这两个门打开,因此可接收输入信号D,Q5=D,Q6=Q5非=D非。2.当CP由0变1时触发器翻转。这时

14、G3和G4打开,它们的输入Q3和Q4的状态由G5和G6的输出状态决定。Q3=Q5非=D非,Q4=Q6非=D。由基本RS触发器的逻辑功能可知,Q=Q3非=D。3.触发器翻转后,在CP=1时输入信号被封锁。这是因为G3和G4打开后,它们的输出Q3和Q4的状态是互补的,即必定有一个是0,若Q3为0,则经G3输出至G5输入的反馈线将G5封锁,即封锁了D通往基本RS 触发器的路径;该反馈线起到了使触发器维持在1状态和阻止触发器变为0状态的作用,故该反馈线称为置1维持线,置0阻塞线。Q4为0时,将G3和G6封锁,D端通往基本RS触发器的路径也被封锁。Q4输出端至G6反馈线起到使触发器维持在0状态的作用,称

15、作置0维持线;Q4输出至G3输入的反馈线起到阻止触发器置1的作用,称为置1阻塞线。因此,该触发器常称为维持-阻塞触发器。总之,该触发器是在CP正跳沿前接受输入信号,正跳沿时触发翻转,正跳沿后输入即被封锁,三步都是在正跳沿后完成,所以有边沿触发器之称。与主从触发器相比,同工艺的边沿触发器有更强的抗干扰能力和更高的工作速度。74HC57374HC573包含八路3态输出的非反转透明锁存器,是一种高性能硅栅CMOS器件。当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。输出控制不影响锁存器的内部工作,即老数据可以保持,甚

16、至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。咪头咪头,是将声音信号转换为电信号的能量转换器件,是和喇叭正好相反的一个器件(电声),是声音设备的两个终端,咪头是输入,喇叭是输出。又名麦克风,话筒,传声器。由静电学可知,对于平行板电容器,有如下的关系式:C=S/4kd即电容的容量与介质的介电常数成正比,与两个极板的面积成正比,与两个极板之间的距离成反比。另外,当一个电容器充有Q量的电荷,那么电容器两个极板要形成一定的电压,有如下关系式:C=Q/V对于一个驻

17、极体咪头,内部存在一个由振膜,垫片和极板组成的电容器,因为膜片上充有电荷,并且是一个塑料膜,因此当膜片受到声压强的作用,膜片要产生振动,从而改变了膜片与极板之间的距离,从而改变了电容器两个极板之间的距离,产生了一个d的变化,因此由公式可知,必然要产生一个C的变化,由公式又知,由于C的变化,充电电荷又是固定不变的,因此必然产生一个V的变化。这样初步完成了一个由声信号到电信号的转换。由于这个信号非常微弱,内阻非常高,不能直接使用,因此还要进行阻抗变换和放大。FET场效应管是一个电压控制元件,漏极的输出电流受源极与栅极电压的控制。由于电容器的两个极是接到FET的S极和G极的,因此相当于FET的S极与

18、G极之间加了一个v的变化量,FET的漏极电流I就产生一个ID的变化量,因此这个电流的变化量就在电阻RL上产生一个VD的变化量,这个电压的变化量就可以通过电容C0输出,这个电压的变化量是由声压引起的,因此整个咪头就完成了一个声电的转换过程。LM358LM358是双运算放大器。内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。单片机程序#include<at89x51.h>#include

19、<math.h>#define uint unsigned int#define uchar unsigned charsbit le1=P30; /74HC573驱动定义sbit le2=P31;sbit st=P35; /AD0808数据控制总线定义sbit eoc=P36;sbit oe=P37;uchar ad_data,d,row,col;uchar code R=0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80; /行、列交叉,点亮一个小灯uchar code C=0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7

20、F; void data_Pr(); /确定将被点亮的灯的行和列void delay(k); /延时1msvoid display_Re() /点亮对应的灯void main()ad_data=0; /采样值存储单元置零while(1)oe=1;ad_data=P0;oe=0;data_Pr();oe=1; /启动ADC0809st=0;st=1;st=0;while(!eoc) /等待转换结束display_Re(); /对应灯亮void Delay(int count) /延时程序int i,j;for(i=0;i<count;i+)for(j=0;j<120;j+);void data_Pr(void) /处理P0口采集到的数据 d=ad_data>>2;col=d/8; /对应坐标为(row,col)的小灯row=d%8;void display_Re() /点亮对应的灯le1=0; /行与列锁存le2=0;P2=Ccol; /传送列信号le2=1;le1=0;delay(1);P1=Rrow; /传送行信号le1=1;le2=0;delay(1);对应Proteus仿真另附部分元器件结构原理图其实,在仿真中是用可变电阻代替上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论