国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品
電子工程網(wǎng)
標(biāo)題:
ST7920中文字庫(kù)液晶顯示模塊LCD12232并行8位顯示C30演示程序
[打印本頁(yè)]
作者:
hotpower
時(shí)間:
2009-4-2 23:00
標(biāo)題:
ST7920中文字庫(kù)液晶顯示模塊LCD12232并行8位顯示C30演示程序
/*------------------------------------------------------------
ST7920中文字庫(kù)液晶顯示模塊LCD12232并行8位顯示C30演示程序
C30菜鳥(niǎo)
HotPower@126.com
2007.12.8 于雁塔菜地
-------------------------------------------------------------*/
#include "lcd.h"
unsigned char LcdRowWriteEnable[2] = {0, 0};//顯示行刷新允許標(biāo)志
unsigned char LcdBuffer[2][15];//LCD顯示緩沖區(qū)(2行15個(gè)字符)
unsigned char LcdRow = 0, LcdCol = 0;//虛擬光標(biāo)
void LcdInit(void)//LCD初始化
{
LcdIOInit();//LCD管腳初始化
LcdClearBuffer();//清空LCD顯示緩沖區(qū)
// LcdWriteCommand(0x20);//發(fā)送功能設(shè)定控制命令(4位)
LcdWriteCommand(0x30);//發(fā)送功能設(shè)定控制命令(8位)
LcdWriteCommand(0x02);//發(fā)送位址歸位命令,設(shè)定DDRAM位址計(jì)數(shù)器為0
LcdWriteCommand(0x04);//發(fā)送進(jìn)入點(diǎn)命令
LcdWriteCommand(0x0c);//發(fā)送開(kāi)顯示關(guān)光標(biāo)命令
LcdWriteCommand(0x01);//發(fā)送清除顯示命令
LcdWriteCommand(0x80);//發(fā)送設(shè)定DDRAM地址0x00命令,光標(biāo)定位到(0,0)
/*----------------------------------------------------------------------
LcdWriteCommand(0x30);//發(fā)送功能設(shè)定控制命令(8位)
LcdWriteCommand(0x30);//發(fā)送功能設(shè)定控制命令(8位)
LcdWriteCommand(0x30);//發(fā)送功能設(shè)定控制命令(8位)
LcdWriteCommand(0x01);//發(fā)送清除顯示命令
LcdWriteCommand(0x06);//發(fā)送進(jìn)入點(diǎn)命令0x06
LcdWriteCommand(0x0a);//發(fā)送開(kāi)關(guān)顯示關(guān)光標(biāo)命令
LcdWriteCommand(0x0c);//發(fā)送開(kāi)顯示關(guān)光標(biāo)命令
LcdWriteCommand(0x02);//發(fā)送位址歸位命令,設(shè)定DDRAM位址計(jì)數(shù)器為0
LcdWriteCommand(0x17);//游標(biāo)或顯示移位控制
LcdWriteCommand(0x80);//發(fā)送設(shè)定DDRAM地址0x00命令,光標(biāo)定位到(0,0)
----------------------------------------------------------------------*/
LCD_BK = 0;//打開(kāi)背光
}
void LcdIOInit(void)//LCD管腳初始化
{
LCD_BK = 0;//打開(kāi)背光
LCD_E = 0;//不使能
LCD_RW = 1;//寫(xiě)讀數(shù)據(jù)
TRIS_E = PORTOUTMODE;//定義E為輸出IO
TRIS_RW = PORTOUTMODE;//定義RW為輸出IO
TRIS_RS = PORTOUTMODE;//定義RS為輸出IO
TRIS_BK = PORTOUTMODE;//定義BK為輸出IO
TRIS_DATA = 0;//定義RE0~RE7為輸出IO
}
void LcdWriteCommand(unsigned char Command)//寫(xiě)LCD命令字
{
LCD_RS = 0;//命令
Nop();
LCD_RW = 0;//寫(xiě)命令
Nop();
LCD_E = 1;//使能
Nop();
LCD_BUS = Command;//發(fā)送8位命令
Nop();
LCD_E = 0;//不使能,讀出數(shù)據(jù) 打入命令
Nop();
LCD_RW = 1;//寫(xiě)命令結(jié)束
if (Command == 0x01)//清除顯示命令,需要等待時(shí)間相對(duì)較長(zhǎng)
{
_delay_loop(1600);//st7920要求等待1.6mS
}
else
{
_delay_loop(72);//st7920要求等待72uS
}
}
void LcdWriteData(unsigned char data)//寫(xiě)LCD顯示數(shù)據(jù)
{
LCD_RS = 1;//數(shù)據(jù)
Nop();
LCD_RW = 0;//寫(xiě)數(shù)據(jù)
Nop();
LCD_E = 1;//使能
Nop();
LCD_BUS = data;//發(fā)送8位數(shù)據(jù)
Nop();
LCD_E = 0;//不使能,打入數(shù)據(jù)
Nop();
LCD_RW = 1;//寫(xiě)數(shù)據(jù)結(jié)束
_delay_loop(72);//st7920要求等待72uS
}
void LcdWaitBusy(void)//LCD忙標(biāo)志測(cè)試(有時(shí)死機(jī),故沒(méi)用)
{
TRIS_DATA = 0xff;//定義RE0~RE7為輸入IO
LCD_BUS = 0xff;
Nop();
LCD_RS = 0;//命令
Nop();
LCD_RW = 1;//讀數(shù)據(jù)
Nop();
LCD_E = 1;//使能
Nop();
while(LCD_BF)//讀取忙碌標(biāo)志BF(LCD_DATA.7)
{
Nop();//搞不清有時(shí)死機(jī)在此處,所以用_delay_loop()代替
}
LCD_E = 0;//不使能,讀出狀態(tài)
Nop();
TRIS_DATA = 0;//定義RE0~RE7為輸出IO
Nop();
}
void LcdClearBuffer(void)
{
unsigned char i, j;
for (i = 0;i < 2;i ++)//2行字符
{//2行漢字
for (j = 0;j < 15; j ++)//15個(gè)字符
{//每行7個(gè)半漢字15個(gè)字符
LcdBuffer
[j] = ' ';//空白字符
}
LcdRowWriteEnable
= 1;//允許此行刷新漢字顯示
}
LcdRow = 0;//虛擬光標(biāo)定位在0行
LcdCol = 0;//虛擬光標(biāo)定位在0列
}
void LcdDisplayPos(unsigned char row, unsigned char col)
{
if ((row < 2) && (col < 15))//容錯(cuò)處理,光標(biāo)越界
{
LcdRow = row;//刷新虛擬光標(biāo)
LcdCol = col;//刷新虛擬光標(biāo)
LcdRowWriteEnable[row] = 1;//允許此行刷新漢字顯示
}
}
void LcdDisplay(const char * string)//不真的LCD顯示
{
while(*string)//0字符結(jié)束
{
LcdBuffer[LcdRow][LcdCol ++] = *string ++;//寫(xiě)入顯示緩沖區(qū)
}
}
unsigned char LcdDisplayBuffer(void)//顯示刷新LCD緩沖區(qū)內(nèi)的數(shù)據(jù)(一般0.25S~0.5S刷新一次)
{
unsigned char i, j;
unsigned char num = 0;//刷新字符個(gè)數(shù)
for (i = 0; i < 2; i ++)
{//2行漢字
if (LcdRowWriteEnable
)
{//允許此行刷新漢字顯示
LcdWriteCommand(0x80 + (i << 4));//移動(dòng)真的LCD光標(biāo)
for (j = 0; j < 15; j ++)
{//每行7個(gè)半漢字15個(gè)字符
LcdWriteData(LcdBuffer
[j]);//刷新顯示字符
num ++;//刷新字符個(gè)數(shù)計(jì)數(shù)
}
LcdRowWriteEnable
= 0;//過(guò)后不允許此行刷新漢字顯示
}
}
return num;//返回實(shí)際刷新字符個(gè)數(shù)
}
void _delay_loop(unsigned long count)//軟件延時(shí)
{
while(count --)
{
//ClrWdt();//注意大延時(shí)要記住喂狗
}
}
St7920中文字庫(kù)LCD驅(qū)動(dòng)控制器資料
作者:
cr5119
時(shí)間:
2011-11-2 09:13
很好
歡迎光臨 電子工程網(wǎng) (http://www.qingdxww.cn/)
Powered by Discuz! X3.4
主站蜘蛛池模板:
国产精品1024永久免费视频
|
色交视频
|
国产欧美一区二区成人影院
|
欧美人与禽zzz000xxx
|
国产自产c区
|
国产一区二区在线免费观看
|
久久成年视频
|
老师的小兔子好大好软水好多视频
|
成人一级黄色毛片
|
希崎在线观看
|
亚洲欧洲精品成人久久曰
|
蜜桃视频m3u8在线观看
|
高清色黄毛片一级毛片
|
国产欧美成人免费观看视频
|
国产亚洲视频在线观看
|
综合欧美日韩一区二区三区
|
四虎成人www国产精品
|
色网站免费在线观看
|
美女网站视频色
|
国产91精品对白露脸全集观看
|
日本a在线观看
|
久久视热这只是精品222
|
91久久精品国产一区二区
|
中国20岁小伙男男gay
|
成人欧美视频免费看黄黄
|
免费毛片视频网站
|
欧美精品三级在线
|
欧美精品在线一区二区三区
|
欧美视频 亚洲视频
|
日韩亚洲欧美一区噜噜噜
|
第四色网页
|
日韩在线视频一区
|
久久综合婷婷
|
亚洲视频手机在线观看
|
91免费看视频
|
欧美乱妇高清正版在线观看
|
羞羞网站在线免费观看
|
日本不卡在线播放
|
国产特黄a级在线视频
|
日韩孕妇孕交在线视频
|
成 人在线观看视频网站
|