仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- /**************************************************************************************
- 實驗名稱:I2C-EEPROM實驗
- 接線說明:
- 實驗現象:下載程序后,數碼管右3位顯示0,按K1鍵將數據寫入到EEPROM內保存,
- 按K2鍵讀取EEPROM內保存的數據,按K3鍵顯示數據加1,按K4鍵顯示數據清零,
- 最大能寫入的數據是255。
- 注意事項:
- ***************************************************************************************/
- #include "public.h"
- #include "24c02.h"
- #include "key.h"
- #include "lcd1602.h"
- #include "stdio.h"
- #define EEPROM_ADDRESS 0 //定義數據存入EEPROM的起始地址
- /*******************************************************************************
- * 函 數 名 : main
- * 函數功能 : 主函數
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void main()
- {
- char buffer[10];
- u8 key_temp=0;
- int save_value=0;
- int save_buf[3];
- lcd1602_init();//LCD1602初始化
- lcd1602_show_string(0,0,"24c02save");//第二行顯示
- while(1)
- {
- key_temp=key_scan(0);
- 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;
- }
- save_buf[0]=save_value/100;
- save_buf[1]=save_value%100/10;
- save_buf[2]=save_value%100%10;
- sprintf(buffer,"%d%d%d",save_buf[0],save_buf[1],save_buf[2]);
- lcd1602_show_string(0,1,buffer);//第二行顯示
- }
- }
復制代碼
Keil代碼與Proteus8.13仿真下載:
I2C-EEPROM實驗LCD顯示存儲情況protues仿真.7z
(74.4 KB, 下載次數: 32)
2023-4-9 22:25 上傳
點擊文件名下載附件
51單片機仿真IIC用LCD顯示
|