Projects › Projects › Parallex RFID_PIC16f877a_LCD_Hi Tech C › #include
wysiwyg_imageupload:2839:wysiwyg_imageupload:2840:wysiwyg_imageupload:2842:
#include<htc.h>
#define _XTAL_FREQ 4e6
__CONFIG(0x3F39);
#define RS RC4
#define EN RC5
#define databits PORTB
unsigned char i=0;
unsigned char data[]=”Blind ID No.”;
unsigned char tag_id[12];
void usrt_init()
{
TXEN=1;
SYNC=0;
BRGH=0; // low baud rate
SPBRG=25; //baud rate 2400
TRMT=1;
SPEN=1;
CREN=1;
}
void interrupt_enable()
{
GIE=1;
PEIE=1;
RCIE=1;
}
void interrupt UART() //interrupt service routine
{
tag_id=RCREG;
i++;
}
void LCD_STROBE(void)
{
EN = 1;
__delay_us(2);
EN = 0;
}
void lcddata(unsigned char c)
{
RS = 1;
__delay_us(50);
databits = (c >> 4);
LCD_STROBE();
databits = (c);
LCD_STROBE();
}
void cmd(unsigned char c)
{
RS = 0;
__delay_us(50);
databits = (c >> 4);
LCD_STROBE();
databits = (c);
LCD_STROBE();
}
void clear(void)
{
cmd(0x01);
__delay_ms(2);
}
void lcd_init()
{
__delay_ms(15);
cmd(0x28);
__delay_ms(1);
cmd(0x28);
__delay_us(100);
cmd(0x28);
cmd(0x28); // Function set (4-bit interface, 2 lines, 5*7Pixels)
cmd(0x28); // Function set (4-bit interface, 2 lines, 5*7Pixels)
cmd(0x0c); // Make cursorinvisible
clear(); // Clear screen
cmd(0x6); // Set entry Mode(auto increment of cursor)
}
void main()
{
TRISB=0;
TRISC4 = 0;
TRISC5 = 0;
usrt_init();
interrupt_enable();
lcd_init();
while(data!=’