第一篇:基于51单片机电子设计报告之波形信号采集,存储与回放系统设计
基于51单片机电子设计报告之 波形采集、存储与
回放系统
目录
一、设计任务求„„„„„„„„„„„ 3
二、系统方案论证与选择„„„„„„„ 6
三、系统硬件的设计„„„„„„„„ 10
四、系统软件的设计„„„„„„„„„12
五、参考文献„„„„„„„„„„„„14
六、结论„„„„„„„„„„„„„„15
附录„„„„„„„„„„„„„„„16
附录 1 程序代码„„„„„„„„„„„„16 附录 2 硬件原理图„„„„„„„„„„„30 附录 3 PCB图(部分)„„„„„„„„„„32
一、设计任务求
<1>、任务
设计并制作一个波形采集、存储与回放系统,示意图如图1 所示。该系统能同时采集两路周期信号波形,要求系统断电恢复后,能连续回放已采集的信号,显示在示波器上。
<2>、要求
1.基本要求
(1)能完成对A 通道单极性信号(高电平约4V、低电平接近0V)、频率约1kHz 信号的采集、存储与连续回放。要求系统输入阻抗不小于10 kΩ,输出阻抗不大于1kΩ。
(2)采集、回放时能测量并显示信号的高电平、低电平和信号的周期。原信号与回放信号电平之差的绝对值≤50 mV,周期之差的绝对值≤5%。
(3)系统功耗≤50mW,尽量降低系统功耗,系统内不允许使用电池。2.发挥部分
(1)增加B 通道对双极性、电压峰峰值为100mV、频率为10Hz~10kHz 信号的采集。可同时采集、存储与连续回放A、B 两路信号,并分别测量和显示A、B 两路信号的周期。B 通道原信号与回放信号幅度峰峰值之差的绝对值≤10 mV,周期之差的 绝对值≤5%。
(2)A、B 两路信号的周期不相同时,以两信号最小公倍周期连续回放信号。
(3)可以存储两次采集的信号,回放时用按键或开关选择显示指定的信号波形。(4)其他。
<3>、说明
1.本系统处理的正弦波信号频率范围限定在10Hz~10kHz,三角波信号频率范围限定在
10Hz ~2kHz,方波信号频率范围限定在10Hz ~1kHz。2.预留电源电流的测试点。3.采集与回放时采用示波器监视。
4.采集、回放时显示的周期和幅度应是信号的实际测量值,规定采用十进制数字显示,周期以“ms”为单位,幅度以“mV”为单位。
<4>、评分标准
二、系统方案论证与选择
1、题目要求及相关指标分析
题目的要求是将待测信号进行数字存储,并通过普通示波器将被测信号显示出来。由于待测信号为模拟信号,存储过程为数字方式,故应该将模拟信号进行量化处理,然后存储到存储器中,当需要显示的时候,从存储器读出数据并恢复为模拟信号,并送往普通示波器Y输入端,在X输入端加入相应的扫描信号,采有X-Y方式观察信号的波形。因此,设计的重点是模拟信号的处理与采样、数字信号的存储、普通示波器的显示控制、系统的控制4个方面。
2、方案的比较与分析
1)采样方式
方案一:实时采样。实时采样是在信号存在期间对其采样。根据采样定理,采用速率必须高于信号最高频率分量的两倍。对于周期的正弦信号,一个周期内应该大于两个采样点。为了不失真的恢复原被测信号,通常一个周期内就需要采样八个点以上。
方案二:等效时间采样法。采用中高速模数转换器,对于频率较高的周期性信号采用等效时间采样的方法,即对每个周期仅采样一个点,经过若干个周期后就可对信号各个部分采样一遍。而这些点可以借助步进延迟方法均匀地分布于信号波形的不同位置。其中步进延迟是每一次采样比上一次样点的位置延迟△t时间。只要精确控制从触发获得采样的时间延迟,就能够准确地恢复出原始信号。等效时间采样虽然可以对很高频率的信号进行采样,可是步进延迟的采样技术与 电路较为复杂。再者,它只限于处理周期信号,而且对单次触发采样无能为力。实时采样可以实现整个频段的全速采样,因此本设计采用方案一。2)双踪显示方式
方案一:每个通道都有一套独立的ADC和存储器,双踪显示时,只需轮流选择不同通道的波形数据,就可以实现两路波形的同时显示。方案二:只使用一片ADC,一片存储器和一片DAC,在采样的时候,用存储器地址的最低位控制模拟开关。通过切换两路模拟信号,将采集到的数据分别存储到存储器的奇地址和偶地址上,双踪显示时通过扫描存储器中的数据即可将两路波形同时显示出来。方案二使用的硬件电路较少,故我们选择方案二。
3)触发方式选择
要使屏幕上显示稳定的波形,则需将被测信号本身或者与被测信号有一定时间关系的触发信号加到触发电路。触发源选择确定触发信号由何处供给。通常有三种触发源:内触发(INT)、电源触发(LINE)、外触发EXT)。题目要求选择内触发,即使用被测信号作为触发信号。方案一:采用数字触发方式。对波形信号进行采集,将采集到的波形数据和触发电平(可由键盘设置)进行比较,找到波形在上升过程中大于或等于该触发电平的点,即得到触发,此时开始对波形进行存储。因为本来就需要对波形信号进行采集,使用这种方法无需要增加额外的硬件电路,实现方便。但是,对波形每个周期只采集有限个点,不可能每次都能采集到等于触发电平的点(这时不得不以大于该电平的值为触发电平),从而使触发位置不稳定,连续触发时输出波形会有抖动现象。
方案二:采用模拟触发方式。通过比较器LM311将被测波形信号和触发电平进行比较,大于触发电平时输出为高电平,小于触发电平时则输出低电平,即可得到信号被整形后的脉冲序列,再在该脉冲序列的上升沿开始存储波形即实现了触发存储的功能。这种触发方式稳定,故我们采用了这种方案。4)水平和垂直位置的调节 a)水平移动的调节
方案一:由FPGA内地址累加器的输出控制数模转换器不断地输出锯齿波。在后级加一个加法器,调节滑动变阻器R的阻值,可以实现对锯齿波波形的直流电平叠加,从而达到调节显示器上波形左右位置的平移功能。
方案二:通过对双口RAM读出数据的起始地址的偏移控制来控制波形的左右移动。
方案一实现左右平移,电路简单,效果明显。但是一页屏幕的 波形通过这样的平移,就必然会将一部分的波形移动到示波器屏幕以外,同时将示波器的另一边变成空白。这样不符合实际数字示波器的功能要求。再者,它也实现不了auto的功能。而方案二方法新颖,对于波形在屏幕的满屏显示和auto的功能都可以轻易处理和简单实现。于是本设计采用方案二。b)垂直移动的调节
方案一与上述水平移动调节的方案一相同。方案二是直接对双口RAM的数据进行处理。譬如向上平移,可将波形的所有数据都加上一个偏移值,然后送到DAC0832,直接将输出的模拟信号加在y轴上。但这种方法的问题是当RAM中数据较大时,加上某一个偏移值后数据均达到255,则波形的上半部分就会被削平。而通过加法电路的调节则不会出现这个问题。故我们选用方案一。5)频率的测量
方案一:用单片机扫描存储在RAM中波形数据,找到波形的上升过零点位置或者波形数据的峰值,并记录此时的地址ADR1,在扫描下一个波形的上升过零点位置或者波形数据的峰值,并记录此时的地址ADR2,通过如下公式计算出波形的频率:
f = 1/[B×(ADR2-ADR1)/20] 其中,B为水平分辨率,单位为s/div。
方案二:等精度测量法
先将待测信号进行二分频,用此信号作为闸门。取FPGA内部40M信号作为基准信号,二分频后信号的上升沿开起计数器时钟计 数,下降沿关闭计数。由计得的数值来计算信号的频率。方案一计算的频率数据的精度不会很高,加上采样的不稳定,必将导致频率测量的不正确。而方案二测量的稳定性较高且数据较准确。故我们选用方案二测量信号的频率。
三、系统硬件的设计
DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。实验线路如图所示。
1.运算放大器
运算放大器有三个特点:
⑴开环放大倍数非常高,一般为几千,甚至可高达10万。在正常情况下,运算放大器所需要的输入电压非常小。
⑵输入阻抗非常大。运算放大器工作时,输入端相当于一个很小 的电压加在一个很大的输入阻抗上,所需要的输入电流也极小。
⑶输出阻抗很小,所以,它的驱动能力非常大。2.DAC0832的外部连接
DAC0832的外部连接线路如图10.10所示。
3.运算放大电路和低通滤波电路
LM324的5管脚与DAC0832的(IOUT2)12管脚相连,LM324的6管脚与DAC0832的(IOUT1)11管脚相连,LM324的7管脚与DAC0832的REF(9)管脚相连.第一级运算放大器的作用是将DAC0832输出的电流信号转化为 电压信号V1,第二级运算放大器的作用是将V1通过反向放大电路-(R2/R1)倍。
实验表明,输出波形效果不错
四、系统软件的设计
本程序的程序流程图如下所示
13
五、参考文献
[1] 康华光.电子技术基础模拟部分(第五版).高等教育出版社,2005年.[2] 阎 石.数字电子技术基础(第五版).高等教育出版社,2005年.[3] 刘爱华 满宝元.传感器原理与应用技术.人民邮电出版社,2011年.[4] 马 彪.单片机应用技术.同济大学出版社,2010年.[5] 郭天祥.51单片机C语言教程.北京: 电子工业出版社,2012年.[6] 刘建清.轻松玩转51单片机C语言.北京航空航天大学出版社,2011年.[7] 彭 伟.单片机C语言程序设计实例100例.北京: 电子工业出版社,2011年.六、结论
本方案的系统设计符合2011 年全国大学生电子设计竞赛试题(H)题的要求。通过单片机控制一个数模转换器DAC0832将采集到的数据进行模数转并经过运算放大器LM324可以将其电流输出线性地转换成电压输出到外部设备示波器进而实现波形的采集存储与回放。附录„„„„„„„„„„„„„„„ 附录 1 程序代码„„„„„„„„„„„
/*******adc.h文件******/ #ifndef __ADC_H__ #define __ADC_H__ void DelayUs2x(unsigned char t);void DelayMs(unsigned char t);bit LCD_Check_Busy(void);void LCD_Write_Com(unsigned char com);void LCD_Write_Data(unsigned char Data);void LCD_Clear(void);void LCD_Write_String(unsigned
char x,unsigned char y,unsigned char *s);void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data);void LCD_Init(void);void init1602(void);void Delay_Ms(unsigned int a);void ADC_Init(unsigned char CHA);unsigned char ADC_Read(void);#endif /*----------------名称:LCD1602.h 论坛:
修改:无
内容:
引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK-----------------*/ #ifndef __eeprom_H__ #define __eeprom_H__
bit LCD_Check_Busy(void);void LCD_Write_Com(unsigned char com);void LCD_Write_Data(unsigned char Data);void LCD_Clear(void);void LCD_Write_String(unsigned
char x,unsigned char y,unsigned char *s);void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data);void LCD_Init(void);#endif /*---
STC
International
Limited----------------一个完整的EEPROM 测试程序,用宏晶的下载板可以直接测试
STC12C5AxxAD 系列单片机 EEPROM/IAP 功能测试程序演示
STC12C52xxAD 系列单片机 EEPROM/IAP 功能测试程序演示
STC11xx 系列单片机 EEPROM/IAP 功能测试程序演示
STC10xx 系列单片机 EEPROM/IAP 功能测试程序演示---STC
International
Limited---------------------宏晶科技
设计 2009/1/12 V1.0--------------------
Mobile: Fax:
*** 0755-82944243-------------------------------------------------------
Tel: Web:
0755-82948412 www.xiexiebang.com---------------------------------------------本演示程序在STC-ISP Ver 3.0A.PCB 的下载编程工具上测试通过,EEPROM 的数据
在P1 口上显示, 如果要在程序中使用或在文章中引用该程序,请在程序中或文章中 注明使用了宏晶科技的资料及程序 */
#include
typedef unsigned char INT8U;typedef unsigned int INT16U;//定义Flash 操作等待时间及允许IAP/ISP/EEPROM 操作的常数
//#define ENABLE_ISP 0x80 //系统工作时钟<30MHz 时,对IAP_CONTR 寄存器设置此值 //#define ENABLE_ISP 0x81 //系统工作时钟<24MHz 时,对IAP_CONTR 寄存器设置此值 //#define ENABLE_ISP 0x82 //系统工作时钟<20MHz 时,对IAP_CONTR 寄存器设置此值
#define ENABLE_ISP 0x83 //系统工作时钟<12MHz 时,对IAP_CONTR 寄存器设置此值
//#define ENABLE_ISP 0x84 //系统工作时钟<6MHz 时,对IAP_CONTR 寄存器设置此值
//#define ENABLE_ISP 0x85 //系统工作时钟<3MHz 时,对IAP_CONTR 寄存器设置此值
//#define ENABLE_ISP 0x86 //系统工作时钟<2MHz 时,对IAP_CONTR 寄存器设置此值
//#define ENABLE_ISP 0x87 //系统工作时钟<1MHz 时,对IAP_CONTR 寄存器设置此值
#define DEBUG_DATA 0x5A //本测试程序最终存储在 EEPROM 单元的数值 #define
DATA_FLASH_START_ADDRESS 0x00 //STC5Axx 系列 EEPROM 测试起始地址
union union_temp16 { INT16U un_temp16;INT8U un_temp8[2];}my_unTemp16;
INT8U Byte_Read(INT16U add);//读一字节,调用前需打开IAP 功能
void Byte_Program(INT16U add, INT8U ch);//字节编程,调用前需打开IAP 功能
void Sector_Erase(INT16U add);//擦除扇区
void IAP_Disable();//关闭IAP 功能 void Delay();void main(void){ unsigned char ram[100]={0};unsigned char b=0,c=0,a=0;// a = Byte_Read(0);//读EEPROM的值, 存到read_eeprom
//EA=1;//全局中断开 //EX0=1;//外部中断0开 //IT0=1;//边沿触发 //EX1=1;//外部中断1开 // IT1=1;//IT1=1表示边沿触发 init1602();ADC_Init(0);// ADC_Read();LCD_Write_String(1,0,“zhou yi chen ”);LCD_Write_String(1,0,“zhou yi chen ”);// LCD_Write_Char(3,1,'o');while(1){ for(i=0;i<100;i++){ ram[i]=Byte_Read(i);//读EEPROM的值,存到read_eeprom } LCD_Write_String(1,0,“U==4V ”);LCD_Write_String(1,1,“PINLV 1.017 KHZ ”);while(huifang==1&&kep1==1){ for(i=0;i<100;i++){ ADC_Init(1);a= ADC_Read();P3=ram[i];
//读read_eeprom } } while(kep1==0){ for(i=0;i<100;i++){ //if(i==0)//Sector_Erase(0);//区
ADC_Init(1);
a= ADC_Read();P3=a;ram[i]=a;//Byte_Program(i,a);//将EEPROM
EEPROM的值,存到擦除整个扇DEBUG_DATA 写入23
} }
for(i=0;i<100;i++){ if(i==0)Sector_Erase(0);//擦除整个扇区
Byte_Program(i,ram[i]);//将 DEBUG_DATA 写入 EEPROM } } }
//读一字节,调用前需打开IAP 功能,入口:DPTR = 字节地址,返回:A = 读出字节 INT8U Byte_Read(INT16U add){ IAP_DATA = 0x00;IAP_CONTR = ENABLE_ISP;//打开IAP 功能, 设置Flash 操作等待时间 IAP_CMD
= //IAP/ISP/EEPROM 字节读命令
0x01;
my_unTemp16.un_temp16 = add;IAP_ADDRH IAP_ADDRL
//EA = 0;IAP_TRIG = 0x5A;//先送 5Ah,再送A5h 到ISP/IAP 触发寄存器,每次都需如此
IAP_TRIG = 0xA5;//送完A5h 后,ISP/IAP 命令立即被触发起动 _nop_();//EA = 1;IAP_Disable();//关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态, //一次连续的IAP 操作完成之后建议关闭IAP 功能,不需要每次都关 return(IAP_DATA);}
//字节编程,调用前需打开IAP 功能,入口:DPTR =
= =
my_unTemp16.un_temp8[0];my_unTemp16.un_temp8[1];//设置目标单元地址的高8 位地址 //设置目标单元地址的低8 位地址 字节地址, A= 须编程字节的数据
void Byte_Program(INT16U add, INT8U ch){ IAP_CONTR = ENABLE_ISP;//打开 IAP 功能, 设置Flash 操作等待时间 IAP_CMD
my_unTemp16.un_temp16 = add;IAP_ADDRH IAP_ADDRL
IAP_DATA = ch;//要编程的数据先送进IAP_DATA 寄存器 //EA = 0;IAP_TRIG = 0x5A;//先送 5Ah,再送A5h 到ISP/IAP 触发寄存器,每次都需如此
IAP_TRIG = 0xA5;//送完A5h 后,ISP/IAP 命令立即被触发起动 _nop_();
= 0x02;//IAP/ISP/EEPROM 字节编程命令
= =
my_unTemp16.un_temp8[0];my_unTemp16.un_temp8[1];//设置目标单元地址的高8 位地址 //设置目标单元地址的低8 位地址 //EA = 1;IAP_Disable();//关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态, //一次连续的IAP 操作完成之后建议关闭IAP 功能,不需要每次都关 }
//擦除扇区, 入口:DPTR = 扇区地址 void Sector_Erase(INT16U add){ IAP_CONTR = ENABLE_ISP;//打开IAP 功能, 设置Flash 操作等待时间 IAP_CMD
my_unTemp16.un_temp16 = add;IAP_ADDRH IAP_ADDRL
//EA = 0;
= 0x03;//IAP/ISP/EEPROM 扇区擦除命令
= =
my_unTemp16.un_temp8[0];my_unTemp16.un_temp8[1];//设置目标单元地址的高8 位地址 //设置目标单元地址的低8 位地址 IAP_TRIG = 0x5A;//先送 5Ah,再送A5h 到ISP/IAP 触发寄存器,每次都需如此
IAP_TRIG = 0xA5;//送完A5h 后,ISP/IAP 命令立即被触发起动 _nop_();//EA = 1;IAP_Disable();//关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态, //一次连续的IAP 操作完成之后建议关闭IAP 功能,不需要每次都关 }
void IAP_Disable(){ //关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态, //一次连续的IAP 操作完成之后建议关闭IAP 功能,不需要每次都关
IAP_CONTR = 0;//关闭IAP 功能 IAP_CMD = 0;//清命令寄存器,使命令寄存器无命令,此句可不用
IAP_TRIG = 0;//清命令触发寄存器, 使命令触发寄存器无触发,此句可不用 IAP_ADDRH = 0;IAP_ADDRL = 0;}
void Delay(){ INT8U i;INT16U d=5000;while(d--){ i=255;while(i--);} } 附录 2 硬件原理图„„„„„„„„„„„
附录 3 PCB图(部分)„„„„„„„„„
第二篇:51单片机语音回放系统课程设计报告
课 程 设 计 报 告
.语音存储与回放系统
摘要
基于微控制器的语音存储与回放系统具有录制方便、回放灵活、无磨损、可靠性强等优点,在实际生活中得到了广泛的应用,如公共设备、智能仪器仪表、小家电等。
语音存储与回放系统的实现具有多种方式,一种是利用单片集成的语音存储与回放芯片,如美国ISD公司的ISD1420等;一种是以微控制器为核心,辅以A./D转换、D/A转换以及大容量的存储器。单片集成的语音存储与回放芯片一般智能性较差,不容易解决音量的问题,同时存放录制时间有限,不能灵活的变化。因此,在多数需要语音存储与回放的场合中,采用了微控制器的语音存储与回放系统。
一、系统总体描述和设计
1.1 系统描述 1.1.1 系统功能简介
语音存储与回放系统能够将语音先行录制,然后再回放,适合应用在一些需要语音播报功能的设备上,如公交车报站器、智能小家电、智能玩具等。
在一些实际应用中,一般录制是在产品出厂时,由专业人员进行录制,而在实际应用中只需要播放,如公交车报站器。但在一些实际应用中,则需要用户既能随意录制,也能随意播放,如智能玩具。
语音存储与回放系统比较重要的两个指标是语音的最大录制时间和语音回放的质量。语音的最大录制时间是由语音存储与回放系统的存储设备的容量来决定的,一般采用RAM,即为系统的存储容量。在一般的单片机系统中,RAM的容量非常有限,需要扩展一定容量的RAM。而语音回放的质量主要由系统中A/D以及D/A来决定,A/D与D/A的精度越高,语音的质量越好,同时系统的噪声抑制能力,如带通滤波器的优劣等,也会影响到语音的质量。1.1.2 系统总体设计
语音存储与回放系统的总体原理图如图1-1所示。
语音存储与回放系统
麦克风前置放大器带通滤波器A/D键盘控制微控制器外扩存储器喇叭后置放大器带通滤波器D/A
图1 语音存储与回放系统总体原理
语音存储与回放系统主要包括微控制器、系统供电电源、键盘、麦克风、前置放大器、A/D、外扩存储器、D/A、后置放大器和喇叭。下面将介绍各个部分的总体设计与选型。
1.微控制器
微控制器主要负责录音、回放中对外部命令的响应,同时需要对存储器进行读写操作。本语音存储与回放系统采用51系列单片机,负责控制与协调其他各个模块的工作,并进行简单的数字信号处理。在整个语音存储与回放系统中,微控制器是系统的控制中心,其工作效率的高低关系到系统效率的高低以及系统运行的稳定性。而51系列单片机具有成本低,稳定性好,且运行速度基本能满足该系统的要求。在本系统中,将采用Atmel公司的AT89S52。
2.键盘
在语音存储与回放系统中,需要采用键盘对语音的录制以及回放进行控制。在分段录制与播放中,同时还需要段号的输入等。在本系统中需要的按键数量比较多,可以采用键盘管理芯片ZLG728。
3.麦克风
麦克风的选择对语音质量影响比较明显。麦克风的作用是将语音信号转化成电信号。考虑到驻极体话筒的灵敏度较高,方向性差,若采用单端放大,会有比较大的噪音,因此采用两只(配对)话筒分别接入差分放大器的正负端,可以较好的抑制背景噪声。
4.前置放大器
通常情况下,拾音器输出的是微弱的电信号,因此在拾音器的后端需要将该信号进行放大处理,能完成此功能的电路称为前置放大器。一般情况下,拾音器的输出为毫伏级的电压信号,需要进行放大到伏级的电压信号。在本系统中,采用运算放大器NE5532。
语音存储与回放系统
5.A/D 由奈奎斯特采样定理可知,A/D的采样频率必须满足信号的最高频率的2倍以上,即满足如下关系:
fsfH(1)其中,fs为采样频率,fH为被采样信号的最高频率。
一般语音信号的最高频率为3.4kHz,因此在语音存储与回放系统中,A/D的采样频率fs必须满足:
fs2fH23.4kHz6.8kHz(2)
因此我们可以选用ADC0809,ADC0809转换器的分辨率为8位,典型转换时间为100μs,单5V电源供电。
6.外扩存储器
在语音存储与回放系统中,需要录制10s以上的语音,假设采样频率为8kHz,分辨率为8位,那么1秒钟的时间至少需要8kB的存储空间,而单片机的内置存储器无法满足要求,需要外扩存储器。
外扩存储器可以选用256k*8位的SRAM,这样就可以录制至少30s的语音。也可以采用多片32k*8位的SRAM,但是需要分页存储技术来扩展容量。
7.D/A 语音的回放需要将存储的数字化信号进行D/A转换,恢复为模拟信号才能进行播放。我们可以选用DAC0832来完成数字信号到模拟信号的转换,DAC0832的分辨率为8位,其输出稳定时间为1μs,满足系统要求。
8.后置放大器
D/A输出的信号经过后置带通滤波器后,其输出通常情况下不能满足喇叭对功率的要求。完成D/A输出到喇叭的功率驱动的放大电路称为后置放大器,即为一个功率放大器,我们可以采用低电压音频功率放大器LM386来实现。
9.喇叭
喇叭是语音播放回路的最后输出阶段,喇叭质量的好坏也会关系到语音输出的质量,因此,喇叭的选择也是很重要的一个方面。我们可以选用8欧姆,0.5W的普通喇叭。
如图3所示。1.主控制器设计
三、单元电路设计
二、系统硬件设计
成的后置功率放大电路,以及状态指示等。
语音存储与回放系统
图2 语音存储与回放系统的总体硬件框图
系统的总体硬件框图如图2所示,主要有AT89S52单片机系统,DC/DC、7812等组成的系统供电电源电路,NE5532组成的前置放大器,NE5532与R、C组成的前置/后置带通滤波器,ADC0809组成的A/D转换电路,IS61LV2568组成的数据存取电路,DAC0832组成的D/A转换电路,LM386组主控制器即为一个51系列单片机最小系统,单片机选择了Atmel公司的89S52,主控制电路
语音存储与回放系统
2.前置放大电路设计
由一级电压跟随器和一级同相放大器组成。
3.后置功率放大设计
语音频率的范围一般为300Hz~3.4kHz,因此需要在输入与输出回路中设计带通滤波器来滤除语音频率范围以外的频率成分,以便进一步提高语音回放的质量。
其由运算放大器NE5532与R、C组成,采用的是一级低通滤波器和一级高通滤波器的级联。由于带通滤波器的通频带范围为300Hz~3.4kHz,因此低通滤波器的上限截止频率为3.4kHz,高通滤波器的下限截止频率为300Hz。
语音存储与回放系统
4.A/D采样电路设计
5.数据存取电路设计(62256两片)
语音存储与回放系统
6.D/A转换电路设计
语音存储与回放系统
开始初始化是否录音?启动AD程序,并存储语音。是否放音?启动DA程序,并循环放音结束8
四、软件设计
1、流程图
语音存储与回放系统
2、时序图
ADC0809时序图:
语音存储与回放系统
DAC0832时序图: 存储器62256时序图:
读数据:
语音存储与回放系统
写数据:
五、结束语
1.所设计的系统基本要求:
(1)放大器1的增益为46dB,放大器2的增益为40dB,增益均可调;
(2)带通滤波器:通带为300Hz~3.4kHz ;
(3)ADC:采样频率f s=8kHz,字长=8位;
(4)语音存储时间≥10秒;
(5)DAC:变换频率f c=8kHz,字长=8位;
(6)回放语音质量良好。
语音存储与回放系统
2.实验心得体会: 对于这种动手性很强的电路设计和焊接实验,觉得与平时必修课的实验很不同。必修课的实验都是一些经典实验,条件成熟且被反复验证,只要按照讲义的步骤去做,便会顺利得到预期的结果。但动手性实验,没有老师的监督和强迫,全靠我们自觉完成。动手性实验就像为我们打开了一扇窥探科研之路的门,让我们学到了许多在经典实验中无法学到的知识和思维方式。
我们首先查阅了芯片手册,了解了关于电路各模块的原理的结构。对这个课题有了基本了解后,我们又查阅了关于如何实现芯片具体功能的方法,并结合我们的目标物,制订了尝试方案。在实验过程中,我们碰到了许多以前在经典实验中不曾出现的问题。后来向老师了解到,其实是原理图和实物并不相对应。我们才发现,讲义上给我们做的经典实验,条件都是很成熟的,基本不会出现什么偏差,而我们所要探索的问题是很难达到这种理想效果的。由于我们的知识是有限的,所以我们遇到的困难比较多,正因为如此,我也收获良多。
首先我们明白到团结合作的重要性。由于我们组只有两个人,而所作的工作又较多,所以对我们来说时间是紧迫的,而且团结也显得尤为重要,同时加上有老师的热心帮助和提点,我们的实验进度也大大加快了。
其次我们学会了科研的思维方式。在实验过程中,我们会遇到各种各样意想不到的问题,这时必须静下心来分析可能出错的步骤,可能出现的故障,逐步排除,直到找出真正的原因,再对症下药,解决问题。另外,以我们现在的知识,也许不可能一下子就创造出一个前无古人的大发明,但我们可以在已有的仪器设备或实验方法上做一些改善工作,使其更方便、更完善。通过这些小设计或创新,可以培养和提高我们的能力。
这一次的动手性实验不但锻炼了我们的实验能力,培养了我们的科研思维,而且让我们体会到科研当中的辛苦与快乐。我们会把这一次的宝贵经验运用到以后的科研工作中,为电子事业贡献自己的一份力量。
语音存储与回放系统
六、参考文献
[1] 郭天祥。新概念51单片机C语言教程——入门、提高、开发、拓展。北京:电子工业出版社,2009-1-1。
附录
程序设计代码: #include
#define mdata XBYTE[0x0000] #define adnum 32768 sbit we=P3^6;sbit cs=P3^2;sbit flag1=P3^1;//录音控制键 sbit flag2=P3^0;//放音控制键 sbit eoc=P3^3;sbit start=P3^4;sbit oe=P3^5;int temp=0;int luyinstop = 0;int fangyinstop = 0;
语音存储与回放系统
uchar buffer=0;uchar xdata *pt,*pt1;unsigned char sum;sbit ck = P2^7;void Timer0_Init();void main(){ unsigned char addr[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};pt=&ramaddress;//首地址
pt1 = pt;//定义存放首地址
P1=0xff;//打开P1口
ck = 0;//打来62256片选
Timer0_Init();//定时器初始化
while(1){
if(luyinstop>adnum)
{
pt=&ramaddress;
luyinstop = 0;
}
if(fangyinstop>adnum)
{
pt1=&ramaddress;
fangyinstop = 0;}
} cs=1;
语音存储与回放系统
}
void Timer0_Init()//定时器初始化 { TMOD|=0x01;TH0=(65536-3)/256;TL0=(65536-3)%256;EA=1;;ET0=1;TR0=1;}
void timer_0()interrupt 1 {
TH0=(65536-3)/256;TL0=(65536-3)%256;if(flag2==1 && flag1==0)//录音
{
if(luyinstop { start=0;//ad初始化 start=1; start=0; while(!eoc);//等待空闲 cs=0;//打开da片选 语音存储与回放系统 we=0;//打开62256位选 buffer=P1; *pt=buffer;//数据放入软件寄存器 pt++; luyinstop++; } } if(flag2==0 && flag1==1)//放音 { if(fangyinstop { start=0;//停止ad buffer=*pt1;//数据放入软件寄存器 P1=buffer; pt1++; fangyinstop++; } } } FPGA数据采集与回放系统设计论文 在个人成长的多个环节中,大家或多或少都会接触过论文吧,论文是我们对某个问题进行深入研究的文章。怎么写论文才能避免踩雷呢?下面是小编为大家整理的FPGA数据采集与回放系统设计论文,欢迎阅读,希望大家能够喜欢。 1系统及其原理 基于通用信号处理开发板,利用FPGA技术控制AD9233芯片对目标模拟信号采样,再将采样量化后的数据写入USB接口芯片CY7C68013的FIFO中,FIFO写满后采用自动触发工作方式将数据传输到PC机。利用VC++6.0软件编写上位机实现友好的人机交互界面,将传输到PC机上的数据进行储存和实时回放。本系统主要实现以下两大功能:1)ADC模块对目标模拟信号进行采样,利用FPGA技术将采样后的数据传输到USB接口芯片CY7C68013的FIFO中存储。2)运用USB2.0总线数据传输技术,将雷达回波信号数据传输到PC机实时回放。分为应用层、内核层和物理层3部分。应用层和内核层主要由软件实现。应用层采用VC++6.0开发用户界面程序,为用户提供可视化操作界面。内核层基于DriverWorks和DDK开发系统驱动程序,主要起应用软件与硬件之间的桥梁作用,把客户端的控制命令或数据流传到硬件中,同时把硬件传输过来的数据进行缓存。物理层主要以FPGA为核心,对USB接口芯片CY7C68013进行控制,通过USB2.0总线实现对中频信号采集。系统设计采用自底向上的方法,从硬件设计开始逐步到最终的应用软件的设计。 2硬件设计 FPGA在触发信号下,控制ADC采样输入信号,并存入FIFO中。当存满时,将数据写入USB接口芯片CY7C68013,同时切换另一块FIFO接收ADC转换的数据,实现乒乓存储,以提高效率。FPGA模块的一个重要作用是控制USB接口芯片CY7C68013。当ADC采样后,数据进入FPGA模块,FPGA控制数据流将其写入CY7C68013的FIFO中,以便于USB向PC机传输。CY7C68013的数据传输模式采用异步slaveFIFO和同步slaveFIFO切换模式。通过实测,前者传输速度约为5~10Mbit/s,后者传输速度最高可达20Mbit/s,传输速度的提高可通过更改驱动程序的读取方式实现。 3软件设计 3.1USB驱动程序设计 USB2.0总线传输技术最高速率可达480Mbit/s。本系统采用批量传输的slaveFIFO模式。CY7C68013芯片内部提供了多个FIFO缓冲区,外部逻辑可对这些端点FIFO缓冲区直接进行读写操作。在该种传输模式下,USB数据在USB主机与外部逻辑通信时无需CPU的干预,可大大提高数据传输速度。Cypress公司为CY7C68013芯片提供了通用的驱动程序,用户可根据需求开发相应的固件程序。 3.2FPGA模块程序设计 系统中FPGA模块的'核心作用是控制AD9233芯片进行采样。AD9233作为高速采样芯片,其最高采样速率达125Mbit/s,最大模拟带宽为650MHz。通过改变采样速率可使该系统采集不同速率需求的信号,扩展了该系统的应用范围。描述FPGA控制USB数据写入接口芯片FIFO的状态机如图6所示。状态1表示指向INFIFO,触发FIFOADR[1:0],转向状态2;状态2表示若FIFO未满则转向状态3,否则停留在状态2;状态3表示驱动数据到总线上,通过触发SLWR写数据到FIFO并增加FIFO的指针,然后转向状态4;状态4表示若还有数据写则转向状态2,否则转向完成。 3.3上位机设计 为实现人机交互,利用VC++MFC在PC机上编写了可视化操作界面,即上位机。上位机既用于数据采集的控制,同时也用于采集数据的实时回放。上位机界面如图7所示。上位机主要功能: 1)按下“检测USB”按钮,可检测USB是否连接正常,并显示USB基本信息。 2)按下“开始采集”按钮,可将采集的数据传输到PC机并实时回放数据波形;再次按下“开始采集”按钮,可暂停数据波形回放。 3)按下“保存数据”按钮,可将采集的数据以*.dat文件的形式存储到PC机硬盘。 4)按下“结束采集”按钮,可关闭采集系统并退出界面;或按下“确定”和“取消”按钮,也可直接退出界面。 4系统实测 为了测试数据采集与回放系统,利用通用信号处理开发板设计了DDS模块。该DDS模块产生一个正弦波作为测试信号,通过AD9744芯片转换后变为模拟信号输出,并将此输出信号接至示波器以便验证系统。数据采集与回放系统的实物图及系统实测波形与回放波形。 5结束语 通过实际测试,基于FPGA的数据采集与回放系统达到了预期设计的要求。此系统能够对目标模拟数据进行采集,并能对采集的数据实时回放,且可将数据以*.dat文件的形式存入PC机硬盘;系统具有高速的采集传输功能,上位机能够实时、动态地回放数据;信号采集板和处理板共用一套硬件,避免了重复制板,在实际调试时可方便地在信号采集与信号处理的工作模式间来回切换,提高了工作效率。原驱动程序官方版本为了满足通用性和稳定性的要求,限制了传输速率,本设计开发了相应的USB驱动程序,提高了传输速率。 智能仪器设计实习 设 计 任 务 书 题目单片机数据采集系统的设计专业、班级学号姓名主要内容、基本要求、主要参考资料等: 主要内容: 功能要求:完成单片机数据采集系统 1)使用单片机采集数据。 2)将采集到的数据送上微机显示、处理。 上述内容为基本要求,可按照自己的理解增加功能使之更完善。 基本要求: 明确设计任务,复习与查阅有关资料。 设计所用硬件芯片按给定使用。 按要求对设计进行简要说明,总体设计方案,各部分的详细设计。 写出体会和总结。 要求全部使用A4纸打印稿,不少于5000字。 主要参考资料: 李朝青编.《单片机原理及接口技术》(简明修订版).北京航空航天大学出版社,1998 冯克.《MCS-51单片机实用子程序及其应用实例》.黑龙江科学技术出版社,1990 杨欣荣等.《智能仪器原理、设计与发展》.中南大学出版社,2003 孙传友等.《感测技术基础》. 电子工业出版社,2001 王福瑞等.《单片微机测控系统设计大全》.北京航空航天大学出版社,1999 科技期刊:《单片机与嵌入式系统应用》、《实用测试技术》、《自动化仪表》、《传感器世界》、《测控技术》、《电子技术应用》等2001年以后各期。 完成期限: 2013年12月16日 指导教师签名: 2013年 12月16日 《单片机系统设计与应用(校公选)》教学大纲 一、课程基本信息 1.课程英文名称:Microcontroller system design and application 2.课程类别:技术基础课程 3.课程学时:总学时32,实验学时32 4.学分:2 5.先修课程:C语言 6.适用专业:所有理工类本专科生 7.大纲执笔:电气信息实验教学中心高凤水 8.大纲审批:电气信息学院学术委员会 9.制定时间:2011年12月 二、课程的目的与任务 本课程是独立开设的实验课,一切从实践应用出发,使学生初步掌握单片机电路设计和单片机程序开发的方法;掌握常用的单片机开发调试工具的使用方法;掌握单片机集成开发环境使用;熟悉常见单片机的性能指标和选型方法;基本掌握单片机系统的设计、组装和调试方法,为以后从事工程技术和科学研究等方面的工作,在实践能力方面打下基础。 三、课程的基本要求 本课程在不影响学生理解的前提下,尽量淡化繁复的单片机工作原理理论,从实际应用出发,着重介绍单片机程序开发方法和硬件设计技巧。包括:常用的单片机设计开发平台、单片机小系统设计方法、单片机程序调试方法和技巧、单片机设计原则和注意事项、常见单片机片上外设的使用、单片机外部器件扩展方法,等。 四、教学内容、要求及学时分配 (一)理论教学 无 (二)实验教学 1.单片机系统概述验证性教学时数:2 实验目的: (1)学习和认识什么是单片机; (2)初步掌握单片机的基本工作原理; (3)了解和认识单片机系统的硬件组成。 实验仪器设备:单片机通用开发平台,下载器,计算机。 2.单片机开发平台和调试工具使用验证性教学时数:3 实验目的: (1)学习常用的单片机集成开发环境和下载工具的使用; (2)学习和认识单片机最小系统板的机构和使用; (3)学习单片机的IO访问方法。 实验仪器设备:单片机通用开发平台,下载器,计算机。 3.单片机片内资源使用综合性教学时数:3 实验目的: (1)学习和掌握单片机内数据传递及运算的基本方法; (2)学习和掌握利用SPI总线驱动七段数码管的方法; (3)学习和掌握单片机内timer以及中断系统的使用方法。 实验仪器设备:单片机通用开发平台,下载器,计算机。 4.单片机片上外设使用综合性教学时数:3 实验目的: (1)认识和了解什么是单片机片上外设; (2)学习利用单片机片载EEPROM存取数据。 实验仪器设备:单片机通用开发平台,下载器,计算机。 5.单片机UART总线使用综合性教学时数:3 实验目的: (1)认识和学习什么是UART总线; (2)学习利用RS232接口实现数据传输。 实验仪器设备:单片机通用开发平台,下载器,计算机。 6.单片机I2C总线使用综合性教学时数:3 实验目的: (1)认识和学习什么是I2C总线; (2)利用I2C总线实现外部存储器的数据存储。 实验仪器设备:单片机通用开发平台,下载器,计算机。 7.用单片机做个数字温度计综合性教学时数:3 实验目的: (1)学习和掌握温度的数字化测量方法; (2)了解基于one-wire总线的数字温度传感器DS18B20的使用方法; (3)初步掌握综合性程序的设计调试方法。 实验仪器设备:单片机通用开发平台,下载器,计算机。 8.单片机红外接收实验综合性教学时数:3 实验目的: (1)学习和掌握什么是红外遥控; (2)初步掌握低速红外数据传输的方法; (3)初步掌握利用单片机接收、解码红外遥控信号的方法。 实验仪器设备:单片机通用开发平台,下载器,计算机。 9.字符液晶使用综合性教学时数:3 实验目的: (1)学习和掌握字符液晶的工作原理; (2)初步掌握字符型液晶的单片机驱动方法和程序编写。 实验仪器设备:单片机通用开发平台,下载器,计算机。 10.单片机PWM波的产生综合性 实验目的: (1)学习什么是PWM波以及PWM波的简单应用; (2)学习和掌握PWM的单片机产生方法。 实验仪器设备:单片机通用开发平台,下载器,计算机。 11.单片机A/D转换器使用综合性 实验目的: (1)初步掌握单片机A/D转换器的使用方法; (2)利用单片机的片内A/D转换器测量电压。 实验仪器设备:单片机通用开发平台,下载器,计算机。 12.单片机最小系统设计设计性 实验目的: (1)学习基本的单片机的硬件设计方法; (2)初步掌握单片机电路设计的基本原则; (3)能够设计基于单片机最小系统的硬件电路。 实验仪器设备:单片机通用开发平台,下载器,计算机。 在所有设定的实验项目中任选32学时实验。 五、考试考核办法 课程成绩=平时(作业、实验、考勤)50%+考试50% 六、教材及参考书 (一)教材 《单片机系统设计与应用实验指导书》自编 (二)参考书 教学时数:3 教学时数:3 教学时数:3 3 《单片机系统设计与应用实例》,韩志军,机械工业出版社第三篇:FPGA数据采集与回放系统设计论文
第四篇:单片机数据采集与双机通信系统的设计任务书
第五篇:《单片机系统设计与应用(公选)》教学大纲