Hi I want to control LCD B/L with B.0 and Tmr0 interrupts. But still some problems. I can't find it. Pls Help me !!Code:@ DEVICE pic16F876 ' System Device @ DEVICE pic16F876, WDT_ON ' Watchdog Timer @ DEVICE pic16F876, PWRT_ON ' Power-On Timer @ DEVICE pic16F876, BOD_ON ' Brown-Out Detect @ DEVICE pic16F876, LVP_OFF ' Low-Voltage Programming @ DEVICE pic16F876, CPD_OFF ' Data Memory Code Protect @ DEVICE pic16F876, PROTECT_OFF ' Program Code Protection @ DEVICE pic16F876, XT_OSC ADCON1=7 ON INTERRUPT GOTO KESME INTCON = %11110000 ' Tmr0 aktif OPTION_REG = %01010101'Pull up dirençleri İPTAL- Bölme oranı 1/64. Define LCD_DREG PORTC ' LCD data portunu belirle Define LCD_DBIT 4 ' 4 bit'lik veri yolu Define LCD_RSREG PORTC ' LCD register seçme portunu belirle Define LCD_RSBIT 2 ' LCD register seçme bitini belirle Define LCD_EREG PORTC ' LCD enable portunu belirle Define LCD_EBIT 3 ' LCD enable bitini belirle Define LCD_LINES 2 ' LCD'deki satir sayisi trisb=%11111111 TRISC=%11111101 LCDK VAR BYTE Z VAR BYTE Led_isik VAR BYTE SAYAC VAR BYTE LCD_Led VAR PORTC.1 'tmr0=0 Lcdk=0 BASLA: PAUSE 300 LCDOUT $FE,$80,"HI!" LCDOUT $FE,$C0,"LCD BACK LIGHT CONT." LCDOUT $FE,$94,"B.0 & TMR0" DISABLE KESME: if INTCON.1=1 then z=1 Led_isik=0 SAYAC=0 Lcdk=0 endif if z=1 then if Lcdk=0 then LCD_Led=1 Lcdk=1 endif SAYAC=SAYAC+1 if SAYAC=62 then SAYAC=0 Led_isik= Led_isik +1 endif if Led_isik=8 then LCD_LED=0 Led_isik=0 SAYAC=0 Z=0 Lcdk=0 endif endif RESUME ENABLE END
Bookmarks