?? 1602lcd_yd.c
字號:
/*******************************************************************
/*
/*ME300B單片機(jī)開發(fā)系統(tǒng)演示程序 - LCD1602 移動顯示C
/*
/* 顯示內(nèi)容: CHINESE
/* NEW YEAR
/*
/* 顯示方式:
/* 1、LCD第一行顯示: CHINESE
/* LCD第二行顯示: NEW YEAR
/* 2、先將兩行字符寫入DDRAM中,然后從右至左逐字移出顯示。
/* 3、在指定位置停留1.6秒后,閃爍2次,清屏。
/* 4、反復(fù)循環(huán)上述顯示方式。
/*
/* 郵箱: gguoqing@willar.com
/* 網(wǎng)站: http://www.willar.com
/* 作者: gguoqing
/* 時(shí)間: 2006/01/23
/*
/*【版權(quán)】COPYRIGHT(C)偉納電子 www.willar.com ALL RIGHTS RESERVED
/*【聲明】此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息!
/*
/*******************************************************************/
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;
uchar code dis1[] = {" CHINESE "};
uchar code dis2[] = {" NEW YEAR "};
/*******************************************************************/
/*
/* 延時(shí)子程序
/*
/*******************************************************************/
void delay(int ms)
{
int i;
while(ms--)
{
for(i = 0; i< 250; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
/*******************************************************************/
/*
/*檢查LCD忙狀態(tài)
/*lcd_busy為1時(shí),忙,等待。lcd-busy為0時(shí),閑,可寫指令與數(shù)據(jù)。
/*
/*******************************************************************/
bit lcd_busy()
{
bit result;
LCD_RS = 0;
LCD_RW = 1;
LCD_EN = 1;
_nop_();
_nop_();
_nop_();
_nop_();
result = (bit)(P0&0x80);
LCD_EN = 0;
return result;
}
/*******************************************************************/
/*
/*寫指令數(shù)據(jù)到LCD
/*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。
/*
/*******************************************************************/
void lcd_wcmd(uchar cmd)
{
while(lcd_busy());
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 0;
_nop_();
_nop_();
P0 = cmd;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EN = 1;
_nop_();
_nop_();
_nop_();
_nop_();
LCD_EN = 0;
}
/*******************************************************************/
/*
/*寫顯示數(shù)據(jù)到LCD
/*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。
/*
/*******************************************************************/
void lcd_wdat(uchar dat)
{
while(lcd_busy());
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 0;
P0 = dat;
_nop_();
_nop_();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -