В заключение несколько слов о том, как обычно ис-
пользуют только что рассмотренные директивы. Как я
писал немного ранее, последовательность написания
программы (исключая этап обдумывания и составле-
ния алгоритма ©) следующая:
1. Определяем имена для всех известных констант
при помощи директивы ЕОи.
2. Распределяем память. Для этого задаем сегмент
В качестве примера правильно оформленной программы приведу текст уже изученной нами программы-
мигалки:
------
-------------------
гЧ
"РЛ" - НАЧИНАЮЩИМ
Программа-мигалка из курса для начинающих
Автор: Абраш Р.В.
Дата Завершения разработки: 12.09.2006
памяти одной из соответствующих директив и распре-
деляем директивами DS, DB, DW, DD или DBIT память.
Для каждого сегмента распределение отдельное.
3. Задаем сегмент памяти программ, т.е. исполь-
зуем директиву CSEG.
4. Пишем собственно программу и входящие в нее
подпрограммы.
5. Завершаем программу директивой END.
; Микроконтроллер AT89S8252, включение по типовой схеме
; порт РО.О используется для управления светодиодом
; Применяемый кварц — 12 МГц
; ---- определяем константы -----
DELAY1
EQU
2
; регулятор задержки
LED
EQU
РО.О
; порт управления светодиодом
;---- распределяем память ------
DSEG
AT 10h
; 16 ячеек — это резерв под регистры
; первых 2-х банков
; в этой программе ячейки памяти не используются
STACK:
г
сегмент кода программы —
CSEG
ORG
0
;
всегда начинаем с нулевого адреса
JMP
BEGIN
;
переход на начало программы
DS
20h
f
это резерв ячеек для примера
BEGIN:
MOV
SP, #STACK
7
устанавливаем указатель стека
MAIN:
CPL
LED
7
команда инвертирования уровня
;
сигнала линии порта
LOOP:
MOV
R0, #DELAY1
.
Заносим в регистр И0 число 2
DJNZ
R0, $
;
уменьшаем И0, пока не станет
7
равным нулю
DJNZ
Rl, LOOP
;
организуем цикл по содержимому
;
регистра К1
DJNZ
R2, LOOP
;
организуем цикл по содержимому
;
регистра И2
JMP
MAIN
'■
бесконечный
Ц И К Л
END
7
конец программы
В этом примере я постарался учесть все, что реко-
мендовал и вам: подробно описал вначале программу и
особенности схемы, определил константы, распределил
память и задал указатель стека, использовал подробные
комментарии. Несколько странным вам может показать-
ся то, что я начал программу с команды перехода на мет-
ку, хотя можно было бы начать сразу - смысл этой ко-
манды станет понятным чуть позже.
Радиолюбитель - 0 7 /2 0 0 7 У
43
предыдущая страница 43 Радиолюбитель 2007-07 читать онлайн следующая страница 45 Радиолюбитель 2007-07 читать онлайн Домой Выключить/включить текст