NAT9914芯片开始工作之前需要对其进行初始化,这部分代码作为主程序中初始化程序的一部分运行,包括设置ICR寄存器、选择时钟信号频率、设置GPIB延迟时问T1、定义通信结束字符EOS、设置GPIB设备地址(规定地址必须在O~30之间,如果写入更大的地址。则设备仍看作30)。初始化完成后将NAT9914接通GPIB总线。初始化流程如图2所示。

基于AT89C51单片机的RS232-GPIB控制器设计

GPIB控制部分的代码以中断方式运行,当NAT9914触发89C51芯片的外部中断时,单片机中止正常工作,将现场数据压入堆栈保护,并调用外部中断处理函数,响应NAT9914芯片的中断申请,其中断处理程序流程如图3所示。引起NAT9914向单片机发出中断信号的事件主要有四种:发送数据事件、接收数据事件、接收GET命令事件和接收DCAS命令事件。中断频繁时会影响主程序运行效率,但考虑到所设计的转换器功能单一,主程序基本处于空转状态,四种事件的处理都在中断程序中完成,因此,对主程序运行影响不大。GPIB接收数据和发送数据流程如图4和图5所示。

基于AT89C51单片机的RS232-GPIB控制器设计

基于AT89C51单片机的RS232-GPIB控制器设计

每次GPIB接口数据接收中,NAT9914接收到第一个字节数据后,即置位寄存器ISR0中的BI位。触发单片机外部中断,单片机进入外部中断处理程序后,读取ISR0寄存器,判断NAT9914触发中断的原因是接收数据事件后,调用接收数据子程序的执行,开始接收来自GPIB仪器的数据。

在主程序中,NAT9914发送完第一个字节数据后.即置位寄存器ISR0中的BO位,触发单片机外部中断。单片机进入外部中断处理程序后,根据BO位判断事件类型为发送数据事件,则调用GPIB数据发送程序,将缓冲区中剩余的数据依次发送到GPIB总线上。

3 运行情况及结果

本文设计的RS232一GPIB控制器已成功用于计算机和泰克TDS210型示波器的GPIB总线连接中。图6是计算机超级终端显示界面的部分截图,其中COMMAND:》为计算机键盘SCPI命令输入提示符,GPIB:》为GPIB连接设备的反馈信息输出提示符,表示后面的信息来自GPIB设备(即泰克TDS210型示波器)。

基于AT89C51单片机的RS232-GPIB控制器设计

首先输入的是查询命令.该类命令以‘?’结尾,当示波器收到查询命令后,会立即反馈相关查询信息。ID?命令,查询该示波器的品牌和型号信息,示波器回复相关信息显示在超级终端上;CH1?命令,查询示波器l号通道的设置信息;DATA?命令,查询示波器当前使用通道信息以及采样点数等信息。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查