给你一个单片机,你能造出一个示波器吗?

发布者:星空行者最新更新时间:2017-09-03 来源: eefocus关键字:单片机  示波器 手机看文章 扫描二维码
随时随地手机看文章

1、系统结构框图

图1系统结构图

1.1、信号调理电路

信号调理电路要完成的功能是:程控放大,叠加直流分量。程控放大的作用是:当输入信号的幅度很小的时候就需要对输入信号进行放大,使得被测信号可以在LCD上尽可能清楚的显示出来。叠加直流分量的作用是:ATmega16自带的A/D是单电源的,没办法输入负压而待测信号又往往有负压。这时候就需要这样一个电路,可以把负压抬高到0电平以上。

图2信号调理电路原理图

R1,R2分别由一个模拟开关CD4051来连接不同的电阻,不同的R1,R2通过公式:这样就可以实现程控放大功能了。可调电阻R9用来设置信号调理电路加入的直流分量的大小。放大后的信号和直流分量最后由U3模拟加法器叠加后输出。

输入信号与输出信号的关系:只要R4、R6、R7的阻值相同,调理电路输入与输出的关系简化为:。

Ux为U3的输出电压,输出电压的电压值与可调电阻R9中间抽头的电压一至。

1.2、主控芯片软件设计

这个系统的主控芯片选择的是,Atmel公司的AVR系列单片机ATmega16,最高可达到16MPIS指令速度。ATmega16有16K的flash, 1K的SRAM, 512 B的EEPROM,单片机内部自带一个10 bits精度的逐次逼近型模数转换器,内建采样/保持电路。ADC的时钟是可编程的,在这个设计中为了太到最高的采样频率100KHz ADC的时钟设置为2MHz。ADC的触发源选择为定时器/计数器0溢出,ATmega16的定时器的时钟源也是可编程的。这样就可以通过控制定时器/计数器0溢出中断频率来控制ADC的采样频率。

图3简易示波器系统程序流程图

1.2.1、键盘功能

在这个系统中设置了7个按钮分别为:运行与停止,放大倍数增大,放大倍数减小,采样频率增大,采样频率减小,触发电平上移,触发电平下移。

运行与停止键:是通过开启和关闭ATmega16 ADC转换完毕中断的方式来实现的。

放大倍数的增大与减小:是通过ATmega16控制模拟开关CD4051来实现放大倍数的数字化控制。CD4051为8通道的模拟开关,所以程控放大器可以有8档。

采样频率的增大与减小:是通过控制ATmega16的定时器0的时钟源及定时器的初始值来实现系统所需要的各个采样频率。定时器0的中断频率就等于ADC的采样频率。

触发电平的上移与下移:是通过对采样来的数据进行数字触发时,当数据的二进制值在增加的过程中某个数据的大小刚好与数字触发的二进制数值一样,在此以后的波形数据才存入显示RAM中。

当这7个按键中的某一个被触发,都会置位相应的标志位,以便刷新LCD液晶屏上相应的显示信息。

1.2.3、数字触发功能

如何实现触发呢?用硬件来完成的话又会增加系统硬件电路的复杂度,我就想了一个办法,有软件的方式来实现触发的功能。实现的过程如下:

for (ik=0;ik<500;ik++){

if (k0_ram){

if (box_buff[ik] < trigger) {

kk_ram = 1 ;

}

if (kk_ram){

if ((box_buff[ik] >= trigger) & (ik < 402)){

en_ram = 1 ;

k0_ram = 0 ;

kk_ram = 0 ;

}}}

if (en_ram){

boxing[adc_data]=box_buff[ik] ;

adc_data++ ;

if (adc_data > 96){

adc_data = 0x00 ;

en_ram = 0 ;

}}}

trigger的大小可以通过触发电平上移与触发电平下移按键来设置它的大小。


1.2.3、还原波形

GDM12864A是一个具有128点x 64点的点阵LCD。根据所选的LCD的特点,Y轴上只有64个点,所以能显示的数据范围为0到63而采样得到的数据为8位的二进制数据为0到255。为了能在这个LCD上显示只取8位数据的高6位。那么如何把这高6位的二进制数据转换成在LCD上的Y轴座标和数据值呢?我想了这样一个计算的方法:

LCD的纵向分为8个地址从上到下依次为0~7,每个地址段有8个数据点。在某个数据段中如果想依次让这些位从上到下点亮就需要依次向这个地址段送数据0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,送入0x00后这个地址段的8个数据点将不被点亮。实现的具体过程如图4所示。

dat = dat>>2

y = 7

dat >= 8 ?

dat = dat – 8; y--;

y == 1 ?

dat > 7 ?

dat = 7 ;

dat = 0x80 >> dat

write_add(y,x) ;

write_data(dat) ;

图4数据还原成波形上点的程序流程图

1.2.4、ADC采样频率控制

ADC的采样频率在上文已有提及,ADC中断的计算公式为:,通过ATmega16的特殊功能寄存器TCCR0的低3位CS02,CS01,CS00的设置就可以改变的频率,再把TCNT0设置成不同的数值就可以得到这个系统所需要的各个采样频率值了。表1中的数据是通过上面的公式计算出来的数据再经实际的系统调试并修正后的数据。

表1采样频率的设置

系统性能指标及误差

2.1、系统性能指标

系统主要性能指标见表2所示。

表2系统主要性能指标

2.2、系统误差

系统的误差主要出在信号调理电路,因为模拟开关有一定的内阻约为80Ω对调理电路的放大倍数会造成一定的影响。通过1.1中的计算公式计算出来的电阻值在实际中不存在,通过几个电阻串联来实现也还是会有一定的误差。平衡电阻R3是固定的在R1,R2发生变化的时候,平衡电阻可能就不能平衡也会给运算放大器引入一定的误差。

2.3、可以改进的地方

系统可以进一步改进的地方在于信号调理电路,可以通过选择性能更好的模拟开关和运算放大器,更合理的选择电阻这样就可以提高信号调理电路的放大的准确度。使整个系统的性能得以进一步改善。

2.4、系统实际工作情况

LCD显示的信息分别有,波形图像,在波形的上面是横轴的标尺,在屏幕的右边为系统的运行状态(Run / Stop),TIme为整个波形框的时间长度,Volt-为电压档,在波形框与信息框之间有个小点为信号的触发电平。信号的频率=波形框中信号的周期数/TIme。

结论

用这种方法可以实现一个简易的示波器,整个系统结构简单,清晰。充分利用了AVR单片机内部资源使系统电路得以简单化,就连系统的工作时钟也是AVR内部自带的。通过测试该系统在测量频率方向的误差很小,可以用来比较准确的测量测试信号的频率。

[参考文献]

[1]刘海成。 AVR单片机原理及测控工程应用[M]北京:北京航空航天大学出版社,2008.3.

[2]高吉祥。全国大学生电子设计竞赛培训系列教程[M]北京:电子工业出版社,2007.6.

[3]刘祖刚。模拟电路分析与设计基础[M]北京:机械工业出版社,2007.10.


关键字:单片机  示波器 引用地址:给你一个单片机,你能造出一个示波器吗?

上一篇:教你设计ATmega32智能测试仪
下一篇:AVR的INT外部中断和PCINT中断之区别与使用

推荐阅读最新更新时间:2024-03-16 15:36

ARM核MCU和SoC的未来发展趋势
在后经济危机时代, 消费者更趋于理智,希望可以用更低的价格获得更高性能更好用户体验的便携电子产品,对低成本差异化产品要求提升了。这就要求半导体行业开发先进的片上芯片(SoC)平台,推动创新,从而为新一轮移动互联应用和服务提供更出色的用户体验。 这符合ARM一贯遵循的商业模式和市场策略,鼓励技术创新并降低成本。ARM已经与国内许多芯片厂商展开合作,降低设计门槛,授权更多先进的技术给国内公司,满足以中国为中心的发展中国家市场和新兴市场对高性能低成本产品的需求。 ARM始终坚持一贯的市场战略,并没有因为金融危机而改变。我们现在的重点加大了软件方面的投入,与合作伙伴的关系也变得更加紧密,这是为了扩大并加强ARM的生态环境,生产出
[嵌入式]
频谱仪和示波器哪个好_示波器和频谱仪的功能介绍
现代频谱分析仪多采用软件无线电思想设计:搭建通用性强的硬件平台,将功能实现软件化,使得现代频谱分析仪具有了“软件定义仪器”的特征,在维持硬件平台基本不变的情况下,通过更新软件,就可以使频谱分析仪集成众多仪器,如接收机、功率计、频率计、网络分析仪的大部分功能,极大扩展了频谱仪的测量能力和应用领域。现代频谱仪发展迅速,针对不同应用需求,出现了各种各样的频谱仪,不同类型的频谱仪,其性能指标和功能配置也有很大差别。 1.信道功率测试:测试指定区域内的中频功率之和与区域宽度。概言之,就是测试指定频段内的信号总功率,或噪声总功率。 2.邻信道功率测试:可测邻道泄露的上下行载波功率强度。概言之,可以选择多种测试方法包括总功率、参照电平强度、
[测试测量]
频谱仪和<font color='red'>示波器</font>哪个好_<font color='red'>示波器</font>和频谱仪的功能介绍
基于MSP430F2274单片机对智能小车的应用设计
智能小车涉及到高级计算机控制、电子机械、自动化等诸多学科,随着科技的不断进步,智能电子产品发展步骤不断加快,各种应用层次的机器人等大量出现,目前应用在智能小车或机器人的微控制器主要是8/16单片机或ARM和数字信号处理器DSP等。本设计采用TI公司生产的功耗低运行速度快且价格便宜的MSP430F2274为核心,避障检测采用测距精准的超声波传感器,该传感器采集小车周围的环境信息并传递给MSP430进行程序判断处理,从而达到控制小车自动避障的目的。 1 系统的总体结构框图 该系统主要由MSP430控制器,超声波避障模块,电机驱动,测速,语音模块,温度模块,小车的机械运动部分采用四轮差速转向式结构,前2个轮是驱动轮,分别由电机控制其
[单片机]
基于MSP430F2274<font color='red'>单片机</font>对智能小车的应用设计
51单片机入门 - I/O口直接输入输出实例
51单片机P0/P1/P2/P3口的区别: P0口要作为低8位地址总线和8位数据总线用,这种情况下P0口不能用作I/O,要先作为地址总线对外传送低8位的地址,然后作为数据总线对外交换数据; P1口只能作为I/O口(P1.0、P1.1以外); P2口除了作为普通I/O口之外,在扩展外围设备时,要用作高8位地址线; P3口除了作为普通I/O口之外,其每个引脚都有第二功能。 I/O端口具有以下特性: ① 端口自动识别:无论是P0 P2口的总线复用还是P3口的功能复用,内部资源会自动选择,不需要通过指令的状态选择。 ② 准双向口功能:准双向口作为输入口时,应先使锁存器置 1 ,然后再读引脚。 ③ P0作为普通I/O口使用:不使用并行扩展总
[单片机]
51<font color='red'>单片机</font>入门 - I/O口直接输入输出实例
基于PIC单片机的便携式测试记录仪设计
基于PIC单片机的便携式测试记录仪(以下简称记录仪)既有一般数据采集装置的实时采集与保存功能,同时又能够对采集数据进行实时处理、显示和打印。适用于对采集速度要求不高、交流供电比较困难以及无须长期留人值班的场合。 以追求高可靠、低功耗、小体积设计思想的本记录仪具有如下功能:对现场物理量进行实时采集、保存、处理与显示;自动识别现场安装的传感器数量、传感器号和量程;自动和手动两种采集方式,自动采集适用于长期无人值班的固定场合,手动采集便于对分布在不同区域的物理量进行测试;与PC机通讯,可根据需要将采集数据下载至PC数据库;实时打印;自检功能,避免了系统运行过程中可能遇到本身无法容错处理的异常事件而导致的死机现象。 1 硬件设计 1.
[单片机]
单片机60s倒计时c51程序
#include reg51.h #define uchar unsigned char sbit P13=P1^3; sbit P14=P1^4; uchar c,i,a=60,z; uchar code Numcode ={0XC0,//;0 0XF9,//;1 0XA4,//;2 0XB0,//;3 0X99,//;4 0X92,//;5 0X82,//;6 0XF8,//;7 0X80,//;8 0X90,//;9 }; void delay(z) { while(z--); }
[单片机]
PIC单片机程序设计需要注意的一些问题及看法
一、区分指令的大小写 编写PIC单片机的源程序,除了源程序的开始处需要严格的列表指令外,还须注意源程序中字母符号的大小写规则,否则在PC机上汇编程序时不会成功。在源程序中都会使用伪指令INCLUDE。这条指令将列表中指定的单片机文件(在MPLAB中)渎入源程序作为源程序的一部分,所以凡是MPLAB中有关该单片机已有的寄存器在源程序中无须再用赋值指令(EQU)赋值,这就使所建立的源程序大为简化。 此外,由于有了伪指令INCLUDE,所以根据MPLAB软件中的格式,在源程序中的操作数凡是涉及MPLAB已规定的寄存器名称的,其字母一律只能大写,不能小写。其余操作码、符号字母可任意大小写,但0x中的X应小写。否则汇编不会成功。鉴于上述
[单片机]
基于STC单片机的LED智能照明系统
   1 引言   LED被称为第四代照明光源或绿色光源,LED的发光器件是冷光源,具有节能、环保、寿命长、体积小等特点。白炽灯,卤钨灯的光效为12~24lm/W,荧光灯50~70lm/W,钠灯90~140lm/W,而且大部分的耗电变成了热耗。LED可达到50~200lm/W,而且单光的单色性好,光谱窄,无需过滤,可直接发出有色可见光。在相同照明效果的情况下,耗电量约为白炽灯的十分之一,荧光灯的二分之一。同样效果的一支日光灯40多瓦,而采用LED每支的功率只有8瓦。LED的平均寿命达10万小时,安全可靠性强,不含汞,钠元素等可能危害健康的物质,有利于环保,被称为“绿色照明光源”。   2 智能照明控制方案设计
[单片机]
基于STC<font color='red'>单片机</font>的LED智能照明系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
    做任何事情之前,一定要想好目标。没有目标的事情是做不好的,也做不成。我的目标就是学习ARM开发,当然是深入的学习。目标如下 :1、学习A ...
  • 学习ARM开发(2)
    天是星期天,刚好在家里休息。又是学习ARM的大好时机了。早上起得很早,因为都想着怎么样搞好这个ARM开发环境,总是心急的。搞得睡觉,也睡 ...
  • 学习ARM开发(4)
    已经把CPU大体架构学会了,当然我之前已经学习过80X86的结构,所以对于像RISC的计算机,也能想像到它是什么样的东西。如果没有学习过《微机 ...
  • 学习ARM开发(6)
  • 学习ARM开发(7)
  • 学习ARM开发(8)
  • 学习ARM开发(9)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved