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

📄 lcd.h

📁 等精度测频率、测相位 用c语言编程 简单方便
💻 H
字号:
#include <INTRINS.H>
sbit  LCD_RW=P2^6;
sbit  LCD_RS=P2^5;
sbit  LCD_E=P2^7;
#define LCD_DATA  P0

void delayus(unsigned int num) //us级延时函数
{while( num-- );}

bit LCD_Busy(void) //LCD忙碌状态检测
{							
	bit result;
	LCD_RS = 0;			    
	LCD_RW = 1;
	LCD_E  =1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	result = (bit)(P0 & 0x80);	
    LCD_E  =0;
	return result;	
}

void LCD_WriteCommand(unsigned char cmd) //写指令数据到LCD
{
	while(LCD_Busy());
	LCD_RS = 0;
	LCD_RW = 0;
    LCD_E  =0;
	_nop_();_nop_();	
	LCD_DATA = cmd;
	_nop_();_nop_();_nop_();_nop_();
	LCD_E  =1;
	_nop_();_nop_();_nop_();_nop_();
	LCD_E =0;		
}

void LCD_WriteDate(unsigned char dat)//写字符显示数据到LCD
{							
	while(LCD_Busy());
	LCD_RS = 1;
	LCD_RW = 0;
	LCD_E =0;
	LCD_DATA = dat;
	_nop_();_nop_();_nop_(); _nop_();
	LCD_E  =1;				
	_nop_();_nop_();_nop_();_nop_();
	LCD_E =0;	
}

void LCD_Init(void)
{							
    LCD_WriteCommand(0x38);//5×7字型  
	delayus(5);
	LCD_WriteCommand(0x0c);//显示开,不显示光标,光标不闪
	delayus(5);
	LCD_WriteCommand(0x06);//输入模式,地址增量,显示不移动 
    delayus(5);
}

void LCD_DisplayOneChar(unsigned char X,unsigned char Y,unsigned char Z)
{
    Y &= 0x1;
    X &= 0xF; //限制X不能大于15,Y不能大于1 
    if(Y == 0)
       {LCD_WriteCommand(X|0X80);
        LCD_WriteDate(Z);
	   }
    if(Y == 1)
       {LCD_WriteCommand((X|0x40)|0X80);
        LCD_WriteDate(Z);
       } 
}
void LCD_DisplayOneString(unsigned char X,unsigned char Y,unsigned char a[])
{
    unsigned char  m;
    Y &= 0x1;
    X &= 0xF;
    m = 0 ;
    while(a[m] != '\0')
      {LCD_DisplayOneChar(X,Y,a[m]);m++ ;X++;}
}

⌨️ 快捷键说明

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