I
МИКРОКОНТРОЛЛЕРЫ
і
1. Заменить участок <3> на следующий код:
bid
%Ы , 00000001b
; Сбросить сигнал Б.
shr
%al
; <3>Сдвинуть бегущую единицу во флаг С
jnz
$1
; Результат ненулевой — все нормально.
movl
%al,10000000b
; Нулевой результат. Бегущая единица была испорчена, и ее
; необходимо восстановить.
adc
; Забрать выдвинутую единицу (или ноль) в порт А (пара к
; команде Ыс1)
2. Заменить участок <4> на следующий код:
Ь1с1
%Ы,00000010Ь
; <4>С6росить сигнал С регистра сдвига строк.
Ь1з1
%Ы,00000010Ь
; Установить сигнал С регистра сдвига строк.
3. Заменить участок <
6
> на следующий код:
$3:
movl
%a3,8
mov
%a4,%d6
mfpr
%a0,#4
bid
%Ы,00000001b
shr
%a4
adc
bid
%ы,00000100b
bisl
%Ы , 00000100b
subl
%a3,1
jnz
$3
<6>Будеи сдвигать 8 бит выводимого сиивола.
Считать очередной символ в рабочую ячейку.
Сохранить адрес следующего символа.
Сбросить сигнал Б
Выдвинуть очередной бит символа.
Занести его на линию О (пара к команде Ь1с1
Сбросить сигнал С регистра сдвига столбцов.
Установить сигнал С регистра сдвига столбцов.
Вычесть счетчик цикла.
Цикл не Закончен - продолжить.
Изменения в программе сравнительно невелики и свя-
заны как с необходимостью выдачи символа в последова-
тельном коде (последний фрагмент), так и с необходимос-
тью более аккуратной работы с линиями порта А - коман-
ды сдвига для него применять нельзя, поскольку это затро-
нет линии А[3] и А[4], к которым может быть что-либо под-
ключено. С портом В такой проблемы не возникало, пото-
му что он использовался исключительно для динамической
индикации. Обратите внимание также на
программистс-
кий трюк
- для занесения на линию
0
любого из портов
(итолькодля нее!) флага переноса можно использовать пару
команд
bid
(для гарантированного сброса линии) и
adc
(сло-
жение содержимого порта с флагом переноса). Использо-
вание
только
команды
adc
недопустимо, потому что при
наличии на линии
0
сигнала лог
.1
в результате выполнения
команды
adc
произойдет перенос данных из бита
0
в бит
1
(хорошо, если только туда!). По этой причине желательно
всегда “вешать” линии D всех регистров сдвига внешних
устройств именно на линии
0
портов ввода/вывода - про-
граммный код от этого упрощается.
(Продолжение в N95/2006)
Валентин Сафонников
г. Уфа
Устройство предназначено для ото-
бражения графической информации
на светодиодном табло размером
24x24 точек. Основой является мик-
роконтроллер АТ9082313, он выпол-
няет сканирование индикатора и
прием данных для отображения по
последовательному порту. Специ-
альная программа для компьютера
позволяет рисовать мышкой изобра-
жения и отправлять их в устройство,
или воспроизводить сохраненные
раньше последовательности изоб-
ражений.
К о н т р о л л е р
с в е то д и о д н о й
Схема
Схема электрическая принципиаль-
ная устройства приведена на
рис. 1.
Если используются маломощные
светодиоды, то их можно подключить к
регистрам напрямую. Каждый вывод
может выдавать ток до 15.
. .20 мА. Если
нужен больший выходной ток, то необ-
ходимо установить дополнительные
усилители, например, на транзисторах.
При расчете тока необходимо учиты-
вать, что к каждому выводу регистров
005.
..007 одновременно может быть
подключено до 24 светодиодов
(рис. 2).
м а тр и ц ы
Программа
Программа позволяет рисовать мыш-
кой на экране изображение и сразу
же отправляет его в микроконтроллер.
Он должен быть подключен к порту
СОМ
1
. Можно сохранить изображе-
ние в файле, для этого выберите со-
ответствующий пункт меню. Сохра-
ненные изображения можно будет
затем последовательно воспроизве-
сти. Пример такой последовательно-
сти можно посмотреть в [
1
,
2
].
Для управления устройством не
обязательно использовать компьютер
40 1
| Радиолюбитель - 0 4 /2 0 0 6
предыдущая страница 40 Радиолюбитель 2006-04 читать онлайн следующая страница 42 Радиолюбитель 2006-04 читать онлайн Домой Выключить/включить текст