24C02讀寫匯編程序,24C02 read / write process
關(guān)鍵字:24C02讀寫匯編程序
24C02讀寫匯編程序
;簡(jiǎn)潔的24C02讀寫匯編程序
;--------------------------------------------
I2C_SDA EQU P1.6 ; PIN 5
I2C_SCL EQU P1.7 ; PIN 6
;=============================================
I2C_WRITE: ; WRITE 8 BYTES TO EEROM ; INPUT: A - A*8 = EEROM START ADDR
; R0 - RAN START ADDR
; USE: C, A, R0, R6, R7
ACALL I2C_START
ACALL OUT
MOV R6, #8
WR_LP:MOV A, @R0
ACALL OUT
INC R0
DJNZ R6, WR_LP
AJMP I2C_STOP
;==========================================
I2C_READ: ; READ 8 BYTES FROM EEROM ; INPUT: A - A*8 = EEROM START ADDR
; R0 - RAN START ADDR
; USE: C, A, R0, R6, R7
ACALL I2C_START
ACALL OUT
MOV R6, #8
MOV A, #0A1H; #RDCMD
ACALL OUTS
BRDLP:
MOV R7, #8
SETB I2C_SDA
INLP: CLR I2C_SCL
ACALL DELAY6
SETB I2C_SCL
NOP
MOV C, I2C_SDA
RLC A
DJNZ R7, INLP
CLR I2C_SCL
MOV @R0, A
INC R0
DJNZ R6, ACKLP
;;;;----------------------------
I2C_STOP:
CLR I2C_SDA
ACALL DELAY5
SETB I2C_SCL
ACALL DELAY5
SETB I2C_SDA
DELAY6:
NOP
DELAY5:
NOP
RET
;;-----------------------------
I2C_START:
SWAP A
RR A
MOV R6, A
MOV A, #0A0H; #WTCMD
ACALL OUTS
MOV A, R6
RET
;-------------------------------
ACKLP:
CLR I2C_SDA
SETB I2C_SCL
ACALL DELAY5
CLR I2C_SCL
AJMP BRDLP
;=======================
OUTS:
SETB I2C_SDA
SETB I2C_SCL
ACALL DELAY5
CLR I2C_SDA
ACALL DELAY5
CLR I2C_SCL
;========================
OUT:
SETB C
MOV R7, #9
OTLP: RLC A
NOP
MOV I2C_SDA, C
NOP
NOP
SETB I2C_SCL
ACALL DELAY5
CLR I2C_SCL
DJNZ R7, OTLP
RET
;========================
END
;--------------------------------------------
I2C_SDA EQU P1.6 ; PIN 5
I2C_SCL EQU P1.7 ; PIN 6
;=============================================
I2C_WRITE: ; WRITE 8 BYTES TO EEROM ; INPUT: A - A*8 = EEROM START ADDR
; R0 - RAN START ADDR
; USE: C, A, R0, R6, R7
ACALL I2C_START
ACALL OUT
MOV R6, #8
WR_LP:MOV A, @R0
ACALL OUT
INC R0
DJNZ R6, WR_LP
AJMP I2C_STOP
;==========================================
I2C_READ: ; READ 8 BYTES FROM EEROM ; INPUT: A - A*8 = EEROM START ADDR
; R0 - RAN START ADDR
; USE: C, A, R0, R6, R7
ACALL I2C_START
ACALL OUT
MOV R6, #8
MOV A, #0A1H; #RDCMD
ACALL OUTS
BRDLP:
MOV R7, #8
SETB I2C_SDA
INLP: CLR I2C_SCL
ACALL DELAY6
SETB I2C_SCL
NOP
MOV C, I2C_SDA
RLC A
DJNZ R7, INLP
CLR I2C_SCL
MOV @R0, A
INC R0
DJNZ R6, ACKLP
;;;;----------------------------
I2C_STOP:
CLR I2C_SDA
ACALL DELAY5
SETB I2C_SCL
ACALL DELAY5
SETB I2C_SDA
DELAY6:
NOP
DELAY5:
NOP
RET
;;-----------------------------
I2C_START:
SWAP A
RR A
MOV R6, A
MOV A, #0A0H; #WTCMD
ACALL OUTS
MOV A, R6
RET
;-------------------------------
ACKLP:
CLR I2C_SDA
SETB I2C_SCL
ACALL DELAY5
CLR I2C_SCL
AJMP BRDLP
;=======================
OUTS:
SETB I2C_SDA
SETB I2C_SCL
ACALL DELAY5
CLR I2C_SDA
ACALL DELAY5
CLR I2C_SCL
;========================
OUT:
SETB C
MOV R7, #9
OTLP: RLC A
NOP
MOV I2C_SDA, C
NOP
NOP
SETB I2C_SCL
ACALL DELAY5
CLR I2C_SCL
DJNZ R7, OTLP
RET
;========================
END
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
TMS320C24x/C240x CAN的編程示例
電子發(fā)燒友網(wǎng)站提供《TMS320C24x/C240x CAN的編程示例.pdf》資料免費(fèi)下載
發(fā)表于 10-17 09:30
?0次下載
英銳芯AD24C02_16-Byte(中性)
AD24C02是一款串行電可擦除編程只讀存儲(chǔ)器(EEPROM)。存儲(chǔ)器可存儲(chǔ)256個(gè)字節(jié)數(shù)據(jù),分為16頁(yè) 每頁(yè)16字節(jié),隨機(jī)字尋址需要8位數(shù)據(jù)字地址,具有低功耗CMOS技術(shù),自定時(shí)編程周期
發(fā)表于 09-09 15:08
?0次下載
EEPROM讀寫程序詳解
EEPROM(Electrically Erasable Programmable Read-Only Memory)讀寫程序的詳解涉及多個(gè)方面,包括EEPROM的基本工作原理、讀寫流
ADS125H02 ±20V輸入、雙通道、40kSPS、24位 Δ-ΣADC數(shù)據(jù)表
電子發(fā)燒友網(wǎng)站提供《ADS125H02 ±20V輸入、雙通道、40kSPS、24位 Δ-ΣADC數(shù)據(jù)表.pdf》資料免費(fèi)下載
發(fā)表于 07-23 11:34
?0次下載
ADS131M02 2通道、同步采樣、24位 Δ-ΣADC數(shù)據(jù)表
電子發(fā)燒友網(wǎng)站提供《ADS131M02 2通道、同步采樣、24位 Δ-ΣADC數(shù)據(jù)表.pdf》資料免費(fèi)下載
發(fā)表于 07-15 11:38
?0次下載
STM8S103F3讀24C02硬件I2C可以連續(xù)讀,模擬I2C只能讀一個(gè),第二個(gè)是0x00為什么?
讀24C02硬件I2C可以連續(xù)讀,模擬I2C只能讀一個(gè)。第二個(gè)是0x00,求助大神指點(diǎn)
發(fā)表于 05-06 07:22
stm8s103k與AT24C02的iic通信不穩(wěn)定是什么原因?qū)е碌模?/a>
stm8s103k與AT24C02的iic通信不穩(wěn)定,有時(shí)可以讀取數(shù)據(jù),有時(shí)讀不出
是什么原因?
有人與ADS1110用iic通信過(guò)嗎?
發(fā)表于 04-30 07:33
STM32F103用普通IO口驅(qū)動(dòng)24C02,讀寫不正確的原因?
以下24C02的驅(qū)動(dòng)好像不穩(wěn)定,不更換24C02時(shí),讀寫都正確,但是更換一個(gè)24C02,數(shù)據(jù)就讀寫不正確,在把之前的正常的
發(fā)表于 04-19 06:12
通過(guò)STM32F103的I2C讀寫24LC024,超過(guò)16個(gè)以后讀回來(lái)的地址上的數(shù)不對(duì)是怎么回事?
的問(wèn)題?
#defineADDR_24LC02_Write0xA0
#defineADDR_24LC02_Read0xA1
#defineBufferSize20
發(fā)表于 04-18 06:37
24LC024超過(guò)16字節(jié)讀寫就不正常怎么解決?
。主控制器用的STM32F103。讀寫控制代碼如下:#defineADDR_24LC02_Write0xA0
#defineADDR_24LC02_Read0xA1
#defineBufferSize
發(fā)表于 04-15 06:21
昂科燒錄器支持Giantec聚辰半導(dǎo)體的電可擦可編程只讀存儲(chǔ)器GT24C02B-2UDLI
芯片燒錄行業(yè)領(lǐng)導(dǎo)者-昂科技術(shù)近日發(fā)布最新的燒錄軟件更新及新增支持的芯片型號(hào)列表,其中Giantec聚辰半導(dǎo)體的電可擦可編程只讀存儲(chǔ)器GT24C02B-2UDLI已經(jīng)被昂科的通用燒錄平臺(tái)AP8000所支持。
請(qǐng)問(wèn)ModusToolbox下對(duì)CYBT-483056-02模塊編程,如何使能RFX2401C?
請(qǐng)問(wèn)ModusToolbox下對(duì)CYBT-483056-02模塊編程,如何使能RFX2401C?
CYBT-483056-02模塊中,CYW20719B2通過(guò)P2, P16引腳控制RF
發(fā)表于 03-01 13:13
pic單片機(jī)匯編程序實(shí)例
以下是一個(gè)簡(jiǎn)單的PIC單片機(jī)匯編程序示例,這個(gè)程序將實(shí)現(xiàn)一個(gè)LED閃爍的功能。 首先,我們需要了解PIC單片機(jī)的結(jié)構(gòu)和指令集。PIC單片機(jī)是一種基于哈佛結(jié)構(gòu)的8位微控制器,具有豐富的指令集和外設(shè)接口
24C02/04/08/16/32/64應(yīng)用介紹
電子發(fā)燒友網(wǎng)站提供《24C02/04/08/16/32/64應(yīng)用介紹.pdf》資料免費(fèi)下載
發(fā)表于 12-07 10:38
?2次下載
單片機(jī)IIC總線及AT24C02的應(yīng)用
電子發(fā)燒友網(wǎng)站提供《單片機(jī)IIC總線及AT24C02的應(yīng)用.doc》資料免費(fèi)下載
發(fā)表于 11-16 09:24
?2次下載
評(píng)論