更改上述代码,使set小于等于6时,DATE等于set
时间: 2023-07-05 14:22:25 浏览: 104
请尝试下面的代码,将 `DATE` 的值设置为 `set` 的值,但是只有当 `set` 的值小于等于6时才生效。
```c
void main() {
Init1602(); //调用初始化显示函数
while(1) {
key(); //按键处理
DATE = adc0832(0) * 2;
if (set <= 6) {
DATE = set;
}
DAC_PORT = speed_pid();
Display_1602(set, DATE);
}
}
```
这里添加了一个条件语句,如果 `set` 的值小于等于6,则将 `DATE` 的值设置为 `set` 的值,否则维持原来的值。
相关问题
更改上述代码,使set小于等于10时或set在100和110之间以及200和210之间时,DATE等于set
你可以在 Display_1602() 函数之前添加一个判断条件,如下所示:
```
while(1) {
key(); //按键处理
DATE = adc0832(0) * 2; //读取模拟量信号并转换为数字量
if (set <= 10 || (set >= 100 && set <= 110) || (set >= 200 && set <= 210)) {
DATE = set; //满足条件时,DATE等于set
} else {
DATE = speed_pid(); //否则,按照原先的方法计算DATE
}
Display_1602(set, DATE);
}
```
这样,当set小于等于10时,或者set在100到110之间,或者在200到210之间时,DATE就会直接等于set。否则,就会按照原先的方法计算出DATE。
更改上述代码使SET-U小于等于0.06时,OUT-U等于SER-U
你可以尝试修改Display_1602函数的代码如下:
```
void Display_1602(float set_voltage, float date_voltage) {
//设置电压
write_com(0x80 + 6);
if (set_voltage <= 0.06) {
write_data('S');
write_data('E');
write_data('R');
write_data('-');
write_data('U');
} else {
write_data(0x30 + (int)(set_voltage * 100) / 100);
write_data('.');
write_data(0x30 + (int)(set_voltage * 100) % 100 / 10);
write_data(0x30 + (int)(set_voltage * 100) % 10);
}
//时时电压
write_com(0x80 + 0x40 + 6);
if (set_voltage <= 0.06) {
write_data('S');
write_data('E');
write_data('R');
write_data('-');
write_data('U');
} else {
write_data(0x30 + (int)(date_voltage * 100) / 100);
write_data('.');
write_data(0x30 + (int)(date_voltage * 100) % 100 / 10);
write_data(0x30 + (int)(date_voltage * 100) % 10);
}
}
```
在这个更改后的函数中,我们首先判断set_voltage是否小于等于0.06。如果是,则在液晶屏上显示SER-U,表示输出电压等于设置电压。如果不是,则按照原来的方法将set_voltage和date_voltage的值显示在液晶屏上。