基于单片机的简易逻辑分析仪

基于单片机的简易逻辑分析仪

第1节 引 言

逻辑分析仪是一种类似于示波器的波形测试设备,它可以检测硬件电路工作时

的逻辑电平,并加以储存,用图形的方法直观地表现出来,一般的逻辑分析仪可以同时进行多个通道的分析,便于用户检查和分析电路中的错误,逻辑分析是电路设计中不可缺少的仪器,通过它可以迅速定位错误,解决问题达到事半功倍的效果。

1.1 系统概述

1.1.1 系统的特点

逻辑分析仪也称逻辑示波器,它是用来分析数字系统逻辑关系的一种仪器。逻辑分析仪的主要作用有二个:一是用于观察的形式显示出数字系统的运行情况,相当于扩展了人们的视野,起一个逻辑显示器的作用;二是对系统运行进行分析和故障诊断。

一般的逻辑分析仪是由数据获取和数据显示两大部分组成的。前者捕获并存储所要观察分析的数据,后者用多种形式显示这些数据。在这里,关键是触发.它的作用是在被分析的数据流中按索特定的数据字。一旦发现这个数据字,便产生触发信号去控制和存储有效数据。因此,它决定了观察的数据窗口在数据流中的位置。 本设计具有以下特点:

1、具有足够多的输入通道,一般的示波器只有2路通道,本设计了8路输入通道。 2、多种触发方式:设置了单字触发和三级触发两种触发模式

3、具有记忆能力:采用EEPROM 实现数据的掉电存储 本设计的主要特色:

★ 数字信号发生器使用AT89C2051单片机来控制,达到了高精度的信号输出。 ★ 数字信号的逻辑状态显示也用AT89C2051单片机辅助主CPU 系统实现。 ★ 使用D/A电阻网络,结合单片机对信号幅度进行灵活地控制。 ★ 采用发光二极管来指示电路测试点,一目了然,便于调试。 ★ 在系统的软硬件设计中均加入了运行良好的抗干扰措施。 ★ 强大的软件设计功能,大大简化了硬件电路。 1.1.2 系统的功能

逻辑分析仪的逻辑分析仪(简称LA) 是新型的数据域分析仪器,它有许多 独特的功能。把这些功能分成取数、触发、存储、显示等几个方面, 本系统实现的功能是:

(1)能产生8路可预置的循环移位逻辑信号序列,输出信号为TTL 电平,序列时钟频率为100Hz ,并能够重复输出。

(2)单次触发采集存储显示,单次触发方式是指在满足触发条件后,能对被测信号进行一次采集、存储。之后输出通过DAC 转化为模拟电压后输出,在示波器上显示出8路信号,并能显示触发位置。

(3)任意两通道三级触发存储显示,由键盘输入8路中任意2通道的通道号及3级触发字,当指定通道的触发字连续依次满足时,能对被测信号进行一次采集,存储,送DAC 后输出显示。同时在屏幕上标记出3级触发字的位置。

(4)显示触发字的位置,可以在模拟示波器显示屏上对触发字进行标记。

(5)显示可以移动的光标,可以通过键盘的加、减控制光标在水平方向的坐标。 (6)翻页显示,可以用键盘控制翻页显示,每隔32bit 为一页的内容,扩展了存储深度。

第2节 系统主要硬件电路设计

2.1 系统结构框图

图2-1 系统结构框图

本系统采用单片机和可编程器件作为数据处理及控制核心,整个系统由一个信号

发生器和一个简易逻辑分析仪构成。将设计任务分解为数字信号发生、信号采集存储、信号融合处理、显示、掉电保护等功能模块。图1即为该系统的总体框图。考虑到硬件电路的紧凑性,故将上述模块合理分配连接成以下三个模块:数字信号发生器、最小系统主控器、键盘/显示。由于数字信号发生器是用于测试的需要而设计的一个模块,那么下面对各模块的设计进行逐一论证比较。

2.2 主体控制模块

系统主控模块包括最小系统和数字信号处理控制模块。该模块是采用AT89C51单片机为主控制核心的双CPU 串行通信方式。AT89C51芯片,其内部含有可重复编程的FLASH ROM,,可进行1000次檫除操作,在设计调试过程中可十分容易进行程序的修改,达到最佳的设计。利用存储器(EEPROM )实现掉电存储功能。从CPU

系统即以89C2051为主的显示模块的控制。数字信号处理模块主要是D/A转换器件的选择,我们选用性能优良的DAC0832作为主控器件。该方案的特点是硬件简单,软件实现方便,大大提高了系统的设计性能。

门限电压:

要实现门限电压0.25-4V 之间16级可调这一问题上有两种方案。

用D/A电阻网络进行电压等级的划分作为参考电压,在用比较器来比较高低。 键盘/显示:

由单片AT89C2051控制8个共阳数码管、8个按键构成动态显示模块。由于具有RS--232接口,易于与某些基于虚拟仪表技术的仪器主板相连,使其脱机工作,成为便携仪表,方便了使用;与专用键显接口芯片8279相比,价廉;采用串行方式与主控单片机交换信息,硬件及工艺设计简单,抗干扰能力强;可承担键显及其他信息处理功能,实现了键显智能化,从而使主机软件设计所考虑的因素减少,程序结构得以简化

图2-4 键盘/显示模块

2.3.系统硬件的总体实现

系统总体原理框图如图2-5所示。

图2-5 系统总体原理框图

2.3.1数字信号发生器模块的电路设计与实现

用AT89C51单片机产生可预置的二进制序列。只要在最小系统中添加一个开关组选择高低电平,单片机通过扫描开关组连接的P 口的状态,并通过软件来控制单片机8个P 口的波形输出,输入到74LS04的反向器输入端,通过TTL 电平转换,输出8路数字信号。该电路结构简单可行,通过示波器可以看到它能够产生清晰稳定的矩形波。该设计的优点是信号稳定性好,频率精度高,有利于用单片机对数字信号进行智能化控制。

以AT89C51为核心的数字信号发生电路如图2所示。其工作原理是:AT89C51单片机输出可预置的二进制序列到74LS04的反向输入端,经过TTL 电平转换,产生所需的高稳定、高精度的数字信号。注意:在该模块中,要实现电平转换功能必须用采用74LS 系列的反向器,不可用CMOS 系列的反向器(例如CD4069),因为在引脚的驱动能力上,74系列相对与CMOS 系列更强,在本设计中,也就是说能够输出更稳定的信号。

2.3.2主控系统模块的电路设计与实现

J2CON

该模块主要由最小系统和信号采集处理电路组成。最小系统由一片AT89C51、一片AT89C2051及一片EEPROM (AT24C04)构成。信号采集处理电路由运放LM324组成的D/A电阻网络组成。

该模块的设计思路是:由双CPU 系统控制对数字信号发生器输出的数字信号进行采样存储,再经过一系列的信号处理,在模拟示波器上复现出来。从模拟示波器波形显示原理可知,只要在Y 轴(纵轴)输入一个电压信号,同时在X 轴(横轴)加上一个同频的锯齿波扫描电压,便可在示波器上复现电压信号的波形。为此必须设计相应的X 、Y 的输出电压信号。本设计在单片机的控制下,经数模转换电路D/A分别向示波器的X ,Y 轴输出锯齿波同步信号、被采样波形信号,以复现被采样存储的波形。在这,根据题目要求(8路信号通道,包括8位X 通道和8位Y 通道,)我们采用有8位输出通道、两级锁存控制功能、能够实现多通道D/A的同步转换输出的DAC0832芯片。由此可知该模块的工作原理如下:

单片机控制程序先向Y 轴输入被采样存储在RAM 中的波形数据,经DAC0832内部的D/A电阻网络生成阶梯波,选通Y 轴DAC0832中的第1锁存器并被锁存;向

X 轴送入对应的锯齿波数据(该数据是由D/A生成的阶梯波经一个LM324组成的低通滤波器滤波后,再送入LM324构成的电压跟随器而转换出锯齿波。但是实践证明,通过这种方式生成的波形并不理想。为了得到理想的锯齿波,我们一改常规思维,着手从软件的角度考虑,我们要将阶梯波转换成锯齿波,可以增加阶梯数,减小阶梯幅度,当离散的数字量增加到一定量时可以近似看成模拟量,如图2-9所示。),这个写信号选通X 轴DAC0832中的第1锁存器;然后通过向外部存储器写数据指令产生的译码信号DAC ——X+Y,将在X ,Y 轴第1锁存器锁存的数据与100HZ 的时钟信号同步送出并进行D/A转换,再将转换结果送到示波器,从而达到在示波器上显示波形的目的。

图2-9 波形转换

2.3.3 LED 显示模块的电路设计与实现

键盘/显示装置主要由89C2051单片机、译码驱动器、键盘、LED 显示器组成,其电路原理图如图3-6所示,键盘功能如图2-10所示。

各按键功能说明如下:

SET —X :设置系统参数; SET —1:设置存储地址;

SET —2键即可改变设定字; SET —3:设置3级逻辑状态触发字及触发模式选择;

SET —4:设置门限电压(16级可调);

RUN :系统开始运行;

STOP :系统复位停止运行; DISPLAY :示波器显示波形;

:时间标志线左移;

:时间标志线右移; : 分页显示切换。

通电开机,LED 显示“READY ” 。按下“SET ”键设置系统参数,按SET-1键可以设置存储地址,将设置的数据送到指定地址进行存储,实现数据的掉电保护。按SET-2键就可设置单级触发字,当系统检测到的数据与设定的触发字相同时,就进行数据的触发,并在LED 上显示“SUCCESS ”,然后按“DISPLAY ”键即可在示波器上显示8路波形,并显示触发点和时间标志线。按左移键 、 右移键可改变时间标志线的位置,并在LED 上显示出时间标志线所对应时刻的逻辑状态。按SET-3键就可以选择触发模式和设置3级逻辑状态触发字。触发模式有单级触发字和3级逻辑状态触发字,我们用两位LED 进行设置,当两位LED 设置成00H 时,则为单级触发。其余则为3级逻辑状态触发,触发信号可以指定,当第一位为1,2,3变化时,在第二位中根据具体波形参数设置数据,当系统连续捕捉到设定的3个触发字时,开始对被测信号进行采集、存储与显示等操作。触发成功后,在LED 上显示“SUCCESS ”字样,并在示波器上显示波形、触发点和时间标志线。按SET-4键时可以对门限电压进行设置,使门限电压在0.25V 到4V 的范围内进行16级变化。在信号触发后,还可以对信号的分页显示进行操作。另外,每个信号通道的存储深度由20BIT 扩展到32BIT ,因而需进行分页显示,在信号触发后,还可以对信号的分页显示进行操作这时,我们可以

图 2-11 键盘/显示模块 2.3.4 硬件的抗干扰措施

①配置去耦电容。电源输入端跨接220UF 的电解电容。在关键元件中串入0.1UF 的无感瓷片电容或者云母电容。电容引线尽量短,减少高频带来的影响。 ②其次,尽量加粗地线。

第3节 软件设计

软件是本系统的灵魂,在设计软件时,我们从系统实用、可靠及方便使用几方面予以考虑,特别加入了开机自检功能。系统软件主要由四大功能模块组成:①数据通讯及处理模块;②键盘/显示模块;③波形发生模块;④中断服务模块。

软件设计的其他特色:

在软件设计中加入了软件抗干扰措施(采用软件陷阱技术)。 ● 在程序区的断层(即不使用的区域),以NOP 指令填空,以保证因干扰而造成弹飞的程序尽快步入正常运行轨道。

● 设置软件陷阱。用一条引导指令强行将捕获的程序引向一个指定的地址。为增强捕获效

果,在它前面加入2条NOP 指令,如下

NOP NOP

LJMP ???H

3.1 系统软件流程

(a )、软件主CPU 程序流程图如图3-1示。

主CPU 通过跟从CPU 及AT24C04的串行通信从而来完成数据的传输和通信。主要完成数据的采集,存储,显示,系统变量的设置等功能。

系统初始化是对系统所用到的变量、定时器、中断方式等进行设置。然后判断是否进行联机测试,是的话,系统开始串行通信,进行数据的传输。并进行系统参数设置即:设置门限电压,设置触发方式,设置时间轴位置。设置门限电压:电压从(0.25V —4V )16级变化,可以通过软件设定某个门限电压,就是将某个电压值设为标准,超过这个电压视为高电平,反之则为低电平。设置两种不同的触发方式即:单级触发还是三级触发,先选择是何种触发方式,若是单级触发,设置单级触发字,若符合要求,则触发在LED 上显示SUCESS ,并送示波器显示8路触发的波形。若是三级触发。即当连续依次捕捉到设定的3个触发字时,开始对被测信号进行一次采集、存储与显示,并显示触发点位置。3级触发字可任意设定(例如:在8路信号中指定连续依次捕捉到两路信号11、01、00作为三级触发状态字)。若符合要求,则触发在LED 上显示SUCESS ,并送示波器显示8路触发的波形。设置时间轴位置:就是在八路波形的某个垂直位置设置一条时间轴,可以将触发的波形存储在AT24C04中,实现了波形的存储。

图3-1主CPU (AT89C51)程序流程

(b )软件从CPU 程序流程图如图3-2所示。

此CPU 程序主要完成了键盘、显示功能。与主CPU 进行串行通信,通过键盘可以设置各种参数,如可以设置触发字,当满足触发条件时进行触发并显示

图3-2 从 CPU(AT89C51)程序流程

3.2 中断服务子程序

图3-2 中断服务子程序

3.3 AT24C04程序设计

我们利用AT 24C04对数据进行存储和掉电保护。与AT89C51相连时,P3.5用作SDA 线,P3.4用作SCL 线。

AT24C04的程序流程:

图3-3 AT24C04流程

总线协议:

•总线空闲:SCL 和SDA 都保持高电平。

•开始信号:SCL 保持高电平的状态下,SDA 出现下降沿。出现开始信号以后, 总线被认为" 忙" 。

•停止信号:SCL 保持高电平的状态下,SDA 出现上升沿。停止信号过后,总线被认为" 空闲" 。

•总线忙: 在数据传送开始以后,SCL 为高电平的时候,SDA 的数据必须保持稳定,只有当SCL 为低电平的时候才允许SDA 上的数据改变。

开始信号:

START_BIT: SETB SDA ;SDA 为高电平 NOP

SETB SCL ;SCL 为高电平 NOP

CLR SDA ;SDA 为低电平 NOP

CLR SCL ;SCL 为低电平 RET

;--------------------------------------------------------------------------- 停止信号:

STOP_BIT: CLR SDA ;SDA 为低电平 NOP

SETB SCL ;SCL 为高电平 NOP

SETB SDA ;SDA 为高电平 NOP

CLR SCL ;SCL 为低电平 RET

;------------------------------------------------------------------------------------------- 发送一个字节:

SEND : MOV R0,#08H ;R0为8 H SEND0:RLC A ;A 左移 MOV SDA,C ;数据传输

ETB SCL ;SCL 为高电平 ACALL DEALY ;延时

CLR SCL ;SCL 为低电平 DJNZ R0 ,SEND0 ;R0=0时转SEND0

SETB SDA ;SDA 为高电平 RET

接收一个字节:

REV : MOV R0,#08H ;R0为8 H

MOV C,SDA ;数据接受

RLC A ;A 左移

CLR SCL ;SCL 为低电平

DJNZ R0,REV0 ;R0=0时转SEND0

RET ;----------------------------------------------------------------------- 接收一个应答位:

ACKI :SETB SCL ;SCL 为高电平

ACALL DELAY ;延时

MOV C,SDA ;接受

CLR SCL ;SCL 为低电平

RET ;返回 发送一个应答位:

ACKO : SETB SCL ;SCL 为高电平 ACALL DELAY ;延时

MOV SDA,C ;发送

CLR SCL ;SCL 为低电平 RET

结 束 语

系统采用双CPU 控制方式,以AT89C51单片机为核心,用AT89C2051辅助控制显示及键盘,由数字信号发生器、系统主控制器、键盘/显示三大模块组成,实现8路可预置的循环移位逻辑信号序列的产生、采集、存储及在模拟示波器上清晰稳定地显示等功能。采用EEPROM 实现数据的掉电存储,掉电后仍可保存所采样的信息。本设计的软件、硬件都采用模块化的设计方法,提高了设计效率。

基于单片机的简易逻辑分析仪

第1节 引 言

逻辑分析仪是一种类似于示波器的波形测试设备,它可以检测硬件电路工作时

的逻辑电平,并加以储存,用图形的方法直观地表现出来,一般的逻辑分析仪可以同时进行多个通道的分析,便于用户检查和分析电路中的错误,逻辑分析是电路设计中不可缺少的仪器,通过它可以迅速定位错误,解决问题达到事半功倍的效果。

1.1 系统概述

1.1.1 系统的特点

逻辑分析仪也称逻辑示波器,它是用来分析数字系统逻辑关系的一种仪器。逻辑分析仪的主要作用有二个:一是用于观察的形式显示出数字系统的运行情况,相当于扩展了人们的视野,起一个逻辑显示器的作用;二是对系统运行进行分析和故障诊断。

一般的逻辑分析仪是由数据获取和数据显示两大部分组成的。前者捕获并存储所要观察分析的数据,后者用多种形式显示这些数据。在这里,关键是触发.它的作用是在被分析的数据流中按索特定的数据字。一旦发现这个数据字,便产生触发信号去控制和存储有效数据。因此,它决定了观察的数据窗口在数据流中的位置。 本设计具有以下特点:

1、具有足够多的输入通道,一般的示波器只有2路通道,本设计了8路输入通道。 2、多种触发方式:设置了单字触发和三级触发两种触发模式

3、具有记忆能力:采用EEPROM 实现数据的掉电存储 本设计的主要特色:

★ 数字信号发生器使用AT89C2051单片机来控制,达到了高精度的信号输出。 ★ 数字信号的逻辑状态显示也用AT89C2051单片机辅助主CPU 系统实现。 ★ 使用D/A电阻网络,结合单片机对信号幅度进行灵活地控制。 ★ 采用发光二极管来指示电路测试点,一目了然,便于调试。 ★ 在系统的软硬件设计中均加入了运行良好的抗干扰措施。 ★ 强大的软件设计功能,大大简化了硬件电路。 1.1.2 系统的功能

逻辑分析仪的逻辑分析仪(简称LA) 是新型的数据域分析仪器,它有许多 独特的功能。把这些功能分成取数、触发、存储、显示等几个方面, 本系统实现的功能是:

(1)能产生8路可预置的循环移位逻辑信号序列,输出信号为TTL 电平,序列时钟频率为100Hz ,并能够重复输出。

(2)单次触发采集存储显示,单次触发方式是指在满足触发条件后,能对被测信号进行一次采集、存储。之后输出通过DAC 转化为模拟电压后输出,在示波器上显示出8路信号,并能显示触发位置。

(3)任意两通道三级触发存储显示,由键盘输入8路中任意2通道的通道号及3级触发字,当指定通道的触发字连续依次满足时,能对被测信号进行一次采集,存储,送DAC 后输出显示。同时在屏幕上标记出3级触发字的位置。

(4)显示触发字的位置,可以在模拟示波器显示屏上对触发字进行标记。

(5)显示可以移动的光标,可以通过键盘的加、减控制光标在水平方向的坐标。 (6)翻页显示,可以用键盘控制翻页显示,每隔32bit 为一页的内容,扩展了存储深度。

第2节 系统主要硬件电路设计

2.1 系统结构框图

图2-1 系统结构框图

本系统采用单片机和可编程器件作为数据处理及控制核心,整个系统由一个信号

发生器和一个简易逻辑分析仪构成。将设计任务分解为数字信号发生、信号采集存储、信号融合处理、显示、掉电保护等功能模块。图1即为该系统的总体框图。考虑到硬件电路的紧凑性,故将上述模块合理分配连接成以下三个模块:数字信号发生器、最小系统主控器、键盘/显示。由于数字信号发生器是用于测试的需要而设计的一个模块,那么下面对各模块的设计进行逐一论证比较。

2.2 主体控制模块

系统主控模块包括最小系统和数字信号处理控制模块。该模块是采用AT89C51单片机为主控制核心的双CPU 串行通信方式。AT89C51芯片,其内部含有可重复编程的FLASH ROM,,可进行1000次檫除操作,在设计调试过程中可十分容易进行程序的修改,达到最佳的设计。利用存储器(EEPROM )实现掉电存储功能。从CPU

系统即以89C2051为主的显示模块的控制。数字信号处理模块主要是D/A转换器件的选择,我们选用性能优良的DAC0832作为主控器件。该方案的特点是硬件简单,软件实现方便,大大提高了系统的设计性能。

门限电压:

要实现门限电压0.25-4V 之间16级可调这一问题上有两种方案。

用D/A电阻网络进行电压等级的划分作为参考电压,在用比较器来比较高低。 键盘/显示:

由单片AT89C2051控制8个共阳数码管、8个按键构成动态显示模块。由于具有RS--232接口,易于与某些基于虚拟仪表技术的仪器主板相连,使其脱机工作,成为便携仪表,方便了使用;与专用键显接口芯片8279相比,价廉;采用串行方式与主控单片机交换信息,硬件及工艺设计简单,抗干扰能力强;可承担键显及其他信息处理功能,实现了键显智能化,从而使主机软件设计所考虑的因素减少,程序结构得以简化

图2-4 键盘/显示模块

2.3.系统硬件的总体实现

系统总体原理框图如图2-5所示。

图2-5 系统总体原理框图

2.3.1数字信号发生器模块的电路设计与实现

用AT89C51单片机产生可预置的二进制序列。只要在最小系统中添加一个开关组选择高低电平,单片机通过扫描开关组连接的P 口的状态,并通过软件来控制单片机8个P 口的波形输出,输入到74LS04的反向器输入端,通过TTL 电平转换,输出8路数字信号。该电路结构简单可行,通过示波器可以看到它能够产生清晰稳定的矩形波。该设计的优点是信号稳定性好,频率精度高,有利于用单片机对数字信号进行智能化控制。

以AT89C51为核心的数字信号发生电路如图2所示。其工作原理是:AT89C51单片机输出可预置的二进制序列到74LS04的反向输入端,经过TTL 电平转换,产生所需的高稳定、高精度的数字信号。注意:在该模块中,要实现电平转换功能必须用采用74LS 系列的反向器,不可用CMOS 系列的反向器(例如CD4069),因为在引脚的驱动能力上,74系列相对与CMOS 系列更强,在本设计中,也就是说能够输出更稳定的信号。

2.3.2主控系统模块的电路设计与实现

J2CON

该模块主要由最小系统和信号采集处理电路组成。最小系统由一片AT89C51、一片AT89C2051及一片EEPROM (AT24C04)构成。信号采集处理电路由运放LM324组成的D/A电阻网络组成。

该模块的设计思路是:由双CPU 系统控制对数字信号发生器输出的数字信号进行采样存储,再经过一系列的信号处理,在模拟示波器上复现出来。从模拟示波器波形显示原理可知,只要在Y 轴(纵轴)输入一个电压信号,同时在X 轴(横轴)加上一个同频的锯齿波扫描电压,便可在示波器上复现电压信号的波形。为此必须设计相应的X 、Y 的输出电压信号。本设计在单片机的控制下,经数模转换电路D/A分别向示波器的X ,Y 轴输出锯齿波同步信号、被采样波形信号,以复现被采样存储的波形。在这,根据题目要求(8路信号通道,包括8位X 通道和8位Y 通道,)我们采用有8位输出通道、两级锁存控制功能、能够实现多通道D/A的同步转换输出的DAC0832芯片。由此可知该模块的工作原理如下:

单片机控制程序先向Y 轴输入被采样存储在RAM 中的波形数据,经DAC0832内部的D/A电阻网络生成阶梯波,选通Y 轴DAC0832中的第1锁存器并被锁存;向

X 轴送入对应的锯齿波数据(该数据是由D/A生成的阶梯波经一个LM324组成的低通滤波器滤波后,再送入LM324构成的电压跟随器而转换出锯齿波。但是实践证明,通过这种方式生成的波形并不理想。为了得到理想的锯齿波,我们一改常规思维,着手从软件的角度考虑,我们要将阶梯波转换成锯齿波,可以增加阶梯数,减小阶梯幅度,当离散的数字量增加到一定量时可以近似看成模拟量,如图2-9所示。),这个写信号选通X 轴DAC0832中的第1锁存器;然后通过向外部存储器写数据指令产生的译码信号DAC ——X+Y,将在X ,Y 轴第1锁存器锁存的数据与100HZ 的时钟信号同步送出并进行D/A转换,再将转换结果送到示波器,从而达到在示波器上显示波形的目的。

图2-9 波形转换

2.3.3 LED 显示模块的电路设计与实现

键盘/显示装置主要由89C2051单片机、译码驱动器、键盘、LED 显示器组成,其电路原理图如图3-6所示,键盘功能如图2-10所示。

各按键功能说明如下:

SET —X :设置系统参数; SET —1:设置存储地址;

SET —2键即可改变设定字; SET —3:设置3级逻辑状态触发字及触发模式选择;

SET —4:设置门限电压(16级可调);

RUN :系统开始运行;

STOP :系统复位停止运行; DISPLAY :示波器显示波形;

:时间标志线左移;

:时间标志线右移; : 分页显示切换。

通电开机,LED 显示“READY ” 。按下“SET ”键设置系统参数,按SET-1键可以设置存储地址,将设置的数据送到指定地址进行存储,实现数据的掉电保护。按SET-2键就可设置单级触发字,当系统检测到的数据与设定的触发字相同时,就进行数据的触发,并在LED 上显示“SUCCESS ”,然后按“DISPLAY ”键即可在示波器上显示8路波形,并显示触发点和时间标志线。按左移键 、 右移键可改变时间标志线的位置,并在LED 上显示出时间标志线所对应时刻的逻辑状态。按SET-3键就可以选择触发模式和设置3级逻辑状态触发字。触发模式有单级触发字和3级逻辑状态触发字,我们用两位LED 进行设置,当两位LED 设置成00H 时,则为单级触发。其余则为3级逻辑状态触发,触发信号可以指定,当第一位为1,2,3变化时,在第二位中根据具体波形参数设置数据,当系统连续捕捉到设定的3个触发字时,开始对被测信号进行采集、存储与显示等操作。触发成功后,在LED 上显示“SUCCESS ”字样,并在示波器上显示波形、触发点和时间标志线。按SET-4键时可以对门限电压进行设置,使门限电压在0.25V 到4V 的范围内进行16级变化。在信号触发后,还可以对信号的分页显示进行操作。另外,每个信号通道的存储深度由20BIT 扩展到32BIT ,因而需进行分页显示,在信号触发后,还可以对信号的分页显示进行操作这时,我们可以

图 2-11 键盘/显示模块 2.3.4 硬件的抗干扰措施

①配置去耦电容。电源输入端跨接220UF 的电解电容。在关键元件中串入0.1UF 的无感瓷片电容或者云母电容。电容引线尽量短,减少高频带来的影响。 ②其次,尽量加粗地线。

第3节 软件设计

软件是本系统的灵魂,在设计软件时,我们从系统实用、可靠及方便使用几方面予以考虑,特别加入了开机自检功能。系统软件主要由四大功能模块组成:①数据通讯及处理模块;②键盘/显示模块;③波形发生模块;④中断服务模块。

软件设计的其他特色:

在软件设计中加入了软件抗干扰措施(采用软件陷阱技术)。 ● 在程序区的断层(即不使用的区域),以NOP 指令填空,以保证因干扰而造成弹飞的程序尽快步入正常运行轨道。

● 设置软件陷阱。用一条引导指令强行将捕获的程序引向一个指定的地址。为增强捕获效

果,在它前面加入2条NOP 指令,如下

NOP NOP

LJMP ???H

3.1 系统软件流程

(a )、软件主CPU 程序流程图如图3-1示。

主CPU 通过跟从CPU 及AT24C04的串行通信从而来完成数据的传输和通信。主要完成数据的采集,存储,显示,系统变量的设置等功能。

系统初始化是对系统所用到的变量、定时器、中断方式等进行设置。然后判断是否进行联机测试,是的话,系统开始串行通信,进行数据的传输。并进行系统参数设置即:设置门限电压,设置触发方式,设置时间轴位置。设置门限电压:电压从(0.25V —4V )16级变化,可以通过软件设定某个门限电压,就是将某个电压值设为标准,超过这个电压视为高电平,反之则为低电平。设置两种不同的触发方式即:单级触发还是三级触发,先选择是何种触发方式,若是单级触发,设置单级触发字,若符合要求,则触发在LED 上显示SUCESS ,并送示波器显示8路触发的波形。若是三级触发。即当连续依次捕捉到设定的3个触发字时,开始对被测信号进行一次采集、存储与显示,并显示触发点位置。3级触发字可任意设定(例如:在8路信号中指定连续依次捕捉到两路信号11、01、00作为三级触发状态字)。若符合要求,则触发在LED 上显示SUCESS ,并送示波器显示8路触发的波形。设置时间轴位置:就是在八路波形的某个垂直位置设置一条时间轴,可以将触发的波形存储在AT24C04中,实现了波形的存储。

图3-1主CPU (AT89C51)程序流程

(b )软件从CPU 程序流程图如图3-2所示。

此CPU 程序主要完成了键盘、显示功能。与主CPU 进行串行通信,通过键盘可以设置各种参数,如可以设置触发字,当满足触发条件时进行触发并显示

图3-2 从 CPU(AT89C51)程序流程

3.2 中断服务子程序

图3-2 中断服务子程序

3.3 AT24C04程序设计

我们利用AT 24C04对数据进行存储和掉电保护。与AT89C51相连时,P3.5用作SDA 线,P3.4用作SCL 线。

AT24C04的程序流程:

图3-3 AT24C04流程

总线协议:

•总线空闲:SCL 和SDA 都保持高电平。

•开始信号:SCL 保持高电平的状态下,SDA 出现下降沿。出现开始信号以后, 总线被认为" 忙" 。

•停止信号:SCL 保持高电平的状态下,SDA 出现上升沿。停止信号过后,总线被认为" 空闲" 。

•总线忙: 在数据传送开始以后,SCL 为高电平的时候,SDA 的数据必须保持稳定,只有当SCL 为低电平的时候才允许SDA 上的数据改变。

开始信号:

START_BIT: SETB SDA ;SDA 为高电平 NOP

SETB SCL ;SCL 为高电平 NOP

CLR SDA ;SDA 为低电平 NOP

CLR SCL ;SCL 为低电平 RET

;--------------------------------------------------------------------------- 停止信号:

STOP_BIT: CLR SDA ;SDA 为低电平 NOP

SETB SCL ;SCL 为高电平 NOP

SETB SDA ;SDA 为高电平 NOP

CLR SCL ;SCL 为低电平 RET

;------------------------------------------------------------------------------------------- 发送一个字节:

SEND : MOV R0,#08H ;R0为8 H SEND0:RLC A ;A 左移 MOV SDA,C ;数据传输

ETB SCL ;SCL 为高电平 ACALL DEALY ;延时

CLR SCL ;SCL 为低电平 DJNZ R0 ,SEND0 ;R0=0时转SEND0

SETB SDA ;SDA 为高电平 RET

接收一个字节:

REV : MOV R0,#08H ;R0为8 H

MOV C,SDA ;数据接受

RLC A ;A 左移

CLR SCL ;SCL 为低电平

DJNZ R0,REV0 ;R0=0时转SEND0

RET ;----------------------------------------------------------------------- 接收一个应答位:

ACKI :SETB SCL ;SCL 为高电平

ACALL DELAY ;延时

MOV C,SDA ;接受

CLR SCL ;SCL 为低电平

RET ;返回 发送一个应答位:

ACKO : SETB SCL ;SCL 为高电平 ACALL DELAY ;延时

MOV SDA,C ;发送

CLR SCL ;SCL 为低电平 RET

结 束 语

系统采用双CPU 控制方式,以AT89C51单片机为核心,用AT89C2051辅助控制显示及键盘,由数字信号发生器、系统主控制器、键盘/显示三大模块组成,实现8路可预置的循环移位逻辑信号序列的产生、采集、存储及在模拟示波器上清晰稳定地显示等功能。采用EEPROM 实现数据的掉电存储,掉电后仍可保存所采样的信息。本设计的软件、硬件都采用模块化的设计方法,提高了设计效率。


相关内容

  • 基于VHDL语言的简易逻辑分析仪设计
  • 1 前 言 高校电气类及相关专业教学中,实践环节越来越被重视.在数字电路的实验及数字系统的设计中,示波器已远远不能满足教学要求.例如在一些数字电路的研究和实验中,往往需要同时查看多路数字信号的时序关系,甚至有时因为信号不会重复出现,因此只用示波器往往无法完整了解信号的相对关系,在这种场合有台逻辑分析 ...

  • 基于单片机的简易电子表的设计
  • 滁州学院 学年设计报告 设计题目: 基于单片机的简易电子表的设计 系 别: 计算机科学与技术 专 业: 计算机科学与技术 组 别: 起止日期: 年 月 日 ~ 年 月 日 指导教师: 姚 光 顺 计算机科学与技术系二○○九年制 学年设计任务书 目 录 1 引 言„„„„„„„„„„„„„„„„„„„ ...

  • 电气专业的一些毕业设计题目
  • 电气专业的一些毕业设计题目 电子类: 1.红外遥控照明灯(电路+程序+论文) 2.基于单片机的多功能智能小车设计论文(电路+程序+论文) 3.基于数字信号处理器(DSP)的异步电机直接转矩控制研究(硕士)(论文+上位机下位机软件+程序) 4.简单温度控制系统(仅论文) 5.漏电保护器(电路+程序+论 ...

  • 单片机毕业设计题目
  • 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC1211的温度智能温度传感器 9. 机器视觉系统 ...

  • 自动化毕业设计论文题目
  • 自 动 化 毕 业 设 计 论 文 题 目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC12 ...

  • 通信工程毕业设计题目精选
  • 不管怎样,生活还是要继续向前走去.有的时候伤害和失败不见得是一件坏事,它会让你变得更好,孤单和失落亦是如此.每件事到最后一定会变成一件好事,只要你能够走到最后. 通信工程毕业设计题目精选 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激 ...

  • 电气自动化设计论文题目大全
  • 机电一体化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数 ...

  • 电气自动化毕业设计论文题目
  • 电 气 自 动 化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机 ...

  • PLC毕业设计论文题目
  • P L C 第1-100个PLC毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MS ...