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

📄 main.c

📁 应用于陵阳单片的AD1674,
💻 C
字号:
#include <spce061a.h>
extern  void write(int,int);
extern void delay(int);
void AD_inti()
{
	*P_IOA_Dir|=0xf000;                 //A0-A11为12位数据输入    A12-A15为CE.R/C.A0.CS
	*P_IOA_Dir&=0xf000;                 //ce为片选信号 
	*P_IOA_Attrib|=0xf000;              // 
	*P_IOA_Attrib&=0xf000;              //
    *P_IOA_Data=0x0000;
    
    *P_IOB_Dir|=0x7fff;                   //B15为STS 上拉方式    B14为12/8
    *P_IOB_Dir&=0x7fff; 
    *P_IOB_Attrib|=0x7fff;
    *P_IOB_Attrib&=0x7fff;
    *P_IOB_Data|=0x8000;
    
}
void TEP_inti(void)
{
	*P_IOA_Dir=0xf000;                 //A0-A11为12位数据输入    A12-A15为CE.R/C.A0.CS
	*P_IOA_Attrib=0xf000;
    *P_IOA_Data=0x0000;
    
    *P_IOB_Dir&=0x7fff;                   //B15为STS 上拉方式    B14为12/8
    *P_IOB_Dir|=0x4000;   
    *P_IOB_Attrib&=0x7fff;
    *P_IOB_Attrib|=0x4000;
    *P_IOB_Data|=0x8000;
    *P_IOB_Data&=0xbfff;
}
void converter()
{
	*P_IOA_Data&=0xefff;               //关闭转换   CE=0
	*P_IOA_Data&=0x7fff;            //片选  A15置0  CS=0
	*P_IOA_Data&=0xdfff;             //转换  A13置0  R/C=0
	*P_IOA_Data&=0xbfff;             //12位转换    A0=0
	*P_IOA_Data|=0x1000;             //启动转换  cs=1
	 delay(1);                         //等待STS变高
	*P_IOA_Data&=0xefff;               //关闭转换   CE=1	                            
}
int read_data()
{
     int AD_data;
	*P_IOA_Data&=0xefff;               //关闭转换   CE=0
	*P_IOA_Data&=0x7fff;            //片选  A15置0  CS=0
	*P_IOA_Data|=0x2000;             //读数  A13置1  R/C=1
	                                 //在12位时   A0任意状态                             
	*P_IOA_Data|=0x1000;             //启动读      CE=1
	
//	AD_data=*P_IOA_Data;              //?????????????????	
	delay(1);
	*P_IOA_Data&=0xefff;               //关闭   CE=0
	AD_data=*P_IOA_Data;                //????????????
	return(AD_data);
}
void dis_AD(int ADnum1)
{
	int thou1,hund1,ten1,one1,volt1;
	float volt;
	volt=((float)ADnum1/4095)*3300;
	volt1=(int)volt;
	thou1=volt1/1000;
	hund1=(volt1%1000)/100;
	ten1=(volt1%100)/10;
	one1=volt1%10;
	write(0x0001,one1);
	write(0x0002,ten1);
	write(0x0003,hund1);
	write(0x0004,thou1);
}


void main(void)
{ 
	int ADnum;
	
	AD_inti();
    
    while(1)
    {
    	converter();
    	while(1)
    	{
    		if((*P_IOB_Data|0x7fff)==0x7fff)
    		{
    			ADnum=read_data();
    			break;
    		}
    	}
    	
   	    dis_AD(ADnum);
    	delay(200);
    }
}













⌨️ 快捷键说明

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