⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adcontroll.h

📁 可通过人机界面上位机控制二维步进电机平台的运动
💻 H
字号:
// AdControll.h: interface for the CAdControll class.
//
//////////////////////////////////////////////////////////////////////
#include<windows.h>
#include<conio.h> 
#include"Piso813.h"

#if !defined(AFX_ADCONTROLL_H__38DF7990_7B85_4CCC_853B_A0BDC302405E__INCLUDED_)
#define AFX_ADCONTROLL_H__38DF7990_7B85_4CCC_853B_A0BDC302405E__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CAdControll  
{
public:
	CAdControll();
	virtual ~CAdControll();


protected:
	unsigned  short m_unBaseAddress; //存放A/D转换卡基地址
	BYTE  m_byChannelAddress;      //存 放A/D 通 道 基 本 偏 移 地 址 
    BYTE  m_byHighEightBits;      //存 放 高8 位 数 据 
    BYTE  m_byLowFourBits;        //存 放 低4 位 数 据 
    BYTE  m_byADState;           //存 放A/D 转 换 器 状 态 
    BYTE  m_byStart;             //存 放 开 始A/D 转 换 的 信 号 
    float  m_fResult;            //存 放 最 终 结 果

void CAdControll::CadControll(unsigned short  unBaseAddress, BYTE 
byChannelAddress) 
{ 
m_unBaseAddress= unBaseAddress; 
m_byChannelAddress= byChannelAddress; 
m_byStart=0x00;                  //开 始A/D 转 换 的 信 号 
} 

//添 加 设 置A/D 卡 基 地 址 的 方 法: 
   void CAdControll::SetBaseAddress(unsigned short  unBaseAddress) 
{ 
   m_unBaseAddress=unBaseAddress; 
} 

//添 加 设 置 转 换 通 道 基 本 偏 移 地 址 的 方 法: 
  void CAdControll::SetChannelBaseAddress 
    (BYTE  byChannelAddress) 
{ 
m_byChannelAddress=byChannelAddress; 
  } 
//添 加 读A/D 转 换 结 果 的 方 法: 
  float CAdControll::ReadAD(BYTE byChannel=0) 
    // 缺 省 为 第0 通 道 
  { 
// 向A/D 转 换 器 送 通 道 号 

_outp(m_unBaseAddress, m_byChannelAddress+byChannel); 
   // 发 出 启 动 转 换 信 号 
_outp(m_unBaseAddress+1,m_byStart); 
   
// 循 环 查 询 直 到 转 换 结 束 
   do{     
   m_byADState=inp(m_unBaseAddress+1); 
// 读 转 换 器 状 态 
     m_byADState=m_byADState&0x01; 
   }while(m_byADState); 
// 正 在 转 换 则 继 续 查 询,转 换 结 束 则 退 出 循 环 
   m_byHighEightBits=_inp(m_unBaseAddress+2); 
// 读 取 转 换 结 果 的 高8 位 
   m_byLowFourBits=_inp(m_unBaseAddress+3); 
// 读 取 转 换 结 果 的 低4 位 
// 计 算A/D 转 换 结 果 
    m_fResult= (m_byHighEightBits*16+(float)m_byLowFourBits/16)/4096; 
   return m_fResult; // 返 回A/D 转 换 结 果 
  }

};

#endif // !defined(AFX_ADCONTROLL_H__38DF7990_7B85_4CCC_853B_A0BDC302405E__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -