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

📄 dacmax531.c

📁 0-30v
💻 C
字号:
#include"reg52.h"
#include"IOCfg.c"
#include"delay.h"
#include"Config.h"
#include "intrins.h"
#include"DACMAX531.h"

#define DBUS P0

static uchar data_574;  //74574输出数据 
//static uchar data_5741 = 0x10;//------------加了临时保存数据的寄存器才避免了DA操作时干扰背光  


/************************************************************************************
  
         刷新574数据(U10)
   
************************************************************************************/
void DBUS1(uchar i)
{
	DBUS = i;
	clk_574_1 = 0;	
    clk_574_1 = 1;	
}

/************************************************************************************
                              DAC输出转换函数 
************************************************************************************/
void dac(uint c)
{
	uint i; 
	RS  =  1;			
	RW  =  0;
	   
	data_574 &= 0xfe;
	DBUS1(data_574);
	for(i = 0x8000;i > 0;i >>= 1)
	{
		if((c & i) == 0)
		{
			data_574 &= 0xFB;	 
		}	
		else
		{
			data_574 |= 0x04;	  
		} 
		DBUS1(data_574);
				 
		data_574 &= 0xFD;
		DBUS1(data_574);
		data_574 |= 0x02;
		DBUS1(data_574);
	}
	data_574 |= 0x01;
	DBUS1(data_574);
	if(c <= 0x06c9) 
	{
		RL_ONOFF(0);  
	}
	else 
	{
		RL_ONOFF(1); 
	}
}

/************************************************************************************
                   继电器切换 1: 高压吸合   0: 低压吸合     
************************************************************************************/
void  RL_ONOFF(bit i)
{

	RS  =  1;			
	RW  =  0;
	   
    if(i==1)
	{
		data_574  |= 0x20;
		data_574  &= 0xbf;
		DBUS1(data_574);
	}
	else
	{
		data_574  |= 0x40;
		data_574  &= 0xdf;
		DBUS1(data_574);
	}
}

/************************************************************************************
                   蜂鸣器    1: 开   0: 关      
************************************************************************************/
void  BELL_ONOFF(bit i)
{

	RS  =  1;			
	RW  =  0;	
	   
    if(i == 0)
	{
		data_574  |= 0x10;
		DBUS1(data_574);
	}
	else
	{
		data_574  &= 0xef;
		DBUS1(data_574);
	} 
}
/************************************************************************************
                   实际输出电压转换成DA输出值 ,返回整形数        
************************************************************************************/
uint conver(float x)
{
    float temp;
	if(x < 7.500)
	{
		x = x + 0.006;
	}
	temp = 14.975 / 0x0745;
	temp = x / temp;
	return(uint)temp;
}

/************************************************************************************
                   控制背光开关 1:开   0:关         
************************************************************************************/
void  LED_ONOFF(bit i)
{
	if(i==1)
	{
		data_574  |= 0x80;
		DBUS1(data_574);
	}
	else
	{
		data_574  &= 0x7f;
		DBUS1(data_574);
	} 
}

/************************************************************************************
                   输出补偿调整          

void change(void)
{
	
}
************************************************************************************/




⌨️ 快捷键说明

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