久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
24c08 I2C總線協(xié)議操作程序匯編和C語言2個(gè)版本詳解,終于搞出來了
[打印本頁]
作者:
hongniu
時(shí)間:
2015-6-23 20:47
標(biāo)題:
24c08 I2C總線協(xié)議操作程序匯編和C語言2個(gè)版本詳解,終于搞出來了
;24c08操作時(shí)序?yàn)椋浩鹗夹盘?hào)sclk拉高情況下sda由高變低,表示起始
; 結(jié)束信號(hào)sclk拉高情況下sda由低變高,表示結(jié)束
; 字節(jié)由高位向低位依次發(fā)送
; 第一個(gè)字節(jié)是地址和讀寫控制,第二個(gè)是存儲(chǔ)地址,第三個(gè)是數(shù)據(jù),每個(gè)數(shù)據(jù)結(jié)束器件都會(huì)發(fā)送 ack應(yīng)答信號(hào);
; I2C 總線協(xié)議
;I2C 總線協(xié)議定義如下
;1 只有在總線空閑時(shí)才允許啟動(dòng)數(shù)據(jù)傳送
;2 在數(shù)據(jù)傳送過程中當(dāng)時(shí)鐘線為高電平時(shí)數(shù)據(jù)線必須保持穩(wěn)定狀態(tài)不允許有跳變時(shí)鐘線
;為高電平時(shí)數(shù)據(jù)線的任何電平變化將被看作總線的起始或停止信號(hào)
;起始信號(hào)
;時(shí)鐘線保持高電平期間數(shù)據(jù)線電平從高到低的跳變作為I2C 總線的起始信號(hào)
;停止信號(hào)
;時(shí)鐘線保持高電平期間數(shù)據(jù)線電平從低到高的跳變作為I2C 總線的停止信號(hào)
;
ORG 0000H
SCL EQU P2.6
SDA EQU P2.7
AJMP MAIN
ORG 00030H
MAIN:LCALL INIT ;主函數(shù),
LCALL WRITE2408
LCALL DELAY1
LCALL READ2408
MOV P0,A
AJMP $
INIT: SETB SCL ;初始化
LCALL DELAY
SETB SDA
LCALL DELAY
RET
START:SETB SDA ;起始信號(hào)
LCALL DELAY
SETB SCL
LCALL DELAY
CLR SDA
LCALL DELAY
RET
STOP:CLR SDA ; 停止信號(hào)
LCALL DELAY
SETB SCL
LCALL DELAY
SETB SDA
RET
ACK:SETB SCL ;應(yīng)答信號(hào)
LCALL DELAY
JB SDA,$
CLR SCL
LCALL DELAY
SETB SDA
LCALL DELAY
RET
WRITE: MOV R4,#08H ;寫
LOOP: CLR SCL
LCALL DELAY
RLC A
MOV SDA,C
LCALL DELAY
SETB SCL
LCALL DELAY
DJNZ R4,LOOP
CLR SCL ;哎呀吃大虧了,我說怎么就是寫一個(gè)A0算完了而且還有一個(gè)停止信號(hào),娘了個(gè)逼我程序里不是這樣的啊,奧今天我才看透,原來A0的最低位是0
LCALL DELAY ;這里以前是先把SDA釋放,再拉低SCL ,相當(dāng)于一個(gè)停止信號(hào)啊,所以U820受到后把總線禁止了,也難怪寫不出了,哈哈哈又學(xué)一招
SETB SDA ;原來這么細(xì)微的變動(dòng)都會(huì)是你的程序白搭,即使你其他的都是對(duì)的;
LCALL DELAY ;加油;2010年7月22日午與天津宿舍
RET ;EEPROM的成功讀取時(shí)很有意義的,嘿嘿
READ:MOV R4,#08H ;讀
SETB SDA
LCALL DELAY
LOP: CLR SCL
LCALL DELAY
SETB SCL
LCALL DELAY
MOV C,SDA
RLC A
DJNZ R4,LOP
CLR SCL
RET
DELAY: ;數(shù)據(jù)穩(wěn)定
NOP
NOP
NOP
NOP
NOP
RET
WRITE2408:LCALL START
MOV A,#0A0H
LCALL WRITE
LCALL ACK ;向U820的00H單元寫0x88;
MOV A,#00H
LCALL WRITE
LCALL ACK
MOV A,#88H
LCALL WRITE
LCALL ACK
LCALL STOP
RET
READ2408:LCALL START
MOV A,#0A0H
LCALL WRITE
LCALL ACK
MOV A,#00H ;從U820的00H單元讀出數(shù)據(jù)
LCALL WRITE
LCALL ACK
LCALL START
MOV A,#0A1H
LCALL WRITE
LCALL ACK
LCALL READ
LCALL STOP
RET
DELAY1: ;延時(shí)1S,在應(yīng)用中這個(gè)可以是主程序啊哈哈,真他媽了噶比的爽老子也做出來了;爽啊
MOV R7,#0A7H
DL1:
MOV R6,#0ABH
DL0:
MOV R5,#10H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
NOP
RET
END
#include<reg52.h>
#define uchar unsigned char
sbit sda=P2^7;
sbit scl=P2^6;
void delay1(uchar z)
{
uchar j,k;
for(k=0;k<z;k++)
{
for(j=0;j<100;j++) ; //此處j不得小于27否則讀不出數(shù)據(jù)
}
}
void delay()
{
;;
}
void init()
{
sda=1;
delay();
scl=1;
delay();
}
void start()
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}
void stop()
{
sda=0;
delay();
scl=1;
delay();
sda=1;
delay();
}
void ack()
{
scl=1;
delay();
if(sda==1)
{ delay1(1000);
}
scl=0;
delay();
sda=1;
delay();
}
void write_24c08(uchar add)
{
uchar a,i;
i=add;
scl=0;
delay();
for(a=0;a<8;a++)
{
i=i<<1;
sda=CY;
delay();
scl=1;
delay();
scl=0;
delay();
}
scl=0;
delay();
sda=1;
delay();
}
uchar read_24c08()
{
uchar a,readdate;
scl=0;
delay();
sda=1;
delay();
for(a=0;a<8;a++)
{
scl=1;
delay();
readdate=(readdate<<1)|sda; //這里注意啊,不要換成別的
scl=0;
delay();
}
return readdate;
}
void main()
{
init();
start();
write_24c08(0xa0);
ack();
write_24c08(0x21);
ack();
write_24c08(0xf0);
ack();
stop();
delay1(100);
start();
write_24c08(0xa0);
ack();
write_24c08(0x21);
ack();
start();
write_24c08(0xa1);
ack();
P0=read_24c08();
stop();
while(1);
}
復(fù)制代碼
作者:
amchina
時(shí)間:
2015-6-24 07:45
好,贊一個(gè),最起碼不要黑幣。衷心感謝
作者:
TXDD
時(shí)間:
2017-7-14 16:28
你好,24c08的封裝資料有嗎
作者:
jljhma2000
時(shí)間:
2018-4-24 20:16
謝謝分享!我最近在研究一個(gè)IC,是I2C接口。
作者:
jljhma2000
時(shí)間:
2018-4-24 20:17
謝謝分享!
作者:
分立元件
時(shí)間:
2020-10-9 15:41
謝謝樓主,我終于調(diào)通了24C08
作者:
aking991
時(shí)間:
2020-10-14 08:55
你這個(gè)程序只適用于0-0xFF之內(nèi)的讀和寫,如果地址大于0xFF就會(huì)從頭寫了,不信你試試,建議再學(xué)習(xí)學(xué)習(xí)修改一下就可實(shí)現(xiàn)大容量的EEPROM的讀寫
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲一区视频
|
久久国产精品视频
|
欧美日韩一区二区三区视频
|
国产精品网站在线观看
|
天天网综合
|
亚洲综合激情网
|
亚洲一区二区三区在线视频
|
日韩视频免费观看
|
日日操日日射
|
亚洲一区二区三区免费
|
精品久
|
在线天堂视频
|
国产日韩欧美日韩大片
|
毛片毛片毛片毛片毛片
|
青青久草
|
91成人精品
|
www.国产在线
|
欧美日韩一区二区在线
|
成人黄色在线观看
|
中文字幕在线免费视频
|
免费观看一级一片
|
国产51自产区
|
免费黄网站在线观看
|
中文字幕在线播放视频
|
超碰在线免费播放
|
久草视频免费在线观看
|
伊人久久精品
|
伊人久久网站
|
国产精品视频网站
|
日本美女性生活
|
亚洲国产欧美日韩在线
|
成人免费毛片嘿嘿连载视频
|
欧美激情xxx
|
色片在线观看
|
日韩精品视频一区二区三区
|
懂色av色吟av夜夜嗨
|
亚洲综合久久久
|
国产精品久久免费
|
av免费资源
|
黄色一级片免费看
|
久久精品久久久久
|