📄 process.c
字号:
/****************************************
说明:公共执行过程
****************************************/
#include "at89x52.h"
#include "process.h"
#include <stdlib.h>
//
extern void c51_initialize();
extern unsigned char strComp(unsigned char* s,unsigned char* p);
unsigned char j_573,av_573,g_573;
//
void BusWrite(unsigned char value);
void Relay(unsigned char m);
void LowPower_down(bit pc_c51);
//
extern void delay(unsigned int value);
//
extern void timer0_initialize();
extern ShowOff(unsigned char index,unsigned char num);
extern void CommBand(unsigned char band); //
extern unsigned char idata send[32];
extern unsigned char led[5][4];
extern void DisplayDrv(unsigned index,unsigned num);
extern unsigned char zhuan(char chr);
//key
extern unsigned char KeyDown();
extern unsigned char KeyUp();
extern unsigned char KeyPoint();
//
bit bdata sac;
bit bdata bij;
bit bdata sdc;
bit bdata jdc;
bit bdata jac;
bit bdata down;
bit bdata up;
bit bdata fpow;
bit bdata pow;
bit bdata s220;
bit bdata on;
bit bdata j40a;
bit bdata vcr;
bit bdata zt;
bit bdata dvd;
unsigned char m=2;
/****************************************
系统总电源
****************************************/
void system_pow(bit pc_c51)
{
}
/*******************************************
学生电源开关
********************************************/
void student_pow(bit pc_c51)
{
//交流灯开或关
j_573=j_573^0x20;
P0=j_573;
J_ON;
J_OFF;
//交流补偿开或关
av_573=av_573^V_11;
P0=av_573;
AV_ON;
AV_OFF;
if(!pc_c51)
{
send[20]=128;
}
}
/************************************
学生电源开关 //学生稳压
*************************************/
void student_220v(bit pc_c51)
{
//直流灯开或关
j_573=j_573^0x10;
P0=j_573;
J_ON;
J_OFF;
if(sac)
{
//交流断开
sac=~sac;
g_573=g_573^V_13;
P0=g_573;
G_ON;
G_OFF;
//交流灯关
j_573=j_573^0x08;
P0=j_573;
J_ON;
J_OFF;
}
//直流开
g_573=g_573^V_12;
P0=g_573;
G_ON;
G_OFF;
//交流开
delay(200);
g_573=g_573^V_13;
P0=g_573;
G_ON;
G_OFF;
//
sdc=~sdc;
if(!pc_c51)
{
send[20]=132;
}
}
/***************************************
教师直流电源开关
***************************************/
void teacher_dc(bit pc_c51)
{
//总电源没开
if (!pow)
{
return;
}
//此时系统处于教师交流状态
if(jac)
{
jac=0;
BusWrite(J_TAC);
}
//此时系统处于教师40A电流状态
if(j40a)
{
j40a=0;
BusWrite(J_A40);
}
//执行教师直流开关的闭合
jdc=~jdc;
BusWrite(J_TDC);
//当键盘动作时向电脑发数据
if(!pc_c51)
{
send[20]=130;
}
}
/*******************************************
教师交流电源开关
********************************************/
void teacher_ac(bit pc_c51)
{
//总电源没开
if (!pow)
{
return;
}
//此时系统处于教师直流状态
if(jdc)
{
BusWrite(J_TDC);
jdc=0;
}
//此时系统处于教师40A电流状态
if(j40a)
{
j40a=0;
BusWrite(J_A40);
}
//执行教师交流开关的闭合
jac=~jac;
BusWrite(J_TAC);
if(!pc_c51)
{
send[20]=129;
}
}
/*******************************************
教师40A电流开关
********************************************/
void teacher_40a(bit pc_c51)
{
//总电源没开
if (!pow)
{
return;
}
//此时系统处于教师直流状态
if(jdc)
{
BusWrite(J_TDC);
jdc=0;
}
//此时系统处于教师交流状态
if(jac)
{
jac=0;
BusWrite(J_TAC);
}
//闭合教师40A电流
BusWrite(J_A40);
if(!j40a)
{
EA=0;
//调压器跳到最低
// BusWrite(J_DOWN);
delay(1000);
// BusWrite(J_DOWN);
EA=1;
}
j40a=~j40a;
//当键盘动作时向电脑发数据
if(!pc_c51)
{
send[20]=134;
}
}
/*******************************************
风机电源开关,此物理电源无有
********************************************/
void flow_pow(bit pc_c51)
{
//总电源没开
if (!pow)
{
return;
}
//执行风机电源的闭合
fpow=~fpow;
BusWrite(J_FJ);
//当键盘动作时向电脑发数据
if(!pc_c51)
{
send[20]=133;
}
}
/*******************************************
低压调节升
********************************************/
void LowPower_up(bit pc_c51)
{
unsigned int i,j;
unsigned char KV;
//总电源没开
if (!pow) return;
EA=0;
//关断所有继电器
j_573=j_573&0xfc;
P0=j_573;
J_ON;
J_OFF;
av_573=av_573&0x8F;
P0=av_573;
AV_ON;
AV_OFF;
g_573=g_573&0x01;
P0=g_573;
G_ON;
G_OFF;
//
led[0][0]=0xbf;
led[0][1]=0xbf;
led[0][2]=0xbf;
led[0][2]=0xbf;
DisplayDrv(1,3);
//交流低压缓冲区清零
for(i=0;i<4;i++)
{
led[1][i]=0xc0;
}
if(m>=8)
{
unsigned n;
n=m;
n=n/10;
led[1][0]=zhuan(m%10);
led[1][1]=zhuan(n);
}
else
{
led[1][0]=zhuan(m);
}
//响应一次按键操作,显示指示
// led[1][0]=zhuan(m);
DisplayDrv(2,3);
L1: for(i=0;i<2;i++)
{
for(j=0;j<20000;j++)
{
if(KeyDown()==1)
{
KV=KeyPoint();//得到健值
while(0==KeyUp());
if(KV!=0xB7)
{
if(KV==0x77)
{
LowPower_down(0);
return;
}
continue;
}
if(m<30)
{
if(m>=8)
{
unsigned n;
m+=2;
n=m;
n=n/10;
led[1][0]=zhuan(m%10);
led[1][1]=zhuan(n);
}
else
{
m+=2;
led[1][0]=zhuan(m);
}
DisplayDrv(2,3);
//
goto L1;
}
}
}
}
Relay(m);
delay(200);
g_573=g_573^V_13;
P0=g_573;
G_ON;
G_OFF;
EA=1;
//当键盘动作时向电脑发数据
if(!pc_c51)
{
send[20]=140;
}
}
/*****************************
低压调节降
*******************************/
void LowPower_down(bit pc_c51)
{
unsigned int i,j;
unsigned char KV,n;
//总电源没开
if (!pow) return;
if(m<=2) return ;
EA=0;
//关断所有继电器
j_573=j_573&0xfc;
P0=j_573;
J_ON;
J_OFF;
av_573=av_573&0x8F;
P0=av_573;
AV_ON;
AV_OFF;
g_573=g_573&0x01;
P0=g_573;
G_ON;
G_OFF;
//
led[0][0]=0xbf;
led[0][1]=0xbf;
led[0][2]=0xbf;
led[0][2]=0xbf;
DisplayDrv(1,3);
//交流低压缓冲区清零
for(i=0;i<4;i++)
{
led[1][i]=0xc0;
}
n=m;
n=n/10;
led[1][0]=zhuan(m%10);
led[1][1]=zhuan(n);
//响应一次按键操作,显示指示
DisplayDrv(2,3);
L1: for(i=0;i<2;i++)
{
for(j=0;j<20000;j++)
{
if(KeyDown()==1)
{
KV=KeyPoint();//得到健值
while(0==KeyUp());
if(KV!=0x77)
{
if(KV==0xB7)
{
LowPower_up(0);
return;
}
continue;
}
if(m>2)
{
m-=2;
n=m;
n=n/10;
led[1][0]=zhuan(m%10);
led[1][1]=zhuan(n);
DisplayDrv(2,3);
goto L1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -