{
МИКРОКОНТРОЛЛЕРЫ
\
Обычно при программировании
м икр о ко н тр о л л е р о в реали зую т
либо первый, либо второй вариант.
Между тем, существует и третий, -
радикальный, - способ решения
этой проблемы, которы й в про-
граммистской литературе именует-
ся
передачей параметров
под-
программе. Именно эту технику
программирования мы и продемон-
стрируем при написании програм-
мы для нашего устройства.
Перед написанием программы
давайте предварительно разбе-
ремся с ячейками, в которых мы
будем хранить информацию по на-
шим устройствам
(таблица 3).
В первых двух ячейках описате-
ля каж дого автомата будут хра-
ниться биты, описывающие линии
портов А и В: например, если пер-
вый автомат управляется кнопкой,
подсоединенной к линии А[0], в
ячейке
40Ь
будет храниться байт
00000001Ь, а если он управляет ди-
одами на линиях В[0] и В[1], в ячей-
ке 41Ь
будет хр а н и ться
байт
Итак, начало программы:
♦define ТЕRM_TХМЕOUT
01h
♦define TERM_DOWN
02h
♦define TERM_UP
03h
♦define EXE_START20
OOh
♦define EXE_STOP
Olh
♦define EXE_TURNON
02h
♦define EXE TURNOFF
03h
Start:
jmp
nop
nop
jmp
nop
nop
jmp
nop
nop
nop
nop
nop
nop
nop
nop
nop
begin:
Idal
Idah
ldr
38 |---------------------
begin
int3
int6
♦6,init_seq
♦7,init_seq
♦ 4,4 Oh
Таблица 3
Адрес ячейки
Что в ней будет храниться
40h
Бит, указывающий, какая линия порта А относится к автомату 1
41 h
Биты, указывающие, какие линии порта В относятся к автомату 1
42h
Номер текущего состояния автомата 1
43h
Терминальный символ для автомата 1
44h
Заданная задержка времени для автомата 1 (младший байт)
45h
Заданная задержка времени для автомата 1 (старший байт)
46h
Виртуальный таймер автомата 1 (младший байт)
47h
Виртуальный таймер автомата 1 (старший байт)
48h.
.4Fh
То же самое, для автомата 2
50h.
.57h
То же самое, для автомата 3
58h.
.5Fh
То же самое, для автомата 4
ООООООНЬ, т.е. соответствие меж-
ду сигналами линий и битами - по-
зиционное. Обратите внимание -
фактически для описания каждого
автомата используется ровно рдин
сегмент адресного пространства
данных' микроконтроллера. Байты
внутри каждого сегмента, имеющие
одно и то же смысловое назначение,
должны располагаться на одних и
тех же местах - зто принципиаль-
но важно для работы нашей буду-
щей программы! При написании
программы будем исходить из того,
что микроконтроллер работает от
внутренней ИС-цепочки с тактовой
частотой около 50 кГц.
V
; Символ таймаута
; Символ нажатия кнопки
; Символ отпускания кнопки.
; Подпрограмма запуска таймера на 20 мсек.
; Подпрограмма останова таймера.
; Подпрограмма включения красного и запуска
; таймера на заданное время
; Подпрограмма отключения красного и останова
; таймера.
; Переход к началу программы.
; Переход на обработчик прерываний от интервального
; таймера
; Переход на обработчик прерываний порта А.
; <1> Загружаем адрес образа в 1К1
; Загружаем адрес приемника данных в 1И0
| Радиолюбитель - 1
2/2005
предыдущая страница 35 Радиолюбитель 2005-12 читать онлайн следующая страница 37 Радиолюбитель 2005-12 читать онлайн Домой Выключить/включить текст