|
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機(jī)源程序如下:
- /**************************************************************************************
- 實(shí)驗(yàn)名稱:I2C-EEPROM實(shí)驗(yàn)
- 接線說明:
- 實(shí)驗(yàn)現(xiàn)象:下載程序后,數(shù)碼管右3位顯示0,按K1鍵將數(shù)據(jù)寫入到EEPROM內(nèi)保存,
- 按K2鍵讀取EEPROM內(nèi)保存的數(shù)據(jù),按K3鍵顯示數(shù)據(jù)加1,按K4鍵顯示數(shù)據(jù)清零,
- 最大能寫入的數(shù)據(jù)是255。
- 注意事項(xiàng):
- ***************************************************************************************/
- #include "public.h"
- #include "24c02.h"
- #include "key.h"
- #include "lcd1602.h"
- #include "stdio.h"
- #define EEPROM_ADDRESS 0 //定義數(shù)據(jù)存入EEPROM的起始地址
- /*******************************************************************************
- * 函 數(shù) 名 : main
- * 函數(shù)功能 : 主函數(shù)
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- 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);//第二行顯示
- }
- }
復(fù)制代碼
Keil代碼與Proteus8.13仿真下載:
I2C-EEPROM實(shí)驗(yàn)LCD顯示存儲(chǔ)情況protues仿真.7z
(74.4 KB, 下載次數(shù): 32)
2023-4-9 22:25 上傳
點(diǎn)擊文件名下載附件
51單片機(jī)仿真IIC用LCD顯示
|
評(píng)分
-
查看全部評(píng)分
|