/***********************LCD1602接線引腳定義**************************/
#define LCDIO P2 //定義P2口與LCD1602的數(shù)據(jù)口相接
sbit LCD_RS=P1^4;
sbit LCD_RW=P1^3;
sbit LCD_EN=P1^2;
sbit LCD_BUSY=LCDIO^7;
/**********************另外相關(guān)的定*********************************/
#define HIGH 1
#define LOW 0
#define TURE 1
#define FALSE 0
#define uchar unsigned char
#define uint unsigned int
/*************************以下是函數(shù)的申明部*************************/
void LCD_init(void); //LCD1602初始化
void LCD_send_command(uchar command); //
void LCD_send_data(uchar dat);
void LCD_write_char(uchar x,uchar y,uchar dat);
void LCD_disp_string(uchar x,uchar y,char *Data);
void delay_ms(uint n);
void LCD_check_busy(void);
#endif
/******************************************************************
sbit LCD_RS=P1^4;
sbit LCD_RW=P1^3;
sbit LCD_EN=P1^2;
sbit LCD_BUSY=LCDIO^7;
/**********************另外相關(guān)的定*********************************/
#define HIGH 1
#define LOW 0
#define TURE 1
#define FALSE 0
#define uchar unsigned char
#define uint unsigned int
/*************************以下是函數(shù)的申明部*************************/
void LCD_init(void); //LCD1602初始化
void LCD_send_command(uchar command); //
void LCD_send_data(uchar dat);
void LCD_write_char(uchar x,uchar y,uchar dat);
void LCD_disp_string(uchar x,uchar y,char *Data);
void delay_ms(uint n);
void LCD_check_busy(void);
#endif
/******************************************************************
/#include <reg51.h>
#include "LCD1602.h"
/*******************主函數(shù)**********************************/
uchar string[]=" I LOVE YOU! "; //這里是要顯示的字符
void main(void)
{
uchar *cp;
cp=string;
LCD_init();
while(1)
{
LCD_send_command(LCD_CLEAR_SCREEN);
delay_ms(2);
LCD_disp_string(0,1,cp);
delay_ms(100);
cp++;
if(*cp==''\0'')
{
cp=string; //到達(dá)字符的尾部時(shí),改變指針,重新指向字符串的頭部
}
}
}
/*********************************************************/
/**************LCD1602的初始化***************************/
void LCD_init(void)
{
LCD_send_command(LCD_DISPLAY_DOUBLE_LINE);
LCD_send_command(LCD_AC_AUTO_INCREMENT LCD_MOVE_DISENABLE);
LCD_send_command(LCD_DISPLAY_ON LCD_CURSOR_OFF);
LCD_send_command(LCD_CLEAR_SCREEN);
}
/********************************************************/
void LCD_check_busy(void) //檢測(cè)LCD狀態(tài),看它是不是還在忙呢
{
do
{
LCD_EN=0;
LCD_RS=0;
LCD_RW=1;
LCDIO=0xff;
LCD_EN=1;
}
while(LCD_BUSY==1);
LCD_EN=0;
}
#include "LCD1602.h"
/*******************主函數(shù)**********************************/
uchar string[]=" I LOVE YOU! "; //這里是要顯示的字符
void main(void)
{
uchar *cp;
cp=string;
LCD_init();
while(1)
{
LCD_send_command(LCD_CLEAR_SCREEN);
delay_ms(2);
LCD_disp_string(0,1,cp);
delay_ms(100);
cp++;
if(*cp==''\0'')
{
cp=string; //到達(dá)字符的尾部時(shí),改變指針,重新指向字符串的頭部
}
}
}
/*********************************************************/
/**************LCD1602的初始化***************************/
void LCD_init(void)
{
LCD_send_command(LCD_DISPLAY_DOUBLE_LINE);
LCD_send_command(LCD_AC_AUTO_INCREMENT LCD_MOVE_DISENABLE);
LCD_send_command(LCD_DISPLAY_ON LCD_CURSOR_OFF);
LCD_send_command(LCD_CLEAR_SCREEN);
}
/********************************************************/
void LCD_check_busy(void) //檢測(cè)LCD狀態(tài),看它是不是還在忙呢
{
do
{
LCD_EN=0;
LCD_RS=0;
LCD_RW=1;
LCDIO=0xff;
LCD_EN=1;
}
while(LCD_BUSY==1);
LCD_EN=0;
}





