标题: 能不能帮忙解释下这段mcu代码的意思? [打印本页]
作者: 1820184992 时间: 2021-3-17 17:55
标题: 能不能帮忙解释下这段mcu代码的意思?
void read_eeprom()
{
PH_H = byte_read(0x2000);
PH_L = byte_read(0x2001);
a_a = byte_read(0x2058);
}
void init_eeprom()
{
read_eeprom()
if(a_a != 1||k2==0||k3==0)PH_H=90;
PH_L=40;
a_a = 1;
write_eeprom();
}
}
void dispaly()//
{
if(flag==0)
{
lcd1602_write(0,0x80);
lcd1602_writebyte("PH:");
lcd1602_write(1,PH/1000 + 0x30);
lcd1602_write(1,PH%1000/100 + 0x30);
lcd1602_write(1,'.');
lcd1602_write(1,PH%100/10+ 0x30);
lcd1602_write(1,PH%10 + 0x30);
lcd1602_writebyte(" ");
if(flagU==1)
{
lcd1602_writebyte("U:");
lcd1602_write(1,Vdisbuff[0]);
lcd1602_write(1,Vdisbuff[1]);
lcd1602_write(1,Vdisbuff[2]);
lcd1602_writebyte("V");
}
else
lcd1602_writebyte(" ");
lcd1602_write(0,0xC0);
lcd1602_writebyte("Temp:");
lcd1602_write(1,temp/1000 + 0x30);
lcd1602_write(1,temp%1000/100 + 0x30);
lcd1602_write(1,temp%100/10 + 0x30);
lcd1602_write(1,'.');
lcd1602_write(1,temp%10 + 0x30);
lcd1602_write(1,0xdf);
lcd1602_writebyte("C ");
}
if(flag>0)
{
lcd1602_write(0,0x80);
lcd1602_writebyte("PH_H:");
lcd1602_write(1,PH_H/100 + 0x30);
lcd1602_write(1,PH_H%100/10+ 0x30);
lcd1602_write(1,'.');
lcd1602_write(1,PH_H%10 + 0x30);
lcd1602_writebyte(" ");
if(flag==1)
{
lcd1602_write(0,0x80+14);
lcd1602_writebyte("<<");
}
lcd1602_write(0,0xc0);
lcd1602_writebyte("PH_L:");
lcd1602_write(1,PH_L/100 + 0x30);
lcd1602_write(1,PH_L%100/10+ 0x30);
lcd1602_write(1,'.');
lcd1602_write(1,PH_L%10 + 0x30);
lcd1602_writebyte(" ");
if(flag==2)
{
lcd1602_write(0,0xc0+14);
lcd1602_writebyte("<<");
}
}
}
void alarm()
{
altt++;
if(altt>50)
{
altt=0;
if(PHV>PH_H){rled=~rled; gled=1; beep=~beep;}
else if(PHV<PH_L){rled=1; gled=~gled; beep=~beep;}
else {rled=1; gled=1; beep=1;}
}
}
void cekey()
{
if(k1==0)
{
delay(10);
if(k1==0)
{
flag++;
if(flag>2) flag=0;
}
while(!k1);
}
if(k2==0&&flag>0)
{
delay(10);
if(k2==0)
{
altk=0;
switch(flag)
{
case 1: PH_H++; if(PH_H>140) PH_H=140; break;
case 2: if(PH_H>PH_L) PH_L++; break;
}
write_eeprom();
}
while(!k2);
// {
// dispaly();
// altk++;
// if(altk>30)
// {
// altk=305;
// switch(flag)
// {
// case 1: PH_H=PH_H+10; PH_H=140; break;
// case 2: if(PH_H>PH_L) PH_L=PH_L+10; break;
// }
// write_eeprom();
// write_eeprom();
// }
// delay(100);
// dispaly();
// }
}
if(k3==0&&flag>0)
{
delay(10);
if(k3==0)
{
altk=0;
switch(flag)
{
case 1: if(PH_H>PH_L) PH_H--; break;
case 2: if(PH_L>0) PH_L--; break;
}
write_eeprom();
}
while(!k3);
// {
// dispaly();
// altk++;
// if(altk>30)
// {
// altk=305;
// switch(flag)
// {
// case 1: if(PH_H>PH_L) PH_H=PH_H-10; break;
// case 2: if(PH_L>0) PH_L=PH_L-10; break;
// }
// write_eeprom();
// }
// delay(100);
// dispaly();
//
// }
}
if(k3==0&&flag==0)
{
delay(10);
if(k3==0)
{
flagU=~flagU;
}
while(!k3);
}
}
void TU_Collection()
{
ad_red=ADC0832(1,0)
adGet=adGet+ad_red;
numt++;
if(numt>=100)
{
numt=0;
Value=adGet/100;
adv=Value * 500.0/ 256;
PH_V =Value * 5.0 / 256;
// PH_Value=-5.887*PH_V+21.677;
PH_Value=-5.9647*PH_V+22.255;
if(PH_Value<=0){PH_Value=0;}
if(PH_Value>=14){PH_Value=14;}
temp=check_wendu();
disbuff[0]=(int)(PH_Value*100)/1000;
disbuff[1]=(int)(PH_Value*100)%1000/100;
disbuff[2]=(int)(PH_Value*100)%100/10;
disbuff[3]=(int)(PH_Value*100)%10;
PH=disbuff[0]*1000+disbuff[1]*100+disbuff[2]*10+disbuff[3];
PHV=disbuff[0]*100+disbuff[1]*10+disbuff[2];
Vdisbuff[0]=(int)(PH_V*100)/100+'0';
Vdisbuff[1]=(int)(PH_V*100)%100/10+'0';
Vdisbuff[2]=(int)(PH_V*100)%10+'0';
adGet=0;
作者: 啤酒瓶子老大 时间: 2021-3-17 18:56
从0832读取的数据显示在1602上,有两个按键。有蜂鸣器。好像是一个类似可调温度报警的程序。还有写内部EEPROM的部分,掉电不丢失。
作者: 1820184992 时间: 2021-3-17 21:17
lcd1602_write(1,PH_L/100 + 0x30);
lcd1602_write(1,PH_L%100/10+ 0x30);
这段是什么意思
作者: zhangxiaozi 时间: 2021-3-18 01:26
PH_L/100 是求出ph的百位数,加上0x30是把数字转换成字符,比如求的值是1,你要转换成‘1’才能显示
PH_L%100/10是求十位的数
作者: man1234567 时间: 2021-3-18 03:20
在1602的屏上显示PH_L百位和十位的值(两位)
作者: TTQ001 时间: 2021-3-18 04:54
该代码包括ADC模数转换,警报,LCD显示,EEPROM读写。
作者: rayin 时间: 2021-3-18 09:04
lcd1602_write(1,PH_L/100 + 0x30); //在1602液晶显示屏上显示变量PH_L的百位数值
lcd1602_write(1,PH_L%100/10+ 0x30); //在1602液晶显示屏下一个字符位上显示变量PH_L的十位数值
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |