Отчёт №3-1 (1056176), страница 2
Текст из файла (страница 2)
rcall Timer_go ; вызываем подпрограмму временной задержки
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; вывод третьего разряда года на второй индикатор
out portC, R29 ; вывод третьего разряда года с выходов порта C
ldi led, $FD ; указываем индикатор для вывода (здесь второй)
out portB, led ; программируем выходы порта B для работы первого индикатора
rcall Timer_go ; вызываем подпрограмму временной задержки
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; вывод второго разряда года на третий индикатор
out portC, R30 ; вывод второго разряда года с выходов порта C
ldi led, $FB ; указываем индикатор для вывода (здесь третий)
out portB, led ; программируем выходы порта B для работы первого индикатора
rcall Timer_go ; вызываем подпрограмму временной задержки
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; вывод младшего разряда года на четвёртый индикатор
out portC, kod ; вывод младшего разряда года с выходов порта C
ldi led, $F7 ; указываем индикатор для вывода (здесь четвёртый)
out portB, led ; программируем выходы порта B для работы первого индикатора
rcall Timer_go ; вызываем подпрограмму временной задержки
dec opros
brne GOYEAR ; переход по "не равно",тем самым обеспечивается непрерывный вывод выбранного числа до следующего опроса клавиатуры
ret ; возвращение из подпрограммы IMAGE
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
NOTHING:
ldi opros, $FF ; устанавливаем количество циклов простоя до следующего опроса клавиатуры
NOTHING1:
dec opros ; декремент содержимого РОН
brne NOTHING1 ; перейти по "не равно", тем самым происходит задержка до следующего обращения к клавиатуре
ret ; возвращение из подпрограммы IMAGE
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
IMAGE1:
;подготовка к выводу чисел на индикаторы:
mov temp2, temp ; записываем в РОН "temp2" число десятков байта дня/месяца рождения
rcall TRANSLATE ; вызываем программу перевода чисел в код семисегментного индикатора
mov R28, kod ; записываем код для семимегментного индикатора старшего разряда дня/месяца в промежуточный регистр РОН
mov temp2, key ; записываем в РОН "temp2" число единиц байта дня/месяца рождения
rcall TRANSLATE ; вызываем программу перевода чисел в код семисегментного индикатора
ldi opros, 10 ; устанавливаем количество циклов простоя до следующего опроса клавиатуры
cpi keyboard1, $08 ; сравниваем содержимое РОН с байтом месяца рождения
breq IMAGE2
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
GODAY:
; вывод старшего разряда дня на первый индикатор
out portC, R28 ; вывод старшего разряда дня с выходов порта C
ldi led, $FE ; указываем индикатор для вывода (здесь первый)
out portB, led ; программируем выходы порта B для работы первого индикатора
rcall Timer_go ; вызываем подпрограмму временной задержки
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; вывод третьего разряда дня на второй индикатор
out portC, kod ; вывод старшего разряда дня с выходов порта C
ldi led, $FD ; указываем индикатор для вывода (здесь второй)
out portB, led ; программируем выходы порта B для работы первого индикатора
rcall Timer_go ; вызываем подпрограмму временной задержки
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
dec opros
brne GODAY ; переход по "не равно",тем самым обеспечивается непрерывный вывод выбранного числа до следующего опроса клавиатуры
ret ; возвращение из подпрограммы IMAGE
IMAGE2:
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
GOMONTH:
; вывод старшего разряда месяца на первый индикатор
out portC, R28 ; вывод старшего разряда месяца с выходов порта C
ldi led, $FB ; указываем индикатор для вывода (здесь третий)
out portB, led ; программируем выходы порта B для работы первого индикатора
rcall Timer_go ; вызываем подпрограмму временной задержки
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; вывод третьего разряда месяца на второй индикатор
out portC, kod ; вывод старшего разряда месяца с выходов порта C
ldi led, $F7 ; указываем индикатор для вывода (здесь четвёртый)
out portB, led ; программируем выходы порта B для работы первого индикатора
rcall Timer_go ; вызываем подпрограмму временной задержки
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
dec opros
brne GOMONTH ; переход по "не равно",тем самым обеспечивается непрерывный вывод выбранного числа до следующего опроса клавиатуры
ret ; возвращение из подпрограммы IMAGE
;----------------------------------------------------------------------------------------------------------------------------------------------