您的位置 首页 芯闻

根据单片机的简易示波器规划

1、系统结构框图图1系统结构图1.1、信号调理电路信号调理电路要完成的功能是:程控放大,叠加直流分量。程控放大的作用是:当输入信号的幅度很小的时候就需要对输入信号进行放大,使得

  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.2、数字触发功用

  怎么完结触发呢?用硬件来完结的话又会添加体系硬件电路的复杂度,我就想了一个办法,有软件的办法来完结触发的功用。完结的进程如下:

  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、体系功能指标及差错

  2.1、体系功能指标

  体系首要功能指标见表2所示。

  表2体系首要功能指标

    

 

  2.2、体系差错

  体系的差错首要出在信号调度电路,由于模仿开关有必定的内阻约为80Ω对调度电路的扩大倍数会形成必定的影响。经过1.1中的核算公式核算出来的电阻值在实践中不存在,经过几个电阻串联来完结也仍是会有必定的差错。平衡电阻R3是固定的在R1,R2发生变化的时分,平衡电阻或许就不能平衡也会给运算扩大器引进必定的差错。

  2.3、能够改进的当地

  体系能够进一步改进的当地在于信号调度电路,能够经过挑选功能更好的模仿开关和运算扩大器,更合理的挑选电阻这样就能够进步信号调度电路的扩大的精确度。使整个体系的功能得以进一步改进。

  2.4、体系实践作业情况

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

    

 

  3、定论

  用这种办法能够完结一个简易的示波器,整个体系结构简略,明晰。充分利用了AVR单片机内部资源使体系电路得以简略化,就连体系的作业时钟也是AVR内部自带的。经过测验该体系在丈量频率方向的差错很小,能够用来比较精确的丈量测验信号的频率。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/203735.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部