📄 dacmax531.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 + -