----------------------------
1
МИКРОКОНТРОЛЛЕРЫ
і
і
jsr
f
Вызвать подпрограмму выхода.
imp
again
/ <13> Начать новый цикл работы автомата
$1:
cmpl
%d7,0
f
<14> Фиктивное сравнение - сдвигаем
1111
на следужщий
cmpl
%d7,0
f
байт.
CM
cmpl
%d7,0
t
Фиктивное сравнение - сдвигаем 1И1 на следужщий байт
cmpl
%d7,0
cmpl
%d7,0
subl
%a3,1
r
Вычесть счетчик цикла (счетчик строк таблицы)
jnz
$3
r
Строки еще не закончились - продолжить анализ.
jmp
again
t
Таблица закончена - начать новый цикл анализа
Кроме этого, нам потребуется в программе еще и автоматная таблица:
table
:
.byte
4
r
Число строчек в автоматной таблице.
;
Первая строка таблицы:
.byte
0
t
Текущее состояиие
-
0
.word
testDown
t
Подпрограмма проверки факта нажатия кнопки
.byte
1
t
Новое состояние
= 1
.word
turnOn
;
Подпрограмма включения лампочки
/
Вторая строка таблицы:
.byte
1
t
Текущее состояние
=
1
.word
testUp
t
Подпрограмма проверки факта отпускания кнопки.
.byte
2
f
Новое состояние
=
2
. word
nothing
t
Подпрограмма ничегонеделания
/
Третья строка таблицы:
.byte
2
f
Текущее состояние — 2
. word
testDown
r
Подпрограмма проверки факта нажатия кнопки
.byte
3
f
Новое состояние
=
3
. word
turnOff
f
Подпрограмма выключения лампочки
/
Четвертая строка таблицы:
.byte
3
r
Текущее состояиие — 3
.word
testUp
t
Подпрограмма проверки факта отпускания кнопки
.byte
0
t
Новое состояние =
0
. word
nothing
И, наконец, нам еще понадобятся пять подпрограмм (что это такое - об этом разговор чуть-чуть впереди). Вот они:
testDown:
; <8> Подпрограмма проверки факта нажатия кнопки:
bttl
%Ы, 00000001b
/
Проверить линию А[0].
jnz
$1
f
Кнопка еще не нажата!
rtsc
1
f
Выход с установкой флага С=1
$1:
rtsc
0
t
Выход со сбросом флага С=0
testUp:
; Подпрограмма проверки факта отпускания кнопки:
bttl
%bl,00000001b
t
Проверить линию А[0].
jnz
$1
/
Кнопка еще не нажата!
rtsc
1
t
Выход с установкой флага С=1
$1:
rtsc
0
/
Выход со сбросом флага С=0
nothing
; Подпрограмма иичегонеделанья
rts
turnon:
; Подпрограмма включения лампочки.
bisl
%Ь2,00000001b
/
Включить лампочку.
rts
tumOff
; Подпрограмма отключения лампочки.
bid
%Ь2,00000001b
г
Отключить лампочку.
rts
. end
4 « I
Радиолюбитель - 0 9 /2 0 0 5 |
предыдущая страница 43 Радиолюбитель 2005-09 читать онлайн следующая страница 45 Радиолюбитель 2005-09 читать онлайн Домой Выключить/включить текст