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

📄 0804.c

📁 ad0804程序
💻 C
字号:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define p1 P1
#define ad_data P2
#define p0 P0
uchar key_return,key_return1,setdata;
uint  volt_bottom,time_limit,current_top;
uchar code table[]={0xc0,0xf9, 0xa4, 0xb0,
			 		0x99,0x92,0x82,0xf8,
					0x80,0x90};

void delay(uint z)
{
	uint t1,y;
	for(t1=z;t1>0;t1--)
		for(y=110;y>0;y--);
}



 void display(uint disp)
 	{ 	  
 		uchar weixuan=0xfe,disp0,disp1,disp2,disp3;
		disp3=disp%10;
		disp2=disp/10%10;
		disp1=disp/100%10;
		disp0=disp/1000;
	  
	   p1=weixuan;
	   p0=table[disp0];	   
	   delay(1);

	   weixuan=_crol_(weixuan,1);	   
	   p1=weixuan;
	   p0=table[disp1];
	   delay(1);

	   weixuan=_crol_(weixuan,1);	  
	   p1=weixuan;	
	   p0=table[disp2];
	   delay(1);

	   weixuan=_crol_(weixuan,1);	  
	   p1=weixuan;	
	   p0=table[disp3];
	   delay(1);	 
	 }	

	uchar keyscan()
		{
		 uchar temp;
		 //P1=P1&0x7f;
		 temp=P2;
		 temp=temp&0xf0;
		 if(temp!=0xf0)
			{
			 delay(10);
			 if(temp!=0xf0)
				{
					temp=P2;
					temp=temp&0xf0;
				  switch(temp)
				 {
				
				  case 0xe0: key_return1++;
				  		if(key_return1>3)
				  			key_return1=0;//功能键
				  		break;
				  case 0xd0: key_return=1;//增加键
				  		break;
				  case 0xb0: key_return=2;//减少键
				  		break;

				  case 0x70: key_return=3;//确认键
				  		break;
				  }
				}
  					while(temp!=0xf0)
						{
							temp=P2;
							temp=temp&0xf0;
						}
			}
		 return key_return,key_return1;	  
		}

uchar setnum()		//设置参数返回值
	{
//	uchar voltemp;
	keyscan();
	if(key_return==1)
		{
		setdata++;
		}
	else
		{
		if(key_return==2)
		setdata--;
		}
	return 	setdata;
	}

void setvolt()
	{
	setnum();
	volt_bottom=setdata;
	setdata=0;
	}

void setcurrent()
	{
	setnum();
	current_top=setdata;
	setdata=0;	
	
	}
void settime()
	{
	
	setnum();
	time_limit=setdata;
	setdata=0;
	}

void setpara()		//参数设置函数
	{
	  keyscan();
	  if(key_return1==1)
		  	{ 
			setvolt();	  
			}
	  else
			{
				 if(key_return1==2)
				 	{
					 setcurrent();
					}
				 else
				 	{
					 if(key_return1==3)
					 	{
	  						settime();
						}
					}
			}
		goto main;
	}		


void main()
{
	while(1) 
		{  
		 keyscan();
		 display(key_return1);
		}
}


⌨️ 快捷键说明

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