找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

單片機(jī)+I2C總線器件應(yīng)用PPT課件與程序+仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
I2C總線器件應(yīng)用,程序+仿真。

ppt課件內(nèi)容預(yù)覽:



仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)




單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define nop _nop_()
  5. sbit sda=P1^7;   //SDA和單片機(jī)的P17腳相連
  6. sbit scl=P1^1;   //SCL和單片機(jī)的P16腳相連
  7. //定義ACC的位,利用ACC操作速度最快   
  8. sbit a0=ACC^0;
  9. sbit a1=ACC^1;
  10. sbit a2=ACC^2;
  11. sbit a3=ACC^3;
  12. sbit a4=ACC^4;
  13. sbit a5=ACC^5;
  14. sbit a6=ACC^6;
  15. sbit a7=ACC^7;
  16. //開始函數(shù)
  17. void start()
  18. {
  19.         sda=1;
  20.         nop;
  21.         scl=1;
  22.         nop;
  23.         sda=0;
  24.         nop;
  25.         scl=0;
  26.         nop;
  27. }
  28. //停止函數(shù)
  29. void stop()
  30. {
  31.         sda=0;
  32.         nop;
  33.         scl=1;
  34.         nop;
  35.         sda=1;
  36.         nop;
  37. }
  38. //響應(yīng)函數(shù)
  39. void ack()
  40. {
  41.         uchar i;
  42.         scl=1;
  43.         nop;
  44.         while((sda==1) && (i<250))i++;
  45.         scl=0;
  46.         nop;
  47. }
  48. //寫一個(gè)字節(jié)函數(shù)
  49. void write_byte(uchar dd)
  50. {
  51.         ACC=dd;
  52.         sda=a7;scl=1;scl=0;
  53.         sda=a6;scl=1;scl=0;
  54.         sda=a5;scl=1;scl=0;
  55.         sda=a4;scl=1;scl=0;
  56.         sda=a3;scl=1;scl=0;
  57.         sda=a2;scl=1;scl=0;
  58.         sda=a1;scl=1;scl=0;
  59.         sda=a0;scl=1;scl=0;
  60.         sda=1;
  61. }
  62. //讀一個(gè)字節(jié)函數(shù)
  63. uchar read_byte()
  64. {
  65.         sda=1;
  66.         scl=1;a7=sda;scl=0;
  67.         scl=1;a6=sda;scl=0;
  68.         scl=1;a5=sda;scl=0;
  69.         scl=1;a4=sda;scl=0;
  70.         scl=1;a3=sda;scl=0;
  71.         scl=1;a2=sda;scl=0;
  72.         scl=1;a1=sda;scl=0;
  73.         scl=1;a0=sda;scl=0;
  74.         sda=1;
  75.         return(ACC);
  76. }
  77. //寫地址和數(shù)據(jù)函數(shù)
  78. void write_add(uchar address,uchar date)
  79. {
  80.         start();
  81.         write_byte(0xa0);//寫2404地址命令
  82.         ack();
  83.         write_byte(address);//寫地址
  84.         ack();
  85.         write_byte(date);//寫數(shù)據(jù)
  86.         ack();
  87.         stop();
  88. }
  89. //讀地址、數(shù)據(jù)函數(shù)
  90. uchar read_add(uchar address)
  91. {
  92.         uchar temp;
  93.         start();
  94.         write_byte(0xa0);                  //
  95.         ack();
  96.         write_byte(address);          //
  97.         ack();
  98.         start();
  99.         write_byte(0xa1);
  100.         ack();
  101.         temp=read_byte();
  102.         stop();
  103.         return(temp);
  104. }
  105. void delay(uchar i)
  106. {
  107.         uchar a,b;
  108.         for(a=0;a<i;i++)
  109.                 for(b=0;b<100;b++);
  110. }
  111. ……………………

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

所有資料51hei提供下載:
I2C總線器件應(yīng)用.zip (217.05 KB, 下載次數(shù): 28)


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

使用道具 舉報(bào)

沙發(fā)
ID:247668 發(fā)表于 2017-11-9 18:44 | 只看該作者
還行,感謝分享
回復(fù)

使用道具 舉報(bào)

板凳
ID:275111 發(fā)表于 2020-4-1 10:51 | 只看該作者
點(diǎn)LED燈部分參考之 做驗(yàn)證用
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表