久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9630|回復: 9
打印 上一主題 下一主題
收起左側

基于STC12單片機的24C02程序--自己寫的,高質量代碼

  [復制鏈接]
跳轉到指定樓層
樓主
因為STC12系列沒有I2C模塊,所以使用IO模擬I2C總線的方法實現的。1、EEPROM的讀寫,I2C通訊。

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



單片機源程序如下:
  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()         //產生I2C的啟動信號
  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()           //產生I2C的停止信號
  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的協議發送一個字節
  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()           //主機等待從機發送應答信號
  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;                 // 表示應答失敗
  50.                 }
  51.         }
  52.         I2C_SCL=0;                           //釋放SDA
  53.                
  54.         return 0;
  55. }

  56. u8 I2C_Receive()   // 主機接收從機一個字節
  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()          //主機向從機產生應答信號
  73. {
  74.         I2C_SCL=0;       

  75.         I2C_SDA=0;

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

  79. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

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

評分

參與人數 1黑幣 +4 收起 理由
gqzjl + 4 贊一個!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏10 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:409415 發表于 2018-10-14 14:39 | 只看該作者
確實簡潔質量高
回復

使用道具 舉報

板凳
ID:375538 發表于 2019-3-15 12:08 | 只看該作者
很有用,謝謝樓主
回復

使用道具 舉報

地板
ID:33544 發表于 2019-6-27 16:41 | 只看該作者
確實簡潔質量高
回復

使用道具 舉報

5#
ID:578917 發表于 2019-7-19 18:57 | 只看該作者
可以可以  效率很高
回復

使用道具 舉報

6#
ID:479395 發表于 2021-12-15 19:52 | 只看該作者
很久沒玩單片機了    現在從新學習一下
回復

使用道具 舉報

7#
ID:479395 發表于 2021-12-15 19:56 | 只看該作者
有沒有公德心啊   啥都放一個文件夾里
回復

使用道具 舉報

8#
ID:997450 發表于 2022-2-27 08:58 | 只看該作者
質量很高,實現了16位數字和浮點數的儲存和讀取,并且都能通過對應的顯示函數顯示
回復

使用道具 舉報

9#
ID:447337 發表于 2023-4-11 15:52 | 只看該作者
寫的不錯,666
回復

使用道具 舉報

10#
ID:996773 發表于 2023-4-11 16:13 | 只看該作者
為什么看到好多24c02電路時鐘和數據腳都有上拉電阻,我用的51單片機接p3口沒有

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲久久久 | 久久99视频这里只有精品 | 婷婷综合在线 | 毛片免费视频 | 欧美综合国产精品久久丁香 | 91亚洲国产精品 | 日韩一区二区在线免费观看 | 久久久精品网站 | www.青青草 | 99tv| 草草在线观看 | 亚洲人成人一区二区在线观看 | 成人av在线播放 | 日韩视频区| 日韩精品在线观看一区二区三区 | www.久久影视| 亚洲欧美成人影院 | 日韩欧美在线一区 | 国产人免费人成免费视频 | 精品国产18久久久久久二百 | 久久国产福利 | 久久久久久久综合色一本 | www.亚洲区| 亚洲日韩中文字幕一区 | 懂色一区二区三区免费观看 | 成人精品一区二区三区 | 欧美日韩亚洲一区 | 午夜激情小视频 | 日韩有码一区 | 午夜精品一区二区三区在线播放 | 一级做a毛片 | 婷婷91| 国产在线小视频 | 久久久国产一区二区三区 | 久久不卡| 国产片网站 | 国产伦精品一区二区三区视频金莲 | 天天色官网 | 日韩午夜精品 | 一区二区亚洲 | 欧美在线观看一区 |