⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.c

📁 code c lcd for pic 16f877
💻 C
字号:
#include <pic.h>
#include <stdio.h>
//#include <math.h>
#define rs		RC5
#define rw		RC6
#define e		RC7
#define d 		PORTD

unsigned char const chuoi_khoitao[4] = {0x38, 0x0c, 1, 6};

unsigned char doc()
{
	unsigned char dat;
	d = 0x80;
	rw = 1;
	rw = 1;
	e = 1;
	e = 1;
	dat = d;
	e = 0;
	return(dat);
}
void delay_us(unsigned char n)
{
	unsigned char i;
	for(i=0;i<n;i++);
}
void delay_ms(unsigned int n)
{
	unsigned int i;
	for(i=0;i<n;i++) delay_us(255);
}

/*void gui_dulieu( unsigned char n )
{
	d = n;
	d = n;
	delay_us(10);
	e = 1;
	delay_us(10);
	e = 0;
	delay_us(10);
}*/
void ghi(unsigned char x,unsigned char y)
{
rs=0;
while ( doc()&0x80);
//d=y;		//du lieu / ma lenh
rs=x;		//x=0 ghi lenh, x=1 ghi du lieu
delay_us(10);
rw=0;
delay_us(10);
e=0;
d=y;
delay_us(10);
e=1;
delay_us(10);
e=0;
delay_ms(10);
}
void init()
{
	int i;
	TRISD=0;
	TRISC=0;
	PORTD=0;
	PORTC=0;
	rs = 0;
	rw = 0;
	e = 0;
	delay_ms(15);
//	for(i=0;i<=3;++i) gui_dulieu(0x30);
	for(i=0;i<=3;i++) 
	ghi(0,chuoi_khoitao[i]);
}
void toado( unsigned char x, unsigned char y)
{
	unsigned char address;
	switch(y)
	{
		case 1 : address=0x80;break;
		case 2 : address=0xC0;break;
		case 3 : address=0x94;break;
		case 4 : address=0xD4;break;
	}
	address+=x;
	ghi(0,address);
}
void tach( char c)
{
	ghi(1,c);
}
//void hienthi( const unsigned char *msg)
//{
//	while(*msg) tach(*msg++);
//}			  
void main()
{	
	const char *str;
	init();
	while(1)
   {
         ghi(0,1);
         str="WELCOME TO";
         toado(3,1);
         while(*str)
         {
            ghi(1,*str++);
            delay_ms(100);
         }
         str="KHTN";
         toado(6,2);
         while(*str)
         {
            ghi(1,*str++);
            delay_ms(100);
         }
         delay_ms(2000);         
         ghi(0,1);
         delay_ms(200);         
         str="Dien Tu";
         toado(4,1);
         while(*str)
         {
            ghi(1,*str++);
            delay_ms(100);
         }
         str="Vien Thong";
         toado(3,2);
         while(*str)
         {
            ghi(1,*str++);
            delay_ms(100);
         }
         delay_ms(2000);   
   }
}										  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -