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

📄 main.c

📁 AD7705驱动程序
💻 C
字号:
#include "p89v51.h"
#include "AD7705.h"

sbit X5645CS = P1^6;

unsigned char Send_flag;      	//1未发送完  0发送完成1帧
unsigned char send_buf[10];		//发送数组
/*********************************************** 
功能:       串口中断 	         
************************************************/
void ser_interrupt() interrupt 4 using 2 /*串口中断*/
	{    
   	static unsigned char send_byte=0;
   	
   	if(TI)
   		{
     	TI=0;
	 	send_byte++;
	 	if(send_byte>7)
     		{
        	send_byte=0;
        	Send_flag=0;
     		}
		else SBUF=send_buf[send_byte];
   		}
   		    
	}
/************************************************
功能:延时 NUM*200uS         
************************************************/
void delay(unsigned int NUM)			
	{
	unsigned int i;
	unsigned char j;
	for(i=NUM;i>0;i--)
		for(j=200;j>0;j--);		 
	}
/************************************************
功能:主函数          
************************************************/
void main()
{
unsigned char i,stat=0x03;
unsigned int temp,ADcode1,ADcode2;

	delay(5);
	PCON=0x80;// 波特率翻倍
	TMOD=0x21;// 定时器0 16位模式 定时器1 为波特率发生器
	TCON=0x55;// 开启定时器
	TH1 =0xFF;// 定时器1波特率为57600  0xFF (11.0592)
	TL1 =0xFF;
	SCON=0x50;// 串行口模式1
	IEN0=0x90;
	X5645CS = 1;
	delay(1000);

	adc_rest();
	adc1_init(ADC_SELF,ADC_GAIN_128,ADC_BIPOLAR,ADC_50);
	adc2_init(ADC_SELF,ADC_GAIN_128,ADC_BIPOLAR,ADC_50);
		
	while(1)
	{
		temp = adc1_read_value(1);
		if(temp)
		{
			ADcode1 = temp;
			stat&=0x0e;	
		}
		temp = adc2_read_value(1);
		if(temp)
		{
			ADcode2 = temp;
			stat&=0x0d;	
		}
		if(Send_flag==0) 		//如果串口发送空闲
		{
			if(stat==0)
			{
				send_buf[6]=0xaa;
				send_buf[5]=ADcode2;
				send_buf[4]=ADcode2>>8;				
				send_buf[3]=ADcode1;
				send_buf[2]=ADcode1>>8;				
				send_buf[1]=0x7f;
				send_buf[0]=0xfe;

				send_buf[7]=0;
				for(i=0;i<7;i++)send_buf[7] += send_buf[i];	
					
				SBUF=send_buf[0];	//开始发送
				Send_flag=1;
			stat=0x03;
			}
		}
	}	
}

⌨️ 快捷键说明

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