機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
IIC總線模擬程序
IIC總線模擬程序
 更新時間:2008-8-17 16:32:36  點擊數(shù):18
【字體: 字體顏色
文件: PCF8563T.C
1 /**————————————————————
2 〖說明〗I2C總線驅動程序(用兩個普通IO模擬I2C總線)
3 包括100Khz(T=10us)的標準模式(慢速模式)選擇,
4 和400Khz(T=2.5us)的快速模式選擇,
5 默認11.0592Mhz的晶振。

10 —————————————————————*/
11
12 #ifndef SDA
13 #define SDA P0_0
14 #define SCL P0_1
15 #endif
16
17 extern uchar SystemError;
18
19 #define uchar unsigned char
20 #define uint unsigned int
21 #define Byte unsigned char
22 #define Word unsigned int
23 #define bool bit
24 #define true 1
25 #define false 0
26
27 #define SomeNOP(); _nop_();_nop_();_nop_();_nop_();
28
29 /**--------------------------------------------------------------------------------
30 調用方式:void I2CStart(void) ﹫2001/07/0 4
31 函數(shù)說明:私有函數(shù),I2C專用
32 ---------------------------------------------------------------------------------*/
33 void I2CStart(void)
34 {
35 EA=0;
36 SDA=1; SCL=1; SomeNOP();//INI
37 SDA=0; SomeNOP(); //START
38 SCL=0;
39 }
40
41 /**--------------------------------------------------------------------------------
42 調用方式:void I2CStop(void) ﹫2001/07/0 4
43 函數(shù)說明:私有函數(shù),I2C專用
44 ---------------------------------------------------------------------------------*/
45 void I2CStop(void)
46 {
47 SCL=0; SDA=0; SomeNOP(); //INI
48 SCL=1; SomeNOP(); SDA=1; //STOP
49 EA=1;
50 }
51
52 /**--------------------------------------------------------------------------------
53 調用方式:bit I2CAck(void) ﹫2001/07/0 4
54 函數(shù)說明:私有函數(shù),I2C專用,等待從器件接收方的應答
55 ---------------------------------------------------------------------------------*/
56 bool WaitAck(void)
57 {
58 uchar errtime=255;//因故障接收方無ACK,超時值為255。
59 SDA=1;SomeNOP();
60 SCL=1;SomeNOP();
61 while(SDA) {errtime--; if (!errtime) {I2CStop();SystemError=0x11;return false;}}
62 SCL=0;
63 return true;
第1 頁
文件: PCF8563T.C 2001-11-27, 18:39:20
64 }
65
66 /**--------------------------------------------------------------------------------
67 調用方式:void SendAck(void) ﹫2001/07/0 4
68 函數(shù)說明:私有函數(shù),I2C專用,主器件為接收方,從器件為發(fā)送方時,應答信號。
69 ---------------------------------------------------------------------------------*/
70 void SendAck(void)
71 {
72 SDA=0; SomeNOP();
73 SCL=1; SomeNOP();
74 SCL=0;
75 }
76
77 /**--------------------------------------------------------------------------------
78 調用方式:void SendAck(void) ﹫2001/07/0 4
79 函數(shù)說明:私有函數(shù),I2C專用,主器件為接收方,從器件為發(fā)送方時,非應答信號。
80 }**--------------------------------------------------------------------------------
81 void SendNotAck(void)
82 {
83 SDA=1; SomeNOP();
84 SCL=1; SomeNOP();
85 SCL=0;
86 }
87
88 /**--------------------------------------------------------------------------------
89 調用方式:void I2CSend(uchar ch) ﹫2001/07/0 5
90 函數(shù)說明:私有函數(shù),I2C專用
91 ---------------------------------------------------------------------------------*/
92 void I2CSendByte(Byte ch)
[1] [2] [3]  下一頁
  • 上一篇: CRC16-STANDARD的快速算法,51匯編
  • 下一篇: CRC算法原理及C語言實現(xiàn)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網站

    網站經營許可證:浙B2-20080178-1