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

📄 cat5113.c

📁 RM0038红外传感器接收电视机摇控的源码
💻 C
字号:
#include "CAT5113.h"
#include "Eprom.h"

code uchar MaxA = 93;
code uchar MinA = 50;
uchar xdata CAT_A = 93;
uchar xdata CAT_B = 100;

#define CS1	P1_4
#define CS2	P1_5
#define INC	P1_6
#define U_D	P1_7

uchar Get5113A(void)
{
	return CAT_A;
}
uchar Get5113B(void)
{
	return CAT_B;
}

void Set5113A(uchar Cat5113)
{
	if((Cat5113 >= MinA)&&(Cat5113 <= MaxA))
		CAT_A = Cat5113;
}

void CAT5113(uchar pos)
{
	uchar xdata i;
	for(i = 0; i < 110; i++)
	{
		INC = 0;
		delay(1);
		INC = 1;
	}
	U_D = 0;
	delay(3);
	for(i = 0; i < pos; i++)
	{
		INC = 0;
		delay(1);
		INC = 1;
	}
	U_D = 1;
}
	
void CAT5113A(uchar pos)
{
	CS1 = 0;				//选中
	delay(3);
	CAT5113(pos);
	delay(3);
	CS1 = 1;
}

void CAT5113B(uchar pos)
{
	CS2 = 0;				//选中
	delay(3);
	CAT5113(pos);
	delay(3);
	CS2 = 1;
}

//获得模拟电压
float GetPos(uchar x1, uchar x2)
{
	uchar xdata r1 = x1;
	float r2 = 0.0;
	if(!(x1 > 0&&x1 < 100&&x2 > 0&&x2 <= 100))
	{
		return 0.0;
	}
	r2 = 1.0/(1.0/(100.0 - x1) + 1.0/(float)x2);
	return (1.0/((r1 + r2)/r1)*5.0);
}

void CAT5113Change(char Pos)
{
	float xdata v1 = 0.0,v2 = 0.0;
	char xdata i = 0;

	ReadEprom(30, &CAT_A, 1);
	ReadEprom(31, &CAT_B, 1);
	if(CAT_A > MaxA)CAT_A = MaxA;
	if(CAT_A < MinA)CAT_A = MinA;
	if(CAT_B > 100)CAT_B = 100;
	if(CAT_B < 1)CAT_B = 1;
	if(Pos >= 0)
	{
		for(i = 0; i < Pos; i++)
		{
			v1 = GetPos(CAT_A, CAT_B);
			v2 = GetPos(CAT_A + 1,100);
			if(v2 <  v1)
			{
				if(CAT_A < 99)
					CAT_A++;
				CAT_B = 100;
			}else
			{
				CAT_B--;
			}
		}
	}else
	{
		for(i = Pos; i < 0; i++)
		{
			if(CAT_B >= 100)
			{
				if(CAT_A > 2)
				{
					v2 = GetPos(CAT_A,100);
					CAT_A--;
					v1 = GetPos(CAT_A,CAT_B);
					while(v1 < v2)
					{
						CAT_B--;
						v1 = GetPos(CAT_A, CAT_B);
					}
				}
			}else
			{
				CAT_B++;
			}
		}
	}
	
	CAT5113A(0);
	CAT5113B(CAT_B);
	CAT5113A(CAT_A);
	WriteEprom(30, &CAT_A, 1);
	WriteEprom(31, &CAT_B, 1);
}

void StopCAT5113()
{
	CAT5113A(0);
	CAT5113B(100);
	CAT5113A(100);
}

⌨️ 快捷键说明

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