• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于C語言的數(shù)據(jù)通信接口軟件設(shè)計(jì)

      2012-04-29 00:44:03杜福鵬,阮濱
      電腦知識與技術(shù) 2012年2期
      關(guān)鍵詞:程控

      杜福鵬,阮濱

      摘要:該文從C程序設(shè)計(jì)語言的特點(diǎn)出發(fā),論述了自動測量系統(tǒng)中數(shù)據(jù)通信接口的軟件開發(fā)方法,實(shí)現(xiàn)了GPIB接口的初始化,數(shù)據(jù)接收,數(shù)據(jù)處理,數(shù)據(jù)發(fā)送的功能。

      關(guān)鍵詞:GPIB;DLL調(diào)用;程控

      中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)02-0335-03

      Software C-based Design for Data Communication Interface

      DU Fu-peng, RUAN Bin

      (92493 Army 89 Unit, Huludao 125000, China)

      Abstract: This article from the C programming language characteristics, discusses the automatic measurement system, data communication interface of the software development methodology, to achieve a GPIB interface initialization, data reception, data processing, data transmis? sion functions.

      Key words: GPIB; DLL calls; program-controled

      根據(jù)GPIB總線的特點(diǎn)和GPIB接口在儀器儀表中的廣泛應(yīng)用,系統(tǒng)采用D7210C和75160BN,75161BN實(shí)現(xiàn)了GPIB接口電路,接口電路實(shí)現(xiàn)了雙向、異步、準(zhǔn)確可靠的數(shù)據(jù)通信任務(wù)。軟件部分設(shè)計(jì)主要用到的是GPIB的WIN32API函數(shù)驅(qū)動庫。通過DLL調(diào)用技術(shù)可以完成API函數(shù)庫封裝的對GPIB設(shè)備初始化、讀取數(shù)據(jù)、寫入數(shù)據(jù)或命令以及清除等各種控制操作。

      1數(shù)據(jù)通信接口實(shí)現(xiàn)

      根據(jù)GPIB接口特點(diǎn),采用D7210C和75160BN,75161BN芯片按照如下電路可以實(shí)現(xiàn)計(jì)算機(jī)與儀器與測量系統(tǒng)間的數(shù)據(jù)通信。

      圖1數(shù)據(jù)通信接口電路

      2對GPIB接口的初始化方法

      void gpib_init()//gpib初始化

      {

      XBYTE[0x0500]=0x02;//芯片復(fù)位

      XBYTE[0x0500]=0x2c;//置位外部計(jì)數(shù)發(fā)生器

      XBYTE[0x0500]=0x8c;//設(shè)置為8bits數(shù)據(jù)傳送

      XBYTE[0x0500]=0xa8;//低電平中斷

      XBYTE[0x0500]=0xc0;//進(jìn)入準(zhǔn)備

      XBYTE[0x0100]=0x03;//設(shè)輸入輸出產(chǎn)生中斷

      XBYTE[0x0400]=0x31;//設(shè)受命方式為1

      XBYTE[0x0600]=0x20;//設(shè)程控地址

      XBYTE[0x0600]=0xc0;//設(shè)程控地址為15

      XBYTE[0x0700]=0x0a;//設(shè)結(jié)束字符為“0x0a”(回車)

      XBYTE[0x0500]=0;//立即執(zhí)行,產(chǎn)生本地消息

      }

      3數(shù)據(jù)接收函數(shù)

      void rec488()//數(shù)據(jù)接收

      {

      char idata tem48,tem88;

      char idata i,j;

      tem48=XBYTE[0x0100];

      if((tem48&0x08)==0x08)//產(chǎn)生器件清除中斷

      {

      ;//不執(zhí)行任何指令

      }

      else if((tem48&0x04)==0x04)//出錯(cuò)中斷

      {

      XBYTE[0x0100]=0x08;//器件清除

      return;

      }

      else if((tem48&0x01)==0x01)//收到數(shù)據(jù),將數(shù)據(jù)存到pdtem[]數(shù)組

      {

      i=0;

      for(j=0;j<18;j++)

      pdtem[j]=0;

      tem88=XBYTE[0x0000];

      while(tem88!=0x0a)//遇到結(jié)束符0x0a則接收完畢

      {

      pdtem[i]=tem88;

      i++;

      tem48=XBYTE[0x0100];

      while((tem48&0x01)!=0x01)

      tem48=XBYTE[0x0100];

      tem88=XBYTE[0x0000];

      }

      strjudge();//接收完畢進(jìn)入數(shù)據(jù)處理程序

      4數(shù)據(jù)處理函數(shù)

      void strjudge()//數(shù)據(jù)處理

      {

      if(strncmp(pdtem,"data",4)==0)//判斷接收到的指令(如果前四個(gè)字符為"data0")

      {

      ……

      ……

      ……//執(zhí)行相應(yīng)操作

      send_data(pdtem);//將要返回的字符放到pdtem[]數(shù)組,發(fā)送到計(jì)算機(jī)接收

      5數(shù)據(jù)發(fā)送函數(shù)

      void send_data(char temp[64])//數(shù)據(jù)發(fā)送

      {

      uchar i;

      i=0;

      do

      {

      tem88=XBYTE[0x0100];

      while((tem88&0x02)!=0x02)

      tem88=XBYTE[0x0100];

      XBYTE[0x0000]=pdtem[i];

      i++;

      }

      while(pdtem[i-1]!=0x0a);//遇到結(jié)束符0x0a則發(fā)送完畢

      while(((tem88=XBYTE[0x0100])&0x02)==0x02); //防止輸出中斷未清除,這句可以不加}

      6結(jié)論

      通過編程軟件實(shí)現(xiàn)了接口的初始化,數(shù)據(jù)的接收,數(shù)據(jù)的處理和數(shù)據(jù)的發(fā)送基本功能,在軟件平臺下調(diào)用板卡廠商提供的DLL對操作系統(tǒng)API(Application Programming Interface)函數(shù)的調(diào)用。API函數(shù)包含在附加名為DLL的動態(tài)連接庫文件中,API函數(shù)可以做到很多的功能。因此,可以通過調(diào)用DLL的方法來調(diào)用各種API函數(shù),來實(shí)現(xiàn)各種任務(wù)。

      參考文獻(xiàn):

      [1]李宗陽.時(shí)間頻率計(jì)量[M].北京:原子能出版社,2002:88-101.

      [2]季海峰.基于虛擬儀器測試系統(tǒng)的PCI-GPIB控制器的設(shè)計(jì)和研究[M].南京:南京理工大學(xué),2007:23-30.[2] Lippman S B.C++Primer中文版[M].李師賢,譯.4版.北京:人民郵電出版社,2006.

      [3]馮宏華.C++應(yīng)用程序性能優(yōu)化[M].北京:電子工業(yè)出版社,2007.

      [4]錢能.C++程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,1999.

      猜你喜歡
      程控
      基于單片機(jī)的程控增益放大器設(shè)計(jì)
      電子制作(2019年19期)2019-11-23 08:41:36
      基于Multisim10和AD603的程控增益放大器仿真研究
      電子制作(2018年19期)2018-11-14 02:37:02
      程控交換網(wǎng)絡(luò)技術(shù)及智能云交換技術(shù)綜述和展望
      電子測試(2018年13期)2018-09-26 03:29:54
      LabVIEW程控電子負(fù)載的實(shí)現(xiàn)與虛擬面板設(shè)計(jì)
      電子測試(2018年9期)2018-06-26 06:45:30
      功率程控發(fā)射機(jī)的設(shè)計(jì)
      電子測試(2018年9期)2018-06-26 06:45:28
      程控交換機(jī)的維護(hù)及管理探析
      電子制作(2016年11期)2016-11-07 08:43:27
      程控增益射頻寬帶放大器
      電子制作(2016年1期)2016-11-07 08:42:54
      基于STC89C52的程控移相器的設(shè)計(jì)
      電子制作(2016年23期)2016-05-17 03:53:28
      一種可程控精密直流電流測量系統(tǒng)的設(shè)計(jì)
      電測與儀表(2016年7期)2016-04-12 00:22:16
      基于STM32的程控直流電子負(fù)載設(shè)計(jì)
      临潭县| 潍坊市| 仁布县| 大兴区| 包头市| 贺兰县| 神农架林区| 郧西县| 永寿县| 松原市| 习水县| 漠河县| 丰顺县| 兴山县| 海城市| 临邑县| 洛阳市| 虹口区| 潍坊市| 嘉峪关市| 山阴县| 临海市| 宿松县| 万载县| 弋阳县| 重庆市| 正阳县| 铜川市| 红河县| 玉溪市| 贡嘎县| 巫溪县| 内乡县| 北宁市| 报价| 和田县| 望谟县| 北流市| 嘉义市| 蓝山县| 宜兰县|