欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 基于STC12單片機(jī)的24C02程序--自己寫(xiě)的,高質(zhì)量代碼 [打印本頁(yè)]

作者: qingmingyushang    時(shí)間: 2017-5-13 20:29
標(biāo)題: 基于STC12單片機(jī)的24C02程序--自己寫(xiě)的,高質(zhì)量代碼
因?yàn)镾TC12系列沒(méi)有I2C模塊,所以使用IO模擬I2C總線(xiàn)的方法實(shí)現(xiàn)的。1、EEPROM的讀寫(xiě),I2C通訊。

2、STC12系列是1T指令周期的,且已用示波器測(cè)量,delay(1);約1us;(程序中所用延時(shí)函數(shù));
3、所有元件時(shí)序,皆按手冊(cè)操作,高效穩(wěn)定可靠,會(huì)附件PDF給大家。
4、I2C總線(xiàn)是用的P1.3,P1.4 IO;



單片機(jī)源程序如下:
  1. #include "I2C.h"

  2. sbit I2C_SDA=P1^3;
  3. sbit I2C_SCL=P1^4;


  4. void I2C_Delay(u16 x)
  5. {
  6.         while(x--);
  7. }


  8. void I2C_Start()         //產(chǎn)生I2C的啟動(dòng)信號(hào)
  9. {
  10.         I2C_SDA=1;       
  11.           I2C_SCL=1;
  12.         I2C_Delay(5);         //4.7us
  13.         I2C_SDA=0;
  14.         I2C_Delay(5);
  15.         I2C_SCL=0;
  16. }

  17. void I2C_Stop()           //產(chǎn)生I2C的停止信號(hào)
  18. {
  19.           I2C_SCL=0;
  20.         I2C_SDA=0;       
  21.         I2C_Delay(5);
  22.         I2C_SCL=1;
  23.         I2C_Delay(5);
  24.         I2C_SDA=1;
  25. }

  26. void I2C_Send(u8 dat)           //按照I2C的協(xié)議發(fā)送一個(gè)字節(jié)
  27. {
  28.         u8 i;
  29.         for(i=0;i<8;i++)
  30.         {
  31.                  I2C_SCL=0;
  32.                 I2C_SDA=dat>>7;
  33.                 I2C_SCL=1;
  34.                 dat<<=1;
  35.         }
  36. }

  37. u8 Wait_Ack()           //主機(jī)等待從機(jī)發(fā)送應(yīng)答信號(hào)
  38. {
  39.         u16 timeout;
  40.         I2C_SCL=0;
  41.         I2C_SDA=1;
  42.         I2C_SCL=1;
  43.         timeout=0;
  44.         while(I2C_SDA)
  45.         {
  46.                  if(timeout++>=500)
  47.                 {
  48.                         I2C_SCL=0;
  49.                           return 1;                 // 表示應(yīng)答失敗
  50.                 }
  51.         }
  52.         I2C_SCL=0;                           //釋放SDA
  53.                
  54.         return 0;
  55. }

  56. u8 I2C_Receive()   // 主機(jī)接收從機(jī)一個(gè)字節(jié)
  57. {
  58.         u8 dat,i;
  59.         for(i=0;i<8;i++)
  60.         {
  61.                 dat<<=1;       
  62.                 I2C_SCL=1;
  63.                 if(I2C_SDA)
  64.                 {
  65. //                        dat|=0x01;
  66.                         dat++;
  67.                 }
  68.                 I2C_SCL=0;
  69.         }
  70.         return dat;
  71. }

  72. void I2C_Ack()          //主機(jī)向從機(jī)產(chǎn)生應(yīng)答信號(hào)
  73. {
  74.         I2C_SCL=0;       

  75.         I2C_SDA=0;

  76.         I2C_SDA=1;
  77.         I2C_SCL=1;       
  78. ……………………

  79. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
I2C總線(xiàn)器件選型(包含8591應(yīng)用).pdf (385 KB, 下載次數(shù): 73)
24c02串行儲(chǔ)存器中文官方資料手冊(cè).pdf (994.32 KB, 下載次數(shù): 79)
24c02.zip (66.04 KB, 下載次數(shù): 266)


作者: aqs1028    時(shí)間: 2018-10-14 14:39
確實(shí)簡(jiǎn)潔質(zhì)量高
作者: hymhym168    時(shí)間: 2019-3-15 12:08
很有用,謝謝樓主
作者: wis98    時(shí)間: 2019-6-27 16:41
確實(shí)簡(jiǎn)潔質(zhì)量高
作者: 291069947    時(shí)間: 2019-7-19 18:57
可以可以  效率很高
作者: df812244658    時(shí)間: 2021-12-15 19:52
很久沒(méi)玩單片機(jī)了    現(xiàn)在從新學(xué)習(xí)一下
作者: df812244658    時(shí)間: 2021-12-15 19:56
有沒(méi)有公德心啊   啥都放一個(gè)文件夾里
作者: yeyuemyl    時(shí)間: 2022-2-27 08:58
質(zhì)量很高,實(shí)現(xiàn)了16位數(shù)字和浮點(diǎn)數(shù)的儲(chǔ)存和讀取,并且都能通過(guò)對(duì)應(yīng)的顯示函數(shù)顯示
作者: forest3    時(shí)間: 2023-4-11 15:52
寫(xiě)的不錯(cuò),666
作者: hi等你    時(shí)間: 2023-4-11 16:13
為什么看到好多24c02電路時(shí)鐘和數(shù)據(jù)腳都有上拉電阻,我用的51單片機(jī)接p3口沒(méi)有

用上拉電阻,也一樣用,難道這一定要加上拉電阻嗎,有大師知道嗎,不加有什么影響




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1