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

📄 1602lcm.c

📁 用741lc164驱动的1602液晶显示程序
💻 C
字号:
/*============================================================
1602LCD 串口驱动程序  2004/12/23
声明:
     1、部分函数取自磁动力工作室 明皓
	 2、欢迎大家测试和改进
	 3、转贴请注明出处

接线图:

S51    LS164 	    1602LCD

P2.3 --第1脚
P2.4 --- 8 
P2.5 ----------------- E 
P2.6 ----------------- RS 
                       RW 接地
         3 ----------- D0
		 4 ----------- D1
		 5 ----------- D2
		 6 ----------- D3
		 10 ---------- D4
		 11 ---------- D5
		 12 ---------- D6
		 13 ---------- D7
		 2  接Vcc
		 7  GND
		 14 Vcc

[注:AT89S51使用12M晶振]
=============================================================*/
#include <regx51.h>

#define rs P2_6 //定义引脚
#define e P2_5
#define clk P2_4
#define d P2_3


//5ms延时
void Delay5Ms(void)
{
 unsigned int TempCyc = 5552;
 while(TempCyc--);
}

//400ms延时
void Delay400Ms(void)
{
 unsigned char TempCycA = 5;
 unsigned int TempCycB;
 while(TempCycA--)
 {
  TempCycB=7269;
  while(TempCycB--);
 };
}

void writelcd(bit command,unsigned char ddata)
{
 unsigned char i;
 if(command==0) rs = 0; else rs=1;  //0 指令,1 数据 
 for(i=0;i<8;i++)
   {
   d=ddata&0x80; //取出最高位
   clk=1;
   clk=0;
   ddata<<=1; //左移
   } 
 e=1; 
 e=0;
}

void LCMInit(void) //LCM初始化
{ 
 writelcd(0,0x38); //三次显示模式设置
 Delay5Ms(); 
 writelcd(0,0x38);
 Delay5Ms(); 
 writelcd(0,0x38);
 Delay5Ms(); 
 writelcd(0,0x38); //显示模式设置,开始要求每次检测忙信号
 Delay5Ms();
 writelcd(0,0x0c); // 显示开及光标设置
 Delay5Ms();
 writelcd(0,0x01); //显示清屏
 Delay5Ms();
 writelcd(0,0x06); // 显示光标移动设置
 Delay5Ms(); 
}

//按指定位置显示一个字符
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
 Y &= 0x1; X &= 0xF; //限制X不能大于15,Y不能大于1
 if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;
 X |= 0x80; //算出指令码
 writelcd(0,X);
 writelcd(1,DData);

}

void main(void)
{
 unsigned char j,k;
 Delay400Ms(); //启动等待,等LCM讲入工作状态
 LCMInit();   //LCM初始化
 while(1)
 {
  for(k=0;k<40;k++)
   {
    for(j=0;j<16;j++) DisplayOneChar(j,0,0x30+j+k);    
    Delay400Ms();Delay400Ms();Delay400Ms();
   }
 }
}

⌨️ 快捷键说明

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