Ц
МИКРОКОНТРОЛЛЕРЫ
и
Александр Черномырдин
г. Магнитогорск
E-mail: chav1961 @ radioliga.com
Часы-терл/юллетр
на ATTINY15
И, наконец, набор служебных подпрограмм системы:
Служебные подпрограммы системы.
Т
Окончание.
Г А
Начало в №9-11/2007
delay:
<1> Подпрограмма выдержки длительности импульсов при обмене с М41Т56
пор
пор
ret
<2> Подпрограмма выдачи стартовой последовательности на М41Т56
startSeq:
cbi
PORTB,3
i
Выдать data=0
rcall
delay
cbi
PORTB,0
$
Выдать clock=0
r jmp
delay
/
<3> Подпрограмма выдачи стоповой последовательности на М41Т56.
stopSeq:
sbi
PORTB,0
; Выдать с1оск=1
rcall
delay
sbi
PORTB,3
; Выдать data=l
rjmp
delay
/
<4> Подпрограмма выдачи байта на М41Т56. Выводимый байт - в регистре г12.
outByte:
ldi
rl6,9
; Передаем 8 бит + 1 бит подтверждения.
oB_l :
cbi
PORTB,3
; Подготовить линию данных.
sbrc
rl2,7
; Выводим лог.0?
sbi
PORTB,3
; Нет, лог
.11
sbi
PORTB,0
; Выдать сигнал Clock.
lei
rl2
; Сдвинуть передаваемые биты.
dec
П6
; Закончена передача?
cbi
PORTB,0
; Снять сигнал Clock.
brne
oB_l
; Пока нет.
..
ret
/
<5> Подпрограмма чтения байта с М41Т56. Считанный байт - в регистре г12
inByte:
ldi
rl6,8
; Принимаем 8 бит.
cbi
DDRB,3
; Изменяем направление передачи линии D
iB_l:
sbi
PORTB,0
; Выдать сигнал Clock.
lsl
rl2
; Сдвинуть результат.
sbic
PINB,3
; Пришла лог.1?
inc
rl2
; Да - добавить бит в результат.
dec
rl6
; Закончен прием?
cbi
PORTB,0
Ч ; Снять сигнал Clock.
brne
iB_l
■; Пока нет. . .
sbi
DDRB,3
; Изменяем направление передачи.
ret
nakSeq:
; <6> Подпрограмма подтверждения приема байта.
sbi
PORTB,3
; Выдаем Data.
ackSeq:
; Подпрограмма подтверждения приема байта.
sbi
P0RTB,0
; Выдаем Clock.
rcall
delay
2 6
У
Радиолюбитель - 1 2 /2 0 0 7
предыдущая страница 26 Радиолюбитель 2007-12 читать онлайн следующая страница 28 Радиолюбитель 2007-12 читать онлайн Домой Выключить/включить текст