السلام عليكم ورحمه الله وبركاته
اخى الفاضل م نافذ ابو كشك
جزالك الله خير على ذلك الشرح الوافى
قمت بعمل تجربه بسيطه على بيك 16f877 ولكنها لم تعمل حيث ان القيمه المسجله فى الايبروم ثابته لا تتغير وهى A3 بالرغم من انى وضعتها aa وعندما قمت بتغييريها الى 2c قام البيك باظهار 00000000 فقط فما هو وجهه القصور فى برنامجى
مرفق البرنامج وصوره البرتوس
"
program test
main:
PORTB = 0
TRISB = 0 ' Configure PORTB as output
I2C1_Init(100000) ' initialize I2C communication
I2C1_Start() ' issue I2C start signal
I2C1_Wr($A2) ' send byte via I2C (device address + W)
I2C1_Wr(2) ' send byte (address of EEPROM location)
I2C1_Wr($2c) ' send data (data to be written)
I2C1_Stop() ' issue I2C stop signal
Delay_100ms()
I2C1_Start() ' issue I2C start signal
I2C1_Wr($A2) ' send byte via I2C (device address + W)
I2C1_Wr(2) ' send byte (data address)
I2C1_Repeated_Start() ' issue I2C signal repeated start
I2C1_Wr($A3) ' send byte (device address + R)
PORTB = I2C1_Rd(0) ' Read the data (NO acknowledge)
I2C1_Stop() ' issue I2C stop signal
end.
"
وشكرا