ає виконувати нескінченний цикл, в якому відстежується стан входу, підключеного до лінії синхронізації. У разі надходження синхроімпульсу проводиться запис інформації в ОЗУ. p> Запис в ОЗУ виробляється за алгоритмом, представленому на рис. 2. br/>В
Малюнок 2. Алгоритм запису інформації в ОЗУ
3.2 Лістинг програми
мікроконтролер мікропроцесорний аналізатор компілятор
// підключаємо модуль з описом регістрів PIC
# include
# define uchar unsigned char
# define uint unsigned int
# define PORTBIT (adr, bit) ((unsigned) (& adr) * 8 + (bit)) bit ALE @ PORTBIT (PORTE, 0); bit RD @ PORTBIT (PORTE, 1 ); bit WR @ PORTBIT (PORTE, 2); bit SYN @ PORTBIT (PORTC, 0); bit L @ PORTBIT (PORTC, 1); bit H @ PORTBIT (PORTC, 2); start, stop, adr; p>
//-Write (uint adress, uchar data)
{pause = 10; = adress>> 8;// старша частина адр.
TRISB = 0;// порт на вихід = adress;// мл. частина адр. = 0;// імпульс для запису мл. адр. в рег-р (pause-);// пауза для запису в рег-р = 1; = data;// видали дані = 0;// записали їх в ОЗУ = 10; (pause-);// пауза для запису в ОЗУ = 1;// запис закінчена = 1; = 0xFF;
}
//-Read (uint adress)
{data, pause = 10;
PORTA = adress>> 8;// старша частина адр. = 0;// порт на вихід = adress;// мл. частина адр. = 0;// імпульс для запису мл. адр. в рег-р (pause-);// пауза для запису в рег-р = 1; = 0xFF;// порт на введення = 0;// читаємо дані = PORTB;// приймаємо їх через порт = 1;// читання закінчено = 1; data;// повертаємо лічені дані
}
//-INTR ()// обробка переривань
{(RСIF)// переривання від УАПП - прийом
{(RCREG == 0xAA)// якщо прийнято 0хАА - передача на ЕОМ
{= 1;// дозвіл переривання від УАПП при передачі = adr; = adr-1;
// записом у TXREG ініціювали передачу,
// при закінченні передачі виникне переривання TXIF
TXREG = Read (start + +);
} СIF = 0;
} (TXIF)
{= Read (start + +);// передаємо черговий байт (start> 8191) start = 0;// передаємо по колу
// заборона переривання від УАПП при передачі
// коли передали всю пам'ять (start == stop) TXIE = 0; = 0;
}
}
//-main (void)
{
// налаштування портів
TRISA = 0; = 0; = 0xFF; = 0xFF;
// налаштування УАПП = 0;// асинхронний режим ...