原创 LCD1602驱动函数

2008-1-12 22:50 3597 7 8 分类: MCU/ 嵌入式

/***************************************
LCD OCMC2X16A驱动模块
****************************************/
#include<reg52.h>
#define uchar unsigned char


#define LCD
#define LCD_DB P1  //LCD数据线pin7~14
sbit LCD_WR=P3^1; //读写控制线pin5
sbit LCD_RS=P3^2; //数据指令控制线pin4
sbit LCD_E=P3^0; //使能端pin6
//查忙函数
void busy(void)

 LCD_RS=0;
 LCD_WR=1;
 LCD_E=1;
 LCD_E=1;
 LCD_E=1;
#ifdef LCD
 while(LCD_DB&0x80);
#endif
 LCD_E=0;
}
//读AC函数
/*uchar rd_ac(void)

 uchar ac;
 LCD_RS=0;
 LCD_WR=1;
 LCD_E=1;
 LCD_E=1;
 LCD_E=1;
 ac=LCD_DB&0x7f;
 LCD_E=0;
 return ac;
}*/
//写指令函数
void w_com(char com)
{  
 busy();
 LCD_RS=0;
 LCD_WR=0;
 LCD_DB=com;
 LCD_E=1;
 LCD_E=0;
 LCD_DB=0XFF;
}
//写数据函数
void w_dat(uchar dat)
{  busy();
 LCD_RS=1;
 LCD_WR=0;
 LCD_DB=dat;
 LCD_E=1;
 LCD_E=0;
 LCD_DB=0XFF;
}
//定位函数
void LCD_gotoxy(char x,char y)
{ uchar code line[]={0x80,0xc0}; //行首地址
 w_com(line[x]+y);
}
//显示一个字符串
void LCD_puts(char *s)
{
 while(*s!='\0')
  {
  w_dat(*s++);
  }
}
//自定义字符
void def_char(void)
{ uchar code ch[]=
 {
 0x00,0x0E,0x11,0x11,0x11,0x0A,0x1B,0x00,  //1.欧姆符号
 0x00,0x04,0x04,0x1F,0x04,0x04,0x1F,0x00   //2.正负号
 };
 uchar i;
 w_com(0x48);  //设置CGRAM地址
 for(i=0;i<sizeof(ch);i++)
  {
  w_dat(ch);
  }
 w_com(0x80);
}
//初始化函数
void LCD_init(void)
{
  unsigned i;
 for(i=0;i<2000;i++);
 w_com(0x38); //8位数据总线,2行显示模式,5*7点阵
 def_char();  //自定义字符
 w_com(0x06); //AC自动加1,显示不移位
 w_com(0x0c); //开显示,不显示光标
 w_com(0x01);
 LCD_gotoxy(0,2);
 LCD_puts("OCM2X16A LCD."); 
 for(i=0;i<50000;i++);
 w_com(0x01); //清屏
}

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1478803 2008-3-29 11:52

驱动程序,是不是连到那款单片机都能用呢
相关推荐阅读
用户114442 2009-03-10 20:04
uCGUI中文手册
https://static.assets-stash.eet-china.com/album/old-resources/2009/3/10/e850cbd5-bc51-440c-9a08-6890...
用户114442 2009-03-05 00:40
IAR-AVR –C 编译器简要指南
网上下载的有关ewavr编译器的资料  , 共享下 我觉得想用IAR来写avr的初学者可以下载看看.....
用户114442 2009-03-05 00:34
EWAVR 5.11b full keygen
nbsp;如何将RGB色彩信息和YUV色彩信息之间转换1.RGB介绍:在记录计算机图像时,最常见的是采用RGB(红、绿,蓝)颜色分量来保存颜色信息,例如非压缩的24位的BMP图像就采用RGB空间来保存...
用户114442 2009-03-04 15:19
农历两百年算法(1901~2100)[转载]
//此文章来自http://blog.chinaunix.net/u/25381/showart_199998.html下面的三个表格是农历数据表 LunarCalendarTable 的结构。总共使...
用户114442 2008-11-18 00:35
AVR 初始代码生成器
https://static.assets-stash.eet-china.com/album/old-resources/2008/11/18/fa5a62ba-43ac-4109-8794-070...
用户114442 2008-11-17 22:14
51 AVR 串口通讯计算器
https://static.assets-stash.eet-china.com/album/old-resources/2008/11/17/437013c8-2c53-4203-b7eb-f72...
我要评论
1
7
关闭 站长推荐上一条 /3 下一条