📄 max536.c
字号:
#include <reg52.h>
#define uchar unsigned char
#define unit unsigned int
sbit sdi=P3^2;
sbit sck=P3^1;
sbit cs=P3^0;
void writemax536(unit);
void csmax536l(void);
void csmax536h(void);
//DAC输出函数DA_OUT(通道号,输出号)
void da_out(uchar num,unit value)
{
switch(num)
{
case 1:
csmax536l(); //DAC A输出
writemax536(value|0x1000);
csmax536h();
break;
case 2: //DAC B输出
csmax536l();
writemax536(value|0x5000);
csmax536h();
break;
case 3: //DAC C输出
csmax536l();
writemax536(value|0x9000);
csmax536h();
break;
case 4: //DAC D输出
csmax536l();
writemax536(value|0xf000);
csmax536h();
break;
}
}
//向max536写一个字
void writemax536(unit sidata)
{
char n,i;
unit si_on; //定义数据逻辑尺
si_on=0x8000; // 初始化逻辑尺
for(n=0;n<16;n++)
{
sck=0; //设置sck为低电平
for(i=0;i<10;i++); //延时
sdi=sidata&si_on; //数据输出
for(i=0;i<10;i++); //延时
sck=1; //设置sck位高电平
si_on=si_on>>1; //逻辑尺右移
}
}
// max536的cs置低
void csmax536l(void)
{
cs=0;
}
// max536的cs置高
void csmax536h(void)
{
cs=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -