📄 glclxs.c
字号:
#include "yamei.h"
void discharge() //初始上电后的放电过程
{
uchar m = 0;
uint i;
num = 0;
for(i = 0; i < 64; i ++)
{
num += max1282();
}
do
{
disp_power();
m ++;
if(m > 50)
{
disp_power();
adnum = 0;
}
}
while(adnum != 0);
}
void Zero() //调零子程序
{
uchar m = 110, n;
switch_probe = 1; //关掉探头
bottom = 0;
do{
n = 4;
while(n --)
{
{
disp_diode(0x04); //点亮调0指示灯
disp_led(0x00, LED_Data[10]);
Dlms(3);
disp_led(0x01, LED_Data[10]);
Dlms(3);
disp_led(0x02, LED_Data[10]);
Dlms(3);
disp_led(0x03, LED_Data[10]);
Dlms(3);
if(unit == 1)
{
disp_diode(0x20); //点亮mW指示灯
}
else if((unit == 2))
{
disp_diode(0x10); //点亮的W指示灯
}
else
{
disp_diode(0x08); //点亮KW指示灯
}
}
}
da08(m);
Dlms(500);
adnum = max1282();
m = m + 2;
if(m == 0) //?????????? 128?????????
{
bottom = adnum;
adnum = 0;
}
}while(adnum > 1);
bottom = adnum;
switch_probe = 0;
}
void TableRead() //表格读取子程序
{
uchar i, adhigh, adlow;
frequency = (uint)(Read24LC16P(0xa0, 0xfc)) * 256 + (uint)(Read24LC16P(0xa0, 0xfd));
if((frequency > 85)&&(frequency <= 90)) pinduan = 0;
else if((frequency > 90)&&(frequency <= 95)) pinduan = 1;
else if((frequency > 95)&&(frequency <= 100)) pinduan = 2;
else if((frequency > 100)&&(frequency <= 105)) pinduan = 3;
else if((frequency > 105)&&(frequency <= 110)) pinduan = 4;
else if((frequency > 110)&&(frequency <= 115)) pinduan = 5;
else if((frequency > 115)&&(frequency <= 120)) pinduan = 6;
else if((frequency > 120)&&(frequency <= 125)) pinduan = 7;
else if((frequency > 125)&&(frequency <= 130)) pinduan = 8;
if(pinduan < 5) //存放于BLOCK 0
{
for(i = 0; i < 22; i ++)
{
adhigh = Read24LC16P(0xa0, (pinduan*44 + i*2));
adlow = Read24LC16P(0xa0, (pinduan*44 + i*2 + 1));
Volt[i] = (uint)(adhigh) * 256 + (uint)(adlow);
}
}
else //存放于 BLOCK 1
{
for(i = 0; i < 22; i ++)
{
adhigh = Read24LC16P(0xa2, ((pinduan - 5)*44 + i*2));
adlow = Read24LC16P(0xa2, ((pinduan - 5)*44 + i*2 + 1));
Volt[i] = (uint)(adhigh) * 256 + (uint)(adlow);
}
}
attenuation = (uint)(Read24LC16P(0xa0, 0xfe)) * 256 + (uint)(Read24LC16P(0xa0, 0xff));
if(!((attenuation == 0) ||((attenuation >= 2800)&&(attenuation <= 3200)) ||((attenuation >= 4800)&&(attenuation <= 5200))))
{
disp_err();
}
if(attenuation == 0) unit = 1;
else if((attenuation >= 2800)&&(attenuation <= 3200)) unit = 2;
else unit = 4;
}
void KeyRead() //按键读取子程序
{
uchar i, m, n, adhigh, adlow;
uchar qianwei, baiwei, shiwei, gewei;
key_ctrl = 1;
P0 = 0xff;
setup = 0;
if(!key_ctrl)
{
Dlus(100);
if(!key_ctrl)
{
setup = 1;
zero = 0;
if(!key_ctrl)
{
Dlms(10);
if(!key_ctrl)
{
for(m = 0; m < 200; m ++)
{
disp_led(0x00, LED_Data[10]);
Dlms(4);
disp_led(0x01, 0);
Dlms(4);
disp_led(0x02, 0);
Dlms(4);
disp_led(0x03, 0);
Dlms(4);
disp_diode(0x20/unit);
}
if(!key_ctrl)
{
for(m = 0; m < 200; m ++)
{
disp_led(0x00, LED_Data[10]);
Dlms(4);
disp_led(0x01, LED_Data[10]);
Dlms(4);
disp_led(0x02, 0);
Dlms(4);
disp_led(0x03, 0);
Dlms(4);
disp_diode(0x20/unit);
}
if(!key_ctrl)
{
for(m = 0; m < 200; m ++)
{
disp_led(0x00, LED_Data[10]);
Dlms(4);
disp_led(0x01, LED_Data[10]);
Dlms(4);
disp_led(0x02, LED_Data[10]);
Dlms(4);
disp_led(0x03, 0);
Dlms(4);
disp_diode(0x20/unit);
}
if(!key_ctrl)
{
for(m = 0; m < 200; m ++)
{
disp_led(0x00, LED_Data[10]);
Dlms(4);
disp_led(0x01, LED_Data[10]);
Dlms(4);
disp_led(0x02, LED_Data[10]);
Dlms(4);
disp_led(0x03, LED_Data[10]);
Dlms(4);
disp_diode(0x20/unit);
}
}
qianwei = (uchar)(attenuation/1000);
baiwei = (uchar)((attenuation%1000)/100);
shiwei = (uchar)(((attenuation%1000)%100)/10);
gewei = (uchar)(((attenuation%1000)%100)%10);
while(!key_ctrl) //等待按键释放
{
for(m = 0; m < 200; m ++)
{
disp_diode(0x01);
if(m < 100) disp_led(0x00, LED_Data[qianwei]);
else disp_led(0x00, 0);
Dlms(5);
disp_led(0x01, (LED_Data[baiwei] |0x80));
Dlms(5);
disp_led(0x02, LED_Data[shiwei]);
Dlms(5);
disp_led(0x03, LED_Data[gewei]);
Dlms(5);
disp_diode(0x20/unit);
}
}
zero = 1;
setup = 0;
while(!key_ctrl) //等待按键释放
{
for(m = 0; m < 200; m ++)
{
disp_diode(0x01);
if(m < 100) disp_led(0x00, LED_Data[qianwei]);
else disp_led(0x00, 0);
Dlms(5);
disp_led(0x01, (LED_Data[baiwei] |0x80));
Dlms(5);
disp_led(0x02, LED_Data[shiwei]);
Dlms(5);
disp_led(0x03, LED_Data[gewei]);
Dlms(5);
disp_diode(0x20/unit);
}
}
n = 0; //闪烁的位置
while(key_ctrl) //如果设置键未按下
{
setup = 1;
for(m = 0; m < 200; m ++)
{
if(n == 0)
{
disp_diode(0x01);
if(m < 100) disp_led(0x00, LED_Data[qianwei]);
else disp_led(0x00, 0);
Dlms(5);
disp_led(0x01, (LED_Data[baiwei] |0x80));
Dlms(5);
disp_led(0x02, LED_Data[shiwei]);
Dlms(5);
disp_led(0x03, LED_Data[gewei]);
Dlms(5);
disp_diode(0x20/unit);
}
else if(n == 1)
{
disp_diode(0x01);
disp_led(0x00, LED_Data[qianwei]);
Dlms(5);
if(m < 100) disp_led(0x01, (LED_Data[baiwei] |0x80));
else disp_led(0x01, 0);
Dlms(5);
disp_led(0x02, LED_Data[shiwei]);
Dlms(5);
disp_led(0x03, LED_Data[gewei]);
Dlms(5);
disp_diode(0x20/unit);
}
else if(n == 2)
{
disp_diode(0x01);
disp_led(0x00, LED_Data[qianwei]);
Dlms(5);
disp_led(0x01, (LED_Data[baiwei] |0x80));
Dlms(5);
if(m < 100) disp_led(0x02, LED_Data[shiwei]);
else disp_led(0x02, 0);
Dlms(5);
disp_led(0x03, LED_Data[gewei]);
Dlms(5);
disp_diode(0x20/unit);
}
else
{
disp_diode(0x01);
disp_led(0x00, LED_Data[qianwei]);
Dlms(5);
disp_led(0x01, (LED_Data[baiwei] |0x80));
Dlms(5);
disp_led(0x02, LED_Data[shiwei]);
Dlms(5);
if(m < 100) disp_led(0x03, LED_Data[gewei]);
else disp_led(0x03, 0);
Dlms(5);
disp_diode(0x20/unit);
}
}
P0 = 0xff;
zero = 0;
if(!key_ctrl)
{
n = (n + 1)%4;
}
zero = 1;
add = 0;
if(!key_ctrl)
{
if(n == 0) qianwei = (qianwei + 1)%10;
else if(n == 1) baiwei = (baiwei + 1)%10;
else if(n == 2) shiwei = (shiwei + 1)%10;
else gewei = (gewei + 1)%10;
}
add = 1;
sub = 0;
if(!key_ctrl)
{
if(n == 0) qianwei = (qianwei + 9)%10;
else if(n == 1) baiwei = (baiwei + 9)%10;
else if(n == 2) shiwei = (shiwei+ 9)%10;
else gewei = (gewei + 9)%10;
}
sub = 1;
setup = 0;
}
attenuation = (uint)(qianwei)*1000 + (uint)(baiwei)*100 + (uint)(shiwei)*10 + (uint)(gewei);
if(attenuation == 0) unit = 1;
else if((attenuation >= 2800)&&(attenuation <= 3200)) unit = 2;
else if((attenuation >= 4800)&&(attenuation <= 5200)) unit = 4;
if((unit == 1)||(unit == 2)||(unit == 4))
{
Write24LC16P(0xa0, 0xfe, (uchar)(attenuation/256));
Write24LC16P(0xa0, 0xff, (uchar)(attenuation%256));
}
baiwei = (uchar)((frequency%1000)/100);
shiwei = (uchar)(((frequency%1000)%100)/10);
gewei = (uchar)(((frequency%1000)%100)%10);
while(!key_ctrl) //等待按键释放
{
setup = 1;
for(m = 0; m < 200; m ++)
{
disp_diode(0x02);
if(m < 100) disp_led(0x01, (LED_Data[baiwei] |0x80));
else disp_led(0x01, 0);
Dlms(5);
disp_led(0x02, LED_Data[shiwei]);
Dlms(5);
disp_led(0x03, LED_Data[gewei]);
Dlms(5);
disp_diode(0x20/unit);
}
}
n = 0; //闪烁的位置
while(key_ctrl) //频率设置
//如果设置键未按下
{
setup = 1;
for(m = 0; m < 200; m ++)
{
if(n == 0)
{
disp_diode(0x02);
if(m < 100) disp_led(0x01, (LED_Data[baiwei] |0x80));
else disp_led(0x01, 0);
Dlms(5);
disp_led(0x02, LED_Data[shiwei]);
Dlms(5);
disp_led(0x03, LED_Data[gewei]);
Dlms(5);
disp_diode(0x20/unit);
}
else if(n == 1)
{
disp_diode(0x02);
disp_led(0x01, (LED_Data[baiwei] |0x80));
Dlms(5);
if(m < 100) disp_led(0x02, LED_Data[shiwei]);
else disp_led(0x02, 0);
Dlms(5);
disp_led(0x03, LED_Data[gewei]);
Dlms(5);
disp_diode(0x20/unit);
}
else
{
disp_diode(0x02);
disp_led(0x01, (LED_Data[baiwei] |0x80));
Dlms(5);
disp_led(0x02, LED_Data[shiwei]);
Dlms(5);
if(m < 100) disp_led(0x03, LED_Data[gewei]);
else disp_led(0x03, 0);
Dlms(5);
disp_diode(0x20/unit);
}
}
P0 = 0xff;
zero = 0;
if(!key_ctrl)
{
n = (n + 1)%3;
}
zero = 1;
add = 0;
if(!key_ctrl)
{
if(n == 0) baiwei = (baiwei + 1)%10;
else if(n == 1) shiwei = (shiwei + 1)%10;
else gewei = (gewei + 1)%10;
}
add = 1;
sub = 0;
if(!key_ctrl)
{
if(n == 0) baiwei = (baiwei + 9)%10;
else if(n == 1) shiwei = (shiwei+ 9)%10;
else gewei = (gewei + 9)%10;
}
sub = 1;
setup = 0;
}
frequency = (uint)(baiwei)*100 + (uint)(shiwei)*10 + (uint)(gewei);
if((frequency > 85)&&(frequency <= 90)) pinduan = 0;
else if((frequency > 90)&&(frequency <= 95)) pinduan = 1;
else if((frequency > 95)&&(frequency <= 100)) pinduan = 2;
else if((frequency > 100)&&(frequency <= 105)) pinduan = 3;
else if((frequency > 105)&&(frequency <= 110)) pinduan = 4;
else if((frequency > 110)&&(frequency <= 115)) pinduan = 5;
else if((frequency > 115)&&(frequency <= 120)) pinduan = 6;
else if((frequency > 120)&&(frequency <= 125)) pinduan = 7;
else if((frequency > 125)&&(frequency <= 130)) pinduan = 8;
if((frequency > 85)&&(frequency <= 130))
{
Write24LC16P(0xa0, 0xfc, (uchar)(frequency/256));
Write24LC16P(0xa0, 0xfd, (uchar)(frequency%256));
}
if(pinduan < 5) //存放于BLOCK 0
{
for(i = 0; i < 22; i ++)
{
adhigh = Read24LC16P(0xa0, (pinduan*44 + i*2));
adlow = Read24LC16P(0xa0, (pinduan*44 + i*2 + 1));
Volt[i] = (uint)(adhigh) * 256 + (uint)(adlow);
}
}
else //存放于 BLOCK 1
{
for(i = 0; i < 22; i ++)
{
adhigh = Read24LC16P(0xa2, ((pinduan - 5)*44 + i*2));
adlow = Read24LC16P(0xa2, ((pinduan - 5)*44 + i*2 + 1));
Volt[i] = (uint)(adhigh) * 256 + (uint)(adlow);
}
}
}
}
}
}
}
}
setup = 1;
zero = 0;
if(!key_ctrl)
{
Dlms(10);
if(!key_ctrl) Zero();
}
zero = 1;
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -