ий код, який буде записуватися в програмну пам'ять контролера. br/>
.2.2 Розробка програми
Тепер, коли підготовка закінчена, можна приступати до написання програми. Як зазначено вище, програму будемо писати в файлі В«Processor.asmВ». p align="justify"> Насамперед підключаємо заголовний файл за допомогою директиви В«. includeВ»:
. include "2313def.inc"
Далі, використовуючи директиву В«. defВ», призначимо використовуваним нами регістрів символьні імена:
. def var = r16
. def pressedBtn = r17
. def var1 = r18
. def var2 = r19
. def ind = r20
. def num = r21
. def i = r24
. def var3 = r25
. def ledOn = r26
Тепер за допомогою директиви В«. csegВ» оголосимо про початок тексту програми, а директивою В«. orgВ» призначимо адресу ПЗУ для першої команди
. cseg
. org 0
Крім програмного сегмента, буває сегмент даних - В«. dsegВ». У тексті програми сегмент даних прописується раніше програмного сегмента. У ньому инициализируется оперативна пам'ять, однак, як як у нашій програмі не використовується оперативна пам'ять, то ми його прописувати не будемо. p align="justify"> Далі опишемо так звані вектора переривань. У мікроконтролері AT90S2313 існує 11 подій, за якими можна встановити переривання. У таблиці 1 наведено інформацію про переривання з даташіта (англ. Data Sheet) до даного контролеру. br/>
Таблиця 1 - Таблиця переривань мікроконтролера
В
У перекладі на російську мову:
. Reset - переривання по скиданню (подача 0 на висновок мікросхеми В«ResetВ»; або включення живлення; або по переповнення сторожового таймера);
. INT_0 - перше зовнішнє переривання (сигнал на виведення мікросхеми "INT0");
. INT_1 - друга зовнішнє переривання (сигнал на "INT1");
. Timer1_capt1 - переривання засувки 1-го таймера;
. Timer1_comp1 - переривання компаратора 1-го таймера;
. Timer1_OVF1 - по переповнення 1-го таймера;
. Timer0_OVF0 - по переповнення 0-го таймера;
. UART_RX - по закінченню прийому пакета по протоколу UART;
. UART_UDRE - по спустошенню регістра даних UART;
. UART_TX - по закінченню пе...