ПП инициализация LCD в 4-х битном режиме.

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

 

 

alt

;-------- Прописка регистров --------
            Cblock
            Temp                    ;
            Reg_1                   ;
            LCD
            endc
;---------------Присвоение------------
            #define        E LATB,7 ;
            #define       RS LATB,6 ;
;-------------------------------------           
            org                   0 ;
            nop                     ;
            goto             START  ;
;---------------Инициализация--------
 START      movlw              0F0h ; =Настройка PORTC 
            movwf             TRISC ;  мл.4 бита на выход, остальные на вход.=
            clrf              TRISB ; Настройка PORTB на выход 
;-------------------------------------
            call           Init_LCD ; Иницилизация в 4 битном режиме.
 PROG       call             Text_R ; Пример вывода текста.
            bra                PROG ; Снова.


;---------------------------------------                    
;  Инициализация LCD в 4-х битный режим 
;---------------------------------------       
Init_LCD    call          Delay_400 ; Задержка 40мс.
            movlw                .3 ; Три прохода
            movwf              Temp ;
Impul       movlw        B'00000011'; Запись команды
            movwf             PORTC ; 
            bsf                   E ;
            nop                     ;
            bcf                   E ;
            call           Delay_40 ; Задержка 40 мкс
            decfsz             Temp ;
            bra               Impul ;
            movlw       B'00000010' ; 4 битовый режим
            movwf             PORTC ;
            bsf                   E ;
            nop                     ;
            bcf                   E ;
            call           Delay_40 ; Задержка 40 мкс
            movlw       B'00101000' ; 4бит, 2 строки, 0таб       ;
            call            ZAP_Adr ; Вызов ПП записи в LCD
            movlw       B'00001000' ; Выкл. дисплей и выкл курсор
            call            ZAP_Adr ; Вызов ПП записи в LCD
            movlw       B'00000110' ; Запрет сдвига инкримен
            call            ZAP_Adr ; Вызов ПП записи в LCD
            movlw       B'00001100' ; Dкл. дисплей и выкл курсор
            call            ZAP_Adr ; Вызов ПП записи в LCD
            return
            
;-------------------------------------
; Задержка 40 мс
;-------------------------------------
Delay_400   movlw               .10 ;
            movwf              Temp ;
            call           Delay_40 ;
            decfsz             Temp ;
            bra                $-.6 ;
            return
;-------------------------------------
;Задержка кварц 4 МГц, если в программе
;другой, то соответственно пересчитать.
;-------------------------------------
Delay_40    movlw              .14 ;
            movwf            Reg_1 ;
            decfsz           Reg_1 ;
            bra                $-2 ;  
            return                 ;

;-----------------------------------
; пп записи данных.
;-----------------------------------
ZAP_Adr    movwf               LCD ; Запись адреса начала строки
           bcf                  RS ;
           bra                SLCD ;
LCD_D      movwf               LCD ; Запись данных.
           bsf                  RS ;
SLCD       swapf             LCD,0 ; Запись в 4-битном режиме
           movwf             PORTC ;
           bsf                   E ;
           nop                     ;
           bcf                   E ;
           movff         LCD,PORTC ;
           bsf                   E ;
           nop                     ;
           bcf                   E ;
           clrf              PORTC ;
           call           Delay_40 ;
           bcf                  RS ;
           return

 

;-----------------------------------
; пример вывода надписи
;-----------------------------------
Text_R     movlw                 0 ;  1 строкa.
           call            ZAP_Adr ; Адрес начала вывода данных 
           movlw               ' ' ;
           call              LCD_D ;
           movlw               ' ' ;
           call              LCD_D ;
           movlw               ' ' ;
           call              LCD_D ;
           movlw               ' ' ;
           call              LCD_D ;
           movlw               'C' ;
           call              LCD_D ;
           movlw               'H' ;
           call              LCD_D ;
           movlw               'I' ;
           call              LCD_D ;
           movlw               'P' ;
           call              LCD_D ;
           movlw               'M' ;
           call              LCD_D ;
           movlw               'K' ;
           call              LCD_D ;
           movlw               '.' ;
           call              LCD_D ;
           movlw               'R' ;
           call              LCD_D ;
           movlw               'U' ;
           call              LCD_D ;
           movlw               ' ' ;
           call              LCD_D ;
           movlw               ' ' ;
           call              LCD_D ;
           movlw               ' ' ;
           call              LCD_D ;
           movlw              0C0h ;  2 строкa.
           call            ZAP_Adr ; Адрес начала вывода данных 
           movlw               '0' ;
           call              LCD_D ;
           movlw               '1' ;
           call              LCD_D ;
           movlw               '2' ;
           call              LCD_D ;
           movlw               '3' ;
           call              LCD_D ;
           movlw               '4' ;
           call              LCD_D ;
           movlw               '5' ;
           call              LCD_D ;
           movlw               '6' ;
           call              LCD_D ;
           movlw               '7' ;
           call              LCD_D ;
           movlw               '8' ;
           call              LCD_D ;
           movlw               '9' ;
           call              LCD_D ;
           movlw               'A' ;
           call              LCD_D ;
           movlw               'B' ;
           call              LCD_D ;
           movlw               'C' ;
           call              LCD_D ;
           movlw               'D' ;
           call              LCD_D ;
           movlw               'E' ;
           call              LCD_D ;
           movlw               'F' ;
           call              LCD_D ;
           return                  ; Возврат из ПП.

 

 

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


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

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