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

📄 hv.c

📁 接收PC机,并作用于DA8831,实现电压反馈控制
💻 C
字号:
#include <STC12C5410AD.h>

sbit CS = P3^3;

unsigned char v_output, da_data;

void Spi(unsigned char da_data)
{
	unsigned char da_dataH, da_dataL;
	bit step = 0;
	da_dataH = da_data >>8;
	da_dataL = da_data & 0x0FF;
	step = !step;	//step = 1
	CS = 0;
	SPSTAT = 0;
	SPDAT = da_dataH;
	while(step)
	{
		if(SPSTAT != 0)
		{
			step = !step;	//step = 0
		}
	}
	SPSTAT = 0;
	SPDAT = da_dataL;
	if(SPSTAT != 0)
	{
		CS = 1;
	}
}


void Adc_AD()
{
	ADC_CONTR = 0x8A;
}

void Adc_REF()
{
	ADC_CONTR = 0x8B;
}

void send_char_com()
{
	unsigned char i;
	i = 1;
	SBUF = inbuf1[i];
	TI = 0;
	while(i <= 3)
	{
		if(TI)
		{
			i++;
			SBUF = inbuf1[i];
			TI = 0;
		}
	}
}

void serial() interrupt 4 using 3
{
	unsigned char i;
	if(RI)
	{
		rebuf = SBUF;
		if(rebuf == 0x21)
		{
			com_bit[1] = rebuf;
			i = 1;
		}
		i++;
		com_bit[i] = rebuf;
		RI = 0;
	}
//	if(RI)
///	{
//		count3 = SBUF;
//		RI = 0;
//	}
//	else
///	{
//		count3 = 0x51;
//	} 
//	if(RI)
//	{
//		unsigned char ch;
//		RI = 0;
//		ch = SBUF;
//		if(ch > 127)
//		{
//			count3 = 0;
//			inbuf1[count3] = ch;
//			checksum = ch - 128;
//		}
//		else
//		{
//			count3++;
//			inbuf1[count3] = ch;
//			checksum ^= ch;
//			if((count3 = (INBUF_LEN - 1)) && (!checksum))
//			{
//				read_flag = 1;
//			}
//		}
//	} 
}

void msg()
{
	unsigned char checksum;
	if(com_bit[2] = 0x52)
	{
		checksum = com_bit[1] ^ com_bit[2] ^ com_bit[3] ^ com_bit[4];
	}
	if(com_bit[2] == 0x57)
	{
		checksum = com_bit[1] ^ com_bit[2] ^ com_bit[3] ^ com_bit[4] ^ com_bit[5];
	}
}

void Init()
{
	SPCTL = 0x0D1;
	SPSTAT = 0;

	P1M0 = 0x0C;//
	P1M1 = 0x0C;//
	EA = 1;
	//串口中断
	SCON = 0x40;//工作方式1
	TMOD = 0x21;//T1为两个8位的计数器,初值自动载入,T0为16位计数器,
	PCON = 0;
	ES = 1;//串行中断允许,
		
	TH1 = 0x0FD;//预设初值,
	ET1 = 1;//允许定时,计数器中断,
	TR1 = 1;//启动T1
}

void main(void)
{
	while(1)
	{
	}
}

⌨️ 快捷键说明

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