/* PIC16F84 * .-----------. * -|RA2 RA1|- PUSH BUTTON * -|RA3 RA0|- * -|RA4 OSC1|- XT CLOCK pin1, 27pF to GND * PUSH BUTTON -|MCLR OSC2|- XT CLOCK pin2, 27pF to GND * GND -|Vss Vdd|- +5v * LCD EN -|RB0 RB7|- LCD D7 * LCD RS -|RB1 RB6|- LCD D6 * LED -|RB2 RB5|- LCD D5 * -|RB3 RB4|- LCD D4 * '-----------' * * PUSH BUTTON = PIN - BUTTON - GND * PIN - 10k - +5v * * LED = PIN - LED - 100 ohm - GND */ #include #include "lcd.c" __CONFIG(WDTDIS & XT & UNPROTECT); main(void) { unsigned int i = 1; unsigned int j = 1; TRISA = 0b00000010; TRISB = 0b00000000; lcd_initialize(); lcd_overwrite_string("Hello World!"); for (;;) { if (RA1 == 0) { RB2 = 1; j = 0; } else { RB2 = 0; if (j==0) { j=1; i++; if (i==2) { lcd_write_string_at_second_line("Hello Again!"); } else if (i==3) { lcd_draw_logo(); } else { lcd_overwrite_string("Clear Screen."); } } } } }