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

📄 adc_0804.c

📁 自己写的几个ADC抓换与DAC转换程序
💻 C
字号:
#include <reg52.h>
#include <absacc.h>

#define adc			XBYTE[0xb000]
#define	led_wei		XBYTE[0x8000]
#define	led_duan	XBYTE[0x9000]

unsigned char idata adc_val[31];
unsigned char code	ledseg[]={
 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,  //0-7
 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,  //8-15
 0xFF          };
unsigned char code ledsel[]={0x01,0x02,0x04,0x08};
unsigned char  adc_dat[4];

void	delayms(unsigned int t)
{
	unsigned char i;
	while(--t)
		for(i=0;i<125;i++)
		{ ; }
}

void adc_start(void)
{
	adc=0xff;
}

unsigned char adc_change(void)
{
	unsigned char V;
	adc_start();
	while(INT0==1);
	V=adc;
	return(V);
}

void adc_bcd(void)
{
	 float	x;
	 unsigned char i, aver;
	 unsigned int sum=0;
	 for(i=0;i<31;i++)
	 	adc_val[i]=adc_change();
	 for(i=0;i<31;i++)
	 	sum+=adc_val[i];
	 aver=sum/30;
	 //x=adc_change()*1000./51.;
	 x=aver/51.0;
	 x=x*1000.0;
	 adc_dat[0]=(int)x/1000;
	 adc_dat[1]=(int)x/100%10;
	 adc_dat[2]=(int)x/10%10;
	 adc_dat[3]=(int)x%10;
}

void	Display(void)
{
	unsigned char i;
	adc_bcd();
	for(i=0;i<4;i++)
	{
		if(i==0)
			led_duan=ledseg[adc_dat[i]]&0x7f;
		else
			led_duan=ledseg[adc_dat[i]];
			led_wei	=ledsel[i];
			delayms(5);
			led_wei&=0xf0;
	}
}

void	main(void)
{
	while(1)
	{
		Display();	
	}
}

⌨️ 快捷键说明

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