;------------------------------------------------------------ #define E PORTC, 4 #define RS PORTC, 5 ;--------------------------------------- Dly5 movlw 7 ; 5 миллисекунди goto Delay DLY200 movlw 0x3F ; 200 микросекунди movwf T1 ; 9+(3T1+2)T2 min step 5 movlw 1 goto Delay2 Delay clrf T1 Delay2 movwf T0 DelayL decfsz T1, F goto DelayL decfsz T0, F goto DelayL return ; 0,5 секунд Delay05sec movlw 0x02 DelayXsec movwf T2 TD1 movlw 0xFF call Delay decfsz T2, F goto TD1 return ;--------------------------------------- InitLCD call Delay05sec movlw 3 movwf Temp movwf PORTC SetLoop bsf E ; 3 пъти CALL Dly5 bcf E decfsz Temp, F goto SetLoop movlw 2 call Send MOVLW 28 call CmdLCD MOVLW B'00001100' ;Включване на дисплея, курсора изключен, курсора не мига call CmdLCD MOVLW B'00000001' ;Изчиставане на екрана call CmdLCD MOVLW B'00000110' ;Преместване курсора надясно, екрана не се премества call CmdLCD RETURN ;-------------------------------------------- SecLine movlw 0xC1 ; Изпълняване на команда CmdLCD movwf Temp4 bcf RS goto SendLCD ; Перекодиране в ASCII и извеждане NumLCD andlw 0x0F ; маска iorlw 0x30 ; ASCII ; Извеждане на ASCII символа CharLCD movwf Temp4 bsf RS SendLCD swapf Temp4, W andlw 0x0F BTFSC RS XORLW B'00100000' movwf PORTC bsf E bcf E movf Temp4, W andlw 0x0F BTFSC RS XORLW B'00100000' Send movwf PORTC bsf E bcf E call DLY200 return