91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STC89C52+AT24C02實現(xiàn)設(shè)備開機次數(shù)記錄

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2023-05-26 09:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、項目介紹

在一些設(shè)備的使用過程中,需要對設(shè)備的使用次數(shù)進行統(tǒng)計和記錄。這可以用于評估設(shè)備的實際使用壽命、確定維護周期、預(yù)測故障風(fēng)險等方面,對于提高設(shè)備的穩(wěn)定性和可靠性具有重要意義。

當(dāng)前項目采用STC89C52作為主控芯片,AT24C02作為存儲芯片,實現(xiàn)了設(shè)備的開機次數(shù)記錄功能。每次設(shè)備上電啟動時,程序會從AT24C02中讀取之前的記錄值并加1,然后再將新的記錄值寫入AT24C02中,從而完成一次開機次數(shù)的記錄。通過這種方式,可以實時、準確地記錄設(shè)備的使用次數(shù),并且不受斷電影響,數(shù)據(jù)可靠性高。

image-20230525223043627

image-20230525223227038

二、AT24C02介紹

AT24C02是一款由Atmel公司生產(chǎn)的串行EEPROM存儲器芯片,可以存儲2K(2048bit)數(shù)據(jù),支持I2C總線通信協(xié)議,被廣泛應(yīng)用于各種電子設(shè)備中。

AT24C02有8個地址引腳(A0~A2),可以通過這些引腳設(shè)置不同的設(shè)備地址,使得多個AT24C02芯片能夠在同一I2C總線上同時使用而不會沖突。該芯片還具有擦寫次數(shù)和保護功能,能夠防止數(shù)據(jù)被誤刪或者未經(jīng)授權(quán)的修改。

AT24C02的工作電壓范圍為1.8V~5.5V,主要分為三個模式:寫入模式、讀取模式、休眠模式。寫入模式和讀取模式都需要先發(fā)送設(shè)備地址和命令字,然后才能進行數(shù)據(jù)操作。AT24C02對于輸入輸出電平都有嚴格的要求,如輸入電壓范圍應(yīng)在VSS-0.3V ~ VCC+0.3V之間,輸出電壓高電平應(yīng)在0.4VCC ~ VCC之間,低電平應(yīng)在0V ~ 0.1VCC之間,以確保數(shù)據(jù)傳輸?shù)臏蚀_性和可靠性。

由于AT24C02體積小巧,功耗低并且具有不易丟失數(shù)據(jù)的特點,被廣泛應(yīng)用于電子產(chǎn)品中,例如:數(shù)碼相機、智能手表、智能家居、安全監(jiān)控等領(lǐng)域。

三、代碼實現(xiàn)

以下是STC89C52+AT24C02實現(xiàn)設(shè)備開機次數(shù)記錄的代碼:

#include 
 #include 
 ?
 #define uint unsigned int
 #define uchar unsigned char
 ?
 sbit SCL = P1^0;   // I2C總線時鐘線
 sbit SDA = P1^1;   // I2C總線數(shù)據(jù)線
 ?
 #define AT24C02_ADDR    0xA0    // AT24C02設(shè)備地址
 ?
 /* 延時函數(shù) */
 void delay(uint i)
 {
     while(i--);
 }
 ?
 /* I2C總線起始信號 */
 void I2C_Start()
 {
     SDA = 1;
     SCL = 1;
     delay(10);      // 延時,確保數(shù)據(jù)穩(wěn)定
     SDA = 0;
     delay(10);
     SCL = 0;
 }
 ?
 /* I2C總線停止信號 */
 void I2C_Stop()
 {
     SDA = 0;
     SCL = 1;
     delay(10);
     SDA = 1;
     delay(10);
 }
 ?
 /* I2C總線發(fā)送應(yīng)答信號 */
 void I2C_Ack()
 {
     SDA = 0;
     delay(5);
     SCL = 1;
     delay(5);
     SCL = 0;
     delay(5);
     SDA = 1;
     delay(5);
 }
 ?
 /* I2C總線發(fā)送非應(yīng)答信號 */
 void I2C_Nack()
 {
     SDA = 1;
     delay(5);
     SCL = 1;
     delay(5);
     SCL = 0;
     delay(5);
 }
 ?
 /* I2C總線發(fā)送一個字節(jié) */
 void I2C_SendByte(uchar dat)
 {
     uchar i;
     for(i=0; i<8; i++)
     {
         if(dat & 0x80)
             SDA = 1;
         else
             SDA = 0;
         delay(5);
         SCL = 1;
         delay(5);
         SCL = 0;
         dat <<= 1;
     }
     I2C_Ack();
 }
 ?
 /* I2C總線讀取一個字節(jié) */
 uchar I2C_ReadByte()
 {
     uchar i, dat = 0;
     SDA = 1;
     for(i=0; i<8; i++)
     {
         SCL = 1;
         delay(5);
         dat <<= 1;
         if(SDA)
             dat |= 0x01;
         SCL = 0;
         delay(5);
     }
     return dat;
 }
 ?
 /* AT24C02寫入一個字節(jié) */
 void AT24C02_WriteByte(uint addr, uchar dat)
 {
     I2C_Start();                // 總線起始信號
     I2C_SendByte(AT24C02_ADDR); // 發(fā)送設(shè)備地址和寫模式命令
     I2C_SendByte(addr>>8);      // 發(fā)送待寫入數(shù)據(jù)的高8位地址
     I2C_SendByte(addr&0xFF);    // 發(fā)送待寫入數(shù)據(jù)的低8位地址
     I2C_SendByte(dat);          // 發(fā)送待寫入的數(shù)據(jù)
     I2C_Stop();                 // 總線停止信號
     delay(500);                 // 等待至少5ms,確保數(shù)據(jù)被寫入芯片中
 }
 ?
 /* AT24C02讀取一個字節(jié) */
 uchar AT24C02_ReadByte(uint addr)
 {
     uchar dat;
     I2C_Start();                // 總線起始信號
     I2C_SendByte(AT24C02_ADDR); // 發(fā)送設(shè)備地址和寫模式命令
     I2C_SendByte(addr>>8);      // 發(fā)送待讀數(shù)據(jù)的高8位地址
     I2C_SendByte(addr&0xFF);    // 發(fā)送待讀數(shù)據(jù)的低8位地址
     I2C_Start();                // 再次啟動總線,為了切換到讀模式
     I2C_SendByte(AT24C02_ADDR | 0x01);   // 發(fā)送設(shè)備地址和讀模式命令
     dat = I2C_ReadByte();        // 讀取數(shù)據(jù)
     I2C_Nack();                 // 非應(yīng)答信號
     I2C_Stop();                 // 總線停止信號
     return dat;
 }
 ?
 /* 獲取存儲在AT24C02中的開機次數(shù) */
 uint GetBootCount()
 {
     uchar hi, lo;
     hi = AT24C02_ReadByte(0x00);
     lo = AT24C02_ReadByte(0x01);
     return (hi<<8) | lo;        // 將高8位和低8位組合成一個16位數(shù)字
 }
 ?
 /* 將開機次數(shù)寫入AT24C02 */
 void SetBootCount(uint count)
 {
     uchar hi, lo;
     hi = count >> 8;            // 獲取開機次數(shù)的高8位
     lo = count & 0xFF;          // 獲取開機次數(shù)的低8位
     AT24C02_WriteByte(0x00, hi);    // 寫入高8位
     AT24C02_WriteByte(0x01, lo);    // 寫入低8位
 }
 ?
 /* 主函數(shù) */
 void main()
 {
     uint boot_count = GetBootCount();
     boot_count++;               // 開機次數(shù)加1
     SetBootCount(boot_count);   // 將新的開機次數(shù)寫入AT24C02
 ?
     while(1)
     {
         // 程序不斷循環(huán),實時記錄設(shè)備的開機次數(shù)
     }
 }

代碼利用STC89C52控制芯片和AT24C02存儲芯片,通過I2C總線通信協(xié)議實現(xiàn)了設(shè)備開機次數(shù)的記錄功能。具體而言,程序讀取AT24C02中存儲的開機次數(shù),將其加1并寫入AT24C02中;每次開機時,程序執(zhí)行該操作并將開機次數(shù)持續(xù)累加,從而實現(xiàn)了設(shè)備開機次數(shù)的精確、可靠記錄。


審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650610
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7653

    瀏覽量

    167437
  • STC89C52
    +關(guān)注

    關(guān)注

    41

    文章

    330

    瀏覽量

    83079
  • 存儲芯片
    +關(guān)注

    關(guān)注

    11

    文章

    935

    瀏覽量

    44154
  • AT24C02
    +關(guān)注

    關(guān)注

    0

    文章

    79

    瀏覽量

    24705
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    STC89C52芯片的編程

    編程STC89C51或52芯片,如下圖放置STC89C52芯片,插好串口線和USB線,這里我們用了USB取電,先不要按下右下角的電源開關(guān)。
    發(fā)表于 08-05 14:08 ?371次下載

    STC單片機內(nèi)部EEPROM記錄開機次數(shù)(c語言)

    STC單片機內(nèi)部EEPROM記錄開機次數(shù),可以記錄開機次數(shù)
    發(fā)表于 11-23 11:04 ?31次下載

    單片機STC89C52程序

    單片機STC89C52源程序。
    發(fā)表于 01-11 18:16 ?113次下載

    STC89C52RC

    STC89C52RC,PCB學(xué)習(xí)好資料,歡迎下載學(xué)習(xí)。
    發(fā)表于 03-23 09:39 ?0次下載

    HL配套C實驗例程24c02記錄按鍵次數(shù)

    HL配套C實驗例程24c02記錄按鍵次數(shù),配合開發(fā)板學(xué)習(xí)效果更好。
    發(fā)表于 04-11 17:04 ?18次下載

    HL開發(fā)板配套的24C02記錄按鍵次數(shù)C語言資料

    HL開發(fā)板配套C實驗例程100例之24c02記錄按鍵次數(shù),很好的單片機C語言資料。
    發(fā)表于 09-01 10:19 ?8次下載
    HL開發(fā)板配套的<b class='flag-5'>24C02</b><b class='flag-5'>記錄</b>按鍵<b class='flag-5'>次數(shù)</b><b class='flag-5'>C</b>語言資料

    使用單片機進行24C02記憶開機次數(shù)代碼的詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是使用單片機進行24C02記憶開機次數(shù)代碼的詳細資料說明。
    發(fā)表于 05-21 17:11 ?9次下載
    使用單片機進行<b class='flag-5'>24C02</b>記憶<b class='flag-5'>開機</b><b class='flag-5'>次數(shù)</b>代碼的詳細資料說明

    使用EEPROM存儲器24C02記憶開機次數(shù)的代碼免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用EEPROM存儲器24C02記憶開機次數(shù)的代碼免費下載。
    發(fā)表于 08-26 17:31 ?25次下載
    使用EEPROM存儲器<b class='flag-5'>24C02</b>記憶<b class='flag-5'>開機</b><b class='flag-5'>次數(shù)</b>的代碼免費下載

    使用單片機實現(xiàn)24C02記憶開機次數(shù)C語言實例免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用單片機實現(xiàn)24C02記憶開機次數(shù)C語言實例免費下載。
    發(fā)表于 03-24 13:51 ?26次下載

    STC89C52單片機

    STC89C52單片機,STC89C52STC89C52看到濤哥這篇文章了,紀念一下還在搞嵌入式的我們!硬件實物圖實物抽象化的圖為:這個STC89C52名字是什么意思呢?STC89C52
    發(fā)表于 11-23 17:06 ?111次下載
    <b class='flag-5'>STC89C52</b>單片機

    STC89C52實現(xiàn)紅外遙控(C語言)

    STC89C52實現(xiàn)紅外遙控(C語言) STC89C52RC實現(xiàn)
    發(fā)表于 11-25 15:36 ?28次下載
    <b class='flag-5'>STC89C52</b><b class='flag-5'>實現(xiàn)</b>紅外遙控(<b class='flag-5'>C</b>語言)

    STC89C52

    STC89C52
    發(fā)表于 11-25 15:51 ?163次下載
    <b class='flag-5'>STC89C52</b>

    【轉(zhuǎn)】STC89C52RC單片機實現(xiàn)串口打印功能

    【轉(zhuǎn)】STC89C52RC單片機實現(xiàn)串口打印功能
    發(fā)表于 11-25 16:06 ?19次下載
    【轉(zhuǎn)】<b class='flag-5'>STC89C52</b>RC單片機<b class='flag-5'>實現(xiàn)</b>串口打印功能

    STC89C52芯片手冊

    STC89C52芯片手冊_.pdf
    發(fā)表于 02-10 14:30 ?671次下載

    基于89C51單片機的24c02記憶開機次數(shù)源代碼

    基于89C51單片機的24c02記憶開機次數(shù)源程序
    發(fā)表于 05-12 16:47 ?6次下載
    主站蜘蛛池模板: 清纯唯美亚洲综合欧美色 | 天天艹天天 | 天天操天天搞 | 一区二区免费看 | 天天躁日日2018躁狠狠躁 | 午夜特片网 | 日韩免费观看一级毛片看看 | 亚洲午夜精品久久久久 | 天天色影视综合网 | 日本黄色大片网站 | 中文字幕亚洲天堂 | 人人澡人人澡人人看青草 | 黄色a毛片| 视频在线免费观看 | 午夜精品在线免费观看 | 色婷婷综合激情视频免费看 | 午夜精品视频任你躁 | 亚洲人成电影院在线观看 | 在线播放免费视频 | 狠狠操欧美 | 国产精品久久久精品视频 | 中文字幕在线乱码免费毛片 | 四虎影院观看视频 | 日本精品一卡二卡≡卡四卡 | 精品色视频 | 爱爱小视频免费看 | 色妞干网| 天堂资源地址在线 | 午夜国产片 | 亚洲一区二区三区免费看 | 九月丁香婷婷 | 色六月婷婷 | 456性欧美欧美在线视频 | 亚洲精品国产成人 | 天天干天天操天天插 | 亚洲色图综合 | 蕾丝视频成人★在线观看 | 亚洲精品色一区色二区色三区 | bt 另类 专区 欧美 制服 | 欧美五月激情 | 国产精品一区在线观看你懂的 |