?? 51單片機模擬i2c總線的c語言實現_老古開發網文章.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0032)http://www.laogu.com/wz_1682.htm -->
<HTML><HEAD><TITLE>51單片機模擬I2C總線的C語言實現_老古開發網文章</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="51單片機模擬I2C總線的C語言實現_老古開發網文章.files/category.css" type=text/css
rel=stylesheet>
<META content="MSHTML 6.00.2800.1595" name=GENERATOR></HEAD>
<BODY vLink=#0000ff bgColor=#ffffff leftMargin=5 topMargin=5>
<DIV align=center>
<TABLE class=tableMain width=736 align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=1 cellPadding=2 width=728 align=center bgColor=#fef4d3
border=0>
<TBODY>
<TR>
<TD width=290>
<DIV align=left>
<OBJECT
codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0
height=60 width=290
classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="movie" VALUE="/my/laogu-lichao.swf"><PARAM NAME="quality" VALUE="high">
<embed src="/my/laogu-lichao.swf"
quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" width="290"
height="60"></embed> </OBJECT></DIV></TD>
<TD colSpan=2><IFRAME marginWidth=0 marginHeight=0
src="51單片機模擬I2C總線的C語言實現_老古開發網文章.files/adfshow.htm" frameBorder=0
width=290 scrolling=no
height=60>
<script language="java-script1.1" src="http://chinaecnetafp.allyes.com/main/adfshow?user=ChinaecnetAfp|eShop|290_60&db=chinaecnetafp&local=yes&js=on"></script>
<noscript>
<a href="http://chinaecnetafp.allyes.com/main/adfclick?user=ChinaecnetAfp|eShop|290_60&db=chinaecnetafp"><img src="http://chinaecnetafp.allyes.com/main/adfshow?user=ChinaecnetAfp|eShop|290_60&db=chinaecnetafp" width=290 height=60 border=0 /></a>
</noscript>
</IFRAME></TD>
<TD width=140><A href="http://www.okdsp.com/" target=_blank><IMG
height=60 src="51單片機模擬I2C總線的C語言實現_老古開發網文章.files/okdsp.gif" width=140
border=0></A></TD></TR>
<TR>
<TD>
<OBJECT
codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0
height=60 width=290
classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="movie" VALUE="/my/gezhou.swf"><PARAM NAME="quality" VALUE="high">
<embed src="/my/gezhou.swf" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" width="290"
height="60"></embed> </OBJECT><!--Adforward Begin:--><!--Adforward End--></TD>
<TD colSpan=2>
<OBJECT
codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0
height=60 width=290
classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM NAME="movie" VALUE="/my/lrd.swf"><PARAM NAME="quality" VALUE="high">
<embed src="/my/lrd.swf" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" width="290"
height="60"></embed> </OBJECT></TD>
<TD>
<DIV align=right><A href="http://www.szks.net/" target=_blank><IMG
height=60 src="51單片機模擬I2C總線的C語言實現_老古開發網文章.files/KS-logo.gif"
width=140 border=0></A></DIV></TD></TR>
<TR>
<TD></TD>
<TD width=140>
<DIV align=center><A href="http://www.laogu.com/GUANGGAO.HTM"
target=_blank></A></DIV></TD>
<TD colSpan=2> </TD></TR>
<TR>
<TD colSpan=4><IFRAME name=leftlogin marginWidth=0 marginHeight=0
src="51單片機模擬I2C總線的C語言實現_老古開發網文章.files/laogu2.htm" frameBorder=no
width=734 scrolling=no height=30
top="0"></IFRAME></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE class=tableMain cellSpacing=0 cellPadding=0 width=736 align=center
border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE>
<TABLE class=tablehome cellSpacing=0 cellPadding=0 bgColor=#93c901>
<TBODY>
<TR>
<TD width=160 bgColor=#ffffcc height=2>
<DIV align=left><A href="http://www.laogu.com/article.aspx"><IMG height=70
src="51單片機模擬I2C總線的C語言實現_老古開發網文章.files/xinwen.gif" width=160
border=0></A></DIV></TD>
<TD width="80%" bgColor=#ffffcc height=2>
<SCRIPT language=javascript>
<!--
document.write('<table width="410" height="70" border="0" cellPadding="3" cellSpacing="0" align="center" bgcolor="#FBF9CC"> <tr> <td align="left"><div align="center"><a href="http://www.chinawebinar.com/zh_CN/STATIC/SITE/luckyDraw.html?from=3rdpartner_laogu" target="_blank"><strong><font color="#0000FF">觀看在線研討會,贏取月度大獎</font></strong></a></div></td> </tr> <tr> <td align="center"><div align="center"><a href="http://w.on24.com/r.htm?e=44201&s=1&k=D73FE413B7670C938EE8E28873F34AD3&partnerref=3rdPartner" target="_blank">基于PXI、LXI、TSP和GPIB的混合系統如何縮短測試時間</a> <img src="http://image.eetchina.com/news_pic.gif" /></div></td> </tr> <tr> <td align="center"><a href="http://www.powersystems.eetchina.com/STATIC/SITE/download.HTM?click_from=laogu" target="_blank">精選電源系統設計資料大全免費下載</a> <img src="http://image.eetchina.com/news_pic.gif" /></td> </tr> <tr><td align="left"><div align="center"><a href="http://www.industrialcontrols.eetchina.com/ART_8800447317_2500005_TA_a1457b47.HTM?click_from=laogu"><font size=2 color="red"><strong>PCI Express標準概述</strong></font></a></font> </div></td> </tr></table> ');
//-->
</SCRIPT>
</TD>
<TD width=156 bgColor=#ffffcc>
<DIV align=right><A href="http://www.laogu.com/"><IMG height=70
alt=老古開發網首頁 src="51單片機模擬I2C總線的C語言實現_老古開發網文章.files/newhome.gif" width=156
border=0></A></DIV></TD></TR></TBODY></TABLE>
<TABLE class=tableMain width=736 align=center border=0>
<TBODY>
<TR>
<TD>
<DIV align=center>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-1420557601534669";
google_alternate_ad_url = "http://www.laogu.com/my/welcome.gif";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
google_ad_channel = "3625436549";
google_color_url = "000000";
google_color_link = "ff6600";
google_color_border = "93c901";
//-->
</SCRIPT>
<SCRIPT src="51單片機模擬I2C總線的C語言實現_老古開發網文章.files/show_ads.js"
type=text/javascript>
</SCRIPT>
</DIV></TD></TR></TBODY></TABLE>
<TABLE class=tablehome cellSpacing=1 cellPadding=3>
<TBODY>
<TR>
<TD align=left height=25><STRONG><BR>導航:</STRONG><A
href="http://www.laogu.com/">老古開發網首頁</A>→<A
href="http://www.laogu.com/articlelist.aspx">文章索引</A>→<A
href="http://www.laogu.com/tech_1610.htm">索引第1610頁</A> →<A
href="http://www.laogu.com/article.aspx">文章分類</A>→<A
href="http://www.laogu.com/ctg_6.htm">單片機</A>→<A
href="http://www.laogu.com/ctg_6_23.htm">第23頁</A>→[<FONT
color=#004800>51單片機模擬I2C總線的C語言實現</FONT>] <BR>| -<A
href="http://www.laogu.com/searchnews.aspx" target=_blank>文章搜索</A> - <A
href="http://www.laogu.com/articlenew.aspx" target=_blank>最新文章</A> - |
<BR></TD></TR></TBODY></TABLE>
<TABLE class=tablehome cellSpacing=1 cellPadding=3>
<TBODY>
<TR>
<TD>
<DIV align=center>
<H3>第1682篇:51單片機模擬I2C總線的C語言實現</H3></DIV></TD></TR>
<TR>
<TD>發布時間:2006年6月19日 點擊次數:708 </TD></TR>
<TR>
<TD>來源: </TD></TR>
<TR>
<TD>作者:</TD></TR>
<TR>
<TD><SPAN class=table>詳細內容: </SPAN></TD></TR></TBODY></TABLE>
<TABLE class=tableMain cellSpacing=1 cellPadding=3>
<TBODY>
<TR>
<TD class=table vAlign=top bgColor=#ffffff> </TD></TR>
<TR>
<TD class=table vAlign=top bgColor=#ffffff>
<P><B><FONT lang=ZH-CN>51</FONT><FONT lang=ZH-CN>單片機模擬</FONT><FONT
lang=ZH-CN>I<SUP>2</SUP>C</FONT><FONT lang=ZH-CN>總線的</FONT><FONT
lang=ZH-CN>C</FONT><FONT lang=ZH-CN>語言實現</FONT></B></P>
<OL>
<LI><FONT lang=ZH-CN>電路原理圖</FONT><FONT lang=ZH-CN>
<P> </P>
<P> </P></FONT><FONT lang=ZH-CN></FONT><FONT lang=ZH-CN><IMG
style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000"
src="51單片機模擬I2C總線的C語言實現_老古開發網文章.files/2006619_11229.gif" border=0>
</FONT>
<P><FONT
lang=ZH-CN>EEPROM為ATMEL公司的AT24C01A。單片機為ATMEL公司的AT89C51。</FONT></P><FONT
lang=ZH-CN>
<P> </P></FONT>
<LI><FONT lang=ZH-CN>軟件說明</FONT><FONT lang=ZH-CN>
<P> </P></FONT></LI></OL>
<DIR>
<P><FONT lang=ZH-CN>C語言為Franklin C V3.2。將源程序另存為testi2c.c,用命令</FONT></P>
<P><FONT lang=ZH-CN>C51testi2c.c</FONT></P>
<P><FONT lang=ZH-CN>L51TESTI2C.OBJ</FONT></P>
<P><FONT lang=ZH-CN>OHS51TESTI2C</FONT></P>
<P><FONT lang=ZH-CN>編譯,連接,得到TESTI2C.HEX文件,即可由編程器讀入并進行寫片,實驗。</FONT></P>
<P><FONT lang=ZH-CN>3.源程序</FONT></P></DIR>
<P><FONT lang=ZH-CN>#include <reg51.h></FONT></P>
<P><FONT lang=ZH-CN>#include <intrins.h></FONT></P>
<P><FONT lang=ZH-CN>#define uchar unsigned char</FONT></P>
<P><FONT lang=ZH-CN>#define uint unsigned int</FONT></P>
<P><FONT lang=ZH-CN>#define AddWr 0xa0/*器件地址選擇及寫標志*/</FONT></P>
<P><FONT lang=ZH-CN>#define AddRd 0xa1/*器件地址選擇及讀標志*/</FONT></P>
<P><FONT lang=ZH-CN>#define Hidden 0x0e /*顯示器的消隱碼*/</FONT></P>
<P><FONT lang=ZH-CN>/*有關全局變量*/</FONT></P>
<P><FONT lang=ZH-CN>sbit Sda=P3^7;/*串行數據*/</FONT></P>
<P><FONT lang=ZH-CN>sbit Scl=P3^6;/*串行時鐘*/</FONT></P>
<P><FONT lang=ZH-CN>sbit WP=P3^5;/*硬件寫保護*/</FONT></P>
<P><FONT lang=ZH-CN>void mDelay(uchar j)</FONT></P>
<P><FONT lang=ZH-CN>{uint
i;<BR>for(;j>0;j--)<BR>{for(i=0;i<125;i--)<BR>{;}<BR>}<BR>}</FONT></P>
<P><FONT lang=ZH-CN>/*發送起始條件*/</FONT></P>
<P><FONT lang=ZH-CN>void Start(void)/*起始條件*/</FONT></P>
<P><FONT lang=ZH-CN>{</FONT></P>
<P><FONT lang=ZH-CN>Sda=1;</FONT></P>
<P><FONT lang=ZH-CN>Scl=1;</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>Sda=0;</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>}</FONT></P>
<P><FONT lang=ZH-CN>void Stop(void)/*停止條件*/</FONT></P>
<P><FONT lang=ZH-CN>{</FONT></P>
<P><FONT lang=ZH-CN>Sda=0;</FONT></P>
<P><FONT lang=ZH-CN>Scl=1;</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>Sda=1;</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>}</FONT></P>
<P><FONT lang=ZH-CN>void Ack(void)/*應答位*/</FONT></P>
<P><FONT lang=ZH-CN>{</FONT></P>
<P><FONT lang=ZH-CN>Sda=0;</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>Scl=1;</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>_nop_();</FONT></P>
<P><FONT lang=ZH-CN>Scl=0;</FONT></P>
<P><FONT lang=ZH-CN>}</FONT></P>
<P><FONT lang=ZH-CN>void NoAck(void)/*反向應答位*/</FONT></P>
<P><FONT lang=ZH-CN>{</FONT></P>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -