Ц
МИКРОКОНТРОЛЛЕРЫ
1
}
сЫ
.PORTB, 0
; Снимаем Clock.
cbi
PORTB,3
; Снимаем Data.
rjmp
delay
decodel:
; <7> Перекодировка нечетных :знакомест.
ldi
гЗО,low(2*tablel)
; Загрузить адрес таблицы перекодировки.
ldi
г31,high(2 *tablel)
de_l :
ldi
rl6,OxOP
; Выделить младшую тетраду из данных.
and
rl6,rll
clr
rO
; Нам нужен будет ноль.
..
add
r30,rl6
; Вычислить адрес перекодируемого байта.
adc
r31,rO
,
1pm
; Загрузить этот байт.
ret
decode2:
A
CO
V
*4
Перекодировка нечетных знакомест.
ldi
гЗО,low(2*table2)
; Загрузить адрес таблицы перекодировки.
ldi
r31,high(2*table2)
swap
rll
rjmp
de_l
lslrlli
; <9> Сдвиг регистра rll.
.rl3
lsl
rll
rol
rl2
rol
rl3
ret
lslr20:
; Сдвиг регистра r20.
.r22
lsl
r20
rol
r21
rol
r22
ret
addr20rll:
; <10> Сложение тройки регистров Г20.
.Г22 и ГІ1.
.ГІЗ
add
r20,rll
adc
r21,rl2
adc
r22,rl3
ret
• Пояснения по программному коду:
1. Подпрограмма организации временной задержки. Не-
смотря на достаточно невысокую (по нынешним меркам) ско-
рость работы микроконтроллера АГПпу15 даже эта скорость
оказывается слишком высока при работе с микросхемой ча-
сов. Для снижения этой скорости и используется подпрограм-
ма задержки. Код ее вполне “классический” - последователь-
ность команд пор.
2. Подпрограмма выдачи стартовой последовательности
для часов. Порядок выдачи сигналов можно изучить в.доку-
ментации по микросхеме М41Т56.
3. Подпрограмма выдачи стоповой последовательности для
часов.
4. Подпрограмма выдачи байта в микросхему часов. Обыч-
ный цикл побитного сдвига передаваемой последовательнос-
ти и вывода ее на соответствующие линии порта.
5. Подпрограмма чтения байта из микросхемы часов. Ана-
логичный цикл, только на этот раз - ввода.
6. Подпрограмма подтверждения приема байта для ча-
сов и подпрограмма, сигнализирующая об окончании при-
ема байтов.
7. Подпрограмма перекодировки кода младшей тетра-
ды регистра г11 в семисегментный код. Способ перекоди-
ровки традиционный - использование регистра косвенной
адресации
2.
8. Такая же подпрограмма, но она использует при работе
другую кодовую таблицу.
9. Вспомогательная подпрограмма, выполняющая сдвиг
группы регистров. Выделена в отдельную подпрограмму, по-
тому что эта последовательность команд используется в не-
скольких местах фонового процесса.
10. Такая же вспомогательная подпрограмма для много-
байтного сложения регистров.
Последнее, что есть в программе - набор констант (см.
на
следующей странице
):
Радиолюбитель - 1 2 /2 0 0 7 [|
предыдущая страница 27 Радиолюбитель 2007-12 читать онлайн следующая страница 29 Радиолюбитель 2007-12 читать онлайн Домой Выключить/включить текст