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

📄 16x2_lcd.c

📁 lcd16x2的驱动程序,另外有proteus制作的模型,万年历
💻 C
字号:
#include "16x2_main.h"

/*
unsigned char year_q=2;
unsigned char year_b=0;
unsigned char year_s=0;
unsigned char year_g=7;
unsigned char month_s=1;
unsigned char month_g=2;
unsigned char day_s=2;
unsigned char day_g=0;

unsigned char hour_s=0;
unsigned char hour_g=0;
unsigned char min_s=0;
unsigned char min_g=0;
unsigned char sec_s=0;
unsigned char sec_g=0;
*/

unsigned char datatime[14]={2,0,0,7,1,2,2,0,0,0,0,0,0,0,};


void Delay(unsigned char time)
{
   unsigned char i=1000;
   while(time--)
   {
     while(i--);
    }

}

void Lcd_CodeWrite(char c)
{
  RS=0;
  W_R=0;
  E =1;
  COM=c;
  E =0;
}

void Lcd_DataWrite(char c)
{
  RS=1;
  W_R=0;
  E =1;
  COM=c;
  E =0;
}

bit Lcd_StateRead()
{
  char c;
  bit busy;
  RS=0;
  W_R=1;
  E =1;
  c=COM;
  E =0;
  busy=(c>>7);
  return busy; 
}

void Lcd_Initial()
{
  Lcd_CodeWrite(0x01); //清屏 
  Delay(1000);
  Lcd_CodeWrite(0x06); //输入方式设定,ac++,画面不动   
  Delay(1000);
  Lcd_CodeWrite(0x38); //二行显示,一个字符为5x7    
  Delay(1000);
//  Lcd_CodeWrite(0x02); //光标回home位
 // Delay(100);
   Lcd_CodeWrite(0x14); //光标右移,画面不动
   Delay(100);
//   Lcd_CodeWrite(0x0f); //显示开,光标开,闪
   Lcd_CodeWrite(0x0c);   //显示开, 光标关c,闪
   Delay(100);
}

//turn data to char data

void Turn_DataChar(char *Data_String)
{
   
  Data_String[0]='d';Data_String[1]='a';Data_String[2]='t';
  Data_String[3]='a';Data_String[4]=':';

  Data_String[5]=datatime[0]+0x30;               //千
  Data_String[6]=datatime[1]+0x30;               //百
  Data_String[7]=datatime[2]+0x30;           //十
  Data_String[8]=datatime[3]+0x30;                 //个
  Data_String[9]='-';
  Data_String[10]=datatime[4]+0x30;
  Data_String[11]=datatime[5]+0x30;
  Data_String[12]='-';
  Data_String[13]=datatime[6]+0x30;
  Data_String[14]=datatime[7]+0x30; 

}
  

//turn time to char time

void Turn_TimeChar(char *Time_String)
{
  
  Time_String[0]='t';Time_String[1]='i';Time_String[2]='m';
  Time_String[3]='e';Time_String[4]=':';
  
  Time_String[5]=datatime[8]+0x30;             //十                                        
  Time_String[6]=datatime[9]+0x30;             //个                              
  Time_String[7]=':';               
  Time_String[8]=datatime[10]+0x30; 
  Time_String[9]=datatime[11]+0x30;
  Time_String[10]=':';
  Time_String[11]=datatime[12]+0x30;
  Time_String[12]=datatime[13]+0x30;

}

//显示框架
//gloable



void Lcd_FramDisplay()
{
  unsigned char  Data[15];//2007-12-20
  unsigned char  Time[13];//00:00:00
  unsigned i;  


  Turn_DataChar(Data);
  Turn_TimeChar(Time);

  for(i=0;i<15;i++)
  {
       while(Lcd_StateRead());
       Lcd_CodeWrite(0x80|i);      //address
       while(Lcd_StateRead());
       Lcd_DataWrite(Data[i]);    //data           
   }
	 
for(i=0;i<13;i++)
      {
       while(Lcd_StateRead());
       Lcd_CodeWrite(0x80|0x40|i);
       while(Lcd_StateRead());
       Lcd_DataWrite(Time[i]);      
     }
 
}

⌨️ 快捷键说明

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