I
АВТОМАТИКА
I
btfsc
Flags, 1
; Вход в режим двойной
; калибровки
IsOne
movlw
0x6E
; B-10000
goto
Doubl«Check
; переключатель Р1/Г2 был
movwf
BX
; Приведём А к целому числу
; переключен
movlw
OxlC
movwf
B0
call
Measure
; А=Г2А2
movlw
0x40
movwf
BI
btfsc
_LX
; Если в середине
clrf
B2
; режима Сх,
goto
Label_6
; то простой переход
call
Mpy
; A—INT (A* 10000)
call
Int
; В формат с фикс, точкой
btfss
Flags, 5
; Если же выходим из режима
call
BCD
, В ASCII формат
goto
LabelJ7
; двойной калибровки,
movf
TSign, W
; Множитель сохраним в АХ
btfsc
Flags, 6
; то нужно
movwf
AX
; АХ - TSign
call
ClrDSP
; очистить дисплей
movlw
'u*
; "и"
bcf
Flags, 6
; и сбросить флаг
movwf
LP
; Префикс для индуктивности
movlw
'p‘
; мр"
Label_7
btfsc
Flags, 6
; Если флаг установлен, то
movwf
CP
; Префикс для емкости
goto
CalcDouble
; продолжается режим
; двойной калибровки
АХО
movf
AX, W
; Если АХ—0
btfss
STATUS, Z
Label_6
btfsc
Flags, 6
; Если из двойней калибровки
goto
AX1
; иначе далее
; сразу перешли
call
DispO
; Вывод 0.12 для ёмкости
call
ClrDSP
; к измерению ёмкости.
call
DispDot
; то надо один раз
call
Digitl
bcf
Flags, 6
; очистить дисплей и
call
Digit2
; сбросить флаг
btfsc
_LX
;
Общая часть расчёта для ёмкости и индуктивности
goto
SP
call
BEQUA
; В—Г2Л2
call
Digit3
; или 0.123 для
movlw
FDX
; Частота генератора с
; индуктивности
call
Copy_To__A
; контуром только из Ы
goto
Units
; и С1
АХ1
deefsz AX, F
; Если А-1
call
Div
; А=Р1а2/Г2а2
goto
AX2
; иначе далее
call
ClrB
; Загрувка в В единицы
AXlDisp
call
Digitl
; Вывод 1.23 для емкости
movlw
0x61
; (вид с плавающей точкой)
call
DispDot
inovwf
BX
; В-1
call
Digit2
call
Digit3
call
Sub
- А = П а2/Г2а2-1
movf
AX, W
btfsc
LX
btfss
STATUS, Z
; Если результат
goto
SP
; положительный,
call
Digit4
; или 1.234 для
goto
NoNeg
; то далее
; индуктивности
goto
Units
call
ClrA
; иначе обнулить А
АХ2
deefsz AX, F
; Если А—2
NoNeg
btfsc
_LX
; Равветвление расчёта
goto
AX3
goto
Cx_Meas
; для емкости или
; индуктивности
AX2Disp
call
Digitl
; Вывод 12.34
call
Digit2
movlw
LX
; Извлечение
call
DispDot
; индуктивности Ь1
call
Digit3
call
Copy_To_B
; ив соответствующего
call
Digit4
;
банка
goto
Units
; AND ENG UNITS
call
Иру
; А«(ПА2/Г2Л2-1)*Ы
АХЗ
deefsz AX, F
; Если А-3
goto
AX4
DispLX
movlw
OxlA
call
RaadWString
; "Ь—
AX3Disp
call
Digitl
; Вывод 123.4
call
Digit2
btfBS
Flags, 5
call
Digits
goto
CheckOK
call
DispDot
call
Digit4
call
ClrA
goto
Units
CheckOK
goto
DispVal
; Вывод ревультата
АХ4
movlw
•m*
movwf
LP
; Префикс "т" - милли
Cx_meas
movlw
cx
; Дорасчёт для ёмкости
movlw
*n*
call
Copy_To_B
movwf
CP
;
или мп’* - нано
call
Иру
;
А-[Р1А2/Г2Л2-1)*С1
deefsz AX, F
;
Если А-4
goto
AX5
movlw
0x17
call
ReadWStri ng
;
**С—*'
AX4Di sp
call
Digitl
; Вывод 1.234
call
DispDot
; Индикация результата
call
Digit2
DiapVal
call
TestBat
call
Diglt3
clrf
TSign
;
ТБ1дл
-
0
call
Digit4
NoOne
movf
AX, W
;
Если А>—1
goto
Units
sublw
0x80
*
btfsc
STATUS, C
AX5
movlw
0xE4
goto
IsOne
;
А<1, Результат-А*10АТБ1дп
deefsz AX, F
;
А-5
goto
AX6
call
ClrB
goto
AX2Disp
;
12.34
movlw
0xS4
;
А-А/10
movwf
BX
AX6
deefsz AX, F
А—6
movlw
0x20
goto
AX7
movwf
BO
goto
AX3Di sp
;
123.4
call
Div
AX7
movlw
n II
incf
TSign, F
;
ТБ1дп—ТБ1дп+1
movwf
LP
;
Нет префикса
deefsz AX, F
;
А—7
goto
HoOne
goto
AX2Disp
; 12.34 Н
20
[
I
Радиолюбитель - 03/2005
предыдущая страница 21 Радиолюбитель 2005-03 читать онлайн следующая страница 23 Радиолюбитель 2005-03 читать онлайн Домой Выключить/включить текст