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

📄 tlv5638.c

📁 4X4矩阵键盘+LCD1602显示源码及编程文件
💻 C
字号:
//#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define fastsp 1
#define slowsp 0
#define pwr_down 1
#define pwr_on 0
#define dac_buffer 0
#define buffer 1
#define daca 2
#define control 3
#define external 0
#define in_1024 1
#define in_2048 2

#define setcs(x) (pincs=(x)?1:0)
#define setsclk(x) (pinsclk=(x)?1:0)

sbit pindin=P2^5;
sbit pinsclk=P2^6;
sbit pincs=P2^7;


void nnop(uchar i)
{for(;i>0;i--);}

void longdelay(uint i)
{
	uint j;
	for(;i>0;i--)
		{for(j=1000;j>0;j--);}

}

void spiwrite(int temp)
{
	uint i;
	setcs(0);
	for(i=0;i<16;i++)
		{
			pindin=(bit)(temp&0x8000);
			setsclk(1);
			temp<<=1;
			nnop(1);
			setsclk(0);
			nnop(1);

		}
		setcs(1);
}

int volttodata(uint ref,uint ex_ref,float out_volt)
{
	int temp;
	switch(ref)
	{
		case external :temp=(int)((out_volt*4096)/(2*ex_ref));break;
		case in_1024 :temp=(int)((out_volt*4096)/(2*1));break;
		case in_2048 :temp=(int)((out_volt*4096)/(2*2));break;
		default :break;
	}
	return(temp&0xfff);
}

void seta(uint speed,uint ref,uint ex_ref,float temp)
{
	int modcmd;
	int data1;
	modcmd=0x9000|(speed<<14)|(ref);
	data1=volttodata(ref,ex_ref,temp);
	spiwrite(modcmd);
	nnop(10);
	spiwrite(data1);

}

/*void main()
{
	pindin=0;
	pincs=0;
	pinsclk=0;
	while(1)
	{
		seta(fastsp,external,12,6.51);
		longdelay(10);
	}

} */

⌨️ 快捷键说明

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