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

📄 电压表.c

📁 假期培训时编写的一个电压表
💻 C
字号:
#include<reg52.h>           //52系列单片机定义文件
#include<intrins.h>         //调用_nop_();延时函数用
#define uchar unsigned char           //无符号字符
#define uint unsigned int                //无符号整数
sbit ALE=P2^3;
sbit START=P2^4;
sbit OE=P2^5;
sbit EOC=P3^7;
sbit DOT=P1^7;
sbit AO=P2^6;
sbit BO=P2^7;
sbit CO=P3^5;
sbit DO=P3^6;
uchar code xs_7[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
uchar code saomiao[4]={0xfe,0xfd,0xfb,0xf7};
uchar data ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
uint data dis[5]={0x00,0x00,0x00,0x00,0x00};
//
//
/**************1ms延时子函数*************/
delay1ms(uint t)
{
	uint i,j;
	for(i=0;i<t;i++)
	for(j=0;j<120;j++);   
}
//
//
/***********显示扫描子函数************/
scan()
{
	uchar k,n;
	int h;
	dis[3]=0x00;
	for(n=0;n<8;n++)
	{
		dis[2]=ad_data[n]/51;
		dis[4]=ad_data[n]%51;
		dis[4]=dis[4]*10;
		dis[1]=dis[4]/51;
		dis[4]=dis[4]%51;
		dis[4]=dis[4]*10;
		dis[0]=dis[4]/51;
		for(h=0;h<255;h++)
		{
			for(k=0;k<4;k++)
			{
				P1=xs_7[dis[k]];
				if(k==2) {DOT=1;}
				P3=saomiao[k];delay1ms(1);P3=0xff;
			}
		}
		dis[3]++;
	}  
}  
/*************通道选择********************/
tongdao(uchar m)
{ 
	uchar k;
	int h;
	dis[3]=m;                    //通道
	dis[2]=ad_data[m]/51;       //通道数据
	dis[4]=ad_data[m]%51;
	dis[4]=dis[4]*10;
	dis[1]=dis[4]/51;
	dis[4]=dis[4]%51;
	dis[4]=dis[4]*10;
	dis[0]=dis[4]/51;
	if(dis[2]>3&&dis[1]>5)
	{
		AO=1;
		BO=1;
	}
	for(h=0;h<255;h++)
	{
		for(k=0;k<4;k++)
		{
			P1=xs_7[dis[k]];
			if(k==2) 
			{
				DOT=1;
			}
			P3=saomiao[k];
			delay1ms(1);
			P3=0xff;
		}
	}
}


/***********0809AD转换子函数*************/
test()
{
	uchar m;
	uchar s=0x00;
	P2=s;
	for(m=0;m<8;m++)
	{
		ALE=1;
		_nop_();
		_nop_();
		ALE=0;
		START=1;
		_nop_();
		_nop_();
		START=0;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		while(EOC==0);
		OE=1;
		ad_data[m]=P0;
		OE=0;
		s++;
		P2=s;
	}
	P2=0x00;
}

/***********主函数***********/
main()
{
	uchar i,j,n;
	int t=0;
	j=0;n=0;
	P0=0xff;
	P2=0x00;
	P1=0xff;
	P3=0xff;
	for(;;)
	{
		test();
		if(j==0)
		{ 
			i=DO;			/*p3^6*/
			if(i==0) 
			{
				tongdao(n);
				n++;
			}
			if(n>7) 
			n=0;
			tongdao(n);
		}
		else 
		scan();
	
	}
	
	
}

⌨️ 快捷键说明

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