Дипломная работа: Разработка PIC-контроллера устройства измерения временных величин сигналов
addlwU ; Получить адрес отбрасываемого разряда для косвенной адресации.
movwffsr ;
decffsr, fmovlw05 ; Сравнить значение разряда с 5.
subwf indf, W
btfss status,0 ; Значение > 5?
gotono_app ; Нет, обход округления.
incffsr, f
incfindf, f ; Да, инкремент следующего разряда.
no_app
callreport ; Коррекция значений десятичных регистров после округления. movfE,W ; Формирование значения для индикации.
addwfDig_exp, f ; Сохранить значение Е.
addlwU ; Получить адрес строки десятичных разрядов
для косвенной адресации.
movwffsr
movfindf, W
movwfDig_x ; Переслать значение X.
decf fsr, f
movf indf, W
movwfDig_y ; Переслать значение Y.
decf fsr, f
movf indf, W
movwfDig_z ; Переслать значение Z.
return
Ошибка - обнулить значение индикации.
err movlw 0
movwf Dig_x
clrf N
callcalc ; Вычисление значения для индикации.
movlw0A ; Загрузить счетчик циклов индикации.