hal.c

来自「本程序是基于单片机C8051F020上使用SL811 USB 总线接口实现检测U」· C语言 代码 · 共 117 行

C
117
字号
#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 + =
减小字号Ctrl + -
显示快捷键?