max541.c

来自「51单片机及其C语言程序开发实例第9章节」· C语言 代码 · 共 51 行

C
51
字号
#include <reg51.h>
#include "MAX541.h"

//短延时函数:ShortDelay()
void nNop(uchar i)
{
	for(;i>0;i--) ;
	}
	
//长延时函数:LongDelay()
void LongDelay(uint i)
{
	uint j;
	for(;i>0;i--)
		{ for(j=1000;j>0;j--);}
	}
	
//向SPI写16bits数据函数:SPIWrite()
void SPIWrite(int temp)
{
	uint i;
	for(i=0;i<16;i++)
	{
		PinDIN = (bit) (temp & 0x8000);
		SetSCLK(0);
		temp <<= 1;
		nNop(1);
		SetSCLK(1);
		nNop(1);
		}
	}

//将电压值转换为对应的12bits数字量函数:VoltToData()
int VoltToData(float out_volt)
{
	int temp;
	temp = (int)((out_volt*65536) / (REF_VOLT)); 
	return(temp & 0xffff);
	}

//设置DAC输出函数:SetMAX541()
void SetMAX541(float temp)
{
	int Data;
	Data = VoltToData(temp);
	SetCS(0);
	SPIWrite(Data); 
	nNop(2);
	SetCS(1);
	nNop(2);
	}

⌨️ 快捷键说明

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