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

📄 hal.c

📁 本程序是基于单片机C8051F020上使用SL811 USB 总线接口实现检测U 盘的功能。插上U 盘
💻 C
字号:
#include "common.h"
//c

//unsigned char idata ttt[20];
extern unsigned char xdata DBUF[BUFFER_LENGTH];

unsigned char SL811Read(unsigned char a)
{  
	unsigned char nVal;
	unsigned char xdata *exAddress;
	exAddress = SL811_ADDR_PORT;
	//SL811_CS=0;//xxg
	*exAddress=a;
	exAddress=SL811_DATA_PORT;
	nVal = *exAddress;
	//SL811_CS=1;//xxg
	return nVal;
}

void SL811Write(unsigned char a, unsigned char d)
{  
	unsigned char xdata *exAddress;
	exAddress = SL811_ADDR_PORT;
	//SL811_CS=0;
	*exAddress=a;
	exAddress=SL811_DATA_PORT;
	*exAddress = d;
	//SL811_CS=1;
}

void SL811BufRead(unsigned char addr, unsigned char *s, unsigned char c)
{	
	unsigned char i;
	unsigned char xdata *exAddress;
	exAddress=SL811_ADDR_PORT;
	//SL811_CS=0;
	*exAddress = addr;
	exAddress=SL811_DATA_PORT;
	for(i=0;i<c;i++)
		{
		*s++ = *exAddress;
		}
	//SL811_CS=1;
}

void SL811BufWrite(unsigned char addr, unsigned char *s, unsigned char c)
{	
	//unsigned char temp;
	unsigned char xdata *exAddress;
	exAddress = SL811_ADDR_PORT;
	
	//SL811_CS=0;
	*exAddress = addr;
	exAddress=SL811_DATA_PORT;
	while (c--) 
		{
		*exAddress = *s++;
		}
	//SL811_CS=1;
	
}
/*
unsigned char RamRead(unsigned short a)
{  
	unsigned char nVal;
	unsigned char xdata *exAddress;
	exAddress = a;
	nVal = *exAddress;
	return nVal;
}

void RamWrite(unsigned short a, unsigned char d)
{  
	unsigned char xdata *exAddress;
	exAddress = a;
	*exAddress = d;
}
*/

unsigned short WordSwap(unsigned short input)
{
	return(((input&0x00FF)<<8)|((input&0xFF00)>>8));
}

void DelayMs(unsigned char nFactor)
{
	unsigned char i;
	unsigned int j;

	for(i=0; i<nFactor; i++)
		{		
		for(j=0;j<1000;j++)
		          j=j;	
		}
}
void DelayUs(unsigned char nFactor)
{
	unsigned char i;
	unsigned int j;

	for(i=0; i<nFactor; i++)
		for(j=0;j<10;j++)
		          j=j;
}
unsigned long SwapINT32(unsigned long dData)
{
    dData = (dData&0xff)<<24|(dData&0xff00)<<8|(dData&0xff000000)>>24|(dData&0xff0000)>>8;
	return dData;
}

unsigned int SwapINT16(unsigned int dData)
{
    dData = (dData&0xff00)>>8|(dData&0x00ff)<<8;
	return dData;
}

⌨️ 快捷键说明

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