历史上的今天
返回首页

历史上的今天

今天是:2025年02月27日(星期四)

正在发生

2020年02月27日 | 基于单片机的简易数字示波器设计方案

2020-02-27 来源:eefocus

  传统意义上的模拟示波器虽然功能较全,但是价格昂贵,体积大、重量重、成本高、等一系列问题使应用受到了限制。对于大多数学生以及教学组织来说,利用示波器主要是进行一些理论性的测试与实验,高精度高成本示波器的作用不是很必要,为此,笔者提出了一种便携式数字存储示波器的设计,它采用了LCD显示、高速A/D采集与转换、FIFO以及单片机等技术,具有较强的实用性以及发展的市场潜力,前景可观。


  1 简易数字示波器的工作原理以及总体框架

  本设计硬件电路部分由单片机控制系统电路,前向输入调理电路,模数转换和存储电路,以及按键显示电路组成。其工作的基本思路就是以单片机为控制核心,让AD芯片完成数据的离散化,采集数据经过缓冲暂存于存储器里面,当波形显示时,单片机从存储器的读使能端读取采集数据存于数组中,然后进行相应的数据处理并把所存取得数据按一定的顺序打在液晶显示器相应的位置上,从而再现波形信号;其中输入调理电路由阻抗变换电路,信号抬升电路以及频率测量电路构成,阻抗变换电路是为了提高输入阻抗,信号抬升是为了使信号的幅度满足AD芯片的输入幅度要求,频率测量电路主要是测量周期性信号的频率。总体设计框图如图1所示。

  2 硬件设计

  2.1 前端信号的处理

  本模块具有两大功能,一是输入信号位置的变换;二是信号波形的变换。

  信号位置的变换主要由阻抗变换电路,信号抬升电路构成,阻抗变换采用ua741构建的阻随放大电路,信号抬升电路采用ua741构成的加法电路,信号位置的处理主要是对被测输入信号在幅度与偏移方面进行线性处理,使信号在垂直方向上处于A/D转换器的输入范围内。波形变换电路是用来测量输入信号的频率,但是单片机属于数字器件,为此,我们需要对输入信号进行波形变换以及脉冲整形;硬件电路设计如图2所示。

  

  2.2 信号的采集与存储

  数据采集部分㈣是本设计的核心部分,本设计采用BB公司的8位AD,试验中让AD完成数据采集,采集完数据送往FIFO,通过FIFO中继再送往单片机,FIFO是一种双口RAM,它没有地址线,随着写入数据或者读取数据而使地址指针进行递增或者递减来实现寻址,两者中间接了一个缓冲器,这样可以起到数据缓冲作用,在MCU与AD之间接入FIFO的作用是起到数据缓冲的作用,因为AD的时钟高于MCU的工作频率,所以让AD和FIFO同步工作来存储AD转换的输出数据,实验中AD与FIFO的时钟同步,来自于ALE引脚,为了使时钟更加稳定,可以让ALE信号先经过与门再送往采集存储模块;FIFO有3个标志位引脚,FF满标志,HF半满标志以及EF空标志,本设计只利用了FF满标志,当FIFO存满时通知单片机来读取数据,这是单片机使FIFO的写使能禁止,只来读取数据以显示,硬件电路设计如图3所示。

  

  2.3 液晶显示

  试验中波形的显示是借助Ms12864R,采用8位并行数据处理,利用了液晶的打点功能,数据采集的先后顺序体现在液晶的横轴上面,也就是波形显示的时间先后,而数据值的大小则体现在液晶的纵轴上面,也就是波形的幅度体现。


  由于采用FIFO,所以先采样的点后显示,这是波形显示的核心,如图4所示。12864主要有4个编程端口,RS(数据命令选择),RW(读写选择),EN(使能端)以及PSB(串并选择),电路连接中分别接到单片机的某一I/O口上。

  2.4 按键电路

  本设计需要按键较少,因为设计要求X方向能够设置10us/div,20us/div,40us/div三档水平扫描速度,Y方向能够设置0.5V/div、1V/div二档垂直灵敏度,加之幅度和频率的测量,所以本设计要6个独立按键就够了。


  3 软件部分

  3.1 总体程序框图

  总体程序框图如图5所示。

  3.2 测量频率流程图

  测量频率流程图如图6所示。本设计频率测量是基于计数法和测周期法混合使用。其基本思想就是先测量1 s内被测信号的上升沿个数,来一个上升沿计数器加1,为了防止计数器产生溢出,设计中将1 s分成20个50 ms,中断20次,测出信号频率,如果频率值小于1K,则改用测周期法。

  3.3 液晶打点流程图

  打点操作是作图的基础,由于st7920控制器的绘图RAM是一次进行两个2个字节的数据的读写操作,也就是一次修改的是16个点的状态,而我们要想只修改一个点的状态同时不改变其余相邻15个点的状态,那只能是先把原来位置的16个点的状态读出,使用位操作指令修改其中一个点的状态,然后在回写到RAM中。整体的过程即是:读取-修改(位状态)-写入。液晶画点是编程的难点与重点,需要把液晶纵向每隔转换为电压,要把水平方向转化为时间,将波形显示出来,其步骤如下:先确定打点的位置;其次读出该点所在的数据值;接着修改该点相应的位的值,对于单色液晶来说,只有两种操作,一是点亮该点,另一种是熄灭该点;最后将修改后的数据值写入对应的地址。打点流程图如图7.

  3.4 测试结果

  波形测试结果(波形之一,其他略)频率幅度测试结果如表1所示。


  4 结束语

  本系统按照功能全面,指标合理,总体价格低廉的要求设计了硬件电路,充分地利用了单片机的I/O接口,使之成功地实现了频率的测量,信号幅度的测量,以及不同灵敏度波形的显示。而且幅度频率测量误差较小,显示波形没有明显的失真,满足设计要求,如果利用高端控制器,则可以实现高精度的测量,具有较强的实用性以及发展的市场潜力,前景可观。

推荐阅读

史海拾趣

GuangDong Province MengCo Semiconductor Co., Ltd公司的发展小趣事
如过流、过压等报警,可能与制动电路的控制逻辑或硬件故障有关。
诚芯微(CXW)公司的发展小趣事

在2009年,诚芯微(CXW)公司在深圳成立,标志着其在中国电子行业的初步涉足。公司创始人凭借对集成电路设计领域的深刻理解和前瞻性的市场洞察,决定专注于电源芯片的研发与设计。初期,公司面临着资金紧张、技术储备不足等挑战,但创始人带领团队坚持自主研发,逐步积累了技术实力。

AEC Design公司的发展小趣事
在快速发展的过程中,AEC Design公司也面临着来自市场、技术、政策等多方面的挑战。然而,公司始终保持着清醒的头脑和稳健的步伐。通过不断调整战略、优化管理、加强研发等方式,公司成功应对了各种挑战,实现了稳健前行。
Axon' Cable公司的发展小趣事

随着科技的不断进步,Axon' Cable公司逐渐将业务拓展至航空航天领域。公司研发出了一系列高性能、高可靠性的数据网络系统和连接器产品,成功应用于众多重要的航空航天项目中。这些产品的成功应用不仅提升了Axon' Cable在航空航天领域的知名度,也为公司带来了丰厚的利润和更广阔的发展空间。

General Instrument公司的发展小趣事
如果保护器的工作参数没有正确设置,可能导致其在正常电压范围内误判为过欠压状态。
风华邦科(FH-BK)公司的发展小趣事

为了进一步扩大业务范围和提升品牌影响力,FlyWin集团积极寻求与其他行业的跨界合作。例如,公司与某知名无人机制造商达成战略合作,共同开发基于无人机平台的智能监测系统。该系统利用无人机的高空视角和快速响应能力,实现了对特定区域的实时监控和数据分析。这一合作不仅为双方带来了新的业务增长点,也为公司在无人机领域的布局奠定了坚实基础。

问答坊 | AI 解惑

几款简单高保真功放汇总

自己DIY也能发烧!!分享给大家…

查看全部问答>

《精致人生的珍珠时刻》Part1 作者

菁菁木华原创3:《精致人生的珍珠时刻》Part1 作者 菁菁木华 日期 2006-3-25 21:38:00   总有人在抱怨-我什么都不会,到底是我上了大学,还是大学上了我;总有人在犹豫-做技术真累,还是转行做管理或者销售吧;总有人在忧虑-按照目前 ...…

查看全部问答>

有关AT命令的结束符?

send_GSM_cmd(fd,\"AT\\r\"); send_GSM_cmd(fd,\"AT+CNMI=2,2,0,1,1\\r\"); send_GSM_cmd(fd,\"AT+CMGF=1\\r\"); send_GSM_cmd(fd,\"AT+CMGS=138XXXXXXXX\\r\"); send_GSM_cmd(fd,\"hello1A“); 以上是我发送AT的过程,但是对于结束到底该怎 ...…

查看全部问答>

有人用HDL做I2C通信吗?

学习板上的PCF8563睡了几个月觉了。准备练练它。…

查看全部问答>

新手求助,各位大虾帮帮忙!

用51做电子万年历,用了很多数码管,不想用LCD,如何把DS1302中读出的数据赋给74LS47(数码管较多)…

查看全部问答>

如何获得100mV的基准电压

如题,想要一个100mV的基准电压给AD用。今天用TL431搭了一个,不过用示波器看输出电压,大概有4mV的纹波。电路如图,从来没接触过这些东西,可笑之处还望大家见谅。希望大家能给予帮助!…

查看全部问答>

Spartan3E无法从flash中配置数据的解决!

   遇到过这样的情况,可以用JTAG下载到FPGA,下载到flash,但是不能上电后从flash中把配置数据导入FPGA。 我查了很久,发现是晶振没有起振!    有可能会问,晶振没有起振怎么把数据下载到FPGA或者flash中?其实,用JTAG进行 ...…

查看全部问答>

ADS1298学习笔记

ADS1298 SPI通信 ADS1298默认寄存器 ADS1298 读取转换的数据 ADS1298其他检测…

查看全部问答>

求助———基于FPGA的SDRAM读写的串口调试

想问一下,我按照特权同学的那个程序调试SDRAM,串口收到的数据时出现许多F7和FF,求解???…

查看全部问答>

Freescale单片机SCI串口通信问题

想请教一下,如何设置两个MCU通信的主从问题?我看了一些文档资料,只是说了如何发送接收,但是没有说明如何设置MCU的主从问题,那位大侠知道或者设置过,请告知一声,谢谢…

查看全部问答>