?? lcd1602.c
字號:
/*---------------------------------------------------------------------
LCD1602.C文件 LCD1602的函數(shù)
作者:Computer-lov 創(chuàng)建日期:2004.11.12 最后修改日期:2004.11.12
版本:1.0
----------------------------------------------------------------------*/
#include "at89x52.h"
#include "MyType.h"
#include "lcd1602.h"
#define LCD_EN P1_2
#define LCD_RS P1_0
#define LCD_RW P1_1
#define LCD_BUSY P0_7
#define LCD_DATA P0
#ifdef LCD
void LcdCheckBusy(void) //檢測LCD狀態(tài),看它是不是還在忙呢
{
while(1)
{
LCD_EN=0;
LCD_RS=0;
LCD_RW=1;
LCD_DATA=0xFF;
LCD_EN=1;
if(!LCD_BUSY)break;
}
LCD_EN=0;
}
void LcdCls(void) //LCD清屏
{
EA=0;
LcdCheckBusy();
LCD_RS=0;
LCD_RW=0;
LCD_EN=1;
LCD_DATA=1;
LCD_EN=0;
EA=1;
}
void LcdWriteInstruction(uint8 LcdInstruction) //寫指令到LCD
{
EA=0;
LcdCheckBusy();
LCD_RS=0;
LCD_RW=0;
LCD_EN=1;
LCD_DATA=LcdInstruction;
LCD_EN=0;
EA=1;
}
void LcdWriteData(uint8 LcdData) //輸出一個字節(jié)數(shù)據(jù)到LCD
{
EA=0;
LcdCheckBusy();
LCD_RS=1;
LCD_RW=0;
LCD_EN=1;
LCD_DATA=LcdData;
LCD_EN=0;
EA=1;
}
void LcdSetPosition(uint8 x) //LCD光標定位到x處
{
LcdWriteInstruction(0x80+x);
}
/*void LcdGoHome(void) //LCD光標歸位
{
LcdWriteInstruction(LCD_GO_HOME);
}*/
/*
void LcdPrintc(uint8 LcdData) //輸出一個字符到LCD
{
LcdWriteData(LcdData);
}*/
void LcdPrints(uint8 *LcdString) //輸出一個字符串到LCD
{
uint8 i=0;
while(LcdString[i]!=0x00)
{
LcdWriteData(LcdString[i]);
i++;
}
}
void LcdInit(void) //初始化LCD
{
LcdWriteInstruction(LCD_AC_AUTO_INCREMENT|LCD_MOVE_DISENABLE);
LcdWriteInstruction(LCD_DISPLAY_ON|LCD_CURSOR_OFF);
LcdWriteInstruction(LCD_DISPLAY_DOUBLE_LINE);
LcdSetPosition(0);
LcdCls();
}
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -