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

📄 lcd.c

📁 应用在51单片机控制的数字时钟上
💻 C
字号:
#include<lcd.h>

sbit lcd_RS=P1^2;                                                                 
sbit lcd_RW=P1^1;                                                                 
sbit lcd_E=P1^0;                                                               
sbit lcd_flag=P2^7;                                                                  



/*函数功能: 读lcd忙状态
  函数返回: 返回1表示处入忙状态, 不可写 */
static bit lcd_busy()                                                                          
{ 
       
        bit flag;
	    P2=0xff;              
        lcd_RS=0;                                                                         
        lcd_RW=1;                                                                          
        lcd_E=1;                                                                          
        if (lcd_flag==1) flag=1;
        else flag=0;
        lcd_E=0;
        return flag;                                                                 
} 


/*函数功能: 延时ms毫秒 */
static void lcd_delay(int ms)
{
    int i, j;
    for(i=ms; i>0;i--)
	   for(j=1000; j>0;j--)
	   ;
}



/*函数功能:写入指令com  */
static void lcd_putcommand(uchar com)                                  
{ 
        while(lcd_busy());                                                          
        lcd_RS=0;                                                                          
        lcd_RW=0;
        lcd_E=0;                                                                          
        P2=com;                                                                         
        lcd_E=1;                                                                          
        lcd_E=0;
}


/*函数功能: 写入数据ch */
static void lcd_putchar(uchar ch)                                         
{                                    
        while(lcd_busy()); 
		//lcd_busy();                                                          
        lcd_RS=1;
        lcd_RW=0;
        lcd_E=0;                                                                          
        P2=ch;                                                                          
        lcd_E=1;                                                                          
        lcd_E=0;
}


/*函数功能:在LCD的x行,y列显示一个字符ch*/
void lcd_write_char(uchar ch,uchar x,uchar y)
{ 
        if (x==1) lcd_putcommand(0x80|y);                   
        if (x==2) lcd_putcommand(0xc0|y);
		lcd_putchar(ch);
}


/* 函数功能:从LCD的x行,y列开始显示一个字符串str */
void lcd_write_str(char* str,uchar x,uchar y)
{ 
        if (x==1) lcd_putcommand(0x80|y);                   
        if (x==2) lcd_putcommand(0xc0|y);
		lcd_putcommand(0x06);
		while(*str++)
		{
		   lcd_putchar(*(str-1));
		 }
}  


/*清屏*/
void  lcd_clear(void)
{
    lcd_putcommand(0x01);
} 

  




/*LCD初始化*/
void lcd_init(void)
{	  
        lcd_putcommand(0x38);          //设置显示模式16*2                                        
        lcd_putcommand(0x0c);          //显示开,不显示光标                                
		lcd_clear();		     //清屏
}




⌨️ 快捷键说明

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