基于AVR的简易示波器.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于AVR的简易示波器

基于AVR的简易示波器设计 (厦门理工学院电子与电气工程系,福建 厦门361024) ????? [摘 ?要] 本文介绍如何应用AVR单片机ATmega16做为核心,加上前端信号调理电路程控增益放大器,波形显示LCD(GDM12864A),来实现一个简易示波器的设计思路。 ?????? [关键字] ATmega16;LCD;程控增益放大器 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;ik500;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 ; ?

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档