; 9. УСТАНОВКА КУРСОРА (ВЫБОР РАЗРЯДА УСТАНОВКИ).
;=================================================
KYPCOP
BSF FLAG,7 ;УСТАНОВКА.
BCF FLAG,4 ;СБРОС ФЛАГА НЕТ КУРСОРА.
INCF KYPC,1 ;ПРИБАВИМ ЕДИНИЦУ В КУРСОР.
MOVLW .6 ;НЕ БОЛЕЕ 5.
SUBWF KYPC,0 ;
SKPC ;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 6,
RETURN ;
CLRF KYPC ;ОБНУЛИМ.
BSF FLAG,4 ;НЕТ КУРСОРА В ПОЛЕ.
BCF FLAG,7 ;НЕТ УСТАНОВКИ.
RETURN ;
;=========================================
; 10. ВВОД КУРСОРА В МЛ. РАЗРЯД РЕГИСТРОВ.
;=========================================
KYPVO
BTFSC FLAG,4 ;ЕСЛИ НЕТ КУРСОРА,
RETURN ;ТО ВЕРНЕМСЯ.
CALL KYPCY ;УСТАНОВИМ РЕЖИМЫ.
MOVWF KYPCI ;В КУРСОР ИНДИКАЦИИ.
RRF KYPCI,1 ;ЗАПОЛНИМ БИТ "С".
ADDCF R1,1 ;ПЕРЕНЕСЕМ В РЕГИСТР ИНДИКАЦИИ.
RRF KYPCI,1 ;ЗАПОЛНИМ БИТ "С".
ADDCF R2,1 ;ПЕРЕНЕСЕМ В РЕГИСТР ИНДИКАЦИИ.
RRF KYPCI,1 ;ОСТАЛЬНЫЕ РЕГИСТРЫ
ADDCF R3,1 ;ЗАПОЛНЯЕМ АНАЛОГИЧНО.
RRF KYPCI,1 ;
ADDCF R4,1 ;
RRF KYPCI,1 ;
ADDCF R5,1 ;
RRF KYPCI,1 ;
ADDCF R6,1 ;
RRF KYPCI,1 ;
ADDCF R7,1 ;
RRF KYPCI,1 ;
ADDCF R8,1 ;
RETURN ;
;=============================================
; 11. ВЫВОД НА ИНДИКАЦИЮ.
;=============================================
IND
CALL KYPVO ;ВВЕДЕМ КУРСОРЫ В РЕГИСТРЫ ИНДИКАЦИИ.
MOVFW ZPT ;ЗНАЧЕНИЯ ЗАПЯТЫХ ПЕРЕПИШЕМ
MOVWF TZPT ;ВО ВРЕМЕННЫЙ РЕГИСТР.
BSF FLAG1,2 ;ЗАПЯТАЯ ПЕРЕДАНА.
BCF PORTC,DIN ;ДАННЫЕ РАВНЫ НУЛЮ.
BCF PORTC,LOAD ;НАЧАЛО ПЕРЕДАЧИ (LOAD=0).
RRF TZPT,1 ;ВЫТОЛКНЕМ ОЧЕРЕДНУЮ ЗАПЯТУЮ.
CALL VUV0 ;
BCF FLAG1,2 ;ЗАПЯТАЯ ПЕРЕДАНА.
MOVLW R1 ;ЗАПИШЕМ АДРЕС ПЕРВОГО РЕГИСТРА ИНДИКАЦИИ.
MOVWF FSR ;
MOVFW INDF ;ЗНАЧЕНИЕ ПЕРВОГО РЕГИСТРА
MOVWF TEMP ;ПЕРЕПИШЕМ ВО ВРЕМЕННЫЙ.
BCF PORTC,LOAD ;НАЧАЛО ПЕРЕДАЧИ (LOAD=0).
CALL VUVOD ;НА ВЫВОД.
POVT
BSF FLAG1,2 ;ЗАПЯТАЯ ПЕРЕДАНА.
RRF TZPT,1 ;ВЫТОЛКНЕМ ОЧЕРЕДНУЮ ЗАПЯТУЮ.
CALL VUV0 ;
BCF FLAG1,2 ;ЗАПЯТАЯ ПЕРЕДАНА.
INCF FSR,1 ;УВЕЛИЧИМ АДРЕС РЕГИСТРА ИНДИКАЦИИ.
MOVFW INDF ;ПЕРЕПИШЕМ ЕГО ЗНАЧЕНИЕ
MOVWF TEMP ;ВО ВРЕМЕННЫЙ.
CALL VUVOD ;НА ВЫВОД.
INCF COUZ,1 ;ПОДСЧИТАЕМ ЧИСЛО
MOVLW .7 ;ПЕРЕДАВАЕМЫХ
SUBWF COUZ,0 ;ЗАПЯТЫХ.
BTFSC STATUS,2;
CLRF COUZ ;ОБНУЛИМ СЧЕТЧИК.
BTFSS STATUS,2;
GOTO POVT ;ПОВТОРИМ ВЫВОД.
BSF PORTC,LOAD ;КОНЕЦ ПЕРЕДАЧИ.
RETURN ;
CUNX
BSF PORTC,DCLK ;СИНХРОТМПУЛЬС = 1.
CALL PAUS ;ПАУЗА.
BCF PORTC,DCLK ;СИНХРОИМПУЛЬС = 0.
RETURN ;ВОЗВРАТ.
PAUS
MOVLW .5 ;МОЖНО ПОДБИРАТЬ ЗНАЧЕНИЕ ПАУЗЫ.
ADDLW -1 ;ПАУЗА = ЧИСЛО Х 4 МКС.
BTFSS STATUS,2;
GOTO $-2 ;ПОВТОРИМ.
RETURN ;ВЕРНЕМСЯ.
VUVOD
RRF TEMP,1 ;СДВИНЕМ ВПРАВО.
VUV0
BTFSS STATUS,0;ПО НУЛЕВОМУ РАЗРЯДУ
BCF PORTC,DIN ;УСТАНАВЛИВАЕМ ДАННЫЕ
BTFSC STATUS,0;В 0 ИЛИ 1.
BSF PORTC,DIN ;
CALL CUNX ;СИНХРОНИЗИРУЕМ ДАННЫЕ.
BTFSC FLAG1,2 ;ЕСЛИ ЗАПЯТАЯ ПЕРЕДАНА,
RETURN ;ТО ВЕРНЕМСЯ.
INCF COU,1 ;ПОДСЧИТАЕМ ЧИСЛО БИТ.
MOVLW .8 ;
SUBWF COU,0 ;
BTFSS STATUS,2;ЕСЛИ НЕ ВСЕ БИТЫ ПЕРЕДАНЫ,
GOTO VUVOD ;ПОВТОРИМ ВЫВОД.
CLRF COU ;ОБНУЛИМ СЧЕТЧИК.
RETURN ;
;======================================================
; 12. СОХРАНЕНИЕ И ВОССТАНОВЛЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ ПРИ ПРЕРЫВАНИИ.
;======================================================
PRER
MOVWF WTEMP ;СОХРАНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ W,
MOVFW STATUS ;STATUS,
MOVWF STEMP ;
MOVFW FSR ;FSR.
MOVWF FTEMP ;
BSF FLAG1,1 ;1 СЕК ЦИКЛА.
CALL S1 ;ПОДСЧИТАЕМ ВРЕМЯ.
BTFSC FLAG,2 ;
CALL TAIM ;
REPER ;ВОССТАНОВЛЕНИЕ СОХРАНЕННЫХ ЗНАЧЕНИЙ.
MOVFW STEMP ;ВОССТАНОВЛЕНИЕ РЕГИСТРОВ:
MOVWF STATUS ;STATUS,
MOVFW FTEMP ;
MOVWF FSR ;FSR,
MOVFW WTEMP ;W. Перейти на страницу: 2 3 4 5 6 7 8 9 10
Советуем почитать:
Определение надежности устройства РЭА Полупроводниковая электроника – прогрессирующая область науки и техники. Уже в первом десятилетии с момента изобретение транзисторов полупроводниковые приборы нашли широкое применение в ...
Разработка конструкции цифрового FM-приемника Нашу жизнь не возможно представить без радио и радиосодержащей аппаратуры. А началось это с того как в 1887 г. своими экспериментами немецкий физик Г.Р. Герц (1857 - 1894) доказал справе ...
Расчёт частотозадающих элементов принципиальной схемы передатчика радиолюбительского маячка В настоящей курсовой работе были приобретены умения и навыки расчёты частотозадающих элементов принципиальной схемы автогенератора, транзисторного усилителя мощности, схемы сложного вых ...