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

📄 lcd.c

📁 单片机的标准液晶屏驱动程序。单片机为P89C52
💻 C
字号:
#include <reg51.h>					
#include <STDIO.H>
#include <string.h>
#include <intrins.h>					

//--------LCD control bit---------------
sbit  RS   = P2^0;    
sbit  RW   = P2^1;    
sbit  E    = P2^2;    
sbit  BUSY = P0^7;   

#define 	TRUE			0x01		
#define		FALSE			0x00
#define     ON              0x01
#define     OFF             0x00		

void delay_100ms (void);  
void delay_us (unsigned int us); 

//--------LCD function---------------
void InitLCD(void);                                 
void WriteCommand(unsigned char c);                 
void WriteData(unsigned char c);                    
void ShowChar(unsigned char pos,unsigned char c);  
void ShowString(unsigned char line,char *ptr);     

char code str1[] = "LCD test program";

void main (void)
{
  char c;

      InitLCD();
      ShowString(0,str1);

}

void WriteCommand(unsigned char c)   
{
	delay_100ms();
	E=0;
	RS=0;
	RW=0;
	_nop_();
	E=1;
	P0=c;
	E=0;
}
			
void WriteData(unsigned char c)   
{
	delay_100ms();
	E=0;
	RS=1;
	RW=0;
	_nop_();
	E=1;
	P0=c;
	E=0;
	RS=0;
}

void ShowChar(unsigned char pos,unsigned char c)   
{
	unsigned char p;
	if (pos>=0x10)
	    p=pos+0xB0;
	else
	    p=pos+0x80;
	WriteCommand(p);
	WriteData(c);
}
			
void ShowString(unsigned char line,char *ptr)    
{
	unsigned char l,i;
	l=line<<4;
	for (i=0;i<16;i++)
	   ShowChar(l++,*(ptr+i));
}

void InitLCD(void)    
{    
    delay_100ms();
	WriteCommand(0x38);  
	WriteCommand(0x38);  
	WriteCommand(0x06);   
	WriteCommand(0x0C); 
	WriteCommand(0x01);  
	WriteCommand(0x80);  
}

void delay_100ms()      
{
	unsigned char i,j,k;
	for (i=0;i<8;i++)
	   for (j=0;j<25;j++)
	      for (k=0;k<250;k++);
}

void delay_us (unsigned int us)  
{
  while(us!=0)
    us--;
}

⌨️ 快捷键说明

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