ПП подключения графического индикатора к одному порту.

Автор: Super User Просмотров: 1293

 

 

 

Graf 18 1

 

 

 

            #define     _E1     LATC,1 ;
            #define     _E2     LATC,2 ;
            #define      E1    Krist,1 ;
            #define      E2    Krist,2 ;
            #define   Stob_kr0  LATC,4 ;
            #define    Stob_kr  LATC,5 ;
            #define      D1     LATC,6 ;           
            #define      E      LATC,7 ;
            #define      Port    PORTC ;             
;-----------------------------------------------------------------------------          
;    назначение
;-----------------------------------------------------------------------------
           CBLOCK 
           Temp                             ;
           Temp_2
           Krist
           Data_1
           Temp_1
           Reg
           ENDC

           org         0x000
           goto        START

START      clrf               TRISC ; Порт на выход
           clrf               PORTC ; Очистить порт
           bsf              Stob_kr ; =Необходимая процедура 
           bsf             Stob_kr0 ;  для сброса защелок=
           bcf              Stob_kr ; =
           bcf             Stob_kr0 ; =
;------------------------------------------------------------------
; инициализация индикатора
;------------------------------------------------------------------
           bsf                   E1 ; Включить  оба кристалла
           bsf                   E2 ;
           movlw                3Eh ; Команда "выключить индикатор"
           movwf             Data_1 ;
           call           Graf_18_1 ; Записать управ. команду
           movlw                3Fh ; Команда "включить индикатор"
           movwf             Data_1 ;
           call           Graf_18_1 ; Записать управ. команду
           movlw                 .4 ; =Задержка 14мкс ( при кварце 4 МГц
           movwf               Temp ;  при другой частоте тактового генератора 
m_1        decfsz              Temp ;  изменить задержку до 14 мкс.=
           goto                 m_1 ;
 
;----------------------------------------------------------------------------------
;ПП работы граф. индикатора на один порт. До вызова ПП необходимо выбрать кристалл
;индикатора и записать необходимое значение в регистр "Data_1". В случае передачи
;данных вызывается ПП "Zap_dan".
;----------------------------------------------------------------------------------
Graf_18_1  call              Vyb_kr ; Записываем в защелку выбранный кристалл
           movf            Data_1,0 ; Значение в W
           andlw                0Fh ; Сбрасываем ст.полубайт  W
           movwf             Temp_1 ; Копируем результат в регистр
           movf              Port,0 ; Значение порта в W
           andlw               0F0h ; Сбрасываем мл.полубайт
           xorwf             Temp_1 ; Операция "Или"
           movff        Temp_1,Port ; Копируем в порт
           bsf             Stob_kr0 ; =Строб защелки выбора мл.
           nop                      ;  
           bcf             Stob_kr0 ;  полубайта=
           movf            Data_1,0 ; Значение в W
           andlw               0F0h ; Сбрасываем мл. полубайт
           movwf             Temp_1 ; Результат в регистр
           swapf             Temp_1 ; Меняем местами полубайты в регистре
           movf              Port,0 ; Значение порта в W
           andlw               0F0h ; Сбрасываем мл.полубайт
           xorwf             Temp_1 ; Операция "Или"
           movff        Temp_1,Port ; Копируем в порт
           bsf                    E ; =Строб записи
           nop                      ;
           bcf                    E ;  в индикатор
           clrf                Port ; Очистка порта.      
           return                   ; Возврат из ПП
;----------------------------------------------
;выбор кристала
;----------------------------------------------
Vyb_kr     btfsc                 E1 ; Выбран 1 кристал индикатора?
           bsf                  _E1 ; Да.Устанавливаем бит.
           btfsc                 E2 ; Выбран 2 кристал индикатора?
           bsf                  _E2 ; Да.Устанавливаем бит.
           bsf              Stob_kr ; =Строб защелки выбора
           nop                      ;
           bcf              Stob_kr ;  кристалла=
           return
;----------------------------------------------
;запись данных
;----------------------------------------------
Zap_dan    bsf                   D1 ; установить признак запись данных
           call           Graf_18_1 ; запись команд
           bcf                   D1 ; убрать признак запись данных
           return                   ;

 

Пример вывода графики в 0 страницу левого кристалла.

Скачать проект MPLAB, Протеус.


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru