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

📄 main.c

📁 At89s52单片机与max527的da程序
💻 C
字号:

#include "main.h"
#include "reg52.h"
#include "absacc.h"
#define uchar unsigned char
#define uint unsigned int

#define AdL8 XBYTE[0xFEFF]		// 低8位
#define AdH4 XBYTE[0xFDFF]		// 高4位	
sbit LDAC = P1^0;				// MAX527装载DAC寄存器控制脚LDAC
sbit A0 = P1^1;					// DAC通道选择脚A0
sbit A1 = P1^2;					// DAC通道选择脚A1
	
unsigned char Channel_Msb;
unsigned char Channel_Lsb;
unsigned char Buffer_Key;
unsigned int DA_Input;
float DA_Output;
			



 
/********功能:定时中断程序定时对外部电压进行数据采集并进行数据处理**********/

void Timer0(void) interrupt 1 using 1
{
    TR0 = 0;
    Collection_Data();
   	Process_Data();
	TL0 = 0x00;	    //定时65535us
    TH0 = 0x00;
    TR0 = 1;
}
 
/****************初始化程序对51单片机初始化******************/

void Timer0_Initial()
{
    TMOD = 0x01;    //使用定时器0,工作方式1
    EA = 1;
    ET0 = 1;		//边缘触发方式
    TL0 = 0x00;	    //定时65535us
    TH0 = 0x00;
    TR0 = 1;
}

 
 
/*************数据处理完成采集的数据的十六进制转换为十进制的形式*************/

void Process_Data()
{
    uint Digit_Data;
	DA_Input=AdH4<<8+AdL8;
   	Digit_Data =((Channel_Msb&0x0f)<<8) + Channel_Lsb;
	DA_Output=(Digit_Data / 4096.0)*2.5;
}  



 
/*************定时采集对197进行控制,向197的控制字寄存器中写入控制字,对外围电压信号进行采集*************/

void Collection_Data()
{
    uchar i;
   if(136==Buffer_Key)		 /* 选择A输入寄存器,即选择A通道 */
   	 { 
	  A0 = 0;
	  A1 = 0;
	 }
   if(132==Buffer_Key)		 /* 选择B输入寄存器,即选择B通道 */
   	 {
	  A0 = 0;
	  A1 = 1;
	 }
   if(130==Buffer_Key)		 /* 选择C输入寄存器,即选择C通道 */
   	  {
	   A0 = 1;
	   A1 = 0;
	  }
   if(129==Buffer_Key)		  /* 选择D输入寄存器,即选择D通道 */
   	{
	 A0 = 1;
	 A1 = 1;
	 }
  
  	LDAC = 1;			// 将LDAC置高
	
	Channel_Lsb=AdL8;		// 低8位数据装入

	for (i=0;i<250;i++)	    // 适当延时
	 	i=i;
	
	Channel_Msb=AdH4;		// 高4位数据装入
	
	LDAC = 0;	/* 将LDAC置低,输入寄存器数据转入DAC寄存器,模拟输出端VOUTA输出模拟信号*/		

}





/***************************主程序开始**************************/

void  main()		   
  {

	 DISPInitial();
     Timer0_Initial();
    while(1)
    {	Buffer_Key=Key_Scan();
        DisplayLCD();
    }    
  }


⌨️ 快捷键说明

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