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

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

?? d12.c

?? 里面是D12與c51的接口程序
?? C
字號:
#include <reg52.h>            

#include "hard.h"
#include "main.h"
#include "D12.h"

extern EPPFLAGS bEPPflags;

void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
{
	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, 0xD0);
	if(bEnable)
		bAddress |= 0x80;
	outportb(D12_DATA, bAddress);

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;
}

void D12_SetEndpointEnable(unsigned char bEnable)
{
	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, 0xD8);
	if(bEnable)
		outportb(D12_DATA, 1);
	else
		outportb(D12_DATA, 0);

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;
}

void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
{
	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, 0xF3);
	outportb(D12_DATA, bConfig);
	outportb(D12_DATA, bClkDiv);

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;
}

void D12_SetDMA(unsigned char bMode)
{
	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, 0xFB);
	outportb(D12_DATA, bMode);

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;
}

unsigned short D12_ReadInterruptRegister(void)
{
	unsigned char b1;
	unsigned int j;

	outportb(D12_COMMAND, 0xF4);
	b1 = inportb();
	j = inportb();

	j <<= 8;
	j += b1;

	return j;
}

unsigned char D12_SelectEndpoint(unsigned char bEndp)
{
	unsigned char c;

	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, bEndp);
	c = inportb();

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;

	return c;
}

unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
{
	outportb(D12_COMMAND, 0x40 + bEndp);
	return inportb();
}

unsigned char D12_ReadEndpointStatus(unsigned char bEndp)
{
	unsigned char c;

	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, 0x80 + bEndp);
	c = inportb();

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;

	return c;
}

void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
{
	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, 0x40 + bEndp);
	outportb(D12_DATA, bStalled);

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;
}

void D12_SendResume(void)
{
	outportb(D12_COMMAND, 0xF6);
}

unsigned short D12_ReadCurrentFrameNumber(void)
{
	unsigned short i,j;

	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, 0xF5);
	i= inportb();
	j = inportb();

	i += (j<<8);

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;

	return i;
}

unsigned short D12_ReadChipID(void)
{
	unsigned short i,j;

	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, 0xFD);
	i=inportb();
	j=inportb();
	i += (j<<8);

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;

	return i;
}

unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
{
	unsigned char i, j;

	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, endp);
	if((inportb() & D12_FULLEMPTY) == 0) {
		if(bEPPflags.bits.in_isr == 0)
			ENABLE;
		return 0;
	}

	outportb(D12_COMMAND, 0xF0);
	j = inportb();
	j = inportb();

	if(j > len)
		j = len;

	for(i=0; i<j; i++)
		*(buf+i) = inportb();

	outportb(D12_COMMAND, 0xF2);

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;

	return j;
}

// D12_ReadMainEndpoint() added by V2.2 to support double-buffering.
// Caller should assume maxium 128 bytes of returned data.
unsigned char D12_ReadMainEndpoint(unsigned char * buf)
{
	unsigned char i, j, k = 0, bDblBuf = 1;

	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, 0x84);
	if( (inportb() & 0x60) == 0x60)
		bDblBuf = 2;

	while(bDblBuf) {
		outportb(D12_COMMAND, 4);
		if((inportb() & D12_FULLEMPTY) == 0)
			break;

		outportb(D12_COMMAND, 0xF0);
		j = inportb();
		j = inportb();

		for(i=0; i<j; i++)
			*(buf+i+k) = inportb();

		k += j;

		outportb(D12_COMMAND, 0xF2);

		bDblBuf --;
	}

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;

	return k;
}

unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
{
	unsigned char i;

	if(bEPPflags.bits.in_isr == 0)
		DISABLE;

	outportb(D12_COMMAND, endp);
	inportb();

	outportb(D12_COMMAND, 0xF0);
	outportb(D12_DATA, 0);
	outportb(D12_DATA, len);

	for(i=0; i<len; i++)
		outportb(D12_DATA, *(buf+i));

	outportb(D12_COMMAND, 0xFA);

	if(bEPPflags.bits.in_isr == 0)
		ENABLE;

	return len;
}

void D12_AcknowledgeEndpoint(unsigned char endp)
{
	outportb(D12_COMMAND, endp);
	outportb(D12_COMMAND, 0xF1);
	if(endp == 0)
		outportb(D12_COMMAND, 0xF2);
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合五月婷婷| 国产jizzjizz一区二区| 久久久久久久精| 欧美主播一区二区三区美女| 激情久久久久久久久久久久久久久久| 亚洲精品日日夜夜| 国产清纯美女被跳蛋高潮一区二区久久w| 在线免费观看日本一区| 国内成+人亚洲+欧美+综合在线 | 国产一区二区美女诱惑| 亚洲午夜久久久久久久久电影网 | 国产区在线观看成人精品| 欧美日韩电影一区| 99视频一区二区| 国产一区 二区| 日韩精品电影在线观看| 亚洲精品国产精华液| 国产欧美一区二区精品性色| 欧美人伦禁忌dvd放荡欲情| 91在线视频播放| 懂色av噜噜一区二区三区av| 久久99精品国产麻豆婷婷| 丝袜亚洲另类欧美| 亚洲综合激情另类小说区| 亚洲欧洲日产国产综合网| 国产色综合久久| 精品99999| 精品不卡在线视频| 欧美成人a∨高清免费观看| 欧美日韩国产综合一区二区三区| 在线影院国内精品| 91在线视频免费91| 91捆绑美女网站| 99久久综合精品| 91天堂素人约啪| 91在线云播放| 在线视频综合导航| 91成人看片片| 欧美久久久影院| 欧美乱妇一区二区三区不卡视频| 欧美色视频在线| 欧美日韩国产欧美日美国产精品| 欧美在线观看一二区| 欧美伊人精品成人久久综合97| 欧美亚洲综合久久| 欧美高清视频在线高清观看mv色露露十八 | 色婷婷综合久久久久中文一区二区 | 中文字幕在线不卡国产视频| 中文字幕国产一区| 中文字幕亚洲成人| 亚洲精品伦理在线| 亚洲一级二级三级| 日本欧美在线观看| 国产精品一区二区三区网站| 国产经典欧美精品| 99久久精品国产一区二区三区| 91免费看`日韩一区二区| 在线看国产一区二区| 欧美精品777| 972aa.com艺术欧美| 亚洲欧美在线高清| 欧美极品美女视频| 黄色小说综合网站| 日韩二区三区在线观看| 美女高潮久久久| 成人av小说网| 精品国产三级电影在线观看| 国产精品高潮久久久久无| 美国十次综合导航| 91久久精品一区二区三区| 国产精品污网站| 国产福利一区二区三区视频| 国产日韩欧美不卡| 日韩精品久久久久久| 91色婷婷久久久久合中文| 国产亚洲一二三区| 日韩成人午夜精品| 欧美无砖专区一中文字| 国产精品欧美一级免费| 国产资源精品在线观看| 91麻豆精品国产自产在线观看一区 | 精品国产乱码久久久久久牛牛| 亚洲自拍偷拍欧美| av一区二区三区四区| 久久免费精品国产久精品久久久久| 日本不卡视频在线观看| 欧美最猛黑人xxxxx猛交| 1区2区3区国产精品| 国产一区二区三区电影在线观看 | 国产欧美日韩三区| 久久99国产精品久久99果冻传媒| 欧美视频精品在线| 一区二区三区日韩| 91麻豆产精品久久久久久 | 极品少妇一区二区| 91精品免费在线观看| 天堂精品中文字幕在线| 欧美图区在线视频| 一区二区三区在线免费观看| 99久久综合狠狠综合久久| **网站欧美大片在线观看| 成人免费不卡视频| 中文字幕+乱码+中文字幕一区| 国产激情91久久精品导航 | 日韩一区欧美二区| 欧美老肥妇做.爰bbww视频| 亚洲综合免费观看高清在线观看| 91久久免费观看| 午夜精品久久久久久| 欧美另类久久久品| 美女诱惑一区二区| 久久精品无码一区二区三区| 国产精品乡下勾搭老头1| 久久精品水蜜桃av综合天堂| 懂色av中文一区二区三区| 一区2区3区在线看| 色哟哟国产精品| 伊人一区二区三区| 欧美日韩国产电影| 久久99国产精品久久| 久久久久久夜精品精品免费| 国产激情视频一区二区三区欧美| 国产精品盗摄一区二区三区| 色噜噜狠狠色综合欧洲selulu| 亚洲福利视频导航| 欧美成人vps| 成人福利视频在线| 亚洲国产精品久久人人爱| 51精品久久久久久久蜜臀| 久久99热国产| 中文字幕久久午夜不卡| 色久优优欧美色久优优| 天天综合色天天综合| 欧美精品一区二区久久久| 播五月开心婷婷综合| 亚洲.国产.中文慕字在线| 26uuu色噜噜精品一区| 成人h精品动漫一区二区三区| 亚洲综合在线免费观看| 欧美一区二区三区免费观看视频| 国产精品性做久久久久久| 亚洲精品日韩综合观看成人91| 91麻豆精品国产综合久久久久久| 国产麻豆精品久久一二三| 亚洲日本在线视频观看| 日韩亚洲欧美成人一区| 粉嫩13p一区二区三区| 亚洲成精国产精品女| 久久久久久久久久久久久夜| 在线亚洲高清视频| 国产一区二区三区四区五区入口| 亚洲免费毛片网站| 精品日本一线二线三线不卡| gogogo免费视频观看亚洲一| 五月激情六月综合| 亚洲国产成人午夜在线一区| 欧美色图一区二区三区| 国产呦萝稀缺另类资源| 亚洲伊人色欲综合网| 久久久高清一区二区三区| 欧美日韩夫妻久久| www.综合网.com| 久久精品国产在热久久| 亚洲男人电影天堂| 久久久天堂av| 欧美美女视频在线观看| 91在线视频在线| 国产麻豆成人精品| 视频一区二区欧美| 最新国产成人在线观看| 精品日韩99亚洲| 欧美区视频在线观看| 成人99免费视频| 精品一区精品二区高清| 亚洲成人av资源| 中文字幕在线不卡国产视频| 精品国产人成亚洲区| 91麻豆精品国产91久久久久久久久| 99久久99久久久精品齐齐| 国产综合色在线| 免费看欧美美女黄的网站| 亚洲一区二区三区中文字幕在线| 国产免费观看久久| 久久久久99精品国产片| 日韩一二三区不卡| 欧美色综合久久| 欧美最新大片在线看| 色综合天天综合狠狠| 成人精品一区二区三区中文字幕| 国产综合色在线| 久久成人综合网| 日本不卡在线视频| 日韩中文字幕av电影| 午夜精品久久久| 亚洲成人动漫在线观看| 亚洲国产一区二区三区| 亚洲国产精品久久艾草纯爱 | 国产永久精品大片wwwapp| 久久精品国产精品青草| 日本三级亚洲精品|