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

📄 msn.c

📁 AD采样测量电压.rar
💻 C
字号:
#include<reg52.h>//数码管动态显示电压值0V~1.33V(不知道什么原因,电压再大就又从0开始)
#define uint unsigned int
#define uchar unsigned char

sbit beeper=P2^0;
sbit led=P1^3;
sbit SEGSEL1 = P1^4;
sbit SEGSEL2 = P1^5;
sbit SEGSEL3 = P1^6;
sbit SEGSEL4 = P1^7;
sbit ADCCS = P2^4;
sbit ADCOUT = P2^3;
sbit SCLK = P2^6;

//共阴数码管段码 
uchar code dat[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,//0,1,2,3,4,5
0x7d,0x07,0x7f,0x6f,0x77,0x7c,//6,7,8,9,a,b
0x39,0x5e,0x79,0x71   //c,d,e,f
};
//带有小数点的段码	
uchar code dat1[]={
0xbf,0x86,0xdb,0xcf,0xe6,0xed,//0,1,2,3,4,5
0xfd,0x87,0xff,0xef,0xf7,0xfc,//6,7,8,9,a,b
0xb9,0xde,0xf9,0xf1   //c,d,e,f
};	


void delay(uint);
void delay1();
void init();
void display(uint);
uchar adc();


void main(void)
{
	int j,q=0;
	float p ,m,n;
	int   a,b,c,d,e,f  ;
	init();

	while(1)
	{
//		led=1;
      	q=adc();
//		P0=q;

//电压数据处理
		p=(q*1.35)/256;
		m=p;n=p ;
		a=(int)(p/10);
		b=((int)p)%10;
		c=((int)(m*10))%10;
		d=((int)(n*100))%10;
		e=((int)(n*1000))%10;
		f=e+10*d+100*c+1000*b;
//      显示数据;
		for(j = 0; j < 50; j++)
		{
			display(f);
		}
		
	}
}

void init()
{
	P0=0;//对P0口初始化
	P1=0;//对P1口初始化,关led灯,关数码管
	beeper=0;//关蜂鸣器
}

//延时z ms时间
void delay(uint z)
{
	uint x,y;
	for(x=0;x<z;x++)
		for(y=0;y<1000;y++);
}

//延时14us时间
void delay1()
{
	uint m;
	for(m=0;m<4;m++);	
}

//四位数码管显示
void display(uint n)
{
	uint ge=0,shi=0,bai=0,qian=0;
	qian=n/1000;
	bai=n%1000/100;
	shi=n%100/10;
	ge=n%10;
	//显示个位数据
	SEGSEL1 = 0;
	SEGSEL2 = 0;
	SEGSEL3 = 0;
	SEGSEL4 = 1;
	P0=dat[ge];
	delay(2);
	//显示十位数据
	SEGSEL1 = 0;
	SEGSEL2 = 0;
	SEGSEL4 = 0;
	SEGSEL3 = 1;
	P0=dat[shi];
	delay(2);
	//显示百位数据
	SEGSEL1 = 0;
	SEGSEL3 = 0;
	SEGSEL4 = 0;
	SEGSEL2 = 1;
	P0=dat[bai];
	delay(2);
	//显示千位数据
	SEGSEL2 = 0;
	SEGSEL3 = 0;
	SEGSEL4 = 0;
	SEGSEL1 = 1;
	P0=dat1[qian];
	delay(2);
}

//AD转换过程
uchar adc(void)
{
	uchar rbyte,i;
	//置IO口为高,输入状态
	ADCOUT = 1;
	SCLK = 0;
	//启动转换
	ADCCS = 0;
	delay1();
	for(i = 0; i < 8; i++)
	{
		if(ADCOUT) rbyte += 1;
		rbyte <<= 1;
		SCLK = 1;
		delay1();
		SCLK = 0;
	}
	//开始下次转换
	ADCCS = 1;
	return(rbyte);
}

⌨️ 快捷键说明

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