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

📄 gnmk.c

📁 基于spce061a电压表
💻 C
字号:
#define uchar unsigned char
#define uint unsigned int
#include"SPCE061A.h"

char *F2S(double d, char* str)
{
  char str1[20];
  int j=0,k,i;
  i = (int)d; 
  while(i>0)
  {
    str1[j++] = i%10+'0';
    i /= 10;
  }
  for(k=0;k<j;k++)
    str[k] = str1[j-1-k];

  str[j++] = '.';
  d -= (int)d;
  for(i=0;i<7;i++)
  {
    d *= 10;
    str[j++] = (int)d+'0';
    d -= (int)d;
  }
  //while(str[--j]=='0');
    //str[++j] = '\0';
  return str;
}

void Delay(int l)
{
	int i,j;
	for(i=0;i<l;i++)
	{
		for(j=0;j<400;j++);
	}
	*P_Watchdog_Clear=1;	

}

void write_com(uchar com)
{
	*P_IOB_Data &= 0x0000;
	*P_IOB_Data &=~0x0200;
	*P_IOB_Data |=com;
	*P_IOB_Data |=0x0400;
	Delay(1);
	*P_IOB_Data &= ~0x0400;
	*P_IOB_Data &= 0x0000;	
}

void write_data(uchar dat)
{
	*P_IOB_Data |=0x0100;
	*P_IOB_Data &=~0x0200;
	*P_IOB_Data |=dat;
	*P_IOB_Data |=0x0400;
	Delay(1);
	*P_IOB_Data &=~0x0400;
	*P_IOB_Data &=0x0000;
}

uint turnmath(uchar m)
{
	uchar x,c;
	uint n[10],i,add=0,t;
	c=m;
	c=c>>6;
	x=c;
	for(i=0;i<10;i++)
	{
		n[i]=x%2;
		x=x/2;
	}
	t=1;
	for(i=0;i<10;i++)
	{
		add=add+n[i]*t;
		t=t*2;
	}
	return add;
} 

uchar ad()
{
	uchar ADValue=0;	
	*P_ADC_MUX_Ctrl=0x0001;
	*P_ADC_Ctrl|=0x0001;
	Delay(2);
	while(!(*P_ADC_MUX_Ctrl&0x8000));
	ADValue=*P_ADC_MUX_Data;
	return ADValue;
}

void main()
{
	uchar r1,f[20];
	uint r=0,n,i;
	float v,c;
	r1=0x07ff;
	*P_IOA_Dir=0x0000;
	*P_IOA_Attrib=0x0001;
	*P_IOB_Dir=r1;
	*P_IOB_Attrib=r1;
	write_com(0x0038);
	Delay(1);
	write_com(0x0001);
	Delay(1);
	write_com(0x000c);
	Delay(1);
	write_com(0x0006);
	Delay(1);
	write_com(0x0080+0x0000);
	while(1)
	{	
                                        
		r=ad();
		c=turnmath(r);
		v=c/1023*3.3;
		F2S(v,f);
		for(n=0;n<8;n++)
		{			
			write_data(f[n]);
			Delay(1);
		}
		Delay(5000);
	}		
}

⌨️ 快捷键说明

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