版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于51单片机电子设计报告之波形采集、存储与回放系统 目录一、设计任务求 3二、系统方案论证与选择 6三、系统硬件的设计 10四、系统软件的设计12五、参考文献14六、结论15附录16附录 1 程序代码16附录 2 硬件原理图30附录 3 PCB图(部分)32一、 设计任务求<1>、任务设计并制作一个波形采集、存储与回放系统,示意图如图1 所示。该系统能同时采集两路周期信号波形,要求系统断电恢复后,能连续回放已采集的信号,显示在示波器上。<2>、要求1基本要求(1)能完成对A 通道单极性信号(高电平约4V、低电平接近0V)、频率约1kHz 信号的采集、存储与连续回放。要
2、求系统输入阻抗不小于10 k,输出阻抗不大于1k。(2)采集、回放时能测量并显示信号的高电平、低电平和信号的周期。原信号与回放信号电平之差的绝对值50 mV,周期之差的绝对值5%。(3)系统功耗50mW,尽量降低系统功耗,系统内不允许使用电池。2. 发挥部分(1)增加B 通道对双极性、电压峰峰值为100mV、频率为10Hz10kHz 信号的采集。可同时采集、存储与连续回放A、B 两路信号,并分别测量和显示A、B 两路信号的周期。B 通道原信号与回放信号幅度峰峰值之差的绝对值10 mV,周期之差的绝对值5%。(2)A、B 两路信号的周期不相同时,以两信号最小公倍周期连续回放信号。(3)可以存储两
3、次采集的信号,回放时用按键或开关选择显示指定的信号波形。(4)其他。<3>、说明1本系统处理的正弦波信号频率范围限定在10Hz10kHz,三角波信号频率范围限定在10Hz 2kHz,方波信号频率范围限定在10Hz 1kHz。2预留电源电流的测试点。3采集与回放时采用示波器监视。4采集、回放时显示的周期和幅度应是信号的实际测量值,规定采用十进制数字显示,周期以“ms”为单位,幅度以“mV”为单位。<4>、评分标准二、 系统方案论证与选择1、题目要求及相关指标分析 题目的要求是将待测信号进行数字存储,并通过普通示波器将被测信号显示出来。由于待测信号为模拟信号,存储过程为数字
4、方式,故应该将模拟信号进行量化处理,然后存储到存储器中,当需要显示的时候,从存储器读出数据并恢复为模拟信号,并送往普通示波器Y输入端,在X输入端加入相应的扫描信号,采有X-Y方式观察信号的波形。因此,设计的重点是模拟信号的处理与采样、数字信号的存储、普通示波器的显示控制、系统的控制4个方面。2、方案的比较与分析 1)采样方式方案一:实时采样。实时采样是在信号存在期间对其采样。根据采样定理,采用速率必须高于信号最高频率分量的两倍。对于周期的正弦信号,一个周期内应该大于两个采样点。为了不失真的恢复原被测信号,通常一个周期内就需要采样八个点以上。方案二:等效时间采样法。采用中高速模数转换器,对于频率
5、较高的周期性信号采用等效时间采样的方法,即对每个周期仅采样一个点,经过若干个周期后就可对信号各个部分采样一遍。而这些点可以借助步进延迟方法均匀地分布于信号波形的不同位置。其中步进延迟是每一次采样比上一次样点的位置延迟t时间。只要精确控制从触发获得采样的时间延迟,就能够准确地恢复出原始信号。等效时间采样虽然可以对很高频率的信号进行采样,可是步进延迟的采样技术与电路较为复杂。再者,它只限于处理周期信号,而且对单次触发采样无能为力。实时采样可以实现整个频段的全速采样,因此本设计采用方案一。2)双踪显示方式方案一:每个通道都有一套独立的ADC和存储器,双踪显示时,只需轮流选择不同通道的波形数据,就可以
6、实现两路波形的同时显示。方案二:只使用一片ADC,一片存储器和一片DAC,在采样的时候,用存储器地址的最低位控制模拟开关。通过切换两路模拟信号,将采集到的数据分别存储到存储器的奇地址和偶地址上,双踪显示时通过扫描存储器中的数据即可将两路波形同时显示出来。方案二使用的硬件电路较少,故我们选择方案二。3)触发方式选择要使屏幕上显示稳定的波形,则需将被测信号本身或者与被测信号有一定时间关系的触发信号加到触发电路。触发源选择确定触发信号由何处供给。通常有三种触发源:内触发(INT)、电源触发(LINE)、外触发EXT)。题目要求选择内触发,即使用被测信号作为触发信号。方案一:采用数字触发方式。对波形信
7、号进行采集,将采集到的波形数据和触发电平(可由键盘设置)进行比较,找到波形在上升过程中大于或等于该触发电平的点,即得到触发,此时开始对波形进行存储。因为本来就需要对波形信号进行采集,使用这种方法无需要增加额外的硬件电路,实现方便。但是,对波形每个周期只采集有限个点,不可能每次都能采集到等于触发电平的点(这时不得不以大于该电平的值为触发电平),从而使触发位置不稳定,连续触发时输出波形会有抖动现象。方案二:采用模拟触发方式。通过比较器LM311将被测波形信号和触发电平进行比较,大于触发电平时输出为高电平,小于触发电平时则输出低电平,即可得到信号被整形后的脉冲序列,再在该脉冲序列的上升沿开始存储波形
8、即实现了触发存储的功能。这种触发方式稳定,故我们采用了这种方案。4)水平和垂直位置的调节a)水平移动的调节方案一:由FPGA内地址累加器的输出控制数模转换器不断地输出锯齿波。在后级加一个加法器,调节滑动变阻器R的阻值,可以实现对锯齿波波形的直流电平叠加,从而达到调节显示器上波形左右位置的平移功能。方案二:通过对双口RAM读出数据的起始地址的偏移控制来控制波形的左右移动。方案一实现左右平移,电路简单,效果明显。但是一页屏幕的波形通过这样的平移,就必然会将一部分的波形移动到示波器屏幕以外,同时将示波器的另一边变成空白。这样不符合实际数字示波器的功能要求。再者,它也实现不了auto的功能。而方案二方
9、法新颖,对于波形在屏幕的满屏显示和auto的功能都可以轻易处理和简单实现。于是本设计采用方案二。b)垂直移动的调节方案一与上述水平移动调节的方案一相同。方案二是直接对双口RAM的数据进行处理。譬如向上平移,可将波形的所有数据都加上一个偏移值,然后送到DAC0832,直接将输出的模拟信号加在y轴上。但这种方法的问题是当RAM中数据较大时,加上某一个偏移值后数据均达到255,则波形的上半部分就会被削平。而通过加法电路的调节则不会出现这个问题。故我们选用方案一。5)频率的测量方案一:用单片机扫描存储在RAM中波形数据,找到波形的上升过零点位置或者波形数据的峰值,并记录此时的地址ADR1,在扫描下一个
10、波形的上升过零点位置或者波形数据的峰值,并记录此时的地址ADR2,通过如下公式计算出波形的频率: f = 1/B×(ADR2-ADR1)/20其中,B为水平分辨率,单位为s/div。 方案二:等精度测量法先将待测信号进行二分频,用此信号作为闸门。取FPGA内部40M信号作为基准信号,二分频后信号的上升沿开起计数器时钟计数,下降沿关闭计数。由计得的数值来计算信号的频率。方案一计算的频率数据的精度不会很高,加上采样的不稳定,必将导致频率测量的不正确。而方案二测量的稳定性较高且数据较准确。故我们选用方案二测量信号的频率。三、 系统硬件的设计DAC0832输出的是电流,一般要求输出是电压,所
11、以还必须经过一个外接的运算放大器转换成电压。实验线路如图所示。1. 运算放大器运算放大器有三个特点:开环放大倍数非常高,一般为几千,甚至可高达10万。在正常情况下,运算放大器所需要的输入电压非常小。输入阻抗非常大。运算放大器工作时,输入端相当于一个很小的电压加在一个很大的输入阻抗上,所需要的输入电流也极小。输出阻抗很小,所以,它的驱动能力非常大。2.DAC0832的外部连接DAC0832的外部连接线路如图10.10所示。3.运算放大电路和低通滤波电路LM324的5管脚与DAC0832的(IOUT2)12管脚相连,LM324的6管脚与DAC0832的(IOUT1)11管脚相连,LM324的7管脚
12、与DAC0832的REF(9)管脚相连.第一级运算放大器的作用是将DAC0832输出的电流信号转化为电压信号V1,第二级运算放大器的作用是将V1通过反向放大电路-(R2/R1)倍。实验表明,输出波形效果不错四、 系统软件的设计本程序的程序流程图如下所示五、 参考文献1 康华光. 电子技术基础模拟部分(第五版). 高等教育出版社,2005年. 2 阎 石. 数字电子技术基础(第五版). 高等教育出版社,2005年. 3 刘爱华 满宝元. 传感器原理与应用技术.人民邮电出版社,2011年.4 马 彪. 单片机应用技术. 同济大学出版社,2010年.5 郭天祥. 51单片机C语言教程. 北京: 电子
13、工业出版社,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
14、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,unsign
15、ed 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 LC
16、D_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) ;#endi
17、f/* - 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-
18、82944243 - - Tel:- - Web: www.MCU-M -本演示程序在STC-ISP Ver 3.0A.PCB 的下载编程工具上测试通过,EEPROM 的数据在P1 口上显示, 如果要在程序中使用或在文章中引用该程序,请在程序中或文章中注明使用了宏晶科技的资料及程序*/#include <STC12C5A60S2.H>#include <intrins.H>#include "adc.H"unsigned int i=0,j;unsigned char guanji,cy,cy0,huifang=1;sb
19、it kep1=P17;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
20、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 寄存器设置此值#de
21、fine DEBUG_DATA 0x5A /本测试程序最终存储在 EEPROM 单元的数值#define DATA_FLASH_START_ADDRESS 0x00 /STC5Axx 系列 EEPROM 测试起始地址union union_temp16 INT16U un_temp16; INT8U un_temp82;my_unTemp16;INT8U Byte_Read(INT16U add); /读一字节,调用前需打开IAP 功能void Byte_Program(INT16U add, INT8U ch); /字节编程,调用前需打开IAP 功能void Sector_Erase(INT
22、16U add); /擦除扇区void IAP_Disable(); /关闭IAP 功能void Delay();void main (void) unsigned char ram100=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_Writ
23、e_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+) rami=Byte_Read(i); /读EEPROM的值,存到read_eeprom LCD_Write_String(1,0,"U=4V "); LCD_Write_String(1,1,"PINLV 1.017 KHZ ");while(huifan
24、g=1&&kep1=1) for(i=0;i<100;i+) ADC_Init (1); a= ADC_Read (); P3=rami; /读EEPROM的值,存到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; rami=a;/Byte_Program(i,a);/将 DEBUG_DATA 写入 EEPROM for(i=0;i<100;i+) if(i=0) Sector_Er
25、ase(0); /擦除整个扇区Byte_Program(i,rami);/将 DEBUG_DATA 写入 EEPROM /读一字节,调用前需打开IAP 功能,入口:DPTR = 字节地址,返回:A = 读出字节INT8U Byte_Read(INT16U add) IAP_DATA = 0x00; IAP_CONTR = ENABLE_ISP; /打开IAP 功能, 设置Flash 操作等待时间 IAP_CMD = 0x01; /IAP/ISP/EEPROM 字节读命令 my_unTemp16.un_temp16 = add; IAP_ADDRH = my_unTemp16.un_temp80
26、; /设置目标单元地址的高8 位地址 IAP_ADDRL = my_unTemp16.un_temp81; /设置目标单元地址的低8 位地址 /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);/
27、字节编程,调用前需打开IAP 功能,入口:DPTR = 字节地址, A= 须编程字节的数据void Byte_Program(INT16U add, INT8U ch) IAP_CONTR = ENABLE_ISP; /打开 IAP 功能, 设置Flash 操作等待时间 IAP_CMD = 0x02; /IAP/ISP/EEPROM 字节编程命令 my_unTemp16.un_temp16 = add; IAP_ADDRH = my_unTemp16.un_temp80; /设置目标单元地址的高8 位地址 IAP_ADDRL = my_unTemp16.un_temp81; /设置目标单元地址的低8 位地址 IAP_DATA = ch; /要编程的数据先送进IAP_DATA 寄存器 /EA = 0; IAP_TRIG = 0x5A; /先送 5Ah,再送A5h 到ISP/IAP 触发寄存器,每次都需如此 IAP_TRIG = 0xA5; /送完A5h 后,ISP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 售后服务方案5篇-售后服务方案
- 水产品供应链成本控制与效率提升考核试卷
- 塑料制品在能源行业中的应用与发展考核试卷
- 水利工程的排水与治理考核试卷
- 医药制造业的溶出度试验方法选择考核试卷
- 培养学生的社会适应能力考核试卷
- 课件封面名称教学课件
- 新员工职业规划培训总结
- 医院新入职员工培训
- 淮阴工学院《机械设计》2022-2023学年第一学期期末试卷
- DL∕T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
- 一例登革热合并凝血功能障碍患者的个案护理20190-7
- 门诊病历书写模板全
- 电源车操作手册操作手册
- 神奇的大脑PPT课件
- 万科新建房地产项目成本测算表格全套
- 重回汉唐策划
- PCBA撞件不良责任判定原则
- 中俄文运输合同
- 医疗机构环境表面清洁与消毒管理规范试题及答案
- 管理类档案基本归档范围及保管期限表
评论
0/150
提交评论