max536.c

来自「DA转换芯片max536的初始化程序」· C语言 代码 · 共 73 行

C
73
字号
#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 + =
减小字号Ctrl + -
显示快捷键?