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

📄 新建 文本文档 (10).txt

📁 C语言编制的1602lcd的驱动程序
💻 TXT
字号:
1602液晶C语言经典例程
作者:未知    文章来源:网络    点击数:128    更新时间:2007-12-7     	
          ★★★ 	【字体:小 大】


#include <reg51.h>
#include <intrins.h>

typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef bit BOOL ;

sbit rs = P3^5;  //
sbit rw = P3^6;
sbit ep = P3^7;

BYTE code dis1[] = {"hificat.com"};
BYTE code dis2[] = {"0571-85956028"};

delay(BYTE ms)
{       // 延时子程序
 BYTE i;
 while(ms--)
 {
  for(i = 0; i< 250; i++)
  {
   _nop_();
   _nop_();
   _nop_();
   _nop_();
  }
 }
}

BOOL lcd_bz()
{       // 测试LCD忙碌状态
 BOOL result;
 rs = 0;
 rw = 1;
 ep = 1;
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 result = (BOOL)(P1 & 0x80);
 ep = 0;
 return result; 
}

lcd_wcmd(BYTE cmd)
{       // 写入指令数据到LCD
 while(lcd_bz());
 rs = 0;
 rw = 0;
 ep = 0;
 _nop_();
 _nop_(); 
 P1 = cmd;
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 ep = 1;
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 ep = 0;  
}

lcd_pos(BYTE pos)
{       //设定显示位置
 lcd_wcmd(pos | 0x80);
}

lcd_wdat(BYTE dat) 
{       //写入字符显示数据到LCD
 while(lcd_bz());
 rs = 1;
 rw = 0;
 ep = 0;
 P1 = dat;
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 ep = 1;
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 ep = 0; 
}

lcd_init()
{       //LCD初始化设定
 lcd_wcmd(0x38);   //
 delay(1);
 lcd_wcmd(0x0c);   //
 delay(1);
 lcd_wcmd(0x06);   //
 delay(1);
 lcd_wcmd(0x01);   //清除LCD的显示内容
 delay(1);
}

main()
{
 BYTE i;
 lcd_init();    // 初始化LCD   
 delay(10);
 lcd_pos(4);    // 设置显示位置为第一行的第5个字符
 i = 0;
 while(dis1[i] != '\0')
 {      // 显示字符hificat.com
  lcd_wdat(dis1[i]);
  i++;
 }
 lcd_pos(0x41);   // 设置显示位置为第二行第二个字符
 i = 0;
 while(dis2[i] != '\0')
 {
  lcd_wdat(dis2[i]); // 显示字符" 0571-85956028
  i++;
 }
 while(1);    //
}

 

⌨️ 快捷键说明

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