📄 main.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 + -