|
Во-первых, зачем вот это:
#pragma asm;
mov P0,6
#pragma endasm;
В понятиях х51 это означает пересылку в порт 0 значения из 6-й ячейки ОЗУ (R6 нулевого банка), а не константы "6". Эта ячейка, равно как и регистр 6, тебе явно не нужны, т.к. ты не знаешь, что там размещает компилятор, а константа в порт пишется командой mov p0,#6, у которой есть однозначный С-эквивалент - P0=6.
Остальной код достаточно бредовый, разбираться не стал. По програмной реализации I2C Master есть масса Application Notes на сайтах Atmel и Philips, вот оттуда и начни.
E-mail: info@telesys.ru