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

📄 lcd.c

📁 这是一个使用52单片机实现的数字钟系统 其包括了许多的功能
💻 C
字号:
#include "LCD.H"

/*--------------------------
*** initialising the LCD ***
--------------------------*/

void ini()
{	
	command(56);
	command(12);
	command(1);
	command(6);
	command(0x80);
}

/*----------------------------
*** checking the busy flag ***
----------------------------*/

void busy()
{
	d7=1;
	rs=0;
	rw=1;
	while(d7!=0)
	{
		en=0;
		en=1;
	}
}

/*-------------------------
*** send command to LCD ***
-------------------------*/

void command(bit_8 val)
{
	busy();
	lcd_port=val;
	rs=0;
	rw=0;
	en=1;
	en=0;
}

/*--------------------------
*** entering data to LCD ***		
--------------------------*/

void data_in(bit_8 *string)
{
	while(*string)
		lcd_data(*string++);
}

void lcd_data(bit_8 ch)
{
	busy();		
	lcd_port=ch;
	rs=1;
	rw=0;
	en=1;
	en=0;
}

void cgrambuild(void)
{
	bit_8 code char1[]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01};
	bit_8 code char2[]={0x1F,0X11,0X11,0X11,0X11,0X11,0X11,0X11};
	bit_8 code char3[]={0X1F,0X10,0X10,0X10,0X10,0X10,0X10,0X1F};
	bit_8 code char4[]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1F};
	bit_8 code char5[]={0x1F,0x11,0x11,0x11,0x11,0x11,0x11,0x1F};
	bit_8 code char6[]={0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1F};
	bit_8 code char7[]={0x1F,0x01,0x01,0x01,0x01,0x01,0x01,0x1F};
	bit_8 code char8[]={0x1F,0x01,0x01,0x01,0x01,0x01,0x01,0x01};
	bit_8 i;
	command(0x40);
	for(i=0;i<8;i++)
		lcd_data(char1[i]);
	for(i=0;i<8;i++)
		lcd_data(char2[i]);
	for(i=0;i<8;i++)
		lcd_data(char3[i]);
	for(i=0;i<8;i++)
		lcd_data(char4[i]);
	for(i=0;i<8;i++)
		lcd_data(char5[i]);
	for(i=0;i<8;i++)
		lcd_data(char6[i]);
	for(i=0;i<8;i++)
		lcd_data(char7[i]);
	for(i=0;i<8;i++)
		lcd_data(char8[i]);
	command(0x80);
}

void bdata_in(bit_8 a, bit_8 addr)
{
	bit_8 j;
	j=a/10;
	big_data_in(j,addr);
	j=a%10;
	big_data_in(j,addr+2);
}

void big_data_in(bit_8 a, bit_8 addr)
{
	switch(a)
	{
		case 0:
			lcd_zero(addr);
			break;
		case 1:
			lcd_one(addr);
			break;
		case 2:
			lcd_two(addr);
			break;
		case 3:
			lcd_three(addr);
			break;
		case 4:
			lcd_four(addr);
			break;
		case 5:
			lcd_five(addr);
			break;
		case 6:
			lcd_six(addr);
			break;
		case 7:
			lcd_seven(addr);
			break;
		case 8:
			lcd_eight(addr);
			break;
		case 9:
			lcd_nine(addr);
			break;
	}
}

void lcd_zero(bit_8 addr)
{
	command(addr);
	lcd_data(1);
	command(addr+0x40);
	lcd_data(5);
}

void lcd_one(bit_8 addr)
{
	command(addr);
	lcd_data(0);
	command(addr+0x40);
	lcd_data(0);
}

void lcd_two(bit_8 addr)
{
	command(addr);
	lcd_data(7);
	command(addr+0x40);
	lcd_data(2);
}

void lcd_three(bit_8 addr)
{
	command(addr);
	lcd_data(6);
	command(addr+0x40);
	lcd_data(3);
}

void lcd_four(bit_8 addr)
{
	command(addr);
	lcd_data(5);
	command(addr+0x40);
	lcd_data(0);
}

void lcd_five(bit_8 addr)
{
	command(addr);
	lcd_data(2);
	command(addr+0x40);
	lcd_data(3);
}

void lcd_six(bit_8 addr)
{
	command(addr);
	lcd_data(2);
	command(addr+0x40);
	lcd_data(5);
}

void lcd_seven(bit_8 addr)
{
	command(addr);
	lcd_data(7);
	command(addr+0x40);
	lcd_data(0);
}

void lcd_eight(bit_8 addr)
{
	command(addr);
	lcd_data(4);
	command(addr+0x40);
	lcd_data(5);
}

void lcd_nine(bit_8 addr)
{
	command(addr);
	lcd_data(4);
	command(addr+0x40);
	lcd_data(3);
}

⌨️ 快捷键说明

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