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

📄 ds2401.c

📁 LPC213x系列启动代码,支持ADS1.2编译器,已成功运行
💻 C
字号:
#include "config.h"

UCHAR ucUnique[8];

void DelayUS(UWORD x)
{
	UWORD i,j;
	
	x = x + x / 30;
	for(i = 0; i < x; i++) 
	{
		for(j = 0; j < 6; j++) ;
	}
}//void DelayUS(WORD x)

void WriteOne(void)
{
	SET_LINE_OUT();
	
	SET_LINE_LOW();
	DelayUS(6);
	
	SET_LINE_HIGH();
	DelayUS(64);	
}//void WriteOne(void)

void WriteZero(void)
{
	SET_LINE_OUT();
	
	SET_LINE_LOW();
	DelayUS(64);
	
	SET_LINE_HIGH();
	DelayUS(6);
}//void WriteZero(void)

CHAR ReadBit(void)
{
	CHAR temp;
	
	SET_LINE_OUT();
	
	SET_LINE_LOW();
	DelayUS(6);
	
	SET_LINE_HIGH();
	DelayUS(9);
	
	SET_LINE_IN();
	if(READ_LINE_DATA()) temp = 1; else temp = 0;
	DelayUS(64);
	
	return temp;
}//CHAR ReadBit(void)

CHAR ResetDS2401(void)
{
	CHAR temp;
	
	SET_LINE_OUT();
	
	SET_LINE_LOW();
	DelayUS(480);
	
	SET_LINE_HIGH();
	DelayUS(70);
	
	SET_LINE_IN();
	if(READ_LINE_DATA()) temp = 1; else temp = 0;
	
	return temp;
}//CHAR ResetDS2401(void)

void SendReadCmd(void)
{
	CHAR temp;
	CHAR i;
	
	temp = 0x33;
	for(i = 0; i < 8; i++)
	{
		if(temp & 0x01) WriteOne(); else WriteZero();
		temp = temp >> 1;
	}
}//void SendReadCmd(void)

void ReadUnique(void)
{
	UCHAR i,j,temp;
	
	for(i = 0; i < 8; i++)
	{
		temp = 0;
		for(j = 0; j < 8; j++)
		{
			if(ReadBit()) temp |= (1 << j); else temp &= ~(1 << j);			
		}
		ucUnique[i] = temp;
	}
}//void ReadUnique(void)

void ReadDS2401(void)
{
	if(ResetDS2401() == 0)
	{
		DelayUS(410);
		SendReadCmd();
		ReadUnique();
	}
}//void ReadDS2401(void)






⌨️ 快捷键说明

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