?? lcddriver.c
字號:
#include "c8051f330.h"
#define LCD_DATA P1 //P1
sbit RS=P0^0; //P3.4
sbit RW=P0^2; //P3.5
sbit EN=P0^3; //P3.7
void Delay(unsigned int time)
{
while(time>0)
time--;
}
//不斷檢測LCD忙標志BF,直到其為0,表示可以執行下一條指令
void WaitUntilReady(void)
{
RS=0; //所讀為狀態位
RW=1; //設為讀狀態
Delay(165);
EN=1;
Delay(165);
LCD_DATA=0xff;
while(LCD_DATA&0x80); //不斷循環,直至BF=0
Delay(165);
EN=0;
}
void WriteCommand(unsigned char Command , unsigned char flag_busy)
{
if(flag_busy)
WaitUntilReady();
RS=0; //寫入的是命令字
RW=0; //置為寫狀態
EN=1;
LCD_DATA = Command;
Delay(165);
EN=0;
}
void WriteData(unsigned char Data)
{
WaitUntilReady(); //等待指令執行完畢
RS=1; //寫入的是數據
RW=0; //置為寫狀態
EN=1;
LCD_DATA = Data;
Delay(165);
EN=0;
}
void Initialize_LCD(void)
{
Delay(165);
WriteCommand(0x38,0); //設為8位接口模式,顯示2行字符,busy=0不檢測忙信號
Delay(165);
WriteCommand(0x38,0);
Delay(165);
WriteCommand(0x38,0);
WriteCommand(0x38,1);
WriteCommand(0x08,1); //顯示關閉
WriteCommand(0x01,1); //顯示清屏
WriteCommand(0x06,1); //寫入新數據后光標右移
WriteCommand(0x0c,1); //顯示功能開,不顯示光標
WriteCommand(0x81,1); //寫地址
WriteData('H');
WriteData('e');
WriteData('l');
WriteData('l');
WriteData('o');
WriteData('!');
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -