資源簡介
LPC2318驅(qū)動(dòng)無字庫中文液晶12864的驅(qū)動(dòng)程序,此程序?yàn)槲乙粋€(gè)項(xiàng)目的顯示部分 已經(jīng)調(diào)試通過,和大家分享一下!
代碼片段和文件信息
#define?IN_DISPLAY
//#include?“config.h“
#include?
#include?“display.h“
#define?LCDSTARTROW?0xC0 ??//設(shè)置起始行指令。
#define?LCDPAGE?0xB8 ??//設(shè)置頁指令。
#define?LCDLINE?0x40 ??//設(shè)置列指令。
//*************************************************************************************************
//* ??*
//* ?********************************讀忙標(biāo)志位********************************* ??*
//* ??*
//*************************************************************************************************
#define?LCD_CS1???18
#define?LCD_CS2???19
#define?LCD_RS?16
//#define?LCD_RW?11
#define?LCD_E?17
#define?LCD_DB0?(1<<8)
#define?LCD_DB1?(1<<9)
#define?LCD_DB2?(1<<10)
#define?LCD_DB3?(1<<19)
#define?LCD_DB4?(1<<28)
#define?LCD_DB5?(1<<29)
#define?LCD_DB6?(1<<30)
#define?LCD_DB7?(1<<2)
//#define?LCD_RST?5
void?SET_LCD(unsigned?char?IO_temp)
{
if((IO_temp&0x80)==0x80)
IOSET0=LCD_DB7;?
else
IOCLR0=LCD_DB7;
if((IO_temp&0x40)==0x40)
IOSET0=LCD_DB6;?
else
IOCLR0=LCD_DB6;
if((IO_temp&0x20)==0x20)
IOSET0=LCD_DB5;?
else
IOCLR0=LCD_DB5;
if((IO_temp&0x10)==0x10)
IOSET0=LCD_DB4;?
else
IOCLR0=LCD_DB4;
if((IO_temp&0x08)==0x08)
IOSET0=LCD_DB3;?
else
IOCLR0=LCD_DB3;
if((IO_temp&0x04)==0x04)
IOSET0=LCD_DB2;?
else
IOCLR0=LCD_DB2;
if((IO_temp&0x02)==0x02)
IOSET0=LCD_DB1;?
else
IOCLR0=LCD_DB1;
if((IO_temp&0x01)==0x01)
IOSET0=LCD_DB0;?
else
IOCLR0=LCD_DB0;
?
}
void?delay?(unsigned?int?us)???//delay?time
{
?//?while(us--);
?unsigned?int?i=0j=0;
????for?(i=us;i>0;i--)
?????for?(j=0;j<10;j++);
?
}
void?OUT_DATA(unsigned?char?Ddata)
{
????IO0CLR|=1<<8|1<<9|1<<10|1<<19|1<<28|1<<29|1<<30|1<<2;
????SET_LCD(Ddata);
}
//*************************************************************************************************
//* ??*
//* ?********************************寫數(shù)據(jù)********************************* ??*
//* ??*
//*************************************************************************************************
void?vWriteData(unsigned?char?ucData)
{
??IO1SET?|=1< ??delay(1);
//??IO1CLR?|=1< ??delay(1);
??OUT_DATA(ucData);
??delay(1);
??IO1SET?|=1< ??delay(3);
??IO1CLR?|=1< ??delay(3);
?
}
//*************************************************************************************************
//* ??*
//* ?********************************寫指令********************************* ??*
//* ??*
//*************************************************************************************************
void?vWriteCMD(unsigned?char?ucCMD)
{
??IO1CLR?|=1< ??delay(1);
//??IO1CLR?|=1< ??delay(1);
???OUT_DATA(ucCMD);
??delay(1);
??IO1SET?|=1< ??delay(3);
??IO1CLR?|=1< ??delay(3);
}
//****
評(píng)論
共有 條評(píng)論