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

📄 lptda.cpp

📁 计算机并口转3路串行DA的DLL源码及电路,芯片MAX541/MAX5541,可以免费申请,8路I/O输出,5路输入,并口的简单极限应用.经使用各项性能不错,就是DA抗干扰较差,没有较大的电磁干扰运行
💻 CPP
字号:
// lptda.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "lptda.h"

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:
		case DLL_THREAD_ATTACH:
		case DLL_THREAD_DETACH:
		case DLL_PROCESS_DETACH:
			break;
    }
    return TRUE;
}
LPTBYTE bDaByte;
unsigned short address = 0x378;
LPTDA_API _stdcall OpenLptPort()
{
	InitializeWinIo();
}
LPTDA_API _stdcall CloseLptPort()
{
	ShutdownWinIo();
}
LPTDA_API _stdcall Delay(long time)
{
	LARGE_INTEGER CurrTicks, TicksCount; 
	
    QueryPerformanceFrequency(&TicksCount);
    QueryPerformanceCounter(&CurrTicks); 
	
    TicksCount.QuadPart = TicksCount.QuadPart * time / 1000000i64;
    TicksCount.QuadPart += CurrTicks.QuadPart; 
	
    while(CurrTicks.QuadPart<TicksCount.QuadPart)
        QueryPerformanceCounter(&CurrTicks);
}
LPTDA_API _stdcall CS(UINT Chan)
{
	bDaByte.byte=Chan;
	_outp(address+2,bDaByte.byte);
	//Delay(1);
}
LPTDA_API _stdcall SCLKH()
{
	bDaByte.BIT.bit3 = 1;
	_outp(address+2,bDaByte.byte);
	//Delay(1);
}
LPTDA_API _stdcall SCLKL()
{
	bDaByte.BIT.bit3 = 0;
	_outp(address+2,bDaByte.byte);
	//Delay(1);
}
LPTDA_API _stdcall DINH()
{
	bDaByte.BIT.bit2 = 1;
	_outp(address+2,bDaByte.byte);
	//Delay(1);
}
LPTDA_API _stdcall DINL()
{
	bDaByte.BIT.bit2 = 0;
	_outp(address+2,bDaByte.byte);
	//Delay(1);
}

LPTDA_API _stdcall daOut(UINT Chan,float Value)
{
	int DATA = (int)(Value*3276.7+32767);
	CS(Chan);
	int D =0;
	for(D = 0;D < 16 ; D++)
	{
		if((DATA & 0x8000)==0x8000)
			DINH();
		else
			DINL();
		SCLKH();
		SCLKL();
		DATA = DATA<<1;
	}
	CS(3);
}

⌨️ 快捷键说明

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