修改C51代码将显示的数字变为285: #include "public.h" #include "24c02.h" #include "key.h" #include "smg.h" #include "lcd1602.h" #define EEPROM_ADDRESS 0 //定义数据存入EEPROM的起始地址 void main() { u8 key_temp=0; u8 save_value=197; u8 save_buf[3]; lcd1602_init(); while(1) { key_temp=key_scan(0); save_value=at24c02_read_one_byte(EEPROM_ADDRESS); if(key_temp==KEY3_PRESS) { save_value++; } else if(key_temp==KEY4_PRESS) { save_value--; } save_buf[0]=save_value/100+48; save_buf[1]=save_value%100/10+48; save_buf[2]=save_value%100%10+48; lcd1602_show_string(0,0,save_buf); at24c02_write_one_byte(EEPROM_ADDRESS,save_value); } }
时间: 2024-04-01 07:34:45 浏览: 15
要将显示的数字变为285,可以将保存的初始值改为285,即将 `u8 save_value=197;` 改为 `u8 save_value=285;`。同时,将显示的位数也要相应地增加,可以将 `u8 save_buf[3];` 改为 `u8 save_buf[4];`,并在计算每位数字时进行相应的修改,具体地,可以将 `save_buf[0]=save_value/100+48;` 改为 `save_buf[0]=save_value/1000+48;`,将 `save_buf[1]=save_value%100/10+48;` 改为 `save_buf[1]=save_value%1000/100+48;`,将 `save_buf[2]=save_value%100%10+48;` 改为 `save_buf[2]=save_value%100/10+48;`,将 `lcd1602_show_string(0,0,save_buf);` 改为 `lcd1602_show_string(0,0,save_buf+1);`。最后,将修改后的代码烧录到目标板上即可。
相关问题
fm24c512.h
fm24c512.h是一个C语言库文件,用于操作FM24C512型号的串行EEPROM芯片。该库文件提供了一系列的函数,用于对EEPROM进行读写操作。FM24C512是一种存储器芯片,它具有512K位的容量,可通过串行接口进行读写。使用fm24c512.h可以方便地在C语言程序中对这种EEPROM芯片进行操作,包括读取数据、写入数据、擦除数据等功能。
在使用fm24c512.h时,首先需要包含该库文件,并在程序中进行初始化设置。然后可以调用相应的函数来对EEPROM进行操作,比如读取数据到缓冲区、从缓冲区写入数据到EEPROM等。通过这些函数的调用,可以方便地在C语言程序中实现对FM24C512型号的EEPROM芯片的读写操作。
总之,fm24c512.h是一个用于操作FM24C512型号串行EEPROM芯片的C语言库文件,它为开发者提供了方便的接口和函数,可以在C语言程序中对EEPROM进行读写操作,是在嵌入式系统开发中非常有用的工具。
main.c(15): error C267: 'AT24c02_ReadByte': requires ANSI-style prototype
这个错误是因为在调用函数`AT24c02_ReadByte`时,没有提供函数的ANSI风格原型声明。在C语言中,函数的原型声明应该在使用之前进行,以便编译器知道函数的参数和返回类型。
要解决这个错误,你需要在使用`AT24c02_ReadByte`函数之前,在代码的开头或者合适的位置提供函数的原型声明。原型声明应该包括函数的返回类型、函数名和参数列表。
例如,如果`AT24c02_ReadByte`函数的原型是`int AT24c02_ReadByte(void)`,你可以在代码的开头添加以下原型声明:
```c
int AT24c02_ReadByte(void);
```
这样编译器就能正确识别函数的参数和返回类型,从而解决该错误。