在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用C語言實(shí)現(xiàn)51單片機(jī)模擬I2C總線

Wildesbeast ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-05-05 15:32 ? 次閱讀

電路原理

EEPROMATMEL公司的AT24C01A。單片機(jī)為ATMEL公司的AT89C51。

軟件說明

C語言為Franklin C V3.2。將源程序另存為testi2c.c,用命令

C51 testi2c.c

L51 TESTI2C.OBJ

OHS51 TESTI2C

編譯,連接,得到TESTI2C.HEX文件,即可由編程器讀入并進(jìn)行寫片,實(shí)驗(yàn)。

3.源程序

#include 《reg51.h》

#include 《intrins.h》

#define uchar unsigned char

#define uint unsigned int

#define AddWr 0xa0 /*器件地址選擇及寫標(biāo)志*/

#define AddRd 0xa1 /*器件地址選擇及讀標(biāo)志*/

#define Hidden 0x0e /*顯示器的消隱碼*/

/*有關(guān)全局變量*/

sbit Sda= P3^7; /*串行數(shù)據(jù)*/

sbit Scl= P3^6; /*串行時鐘*/

sbit WP= P3^5; /*硬件寫保護(hù)*/

void mDelay(uchar j)

{ uint i;

for(;j》0;j--)

{ for(i=0;i《125;i--)

{;}

}

}

/*發(fā)送起始條件*/

void Start(void) /*起始條件*/

{

Sda=1;

Scl=1;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

Sda=0;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

}

void Stop(void) /*停止條件*/

{

Sda=0;

Scl=1;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

Sda=1;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

}

void Ack(void) /*應(yīng)答位*/

{

Sda=0;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

Scl=1;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

Scl=0;

}

void NoAck(void) /*反向應(yīng)答位*/

{

Sda=1;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

Scl=1;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

Scl=0;

}

void Send(uchar Data) /*發(fā)送數(shù)據(jù)子程序,Data為要求發(fā)送的數(shù)據(jù)*/

{

uchar BitCounter=8; /*位數(shù)控制*/

uchar temp; /*中間變量控制*/

do

{

temp=Data;

Scl=0;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

if((temp&0x80)==0x80)/* 如果最高位是1*/

Sda=1;

else

Sda=0;

Scl=1;

temp=Data《《1; /*RLC*/

Data=temp;

BitCounter--;

}while(BitCounter);

Scl=0;

}

uchar Read(void) /*讀一個字節(jié)的數(shù)據(jù),并返回該字節(jié)值*/

{

uchar temp=0;

uchar temp1=0;

uchar BitCounter=8;

Sda=1;

do{

Scl=0;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

Scl=1;

_nop_ ();

_nop_ ();

_nop_ ();

_nop_ ();

if(Sda) /*如果Sda=1;*/

temp=temp|0x01; /*temp的最低位置1*/

else

temp=temp&0xfe; /*否則temp的最低位清0*/

if(BitCounter-1)

{ temp1=temp《《1;

temp=temp1;

}

BitCounter--;

}while(BitCounter);

return(temp);

}

void WrToROM(uchar Data[],uchar Address,uchar Num)

{

uchar i;

uchar *PData;

PData=Data;

for(i=0;i《Num;i++)

{

Start(); /*發(fā)送啟動信號*/

Send(0xa0); /*發(fā)送SLA+W*/

Ack();

Send(Address+i); /*發(fā)送地址*/

Ack();

Send(*(PData+i));

Ack();

Stop();

mDelay(20);

}

}

void RdFromROM(uchar Data[],uchar Address,uchar Num)

{

uchar i;

uchar *PData;

PData=Data;

for(i=0;i《Num;i++)

{

Start();

Send(0xa0);

Ack();

Send(Address+i);

Ack();

Start();

Send(0xa1);

Ack();

*(PData+i)=Read();

Scl=0;

NoAck();

Stop();

}

}

void main()

{

uchar Number[4]={1,2,3,4};

WP= 1;

WrToROM(Number,4,4); /*將初始化后的數(shù)值寫入EEPROM*/

mDelay(20);

Number[0]=0;

Number[1]=0;

Number[2]=0;

Number[3]=0; /*將數(shù)組中的值清掉,以驗(yàn)證讀出的數(shù)是否正確*/

RdFromROM(Number,4,4);

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    277

    文章

    5710

    瀏覽量

    126667
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7630

    瀏覽量

    140488
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1536

    瀏覽量

    127077
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    C51單片機(jī)模擬I2C總線C語言實(shí)現(xiàn)

    EEPROM為ATMEL公司的AT24C01A。單片機(jī)為ATMEL公司的AT89C512. 軟件說明 C
    發(fā)表于 08-13 13:55 ?88次下載

    億恒C166 系列單片機(jī)I2C 總線的軟件模擬

    億恒C166 系列單片機(jī)I2C 總線的軟件模擬
    發(fā)表于 05-14 16:11 ?6次下載

    基于I2C總線單片機(jī)暖水鍋爐測溫系統(tǒng)實(shí)現(xiàn)

    基于I2C總線單片機(jī)暖水鍋爐測溫系統(tǒng)實(shí)現(xiàn):摘要:溫度測量是工程控制領(lǐng)域常見的一種情況,本文介紹了一種基于I2C
    發(fā)表于 06-21 22:40 ?23次下載

    I2C總線單片機(jī)C語言實(shí)現(xiàn)及其應(yīng)用

    I2C總線單片機(jī)C語言實(shí)現(xiàn)及其應(yīng)用 本文介紹了I2C總線
    發(fā)表于 10-17 08:36 ?3123次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>的<b class='flag-5'>單片機(jī)</b><b class='flag-5'>C</b><b class='flag-5'>語言實(shí)現(xiàn)</b>及其應(yīng)用

    51系列單片機(jī)模擬串行口的C語言實(shí)現(xiàn)_栗小寬

    5 1 系列單片機(jī)模擬串行口的C 語言實(shí)現(xiàn).pdf
    發(fā)表于 10-29 11:34 ?4次下載

    軟件模擬I2C總線C51實(shí)現(xiàn)

    軟件模擬I2C總線C51實(shí)現(xiàn)
    發(fā)表于 10-13 11:03 ?8次下載
    軟件<b class='flag-5'>模擬</b><b class='flag-5'>I2C</b><b class='flag-5'>總線</b>的<b class='flag-5'>C51</b><b class='flag-5'>實(shí)現(xiàn)</b>

    80C51單片機(jī)模擬I2C總線的主機(jī)程序分享

    I2C總線協(xié)議程序 在使用的過程中一定要注意時序、時間的問題。 i2c.c /* I2C.c 標(biāo)準(zhǔn)80C51
    發(fā)表于 12-05 15:39 ?3734次閱讀
    80<b class='flag-5'>C51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>模擬</b><b class='flag-5'>I2C</b><b class='flag-5'>總線</b>的主機(jī)程序分享

    使用51單片機(jī)模擬I2C總線的驅(qū)動程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)模擬I2C總線的驅(qū)動程序免費(fèi)下載。
    發(fā)表于 04-17 17:27 ?0次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>模擬</b><b class='flag-5'>I2C</b><b class='flag-5'>總線</b>的驅(qū)動程序免費(fèi)下載

    使用C語言模擬51單片機(jī)I2C總線的資料和程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用C語言模擬51單片機(jī)I2C
    發(fā)表于 08-06 17:34 ?11次下載
    使用<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>模擬</b><b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>的資料和程序免費(fèi)下載

    使用51單片機(jī)模擬I2C總線的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)模擬I2C總線的程序免費(fèi)下載我見過最好的,與大家共享。
    發(fā)表于 06-18 17:44 ?3次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>模擬</b><b class='flag-5'>I2C</b><b class='flag-5'>總線</b>的程序免費(fèi)下載

    基于MCS-51單片機(jī)I2C總線接口電路的設(shè)計

    單片機(jī)控制系統(tǒng)中,廣泛使用I2C器件。如果單片機(jī)自帶I2C總線接口,則所有I2C器件對應(yīng)連接到
    發(fā)表于 10-15 16:13 ?3707次閱讀
    基于MCS-<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>I2C</b><b class='flag-5'>總線</b>接口電路的設(shè)計

    I2C總線驅(qū)動的C語言源程序詳細(xì)說明

     i2c 總線單片機(jī)系統(tǒng)中常用到的總線技術(shù)這里給大家介紹一個I2C總線驅(qū)動的
    的頭像 發(fā)表于 09-26 11:07 ?5496次閱讀

    使用單片機(jī)實(shí)現(xiàn)I2C接口存儲器AT24C04的讀寫與顯示的C語言實(shí)

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)I2C接口存儲器AT24C04的讀寫與顯示的C語言實(shí)
    發(fā)表于 03-31 11:20 ?28次下載

    使用單片機(jī)實(shí)現(xiàn)I2C存儲器設(shè)計的中文硬件字庫應(yīng)用的C語言實(shí)

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)I2C存儲器設(shè)計的中文硬件字庫應(yīng)用的C語言實(shí)例。
    發(fā)表于 03-31 14:45 ?2次下載

    使用單片機(jī)實(shí)現(xiàn)I2C接口數(shù)字電位器AD5242應(yīng)用的C語言實(shí)例免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實(shí)現(xiàn)I2C接口數(shù)字電位器AD5242應(yīng)用的C語言實(shí)例免費(fèi)下載。
    發(fā)表于 03-31 16:31 ?63次下載
    主站蜘蛛池模板: 在线国产资源 | 免费一级视频在线播放 | 日韩三级免费观看 | 久久久久久88色偷偷 | 欧美激情 在线 | 六月婷婷导航福利在线 | 五月婷婷六月天 | 成年人一级毛片 | 丁香四月婷婷 | 日本人zzzwww色视频 | 久久精品视频国产 | 在线观看视频你懂的 | zzji国产精品视频 | 中国业余老太性视频 | 操黄色| 三级理论手机在线观看视频 | 激情亚洲| 视频免费观看视频 | 国产欧美综合在线 | 狠狠干狠狠操 | 欧美性xxxx交 | 久久久久国产精品免费网站 | 亚洲国产系列 | 亚洲国内精品 | 一级片免费观看视频 | 六月婷操| 78m-78模成视频在线 | 成年人的毛片 | 久久性妇女精品免费 | 天天爱天天射 | 国内精品久久久久久久久野战 | 午夜爱爱网站 | 天天综合色天天综合网 | 狠狠色噜噜狠狠狠狠999米奇 | 欧美性色xo影院在线观看 | 伊人网在线视频 | 成人观看网站a | 爱操成人网 | 亚洲国产精品va在线观看麻豆 | 人人爽天天爽夜夜爽qc | 欧美另类xx|