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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4544|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)IIC時序及對IIC器件使用時的一些理解和源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
IIC時序在多種通訊方式中是明顯比較復(fù)雜,他不僅在時間上有嚴(yán)格的要求,而且還具有多種模式。
新手往往對SCK,SDA還有讀寫應(yīng)答時序很難理解,而且對主從機(jī)與接收發(fā)送機(jī)的關(guān)系很頭疼。
這次整理了一些常用程序和個人理解,以及IIC協(xié)議講解,希望對大家有幫助。

一、IIC通訊協(xié)議其實(shí)對大部分iic器件是通用的,但是它有不同的工作模式,比如說在單片機(jī)中,我們就學(xué)習(xí)了標(biāo)準(zhǔn)模式(PCF8591 A/D轉(zhuǎn)換芯片),快速模式(24C02存儲芯片),其實(shí)還有HS模式等等,目前我感覺得區(qū)別就是時間上的區(qū)別。


二、對于應(yīng)答信號來說,雖然主機(jī)和從機(jī)的身份是固定的,但是接收方和發(fā)送方的身份是可以變化的,而且應(yīng)答信號的產(chǎn)生是接收方發(fā)出的,所以比如說讀的時候,主機(jī)是接收方,從機(jī)是發(fā)送方,主機(jī)在讀完數(shù)據(jù)后,需要根據(jù)情況發(fā)出(非)應(yīng)答信號;寫的時候則是相反的,需要從機(jī)作出應(yīng)答。


三、接收從機(jī)應(yīng)答的時序和讀時序其實(shí)很相似,都需要自從機(jī)接收數(shù)據(jù)。


SDA_IN與起始、終止及寫時序有關(guān)
SDA_OUT與應(yīng)答、讀時序有關(guān)

單片機(jī)源程序如下:
  1. /**********************BST-V51實(shí)驗(yàn)開發(fā)板例程************************
  2. *  平臺:BST-V51 + Keil U3 + STC89C52
  3. *  名稱:為IIC總線的基本驅(qū)動程序(此程序沒有寫主函數(shù),只是一些IIC必備的子函數(shù))
  4. *  晶振:11.0592MHZ
  5. *  說明:免費(fèi)開源,不提供源代碼分析.
  6. ******************************************************************/

  7. #include<reg51.h>
  8. #include <intrins.h>
  9. #define uint unsigned int
  10. #define uchar unsigned char
  11. sbit sda=P2^0;                          //IO口定義
  12. sbit scl=P2^1;

  13. void nop()
  14. {
  15.         _nop_();
  16.         _nop_();
  17. }
  18. /////////24C02讀寫驅(qū)動程序////////////////////
  19. void delay1(unsigned int m)
  20. {        unsigned int n;
  21.           for(n=0;n<m;n++);
  22. }

  23. void init()  //24c02初始化子程序
  24. {
  25.         scl=1;
  26.         nop();
  27.         sda=1;
  28.         nop();
  29. }

  30. void start()        //啟動I2C總線
  31. {
  32.         sda=1;
  33.         nop();
  34.         scl=1;
  35.         nop();
  36.         sda=0;
  37.         nop();
  38.         scl=0;
  39.         nop();
  40. }

  41. void stop()         //停止I2C總線
  42. {
  43.         sda=0;
  44.         nop();
  45.         scl=1;
  46.         nop();
  47.         sda=1;
  48.         nop();
  49. }

  50. void writebyte(unsigned char j)  //寫一個字節(jié)
  51. {
  52.         unsigned char i,temp;
  53.            temp=j;
  54.            for (i=0;i<8;i++)
  55.    {
  56.            temp=temp<<1;
  57.            scl=0;
  58.            nop();
  59.            sda=CY;                //temp左移時,移出的值放入了CY中
  60.            nop();
  61.            scl=1;                //待sda線上的數(shù)據(jù)穩(wěn)定后,將scl拉高
  62.            nop();
  63.    }
  64.    scl=0;
  65.    nop();
  66.    sda=1;
  67.    nop();
  68. }

  69. unsigned char readbyte()   //讀一個字節(jié)
  70. {
  71.    unsigned char i,j,k=0;
  72.    scl=0; nop(); sda=1;
  73.    for (i=0;i<8;i++)
  74.    {  
  75.                 nop(); scl=1; nop();
  76.               if(sda==1)
  77.                 j=1;
  78.               else
  79.                 j=0;
  80.               k=(k<<1)|j;
  81.                   scl=0;
  82.         }
  83.            nop();
  84.         return(k);
  85. }

  86. void clock()         //I2C總線時鐘
  87. {
  88.    unsigned char i=0;
  89.    scl=1;
  90.    nop();
  91.    while((sda==1)&&(i<255))
  92.              i++;
  93.    scl=0;
  94.    nop();
  95. }
復(fù)制代碼

所有資料51hei提供下載:
iic時序及講解.rar (1.4 MB, 下載次數(shù): 43)
51單片機(jī)IIC常用函數(shù).rar (1.04 KB, 下載次數(shù): 35)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:612010 發(fā)表于 2019-9-17 10:14 | 只看該作者
收藏學(xué)習(xí)一下
回復(fù)

使用道具 舉報

板凳
ID:358100 發(fā)表于 2020-4-16 09:20 | 只看該作者
收藏學(xué)習(xí)學(xué)學(xué)。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜成人免费电影 | www.亚洲一区 | 精品成人佐山爱一区二区 | 91夜夜夜| 天天操天天插 | 国产精品无码久久久久 | 欧美一区二区免费 | 中文字幕视频网 | 91精品在线播放 | 精品福利在线 | 九九热免费观看 | 欧美国产精品一区二区三区 | 欧美一区二区三区 | 成人性视频在线播放 | 91免费入口 | www.五月天婷婷.com | 精品一二三区在线观看 | 99精品久久久久 | 精品视频一区二区三区 | 国产在线视频在线观看 | 毛片免费在线观看 | 亚洲精品一区二区三区免 | 18性欧美 | www精品美女久久久tv | 久久成人一区 | 狠狠草视频 | 国产区第一页 | 精品国产青草久久久久96 | 91影视| 国产专区在线 | 日韩欧美在线免费 | 日韩中文电影 | 一级片在线视频 | 亚洲高清在线免费观看 | 天天干天天插 | 成人免费看黄 | 国产黄色大片在线免费观看 | 国产高清不卡 | 午夜影院在线观看免费 | 黄色国产在线视频 | 国产超碰人人爽人人做人人爱 |