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

📄 max539c.c

📁 单片机C语言教程
💻 C
字号:
/******************************************************************/
/* 这是MAX539 C51语言程序-不是调用汇编的,文件名为MAX539C.C       */
/* 功能:本程序是用C51语言编写的实现MAX539芯片的D/A转换程序。     */
/*      程序中转换的十六进制值依次为0x0fff,0x07ff,0x03ff,0x01ff,0 */
/*      VOUT脚输出转换后的模拟信号,它既可用万用表的直流电压档测试*/
/*      ,也可用示波器的探头点在此处观察。                         */
/******************************************************************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

void delay1(uint x);
uchar i;

sbit DIN= P1^0;
sbit SCK= P1^1;
sbit CS = P1^2;
sbit DOUT=P1^3;

void delay1(uint x)        //延时程序
{
 uchar tw;
 while (x-->0){
 for (tw=0;tw<125;tw++){;}
 }
}

void send(uchar ch)       // 发送数据子程序,ch为要发送的数据
{
	uchar BitCounter = 8; 	//位数控制
	uchar tmp;	            //中间变量控制
  bit C;
	do
	{
		tmp = ch;
		SCK = 0;
		if ((tmp&0x80)==0x80) //如果最高位是1
			C = 1;
		else
			C = 0;
		DIN=C;
		SCK = 1;
		tmp = ch<<1;				  //左移
		ch = tmp;
		BitCounter--;
	}
	while(BitCounter);
	SCK = 0;
}
void main()                   //主程序
{
      SP=0xcf;
      delay1(1000);
      EA=0;
      CS=1;
      CS=0;
      send(0x0f);					    // 将十六进制值0x0fff送MAX539芯片作D/A转换
    	send(0xff);
    	CS=1;
      delay1(1000);           // 延时
      CS=0;
      send(0x07);					    // 将十六进制值0x07ff送MAX539芯片作D/A转换
    	send(0xff);
    	CS=1;
      delay1(1000);           // 延时
      CS=0;
      send(0x03);					    // 将十六进制值0x03ff送MAX539芯片作D/A转换
    	send(0xff);
    	CS=1;
      delay1(1000);           // 延时
      CS=0;
      send(0x01);					    // 将十六进制值0x01ff送MAX539芯片作D/A转换
    	send(0xff);
    	CS=1;
      delay1(1000);           // 延时
      CS=0;
      send(0x00);					    // 将十六进制值0x0000送MAX539芯片作D/A转换
    	send(0x00);
    	CS=1;
      delay1(1000);           // 延时
      while(1);
}

⌨️ 快捷键说明

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