原创 LPC2114的LCD1602驱动程序(调试通过)

2008-4-23 11:20 5685 9 14 分类: MCU/ 嵌入式

/*************************************
功能:采用ARM7--LPC2114的GPIO口控制LCD1602显示
接线:P0.0~P0.7接D0~D7
      P0.8~P0.9,P0.12接RS,RW,E
作者:alexcheng1120
日期:2008-4-22     
*************************************/
#include "config.h"


#define LCD_RS   0x00000100 //P0.8接RS
#define LCD_RW   0x00000200 //P0.9接RW
#define LCD_E    0x00001000 //P0.12接E
#define LCD_BUSY 0x00000080


void Delayms(uint32 count)
{
 uint32 i;
 for(i=0;i<count;i++);
}



void LCD_ChkBusy(void)
{


 IO0DIR=0x00001300;


 IO0CLR=LCD_RS;
 IO0SET=LCD_RW;
 IO0SET=LCD_E;
 while((IO0PIN&LCD_BUSY)!=0);
 Delayms(400);
 IO0CLR=LCD_E;


 IO0DIR=0x000013ff;


}



void LCD_WriteCommand(uint8 cmd,uint8 busyc)
{
  if(busyc) LCD_ChkBusy();
 
  IO0CLR=LCD_E;
  IO0CLR=LCD_RS;
  IO0CLR=LCD_RW;
  IO0CLR=0x000000ff;  //清零数据位D0-D7
  IO0SET=cmd;
  IO0SET=LCD_E;       //LCD使能
  Delayms(400);
  IO0CLR=LCD_E;
}


void LCD_WriteData(uint8 dat)
{
  LCD_ChkBusy();
 
  IO0CLR=LCD_E;
  IO0SET=LCD_RS;
  IO0CLR=LCD_RW;
  IO0CLR=0x000000ff;
  IO0SET=dat;
  IO0SET=LCD_E;
  Delayms(400);
  IO0CLR=LCD_E;
}


void LCD_Init()
{
 Delayms(1000);
 LCD_WriteCommand(0x38,0);//三次显示模式设置,不检测忙信号
 Delayms(400);
 LCD_WriteCommand(0x38,0);
 Delayms(400);
 LCD_WriteCommand(0x38,0);
 Delayms(2800);
 LCD_WriteCommand(0x38,1);//显示模式设置,开始要求检测忙信号:8位、2行、5X7点阵
 Delayms(2800);
 LCD_WriteCommand(0x08,1);//关闭显示
 Delayms(2800);
 LCD_WriteCommand(0x01,1);//清屏
 Delayms(2800);
 LCD_WriteCommand(0x06,1);//显示光标移动设置:文字不动,光标自动右移
 Delayms(2800);
 LCD_WriteCommand(0x0C,1);//显示开及光标设置:光标关、光标不闪烁
}


void LCD_SetPointion(uint8 x)
{
   LCD_WriteCommand(x|0x80,0);
}


void LCD_PrintChar(uint8 lcd_data)          //输出一个字符到LCD
{
   LCD_WriteData(lcd_data);
}


void LCD_PrintString(uint8 *lcd_string)       //输出一个字符串到LCD
{
 uint8 i="0";
 while(lcd_string!=0x00)
  {
   LCD_WriteData(lcd_string);
   i++;
  }
}



void main()
{
 uint8 Text1[]="Nice to See You!";
 uint8 Text2[]="  QQ: 52626392  ";
 
    PINSEL0=0x00000000;
    IO0DIR =0x000013ff;


 LCD_Init();
 while(1)
 {
    LCD_SetPointion(0);
    LCD_PrintString(Text1);
    LCD_SetPointion(0x40);
    LCD_PrintString(Text2);
 }
}

文章评论5条评论)

登录后参与讨论

用户311892 2011-3-9 17:00

LPC2114的LCD1602驱动程序(调试通过)能发给我一份原理图吗?谢谢 475501486@qq.com

用户311892 2011-3-9 16:59

:LPC2114的LCD1602驱动程序(调试通过)能发给我一份原理图吗?谢谢 475501486

用户177080 2008-10-18 20:32

re:LPC2114的LCD1602驱动程序(调试通过) 能发给我一份原理图吗?谢谢 dubo1028@163.com

用户177080 2008-10-18 20:31

能发给我一份原理图吗?谢谢 dubo1028@163.com

用户140537 2008-4-23 13:46

不错,学习4下
相关推荐阅读
用户944075 2010-10-31 20:35
【大学电子类专业】【经典书籍和课本】【推荐下载】【地址汇总】
一级学科 电子科学与技术(0809) 主要包括有以下几个二级学科:物理电子学                     080901电路与系统                     080902微电子...
用户944075 2010-10-31 20:31
【初学者必知必会】【电子技术:数电 模电 单片机】【基础概念和小知识点】详解
电阻相关:; Z- D" M( X2 V, X9 n1、上拉电阻和下拉电阻的总结~~权威版倾情奉献 http://www.dzcny.com/thread-1138-1-1.html2、上拉电阻、下拉...
用户944075 2010-03-23 22:30
【电子菜鸟园】【电子类软件】【图文安装原创教程】下载地址汇总
【原创】Altium.Designer 6.6(Protel DXP)图文安装教程:http://www.dzcny.com/thread-525-1-1.html【原创】NI的Multisim和Ul...
用户944075 2010-03-23 22:26
欢迎访问电子菜鸟论坛
最近跟朋友们一起弄了个电子技术论坛 名叫 电子菜鸟园 在里面会共享电子方面的一些资料 我们在工作中的一些技术交流希望大家多多支持 !论坛地址   http://www.dzcny.com/      ...
用户944075 2010-03-23 22:25
电子菜鸟园免费赠送USB转串口PCB活动开始了!
电子菜鸟园免费赠送USB转串口PCB活动开始了!<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office"...
用户944075 2010-03-23 22:24
【电子菜鸟园】【日本欧姆社电子学入门丛书】【下载地址】【汇总】
电子菜鸟园收藏整理的OHM日本欧姆社的电子学入门系列丛书,特别分享给大家!欢迎访问下载。《图解电子电路》http://www.dzcny.com/thread-595-1-1.html《图解运算放大器...
我要评论
5
9
关闭 站长推荐上一条 /2 下一条