if(save_d<2000) { c4_gas[0]=save_d; c4_gas[0]=c4_gas[0]/1000.0; } else { c4_gas[0]=0.6; M24CxxWriteWord(DEVP_ADDR,600); save_d=600; } save_d=M24CxxReadWord(C4ND_ADDR); if(save_d<=10000) { c4_gas[1]=save_d; c4_gas[1]=c4_gas[1]/100.0; } else { c4_gas[1]=10.0; M24CxxWriteWord(C4ND_ADDR,1000); save_d=1000; } save_d=M24CxxReadWord(O2ND_ADDR); if(save_d<5000) { c4_gas[2]=save_d; c4_gas[2]=c4_gas[2]/100.0; } else { c4_gas[2]=5.0; M24CxxWriteWord(O2ND_ADDR,500); save_d=500; } c4_gas[3]=100.0-c4_gas[1]-c4_gas[2]; if(c4_gas[3]<0.0) c4_gas[3]=0.0; lcd_datas[0]=c4_gas[0]*1000.0; lcd_datas[1]=c4_gas[1]*100.0; lcd_datas[2]=c4_gas[2]*100.0; lcd_datas[3]=c4_gas[3]*100.0; WritedataStr(DEVICE_P_ADDR,lcd_datas,4); }
时间: 2024-04-28 19:25:48 浏览: 6
这段代码主要是用来读取和写入一些参数,以及计算一些参数的值。具体来说,它首先从存储器中读取一些参数的值,如C4F7N的体积百分比、O2的分压力等。然后根据读取的值,计算出混合物中C4F7N、O2和CO2的体积百分比,并存储在c4_gas数组中。如果读取的值超出了一定范围,就会将其设置为一个默认值,并将该默认值写入存储器中。最后,将计算出的参数值转换为LCD显示的格式,并将其写入LCD的指定地址中。
相关问题
void main() { u8 key_temp=0; u8 save_value=0; u8 save_buf[3]; while(1) { key_temp=key_scan(1); //??????????? //?????? if(key_temp==KEY1_PRESS) { at24c02_write_one_byte(EEPROM_ADDRESS,save_value); } else if(key_temp==KEY2_PRESS) { save_value=at24c02_read_one_byte(EEPROM_ADDRESS); } else if(key_temp==KEY3_PRESS) { save_value++; if(save_value==255) { save_value=255; } } else if(key_temp==KEY4_PRESS) { save_value=0; } //?????? if(IND_KEY1==0) //??????????1 { save_value+=10; //?save_value??10 if(save_value>255) { save_value=255; } IND_KEY1=1; //??????1????? } else if(IND_KEY2==0) //??????????2 { save_value-=10; //?save_value??10 if(save_value<0) { save_value=0; } IND_KEY2=1; //??????2????? } else if(IND_KEY3==0) //??????????3 { save_value+=1; //?save_value??1 if(save_value==255) { save_value=255; } IND_KEY3=1; //??????3????? } else if(IND_KEY4==0) //??????????4 { save_value-=1; //?save_value??1 if(save_value<0) { save_value=0; } IND_KEY4=1; //??????4????? } //?????????? if(IND_KEY1==1 && IND_KEY2==1 && IND_KEY3==1 && IND_KEY4==1) { IND_KEY1=0; IND_KEY2=0; IND_KEY3=0; IND_KEY4=0; } //?save_value??????????? save_buf[0]=save_value/100; save_buf[1]=save_value%100/10; save_buf[2]=save_value%100%10; //???????save_value smg_display(save_buf,6); } }用独立按键K1,K2,K3分别控制三位数码管如何修改
可以将原来的IND_KEY1、IND_KEY2、IND_KEY3等变量改为k1_pressed、k2_pressed、k3_pressed等更具有意义的变量名。同时,可以在每次按键操作结束后,将对应的按键状态清零,避免影响下一次按键操作。
修改后的代码如下:
```c
void main() {
u8 key_temp=0;
u8 save_value=0;
u8 save_buf[3];
u8 k1_pressed=0, k2_pressed=0, k3_pressed=0;
while(1) {
key_temp=key_scan(1); //获取按键值
//按下K1,将当前值写入EEPROM中
if(key_temp==KEY1_PRESS) {
at24c02_write_one_byte(EEPROM_ADDRESS,save_value);
}
//按下K2,从EEPROM中读取上次保存的值并显示
else if(key_temp==KEY2_PRESS) {
save_value=at24c02_read_one_byte(EEPROM_ADDRESS);
save_buf[0]=save_value/100;
save_buf[1]=save_value%100/10;
save_buf[2]=save_value%100%10;
smg_display(save_buf,6);
}
//按下K3,将当前值加1并显示
else if(key_temp==KEY3_PRESS) {
save_value++;
if(save_value==255) {
save_value=255;
}
save_buf[0]=save_value/100;
save_buf[1]=save_value%100/10;
save_buf[2]=save_value%100%10;
smg_display(save_buf,6);
}
//按下K4,将当前值清零并显示
else if(key_temp==KEY4_PRESS) {
save_value=0;
save_buf[0]=0;
save_buf[1]=0;
save_buf[2]=0;
smg_display(save_buf,6);
}
//K1按下,将当前值加10并显示
if(k1_pressed == 1) {
save_value+=10;
if(save_value>255) {
save_value=255;
}
save_buf[0]=save_value/100;
save_buf[1]=save_value%100/10;
save_buf[2]=save_value%100%10;
smg_display(save_buf,6);
k1_pressed = 0;
}
//K2按下,将当前值减10并显示
else if(k2_pressed == 1) {
save_value-=10;
if(save_value<0) {
save_value=0;
}
save_buf[0]=save_value/100;
save_buf[1]=save_value%100/10;
save_buf[2]=save_value%100%10;
smg_display(save_buf,6);
k2_pressed = 0;
}
//K3按下,将当前值加1并显示
else if(k3_pressed == 1) {
save_value+=1;
if(save_value==255) {
save_value=255;
}
save_buf[0]=save_value/100;
save_buf[1]=save_value%100/10;
save_buf[2]=save_value%100%10;
smg_display(save_buf,6);
k3_pressed = 0;
}
//判断按键是否释放,释放后才能继续检测按键
if(k1_pressed==0 && IND_KEY1==0) {
k1_pressed = 1;
}
else if(k2_pressed==0 && IND_KEY2==0) {
k2_pressed = 1;
}
else if(k3_pressed==0 && IND_KEY3==0) {
k3_pressed = 1;
}
//释放所有按键
if(IND_KEY1==1 && IND_KEY2==1 && IND_KEY3==1 && IND_KEY4==1) {
IND_KEY1=0;
IND_KEY2=0;
IND_KEY3=0;
IND_KEY4=0;
}
}
}
```
write.csv(data, file = save_path)
这是一个R语言中的函数,用于将数据写入CSV文件中。其中,data是要写入的数据集,file是要保存的文件路径,save_path是你自己定义的文件保存路径。具体使用方法如下:
1. 首先,需要将数据读入到R环境中,可以使用read.csv()函数。
2. 然后,使用write.csv()函数将数据写入CSV文件中,其中第一个参数为要写入的数据集,第二个参数为文件路径。
例如:
```
data <- read.csv("data.csv") # 读入数据
save_path <- "result.csv" # 定义文件保存路径
write.csv(data, file = save_path) # 写入CSV文件
```
执行完上述代码后,数据将被写入到result.csv文件中。