\
АВТОМАТИКА
I
вх
clrw
во
btfss
DX
Bl
movlw
0x02
В2
movwf
Temp
call
EEPROM To B
CSX
call
ShowX
eso
CS1
ConstLoop
call
GetSwitch
CS2
btfss
Modes, 4
BCDO
call
IncB
BCD1
btfss
Modes, 5
BCD2
call
DecB
BCD3
BCD'S
btfss
Flags, 1
goto
ConstLoop
TimerHH
movf
Bl, W
TimerH
movwf
EEDATA
TimerM
movf
Temp, W
TimerL
call
Save 2 EE
inef
EEADR, F
FDX
movf
B2, W
FDO
movwf
EEDATA
FD1
call
Save 2 EE+1
; Пропускаем запись адреса
FD2
; из И
goto
SetConst
ENDC
Main
call
ClrDSP
; Очистить дисплей
ORG
0x2100
; Область данных ЕЕPROM
call
GetSwitch
; Сканирование
; переключателей
Данные
; Адрес
call
CursorHome
DE
0x03, OxEB
; 0x00 «Xl-1000
btfss
FX
; по умолчанию
goto
FCounter
; Переход в режим
DE
0x03, OxEB
; 0x02 -Х2-1.000
; частотометра
; по умолчанию
btfsc
_LX
; Вход в режим калибровки
DE
’W , *H , *Z*,0x00
; 0x04
btfss
_cx
; если обв переключателя
DE
•С’,* о
call
ClrDSP
DE
’C ’,** ,0x00
; 0x17
goto
Calibration
DE
’L ’,’* ,0x00
; 0х1А
DE
* F’,** ,0x00
; 0x1 D
Mode
movlw
’C ’
; Для калибровки необходимо
DE
■O’,’К ,0x00
; 0x20
; отжать ,,С"
ORG
0x0000
btfss
LX
movlw
■L’
; или "1"
clrf
Flags
call
CharLCD
clrf
PORTB
call
TestBat
; Проверка источника
clrf
PORTA
; питания
bsf
STATUS, RP0
goto
Main+1
; Пропустить очистку
movlw
b ’11110000*
; дисплея
movwf
TRISB
movlw
b ’00000010’
;
Сканирование переключателей
movwf
TRISA
GetSwitch
bsf
STATUS, RPO
movlw
b ’00110111■
; Предцелитель 1:256,
movlw
OxFF
; Все порты в на вход
; подключение резисторов
movwf
TRISB
movwf
OPTION REG
bef
STATUS, RPO
bef
STATUS, RPO
call
Dly5
clrf
INTCOtf
movf
PORTO, W
; Чтение портов
movwf
Modes
; в регистр-аккумулятор
bsf
PORTA, 4
bsf
STATUS, RPO
movlw
b * 111100001
;
Инициализация LCD в 4-х Ситный режим
movwf
TRISB
InitLCD
call
DalayOSsec
bef
STATUS, RPO
movlw
3
movwf
Temp
bef
Flags, 1
movwf
PORTO
movf
Modes, W
; Установка флага, если
SetLoop
bsf
E
; 3 раза
; положение
call
Dly5
xorwf
Flags, W
; переключателя _иХ (П/Г2)
bef
E
andlw
1
• было изменено.
deefsz Temp
btfss
STATUS, Z
; Включает двойную
goto
SetLoop
/калибровку
movlw
2
bsf
Flags, 1
movwf
PORTO
call
Send
bef
Flags, 0
; Сохранение последнего
movlw
26
; 4-х битный, 2 строки, 5x7
btfsc
Modes, 0
; положения переключателя
call
CmdLCD
bsf
Flags, 0
movlw
OC
; Включить дисплей
return
call
CmdLCD
movlw
6
;
Определение и индикация разряда батареи
call
CmdLCD
TestBat
movlw
0x88
; Курсор на вторую строку
TestBatW
call
CmdLCD
SetConst
call
ClrDSP
; Очистить дисплей
movlw
’ ’
; Пробел, если норма
btfss
PORTA,1
bt£sc
PORTB, 7
movlw
0x21
; Ч *, если понижено
goto
Main
goto
CharLCD
; Индикация и выход
movlw
OxOF
;
Вход в режим частотометра
call
ReadWString
FCounter
bef
Flegs, 6
; Сброс флага двойной
; калибровки
call
GetSwitch
call
ClrDSP
; Очистка всего дисплея
movlw
1
movlw
OxlD
btfss
DX
call
ReadWString
; •Т-.”
movlw
2
call
NumLCD
;
Главный цикл частотометра
FLoop
call
Measure
; Измерение частоты
______________ 1 г
Радиолюбитель - 03/20051
предыдущая страница 18 Радиолюбитель 2005-03 читать онлайн следующая страница 20 Радиолюбитель 2005-03 читать онлайн Домой Выключить/включить текст