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

📄 main.c

📁 用键盘来输入电压或电流。实现恒流
💻 C
字号:
#include<head.h>
#include<key44.c>
#include<da5615.c>
#include<Vad549.c>
#include<Iad549.c>
#include<LCD1602.c>
#include<dis.c>
#include<change.c>

#define  genggaisz	 10	//定义是否改变数值
#define  hengya      13	//定义选择恒压键盘返回数
#define  hengliu     14 //定义选择恒流键盘返回数
#define  henggonglv  15 //定义选择恒流键盘返回数



#define	 dysdz       dianyashedingzhi	//电压设定值
#define	 dlsdz		 dianliushedingzhi	//电流设定值
#define	 glsdz		 donglvshedingzhi	//功率设定值
#define	 dv549       dudianya549		//读电压549
#define	 di549       dudianliu549		//读电流549
#define	 dybljs		 dianyabianliangjisuan  //电压取回值计算
#define	 dlbljs		 dianliubianliangjisuan //电流取回值计算

#define	 qhxh		 qiuhuanxinhao		//用于功能之间的切换
#define	 nbxt		 neibuxuantong		//用于控制循环					

uint     dysdz,dlsdz,glsdz;
uint     dv549,di549;
uint     count=0;    //5615赋值变量初始化
uint	 dybljs=0;   //电压取回值计算初始化
uint	 dlbljs=0;   //电流取回值计算初始化
uint     qhxh=1;	 //初始化选通
uint     nbxt=1;	 //初始化选通
/**************************************************
              主函数延时
**************************************************/
void main_delay(uint i)
 { 
   while(i--);
 }	

////////////////// //主函数/////////////////////
 void main(void)    
{ 
  //uchar KeyBuff = 0; 

  initLCD();	 //初始化液晶
  da5615(0);	 //初始化5615
  LCDDisString(0,0,"work ready!"); 
  main_delay(60000);
  main_delay(60000);
  main_delay(60000);
  main_delay(60000);
  main_delay(60000);
  main_delay(60000);
  writeByteLCD(1,0x01); //显示清屏
  
  while(1)	      //进入功能工作循环区
  {
    //dis_v549( read_byte_from_549V()*100/51 );
	//dis_i549( read_byte_from_549I()*100/51 );
	
	LCDDisString(0,0,"please choose the funtion!");//提示选择所要的功能 
    main_delay(500);
    
 /*****************************选择恒压工作方式*********************************/
    if ( hengya == ScanKeyboard() )   
	 { 
	 writeByteLCD(1,0x01); //显示清屏 
	 while(nbxt)
	   {	
	    LCDDisString(0,0,"Please press input");
	    main_delay(5000);
	    if(ScanKeyboard()==genggaisz)
	       {
		      dysdz=change_voltage();
			  if((dysdz<60)&&(dysdz>=50)) count=280;
			  if((dysdz<50)&&(dysdz>=40)) count=240;
			  if((dysdz<40)&&(dysdz>=30)) count=200;
			  if((dysdz<30)&&(dysdz>=20)) count=160;
			  if((dysdz<20)&&(dysdz>=10)) count=120;
			  if((dysdz<10)&&(dysdz>= 0)) count=80;
		      dysdz=dysdz*51;
              writeByteLCD(1,0x01); //显示清屏
	          while(qhxh)
	            {di549=read_byte_from_549I();
	             dv549=read_byte_from_549V();
	             LCDDisString(0,1,"enactment:");
	             dis_voltage(dysdz/51);
	             LCDDisString(0,0,"Cur:");
	             dis_v549(dv549*10/51);
	             dis_i549(di549*100/51);
				 //测试蜂鸣
		         if(di549*100/51>250)
				 {
					P3 = 0x20;
				 }
				 else{P3 = 0xE7;}
				 //蜂鸣
                 dybljs=(dv549*10);
	             if(dysdz==dybljs){;}
                 if(dysdz>dybljs) { if(count>1022)count=1022;count++;da5615(count);}
                 if(dysdz<dybljs) { if(count<1)   count=1;   count--;da5615(count);}
	             if((hengliu==ScanKeyboard())||(henggonglv==ScanKeyboard()))
	               {
		            qhxh=0;
					nbxt=0;
		            da5615(0);
		            }
	             }
		     }
	       
		  }
		qhxh=1;
		nbxt=1;
		writeByteLCD(1,0x01); //显示清屏 
	  }


 /*****************************选择恒流工作方式*******************************/
	if ( hengliu == ScanKeyboard() )   
	{
	  writeByteLCD(1,0x01); //显示清屏 
	  while(nbxt)
	   {	
	    LCDDisString(0,0,"Please press input ");
	    main_delay(5000);
	    if(ScanKeyboard()==genggaisz)
	       {
		      dlsdz=change_current(); //调用输入数值函数
			  
			  if((dlsdz<=500)&&(dlsdz>400)) count=250;
			  if((dlsdz<=400)&&(dlsdz>300)) count=200;
			  if((dlsdz<=300)&&(dlsdz>200)) count=200;
			  if((dlsdz<=200)&&(dlsdz>100)) count=150;
			  if((dlsdz<=100)&&(dlsdz>  0)) count=120;
			  //dlsdz=dlsdz*51;
              writeByteLCD(1,0x01); //显示清屏
	          while(qhxh)
	            {
				 di549=read_byte_from_549I();
	             dv549=read_byte_from_549V();
	             LCDDisString(0,1,"enactment:");
	             dis_current(dlsdz);
	             LCDDisString(0,0,"Cur:");
	             dis_v549(dv549*10/51);
	             dis_i549(di549*100/51);
                 dlbljs=(di549*100/51);
	             if(dlsdz==dlbljs){;}
                 if(dlsdz>dlbljs) { if(count>1022)count=1022;count++;da5615(count);}
                 if(dlsdz<dlbljs) { if(count<1)   count=1;   count--;da5615(count);}
	             if((hengya==ScanKeyboard())||(henggonglv==ScanKeyboard()))
	               {
		            qhxh=0;
					nbxt=0;
		            da5615(0);
		            }
	             }
		     }
	       
		  }
		qhxh=1;
		nbxt=1;
		writeByteLCD(1,0x01); //显示清屏 
	  
	}

/*****************************选择恒功率工作方式**********************************/
	if ( henggonglv == ScanKeyboard()) 
  {
	  writeByteLCD(1,0x01); //显示清屏 
	  while(nbxt)
	   {	
	    LCDDisString(0,0,"Pease Press input");
	    main_delay(5000);
	    if(ScanKeyboard()==genggaisz)
	       {
		      glsdz=change_voltage1(); //调用输入数值函数
			   
			  //if((glsdz<60)&&(glsdz>=50)) count=450;
			  //if((glsdz<50)&&(glsdz>=40)) count=350;
			  //if((glsdz<40)&&(glsdz>=30)) count=250;
			  if((glsdz<26)&&(glsdz>=20)) count=350;		 
			  if((glsdz<20)&&(glsdz>=10)) count=300;
			  if((glsdz<10)&&(glsdz>= 0)) count=250;
			  //dlsdz=dlsdz*51;
              writeByteLCD(1,0x01); //显示清屏
	          while(qhxh)
	            {
				 di549=read_byte_from_549I();
	             dv549=read_byte_from_549V();
	             LCDDisString(0,1,"enactment:");
	             dis_voltage1(glsdz);
	             //LCDDisString(0,0,"Cur:");
	              dis_v549(dv549*10/51);
	             dis_i549(di549*100/51);
				  LCDDisString(3,0,"w");
																
                dis_glbljs((dv549*10/51)*(di549*100/51)/1000);
				 //glsdz=glsdz*1000;
	             if(glsdz*1000== (dv549*10/51)*( (di549*100/51))){;}
                 if(glsdz*1000>( (dv549*10/51))*( (di549*100/51))) { if(count>1022)count=1022;count++;da5615(count);}
                 if(glsdz*1000<( (dv549*10/51))*( (di549*100/51))) { if(count<1)   count=1;   count--;da5615(count);}
	             if((hengya==ScanKeyboard())||
				 (henggonglv==ScanKeyboard()))
	               {
		            qhxh=0;
					nbxt=0;
		            da5615(0);
		            }
	             }
		     }
	       
		  }
		qhxh=1;
		nbxt=1;
		writeByteLCD(1,0x01); //显示清屏 
	  
	}
	 ;
	}

  
 	
  }
 
 

⌨️ 快捷键说明

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