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

📄 lcm.c

📁 多功能电子数字钟的设计 带语音报时功能 比赛做的
💻 C
字号:
#include "Includes.h"
  	
/**************函数声明***********************/
static void ReadStatusLCM(void);  
static void Delay_Xms(void);

/*****************写数据***********************/ 
extern void WriteDataLCM(unsigned char date)	  
{
 ReadStatusLCM();  //检测忙
 LCM_Data = date;
 Delay_Xms();
 LCM_RS = 1;
 LCM_RW = 0;
 LCM_E = 0;   //小的延时
 LCM_E = 1;
 
}

/*********写指令 BuysC为0时忽略忙检测**************/
extern void WriteCommandLCM(unsigned char address,BuysC)     
{
 //if (BuysC)
 ReadStatusLCM(); //根据需要检测忙
 LCM_Data = address;
 Delay_Xms();
 LCM_RS = 0;
 LCM_RW = 0;
 LCM_E = 0;
 LCM_E = 1;
 
}

/******************读忙状态(1忙,0不忙)*************/
  void  ReadStatusLCM(void)	                                        
{
 LCM_Data = 0x00;
 Delay_Xms();
 LCM_RS = 0;
 LCM_RW = 1;
 LCM_E = 0;
 LCM_E = 1; 
 while(Busy); //检测忙信号,忙则延时
}
/******************延时5ms *************/
void Delay_Xms(void)                                                  //约5ms延时
{  
   unsigned char i;
   for(i=0;i<27;i++){
                     TMOD=0X02;
                     TH0=0X38;   
                     TL0=0X38;         
                     EA=0X00; 
                     ET0=0X00;
                     TF0=0X00;
                     TR0=0X01;
                     while(TF0!=1);
                      }
} 

/*********************LCM初始化**************************/
extern void LCMInit(void)        
{
 WriteCommandLCM(0x01,0); //清除屏幕
 WriteCommandLCM(0x38,0); //两次功能设置8位 单行 5*7不检测忙信号
 Delay_Xms();
 WriteCommandLCM(0x38,0);
 Delay_Xms();
 WriteCommandLCM(0x01,1); //显示清屏
 WriteCommandLCM(0x0C,1); // 控制光标,显示 开,闪烁
 WriteCommandLCM(0x06,1); // 控制光标和文字的移动
 }

/********************显示程序(对应地址写入数据)********/
extern void display_lcm(unsigned char date,unsigned char address)                            
{
 WriteCommandLCM(address,1);
 WriteDataLCM(date);                 
}
/****************显示字符串******************************/
extern void  diaplay_string( unsigned char a,unsigned char *adr)
 {
   unsigned char i=0;
   while(adr[i]!='\0')
        {
		  WriteCommandLCM(a,1);
          WriteDataLCM(adr[i]);
		  i++;
		  a++;
	    }
 }
/***********************END*******************************/

⌨️ 快捷键说明

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