基于C8051F020的示波器监控程序设计

发布者:chang_ri最新更新时间:2019-11-07 来源: eepw关键字:C8051F020  示波器  监控程序 手机看文章 扫描二维码
随时随地手机看文章

  设计采用高性能单片机C8051F020为控制芯片,监控示波器面板上40个按键、3个编码开关及4个电位器的状态。分别介绍了键盘、编码开关和电位器的工作原理,以及其与单片机连接的硬件电路及软件编程的实现。按键部分采用一键多义的键盘程序设计方法,给出了键码匹配子程序流程图。

  监控程序负责系统中全部硬件和软件资源的分配、调度工作,它提供用户接口,使用户获得友好的工作环境,是系统设计中一个重要组成部分。

  1 C8051F020单片机概述

  伴随着电子技术快速的发展,越来越多的人加入电子开发的大军。在学习电子技术和研发项目的过程中,避免不了要使用一些仪器,例如万用表、示波器等等,然而对于一些非专业的爱好者,拥有一台数字示波器是比较“奢侈”的。本设计C8051F020单片机,因其具有成本低、制作简单、测量精度高等优势,恰恰满足了这一部分人的需求。

  C8051F020单片机是高度集成的片上系统。在芯片内集成了2个多通道ADC子系统(每个子系统包括1个可编程增益放大器和1个模拟多路选择器)、2 个电压输出DAC、2个电压比较器、电压基准、SMBus/I2C总线接口、UART、SPI总线接口、5个通用的16位定时器、1个具有5个捕捉/比较模块的可编程计数器/定时器阵列(PCA)、内部振荡器、8个8位通用数字I/0端口和64 KBFLASH程序存储器,以及8051兼容的高速微控制器内核。

  C8051F020单片机是所有模拟和数字外设均可由用户固件使能/禁止和配置。Flash 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051 固件。片内JTAG 调试电路允许使用安装在最终应用系统上的产品MCU 进行非侵入式(不占用片内资源)、全速、在系统调试。该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用JTAG 调试时,所有的模拟和数字外设都可全功能运行。

  Cygnal出的一种混合信号系统级单片机。片内含CIP-51的CPU内核,它的指令系统与MCS-51完全兼容。其中的C8051F020单片机含有64kB片内Flash程序存储器,4352B的RAM、8个I/O端口共64根I/O口线、一个12位A/D转换器和一个8位A/D转换器以及一个双12位D/A转换器、2个比较器、5个16位通用定时器、5个捕捉/比较模块的可编程计数/定时器阵列、看门狗定时器、VDD监视器和温度传感器等部分。C8051F020单片机支持双时钟,其工作电压范围为2.7~3.6V(端口I/O,RST和JTAG引脚的耐压为5V)。与以前的51系列单片机相比,C8051F020增添了许多功能,同时其可靠性和速度也有了很大提高。

  2 一键多义键盘工作原理

  一台完善的智能仪表功能往往很多,设定的量程、参数也很多。如果还是用一键一个功能,势必要有一个很大的键盘,面板相应扩大,不美观,而且成本增加。因此在这类仪表中,键盘设计成一键多义,一个键有多种功能。

  在一键多义的情况下,一个命令不是由一次按键组成,而是由一个按键序列组成。也就是说,对一个按键含义的解释,不仅取决于本次按键,还取决于以前按了些什么键。因此,对于一键多义的监控程序,首先要判断一个按键序列(而不是一次按键)是否已构成一个合法命令。若已构成合法命令,则执行命令,否则等待新按键输入。一键多义键盘管理程序,主要解决键盘按键序列的识别和如何根据键盘的按键序列去找相应的操作程序这两个问题。

  上述问题可用“一图三表”的方法来解决。即,建立一张键图,依靠分析程序状态表,分析程序入口表和动作例行子程序表来完成。其中分析程序状态表总共分为4栏,分别为现状态PSTi、键码、下一状态、动作例行子程序编号。

  3 编码开关工作原理

  编码开关有3个引脚和5个引脚的,其中2个引脚是按下功能,另外3个引脚控制编码开关的左旋和右旋功能,与引脚1、2相连的是两个长短不一的金属静片,与引脚3相连的是一周有12或24个齿的金属动片。当脉冲电位器旋转时可出现4种状态:引脚3与引脚1相连,引脚3与引脚2及引脚1全相连,引脚3与引脚2 相连,引脚3与引脚2及引脚1全断开。

  在实际使用中,一般将引脚3接地作为数据输入端。而引脚1、2作为数据输出端与单片机I/0口相连。本设计中用到3个编码开关,其中一个将引脚1与单片机的P4.0相连,引脚2与单片机的P4.1相连。当脉冲电位器左旋或右旋时,P4.0和P4.1就会周期性地产生图1所示的波形。如果是12点的脉冲电位器旋转一圈就会产生12组这样的波形,24点的脉冲电位器就会产生24组这样的波形。一组波形(或一个周期)包含了4个工作状态。因此只要检测出P4.O 和P4.1的波形,就能识别脉冲电位器是否旋转,是左旋还是右旋。


  4 C8051F020单片机ADC0

  C8051F020的ADC0子系统包括:一个9通道的可配置模拟多路开关(AMUX0)、一个可编程增益放大器(PGA0)和一个100 ksps的12位分辨率的逐次逼近寄存器型ADC。ADC中集成了跟踪保持电路和可编程窗口检测器。AMUX0、PGA0、数据转换方式及窗口检测器都可用软件通过特殊功能寄存器来配置。只有当ADC0控制寄存器(ADCOCN)中的ADOEN位被置1时,ADC子系统才被允许工作。当ADOEN位为0 时,ADC子系统处于低功耗关断方式。

  ADC0端口的每一对均可用编程设置成为单端输入或差分输入。差分输入时的端口配对为(0,1)、(2,3)、(4,5)、(6,7),此设置由通道选择寄存器AMUXOSL的低4位和通道配置寄存器AMUXOCF的低4位确定。在AMXOCF中,位3~O各对应2个引脚通道。位值=0,表示是独立的单端输入(复位值均为单端输入);位值=1,表示是差分输入对。

  C8051F系列单片机中ADC的速率都是可编程设置的,但最少要用16个系统时钟。一般在转换之前还自动加上3个系统时钟的跟踪/保持捕获时间 (>1.5μs)。设置F020内ADC速率的方法是通过配置寄存器ADCOCF的位7~3来进行的,其复位值为11111(位 7~3=SYSCLK/CLK(SAR)-1)。

  一般在启动ADC之前都要处于跟踪方式,控制寄存器ADCOCN的位6如果为“O”,则一直处于跟踪方式(此时启动4种启动方式都可比跟踪启动快3个系统时钟);如为“1”,则有4种跟踪启动方式可选择,即对ADCOCN中的位3~2赋值:00为向ADBUSY写1时跟踪(软件命令),01为定时器3溢出跟踪,1O为CNVSTR上升沿跟踪(外部信号),11为定时器2溢出跟踪。

  5 系统硬件电路设计

  键盘部分采用6×6矩阵键盘,P7.O~P7.5为行线,P3.0~P3.5为列线。P3.0与P7.O交叉处为一键,P7口接10 kΩ的上拉电阻至3.3 V。3个编码开关的1、2脚直接与单片机的I/0引脚相连,这里选择P4.O~P4.5,3脚接地,4、5脚用作按键使用。仅以接P4.O和P4.1引脚的编码开关为例,电路图如图2所示。模数转换部分使用内部电压基准,故将VREF引脚与VREF0引脚相连即可。采用电位器调节模拟量的输入,单端输入,电位器阻值为10 kΩ,基准电压典型值为2.43 V,电源电压采用3.3 V供电。为使基准电压达到最大,需要一个阻值约为3.58 kΩ的电阻与电位器串联接到模拟端口,硬件电路如图3所示,电位器的4、5脚也用作按键使用。


6 系统软件设计

  6.1 一键多义键盘程序设计

  在键盘分析中,运用一个工作状态寄存器保存键盘的现状态,当键盘扫描到一个按键时,根据现状态的值从分析程序入口表中找到分析程序状态表地址,从该地址处进入分析程序状态表,找到相匹配的值,把下一状态送到现状态单元里,取出动作号,根据动作号计算出动作子程序入口地址,再执行相应子程序。图4为键码匹配子程序的流程图。

  6. 2 编码开关程序设计

  由图1可以看出,引脚1和引脚2有同时为高电平的情况,之后如果引脚2比引脚1先到达高电平则表示左旋,如果引脚1比引脚2先到达高电平则表示右旋。编程的时候依据这个特点来判断引脚1、引脚2的状态即可。以1引脚接P4.0,2引脚接P4.1为例:



  6.3 模数转换软件设计

  通过设置ADCO控制寄存器ADCOCN位3~2(ADOCM1~O)A/D转换启动方式选择位,来启动A/D转换:位3~2为00时,向ADOBUSY(ADCOCN位4)写1启动A/D转换;位3~2为01时,定时器3溢出启动A/D转换;位3~2为10时,CNVSTR上升沿启动 A/D转换;位3~2为11时,定时器2溢出启动A/D转换。本设计采用第一种启动方式。

  由于单片机的工作量并不大,所以软件设计时采用查询的方式。单片机不断地查询键盘、编码开关以及电位器的状态,如果有变化时,单片机将动作信息传递给 ARM主MCU,等待主MCU的处理。由于单片机模数转换的速度非常快,因此在程序中加延时,以便观察到模数转换的变化量。另外,硬件设计时没有考虑滤波,故用软件实现滤波。一般的滤波的方法有限幅滤波法、中位置滤波法、算术平均滤波法等,现在提出一种新的滤波方法。由于使用12位A/D,但只要8位就可以达到所要的精度,所以可以采用去掉低4位的方法来实现滤波的目的。由于篇幅有限,下面只给出程序的一部分,以AIN0为例:



  结语

  本文介绍的一键多义的按键管理程序,对多按键的智能仪表可以通用。编码开关的编程方法简单易懂。在A/D转换部分,提出的去掉低4位的软件滤波方法可靠可行,对精度要求不高的场合非常适用。这3部分构成了一个完整的监控程序,当单片机监控到某一部分有变化时,就将其动作信息传递给ARM主CPU,主CPU 进行相应的处理。


关键字:C8051F020  示波器  监控程序 引用地址:基于C8051F020的示波器监控程序设计

上一篇:滤波器MAX274在电力参数测量中的应用
下一篇:基于矢量网络分析仪与传统采样示波器之间的测量特性比较

推荐阅读最新更新时间:2024-11-10 22:56

示波器在频谱测试中有哪些作用?
对于大量新型设计来说,频域分析是一种关键的调试功能。但是,频域分析必须与时域、数字信号或逻辑通道保持严密的同步。频谱分析对调试工作的价值通常取决于分析速度(更新速度),因此信号的捕捉和发现极富挑战性。此外,仪器还必须具备足够高的频域和时域灵敏度,以便能够捕捉到信号,如因电磁干扰或其它干扰所产生的频域杂散信号等微小信号。为了获得可以用来调试支持多种信号类型的复杂系统的有价值信息,必须基于时间事件、频率事件或数字码型实现精确触发。 在复杂的嵌入式系统中,通常需要同时监测时域和频域中的多个信号。尽管基带数字信号、射频信号和模拟信号是相互关联和依存的,但是基于传统的调试方法,人们常常无法描述或捕捉它们之间的关系。采用微控制器实现的RF信
[测试测量]
上位机软件只是控制示波器?远远不止!
WaveAnalyze综述 WaveAnalyze波形综合分析软件把示波器的分析环境转换到PC端,使深存储大数据的分析有了更便捷的平台。其通过网口连接设备,用户可以灵活的进行 在线 或 离线 任务操作和远程站点的控制与测量分析,工程师可远离恶劣的测试环境进行远程控制。 图1 远程控制 WaveAnalyze除了可以控制示波器还可以对深存储大数据进行分析,如下所述。 1、深存储大数据的快捷浏览 WaveAnalyze显示环境较为宽松,可使用鼠标结合键盘自由缩放、移动和框选波形,无需长时间调节旋钮,可轻松查看波形如下图2和图3所示; 图2 自由缩放 图3 局部放大 Wave
[测试测量]
上位机软件只是控制<font color='red'>示波器</font>?远远不止!
非常实用的电流探头测量小技巧,建议收藏
示波器探头对测量结果的准确性以及正确性至关重要,它是连接被测电路与示波器输入端的电子部件。电流探头是常用的示波器探头之一,它提供一种安全、成本效益、简单和精确的途径测量电流,是示波器不可或缺的好搭档。那么,在使用电流探头过程中有哪些测量的小技巧呢?今天普科科技PRBTEK简单给大家分享一下: 下图是一些常用品牌的电流探头: 提高探头灵敏度 有时候需要电流探头提供更高的灵敏度用以测试非常小的电流,可以像下图一样将导线多缠绕几圈。 电流探头符合变压器原理,灵敏度提升的倍数与线圈匝数一致。但要注意插入损耗以匝数的平方而递增。比如缠绕10圈,灵敏度提高10倍,而插入损耗增加100倍。通常来说,这不是问题,小电流不会在插入损耗上
[测试测量]
非常实用的电流探头测量小技巧,建议收藏
示波器直接破解30种通信协议
数字示波器的发展极大的降低了低速总线调试的难度,无论是IIC、SPI还是CAN、LIN等,示波器都可以直接将波形转化成数据。传闻近日有一台示波器可以直接破解30多种通信协议,具体是那些协议呢?我们来一起看看。 在讲示波器具体的解码内容之前,首先来看一下伴随着示波器的发展,协议解码出现了哪些变化。 1、简述示波器发展给协议解码带来的便捷 示波器从模拟示波器发展到数字示波器,带来了许多大的改变,例如信号采集、带宽、采样率、屏显等。同样,这样的改变也体现在“协议解码”上,新的解码方式将人们从“0”,“1”的世界中解放出来,大大提高了工作效率。 图1 0/1的世界 下面,我们具体看一下示波器发展中协议解码方式的变化。 最初的协议
[测试测量]
用<font color='red'>示波器</font>直接破解30种通信协议
示波器的测验进程和丈量中的留心事项
1、示波器的测验进程   1.插好示波器的电源线,翻开电源开关,电源指示灯亮,待呈现扫描线后,调度亮度到恰当的方位,调度调集操控,使扫描线最细。   2.调度基线旋钮,使扫描线与水平刻度线平行。   3.将微调/拓宽操控开关旋钮顺时针旋到校准方位,为了防止丈量差错,在丈量前应将探极进行查看和校对。校对办法是:将探极接到示波器的校对方波输出端、调整探级上校对孔的抵偿电容,直到屏幕上闪现的方波为平顶。   4.将伏/度挑选开关、作业办法开关、扫描时刻挑选开关,依据被测信号的巨细,需求和频率凹凸放在恰当方位上。   5.将输入耦合开关置于“GND”方位,断定零电平的方位。再置于“AC”方位,由探极输入被测信号,调度同步开关旋钮,使波形安
[测试测量]
福禄克推出业界高标准的四通道手持式示波器
中国 北京---2014年5月---福禄克测试仪器(上海)有限公司日前推出Fluke 190-504 II系列500 MHz ScopeMeter®示波器,这是第一款达到500 MHz、5 GS/s实时采样率的四通道手持式示波器,采用密封、坚固的设计,并且提供最高CATIV600V安全等级及8小时电池供电。 Fluke 190-504可满足通信、医疗、物联网、航空及国防设备等领域的电子故障诊断专家的需求,这些领域通常需要快速5 GS/s (或200 ps)采样率和4通道,以获得更高准确度和清晰度的未知现象的波形和幅值,例如瞬态变化、噪声以及振铃或反射。 504型进一步丰富了坚固的ScopeMeter
[测试测量]
福禄克推出业界高标准的四通道手持式<font color='red'>示波器</font>
实时示波器抖动测量执行步骤
实时示波器必须进行正确的配置以实现精确的抖动测量。在这里介绍一种可以应用于任何品牌实时示波器的分步流程,手动设置你的仪器来测量所有类型的抖动。虽然你可以向仪器制造商购买专门的抖动分析软件,以使用一个按钮或向导类型的方法自动配置你的仪器,但软件并不总是产生最佳配置。因此,自动配置的设置也应使用相同的下述流程进行验证。要正确配置您的仪器,按顺序执行下列步骤: 一、初始化仪器 打开示波器电源并恢复出厂默认设置。然后调整以下测量项目,并保存配置以便将来可以方便调用。 将示波器模式设置为 real time Input termination设置为50欧姆 关闭波形平均 删除第一个采样点和触发事件之间的所有延迟。减少了时基不稳定性带来
[测试测量]
实时<font color='red'>示波器</font>抖动测量执行步骤
小广播
最新测试测量文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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