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

📄 lcd.h

📁 次程序为在89S52中对红外遥控的解码程序
💻 H
字号:
#include "function.h"

#define LCD_Data      P0			 

sbit	LCD_RS		=P1^2;
sbit	LCD_E		=P1^0;
sbit	LCD_WR		=P1^1;

unsigned char  LCDBusyWait()							//等待LCD就绪
{
	unsigned char Status;
	LCD_RS=0;
	LCD_WR=1;
	LCD_Data=0xFF;
	LCD_E=1;
	Status=LCD_Data;
	LCD_E=0;
	while(Status & 0x80)
	{
		LCD_E=1;
		Status=LCD_Data;
		LCD_E=0;
	}
	LCD_WR=0;
	return Status;
}

void WriteLCD_Data( unsigned char  Data )			//向LCD写入一个字节的数据
{
	LCDBusyWait();
	LCD_RS=1;
	LCD_Data = Data;
	LCD_E=1;
	LCD_E=0;
}

 void WriteLCD_Command( unsigned char Command )	//向LCD写入一个字节的命令
{  
	LCDBusyWait();
	LCD_RS=0;
	LCD_Data=Command;
	LCD_E=1;
	LCD_E=0;
}


/*****************************改变地址,实现了逐行显示*************************/
unsigned char ChangeAddress(unsigned char StartAddress)
{
    switch(StartAddress)
    {
        case 0x87:WriteLCD_Command(0x90);StartAddress=0x90;break;
        case 0x8F:WriteLCD_Command(0x98);StartAddress=0x98;break;
        case 0x97:WriteLCD_Command(0x88);StartAddress=0x88;break;
        default:StartAddress+=1;
    }
    return StartAddress;
}


/*
WriteLCD 从LCD输出一个字符串:
    StartAddress为起始地址;
    Size为字符串大小;
    Size==0 时由程序自己判断字符串结束标志,否则输出 Size 个字符,不够则填充空格;
    Charactors为要求输出的字符串;
*/
void WriteLCD(unsigned char StartAddress,unsigned char Size,unsigned char Charactors[])
{
    unsigned char *i=Charactors;      //字符串的首地址
    WriteLCD_Command(StartAddress);
    if(!Size)        //Size为0
    {
        while(*i)                                 //判断字符串结尾,*i为0代表结束
    	{
            WriteLCD_Data(*i);
        	i++;
			if('\0'==*i)
			break;
            WriteLCD_Data(*i);
        	i++;
            StartAddress=ChangeAddress(StartAddress);
    	}
    }
}

⌨️ 快捷键说明

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