Дипломная работа: Разработка PIC-контроллера устройства измерения временных величин сигналов
calc ; Преобразование формата: HEX в DEC.
movlw.16 ; Установить счетчик разрядов.
movwfN
coder
rlfL_byte, f ; Сдвиг старшего разряда значения таймера в
битС.
rlf H_byte, f
btfscstatus,0 ; Бит С = 1?
callsessn ; Да, прибавить десятичное значение разряда к десятичным регистрам.
decfszN, f ; Декремент счетчика разрядов.
gotocoder ; Продолжить преобразование.
callreport ; Коррекция значений десятичных регистров.
; Вычисление порядка значения индикации.
movlw05 ; Установить счетчик разрядов после запятой.
movwfEmovlwCM+1 ; Загрузить адрес строки десятичных разрядов
для косвенной адресации.
movwffsr
calc_ext ; Поиск старшего значащего разряда.
decffsr, f ; Коррекция счетчика разрядов.
movf indf, W
btfss status,2 ; Значение = О?
gotoend_ext ; Нет, закончить поиск.
decfszE, f ; Все разряды проверены?
gotocalc_ext ; Нет, продолжить поиск.
end_ext
movlw 2
subwf E,W
btfssstatus,0 ; Значение порядка < 2? gotoerr ; Да, ошибка - обнулить значение индикации.
btfscstatus,2 ; Значение порядка = 2? gotono_app ; Да, обход округления.