реализация i2c на AT89S53
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено vaja 19 марта 2003 г. 23:19

Хочу реализовать i2c на AT89S53 для общения с памятью 24C04, основная программа будет на С а i2c думаю писать на ассемблере (я только начал изучать 51-ю серию, в основном сижу на ПИК-ах но тут срочно понадобилось для 51-го написать программу, использую KEIL 7.04, ). Возникла следующая проблема - код успешно компилируется но в дебаггере происходит какаято ерунда, программа стартует не с начала и через несколько шагов выполняет RET и останавливается. В опциях установил (Generate Assembler SRC, Assemble SRC file) как и сказано в мануале.
Может кто занимался этим или подскажет ссылку на тему софтвеарной реализации i2c для 51-ых.
Вот мой С код:

#include

int eeprom_th,eeprom_tl,eeprom_v,eeprom_rab,eeprom_pausa;

static unsigned long overflow_count = 0;


void timer0_ISR (void) interrupt 1
{
overflow_count++;
}

/*------------------------------------------------
MAIN C function
------------------------------------------------*/
void main (void)
{
TMOD = (TMOD & 0xF0) | 0x01; /* Set T/C0 Mode */
ET0 = 1; /* Enable Timer 0 Interrupts */
TR0 = 1; /* Start Timer 0 Running */
EA = 1; /* Global Interrupt Enable */

#pragma asm;
mov P0,6
#pragma endasm;
while (1)
{
for(eeprom_pausa=10;eeprom_pausa>0;eeprom_pausa--)P1=eeprom_pausa;
eeprom_th = eeprom_tl + eeprom_pausa;
P0= eeprom_th;
}
}

unsigned char eeprom_reed(char addr){
addr=1;
return addr;
}

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru