亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? parallelport.cpp

?? 用并口去驅動液晶屏LCD1602的源代碼
?? CPP
字號:
// ParallelPort.cpp: implementation of the CParallelPort class.
//
//////////////////////////////////////////////////////////////////////


#include "stdafx.h"
#include "ParallelPort.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//CParallelPort ParallePort;
CString m_strAppPath;
CParallelPort::CParallelPort()
{
	m_CtrlByte=0;
	m_DataByte=0;
	m_StatByte=0;
	m_bWin98=FALSE;
}

CParallelPort::~CParallelPort()
{
	if(!m_bWin98)
		ShutdownWinIo();
}

BOOL CParallelPort::SetDataDir(BOOL DIR)
{
	if(!DIR)
	{
		m_CtrlByte|=0x20;
		WriteCtrl(m_CtrlByte);
	}
	else
	{
		m_CtrlByte&=0xdf;
		WriteCtrl(m_CtrlByte);
	}
	return TRUE;
}

BOOL CParallelPort::InitPort(int nPort)
{

	m_nDataPort=nPort;
	m_nStatPort=nPort+1;
	m_nCtrlPort=nPort+2;
	OSVERSIONINFO winInfo;
	winInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
	GetVersionEx(&winInfo);
	TRACE("winInfo.dwMajorVersion:%d\n",winInfo.dwMajorVersion);
	if(winInfo.dwMajorVersion==4)//Win98或Win95
	{
		
		TRACE("m_bWin98=TRUE\n");
		m_bWin98=TRUE;
		return TRUE;
	}
	else if(winInfo.dwMajorVersion==5)//Win2000或WinXP要先裝驅動
	{

		TRACE("m_bWin98=FALSE\n");
		m_bWin98=FALSE;
		m_strDrivePath=m_strAppPath+"winio.sys";
		char FileName[200];
		memset(FileName,0,200);
		strcpy(FileName,LPCTSTR(m_strDrivePath));
		if(InitializeWinIo())
		   return TRUE;
		if(!InstallWinIoDriver(FileName,FALSE))
		{
			AfxMessageBox("初始化驅動程序失敗!");
		}
		if(!InitializeWinIo())
		{
			AfxMessageBox("初始化并口I/O失敗!");
			return FALSE;
		}
		//TRACE("InstallRes:%d,InitRes:%d\n",InstallRes,InitRes);
		//AfxMessageBox("here");
		return TRUE;
	}
	else
	{
		return FALSE;
	}
}

BYTE CParallelPort::ReadData()
{
	if(m_bWin98)
		return (BYTE)_inp(m_nDataPort);
	else
	{
		DWORD	Val;
		GetPortVal((WORD)m_nDataPort,&Val,1);
		return (BYTE)Val;
	}
}

CParallelPort::WriteData(BYTE Data)
{
	if(m_bWin98)
		_outp(m_nDataPort,(int)Data);
	else
	{
		SetPortVal((WORD)m_nDataPort,(DWORD)Data,1);
	}
}

BYTE CParallelPort::ReadState()
{
	if(m_bWin98)
		return (BYTE)_inp(m_nStatPort);
	else
	{
		DWORD	Val;
		GetPortVal((WORD)m_nStatPort,&Val,1);
		return (BYTE)Val;
	}
}

BYTE CParallelPort::ReadCtrl()
{
	if(m_bWin98)
		return (BYTE)_inp(m_nCtrlPort);
	else
	{
		DWORD	Val;
		GetPortVal((WORD)m_nCtrlPort,&Val,1);
		return (BYTE)Val;
	}
}

CParallelPort::WriteCtrl(BYTE Ctrl)
{
	if(m_bWin98)
		_outp(m_nCtrlPort,(int)Ctrl);
	else
	{
		SetPortVal((WORD)m_nCtrlPort,(DWORD)Ctrl,1);
	}
}


BOOL CParallelPort::SetPinH(int nPin)
{
	if(nPin==0)
		return FALSE;
	switch(nPin)
	{
	case 1:
		m_CtrlByte&=0xfe;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 2:
		m_DataByte|=0x01;
		WriteData(m_DataByte);
		return TRUE;
	case 3:
		m_DataByte|=0x02;
		WriteData(m_DataByte);
		return TRUE;
	case 4:
		m_DataByte|=0x04;
		WriteData(m_DataByte);
		return TRUE;
	case 5:
		m_DataByte|=0x08;
		WriteData(m_DataByte);
		return TRUE;
	case 6:
		m_DataByte|=0x10;
		WriteData(m_DataByte);
		return TRUE;
	case 7:
		m_DataByte|=0x20;
		WriteData(m_DataByte);
		return TRUE;
	case 8:
		m_DataByte|=0x40;
		WriteData(m_DataByte);
		return TRUE;
	case 9:
		m_DataByte|=0x80;
		WriteData(m_DataByte);
		return TRUE;
	case 14:
		m_CtrlByte&=0xfd;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 16:
		m_CtrlByte|=0x04;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 17:
		m_CtrlByte&=0xf7;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	default:
		return FALSE;
	}
	return FALSE;
}

BOOL CParallelPort::SetPinL(int nPin)
{
	if(nPin==0)
		return FALSE;
	switch(nPin)
	{
	case 1:
		m_CtrlByte|=0x01;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 2:
		m_DataByte&=0xfe;
		WriteData(m_DataByte);
		return TRUE;
	case 3:
		m_DataByte&=0xfd;
		WriteData(m_DataByte);
		return TRUE;
	case 4:
		m_DataByte&=0xfb;
		WriteData(m_DataByte);
		return TRUE;
	case 5:
		m_DataByte&=0xf7;
		WriteData(m_DataByte);
		return TRUE;
	case 6:
		m_DataByte&=0xef;
		WriteData(m_DataByte);
		return TRUE;
	case 7:
		m_DataByte&=0xdf;
		WriteData(m_DataByte);
		return TRUE;
	case 8:
		m_DataByte&=0xbf;
		WriteData(m_DataByte);
		return TRUE;
	case 9:
		m_DataByte&=0x7f;
		WriteData(m_DataByte);
		return TRUE;
	case 14:
		m_CtrlByte|=0x02;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 16:
		m_CtrlByte&=0xfb;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 17:
		m_CtrlByte|=0x08;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	default:
		return FALSE;
	}
	return FALSE;

}

BOOL CParallelPort::SetPinLogic(int nPin,BOOL bLogic)
{
if(bLogic)
{
	if(nPin==0)
		return FALSE;
	switch(nPin)
	{
	case 1:
		m_CtrlByte&=0xfe;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 2:
		m_DataByte|=0x01;
		WriteData(m_DataByte);
		return TRUE;
	case 3:
		m_DataByte|=0x02;
		WriteData(m_DataByte);
		return TRUE;
	case 4:
		m_DataByte|=0x04;
		WriteData(m_DataByte);
		return TRUE;
	case 5:
		m_DataByte|=0x08;
		WriteData(m_DataByte);
		return TRUE;
	case 6:
		m_DataByte|=0x10;
		WriteData(m_DataByte);
		return TRUE;
	case 7:
		m_DataByte|=0x20;
		WriteData(m_DataByte);
		return TRUE;
	case 8:
		m_DataByte|=0x40;
		WriteData(m_DataByte);
		return TRUE;
	case 9:
		m_DataByte|=0x80;
		WriteData(m_DataByte);
		return TRUE;
	case 14:
		m_CtrlByte&=0xfd;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 16:
		m_CtrlByte|=0x04;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 17:
		m_CtrlByte&=0xf7;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	default:
		return FALSE;
	}
}
else
{
	if(nPin==0)
		return FALSE;
	switch(nPin)
	{
	case 1:
		m_CtrlByte|=0x01;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 2:
		m_DataByte&=0xfe;
		WriteData(m_DataByte);
		return TRUE;
	case 3:
		m_DataByte&=0xfd;
		WriteData(m_DataByte);
		return TRUE;
	case 4:
		m_DataByte&=0xfb;
		WriteData(m_DataByte);
		return TRUE;
	case 5:
		m_DataByte&=0xf7;
		WriteData(m_DataByte);
		return TRUE;
	case 6:
		m_DataByte&=0xef;
		WriteData(m_DataByte);
		return TRUE;
	case 7:
		m_DataByte&=0xdf;
		WriteData(m_DataByte);
		return TRUE;
	case 8:
		m_DataByte&=0xbf;
		WriteData(m_DataByte);
		return TRUE;
	case 9:
		m_DataByte&=0x7f;
		WriteData(m_DataByte);
		return TRUE;
	case 14:
		m_CtrlByte|=0x02;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 16:
		m_CtrlByte&=0xfb;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	case 17:
		m_CtrlByte|=0x08;
		WriteCtrl(m_CtrlByte);
		return TRUE;
	default:
		return FALSE;
	}
}
}


BOOL CParallelPort::GetPinLogic(int nPin)
{
	switch(nPin)
	{
	case 1:
		m_CtrlByte=ReadCtrl();
		return !(m_CtrlByte & 0x01);
	case 2:
		m_DataByte=ReadData();
		return (m_DataByte & 0x01);
	case 3:
		m_DataByte=ReadData();
		return (m_DataByte & 0x02);
	case 4:
		m_DataByte=ReadData();
		return (m_DataByte & 0x04);
	case 5:
		m_DataByte=ReadData();
		return (m_DataByte & 0x08);
	case 6:
		m_DataByte=ReadData();
		return (m_DataByte & 0x10);
	case 7:
		m_DataByte=ReadData();
		return (m_DataByte & 0x20);
	case 8:
		m_DataByte=ReadData();
		return (m_DataByte & 0x40);
	case 9:
		m_DataByte=ReadData();
		return (m_DataByte & 0x80);
	case 10:
		m_StatByte=ReadState();
		return (m_StatByte & 0x40);
	case 11:
		m_StatByte=ReadState();
		return !(m_StatByte & 0x80);
	case 12:
		m_StatByte=ReadState();
		return (m_StatByte & 0x20);
	case 13:
		m_StatByte=ReadState();
		return (m_StatByte & 0x10);
	case 14:
		m_CtrlByte=ReadCtrl();
		return !(m_CtrlByte & 0x02);
	case 15:
		m_StatByte=ReadState();
		return (m_StatByte & 0x08);
	case 16:
		m_CtrlByte=ReadCtrl();
		return (m_CtrlByte & 0x04);
	case 17:
		m_CtrlByte=ReadCtrl();
		return !(m_CtrlByte & 0x08);
	default:
		return FALSE;
	}
	return FALSE;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人精品一区二区| 欧美日韩中字一区| 99视频超级精品| 91在线精品一区二区| 欧美影院精品一区| 97se亚洲国产综合在线| 一本一道综合狠狠老| 欧美午夜一区二区三区 | 成人久久18免费网站麻豆 | 国产精品高潮久久久久无| 国产精品久久久久一区二区三区共| 亚洲图片激情小说| 午夜精品免费在线| 寂寞少妇一区二区三区| 成人av网站在线| 欧美亚洲综合久久| 精品三级在线观看| 国产精品女同互慰在线看| 亚洲欧美日本在线| 日本不卡视频在线观看| 国产成人av网站| 在线观看中文字幕不卡| 亚洲精品在线电影| 国产欧美久久久精品影院| 亚洲欧美欧美一区二区三区| 免费观看久久久4p| 99国产精品久| 欧美午夜在线观看| 国产亚洲精品福利| 亚洲国产成人va在线观看天堂| 国产综合一区二区| 欧洲精品一区二区三区在线观看| 制服丝袜中文字幕亚洲| 国产精品麻豆久久久| 五月激情综合色| 成人av资源站| 日韩免费一区二区| 亚洲免费毛片网站| 国产一区二区三区久久悠悠色av| 日本精品一区二区三区四区的功能| 精品视频123区在线观看| 国产欧美一区二区精品婷婷| 天天亚洲美女在线视频| 成人av网在线| 日韩一区二区视频| 亚洲欧美日韩电影| 国产成人8x视频一区二区 | 国产欧美精品日韩区二区麻豆天美| 亚洲五月六月丁香激情| 成人性视频免费网站| 欧美一级高清片| 亚洲欧美日韩一区| 国产丶欧美丶日本不卡视频| 91精品国产高清一区二区三区蜜臀| 中文字幕一区二| 国产又粗又猛又爽又黄91精品| 欧美日韩国产在线观看| 亚洲视频在线观看一区| 老司机免费视频一区二区三区| 色久优优欧美色久优优| 欧美激情综合在线| 国产一区二区三区国产| 91精品国产乱| 无吗不卡中文字幕| 色婷婷av一区二区三区软件| 中文字幕不卡在线观看| 国产麻豆成人精品| 欧美成人aa大片| 亚洲成人免费观看| 欧美最猛性xxxxx直播| 亚洲三级电影全部在线观看高清| 国产一区二区电影| 精品精品国产高清a毛片牛牛| 亚洲va中文字幕| 欧美色国产精品| 亚洲午夜一区二区三区| 91高清视频在线| 亚洲免费色视频| 91免费观看视频在线| 中文字幕一区二区三区乱码在线 | 国产婷婷精品av在线| 风间由美性色一区二区三区| 国产精品传媒入口麻豆| 色综合久久九月婷婷色综合| 亚洲国产日韩a在线播放性色| 欧美另类变人与禽xxxxx| 久久国内精品视频| 国产欧美一区二区精品性色超碰 | 亚洲亚洲精品在线观看| 欧美视频一区二区三区| 日韩黄色片在线观看| 欧美成人aa大片| 懂色av中文一区二区三区| 中文字幕亚洲一区二区va在线| 色妹子一区二区| 日产精品久久久久久久性色| 欧美mv和日韩mv国产网站| 成人性生交大片免费看中文网站| 国产精品九色蝌蚪自拍| 欧美日韩中文国产| 蜜桃视频第一区免费观看| 国产亲近乱来精品视频| 日本精品裸体写真集在线观看| 日日夜夜精品免费视频| 国产视频在线观看一区二区三区 | 天天操天天综合网| 精品国产乱码久久久久久牛牛| 成人黄色电影在线| 日日摸夜夜添夜夜添亚洲女人| 国产亚洲午夜高清国产拍精品| 91视频观看视频| 麻豆精品久久久| 亚洲品质自拍视频| 日韩欧美第一区| 色综合久久六月婷婷中文字幕| 蜜桃视频一区二区| 亚洲精品国产视频| 欧美tickle裸体挠脚心vk| 91麻豆123| 韩国毛片一区二区三区| 一区二区三区成人| 久久蜜桃香蕉精品一区二区三区| 色综合咪咪久久| 国产在线国偷精品免费看| 一区二区三区产品免费精品久久75| 日韩色视频在线观看| 91丨porny丨蝌蚪视频| 狠狠色丁香久久婷婷综| 亚洲国产成人av网| 国产精品免费免费| 日韩午夜精品电影| 色妹子一区二区| 国产suv精品一区二区三区| 三级精品在线观看| 亚洲精品视频观看| 欧美激情一区二区三区不卡| 欧美一区二区三区小说| a4yy欧美一区二区三区| 蜜臀久久久久久久| 一区二区三区在线视频观看| 久久久久高清精品| 日韩午夜激情免费电影| 欧美在线视频日韩| 成人av手机在线观看| 激情图区综合网| 日本午夜精品视频在线观看| 亚洲欧美另类图片小说| 国产午夜亚洲精品羞羞网站| 日韩欧美你懂的| 在线播放日韩导航| 在线观看免费视频综合| 99国产精品国产精品毛片| 国产成人午夜高潮毛片| 久久电影网站中文字幕| 午夜电影一区二区| 亚洲自拍偷拍欧美| 亚洲欧美日韩国产成人精品影院 | 99在线精品一区二区三区| 国产精品系列在线观看| 久久精品国内一区二区三区| 天堂久久久久va久久久久| 亚洲午夜在线观看视频在线| 亚洲欧美日韩国产综合在线| 中文字幕一区二区三区四区| 欧美激情在线观看视频免费| 久久久美女艺术照精彩视频福利播放| 7878成人国产在线观看| 欧美日韩综合一区| 欧美性三三影院| 欧美日韩亚洲不卡| 欧美精品在线观看一区二区| 欧美在线视频全部完| 欧美亚洲综合久久| 欧美日韩久久一区二区| 欧美系列亚洲系列| 欧美日本在线看| 91精品国产欧美一区二区成人| 欧美一区国产二区| 日韩亚洲欧美在线| 精品国产a毛片| 欧美精品一区二区三区视频| 日韩美女一区二区三区| 精品国产99国产精品| 久久久美女艺术照精彩视频福利播放| 精品国产91乱码一区二区三区 | 精品在线播放午夜| 国产在线精品一区二区夜色| 国产乱子伦视频一区二区三区 | 一区二区三区蜜桃| 亚洲第一福利视频在线| 丝袜a∨在线一区二区三区不卡| 日韩电影免费在线观看网站| 男男成人高潮片免费网站| 美女一区二区在线观看| 国产精品综合视频| 91在线观看地址| 在线观看视频91| 日韩一级精品视频在线观看| 精品久久人人做人人爽| 欧美国产综合一区二区|