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

📄 lcd.c

📁 x9852的应用工程
💻 C
字号:
#include <at89x51.h>
#include <lcd.h>
char code int2charLCD[]="0123456789";//感觉code不用的
void write_LCD_command(unsigned command)
{
	rw=WRITE;
	rs=COMMAND;
	enable=ENABLE;
	P1=command;
	delay100us(20);
	enable=DISABLE;
	rw=1;
}
void write_LCD_data(unsigned LCDdata)
{
	rw=WRITE;
	rs=DATA;
	enable=ENABLE;
	P1=LCDdata;//不管输入什么,他直接编译成二进制
	delay100us(20);
	enable=DISABLE;
	rw=1;
}
void init_LCD(void)
{
	write_LCD_command(TwoLine_8bit);	//0x38
	write_LCD_command(CURSOR_ON);		//0x0C
	write_LCD_command(CURSOR_RIGHT);	//0x06
}
void clear_LCD()
{
	write_LCD_command(CLEAR);
	write_LCD_command(CURSOR_HOME);
}
void display_LCD_string(char *p)
{
	while(*p)
	{
		write_LCD_data(*p);
		p++;
	}
}
void display_LCD_number(char number)
{
	unsigned char x,y;
	x=number/10;
	y=number-10*x;
	write_LCD_data(int2charLCD[x]);
	write_LCD_data(int2charLCD[y]);
}
void gotoxy(unsigned x,unsigned y)
{
	if(x==1)
		write_LCD_command(GOTO_LINE_1+y);
	else
		write_LCD_command(GOTO_LINE_2+y);
}
void delay100us(unsigned char i)
{
	unsigned char j=0;
/*#pragma asm
more:	mov		R3,#48
		djnz	R3,$
		djnz	R7,more
#pragma endasm*/
	for(i;i>0;i--)
	for(j=0;j<34;j++);
		
}
unsigned char scan()//51>1,61>4.71>7,81>0,54>A,64>a,74>up,84>down,72>left,73>right
{
	unsigned char z,j,a,b;
	for(z=1;z<=4;z++)
	{	
		switch(z){
			case 1:a=0xfe;break;
		
			case 2:a=253;break;
		
			case 3:a=0xfb;break;
			case 4:a=0xf7;break;
		
			default :break;
		}
		SNPT=a;
		delay100us(1);
		delay100us(1);
		delay100us(1);
		b=SNPT;
		delay100us(10);
		if(b!=SNPT) return 0;
		b=b>>4;
		switch(b){
			case 0x0e:j=50+z;
					break;
			case 13:j=60+z;
				break;
			case 11:j=70+z;
				break;
			case 7:j=80+z;
				break;
			default :j=0;break;}
		if(j!=0) break;
	}
	SNPT=0xff;
//	P3=j;
	return j;	
}	
unsigned char value(unsigned char i)
{
	switch(i){
	case 51: return '3';break;
	case 52: return '2';break;
	case 53: return '1';break;
	case 54: return 'A';break;
	case 61: return '6';break;
	case 62: return '5';break;
	case 63: return '4';break;
	case 64: return 'V';break;
	case 71: return '9';break;
	case 72: return '8';break;
	case 73: return '7';break;
	case 74: return 'U';break;
	case 81: return 'E';break;
	case 82: return 'B';break;
	case 83: return '0';break;
	case 84: return 'D';break;
	default: return 0;
	}
}

⌨️ 快捷键说明

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