<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PIC16F877A單片機設計的萬(wàn)年歷程序

基于PIC16F877A單片機設計的萬(wàn)年歷程序

作者: 時(shí)間:2012-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏

/*----------------------------------------------------*/
//寫(xiě)顯示數據
//dat:顯示數據
void WriteData(unsigned char dat)
{
CheckState();
DI=1; //寫(xiě)數據
RW=0;
PORTB=dat;
E=1;
E=0;
}
/*---------------------------------------------------*/
//寫(xiě)指令
//command:操作LCD的指令
void WriteCommand(unsigned char dat)
{
CheckState();
RW=0; //寫(xiě)指令
PORTB=dat;
E=1;
E=0;
}
/*---------------------------------------------------*/
//設定頁(yè)地址----X:0--7
void SetLine(unsigned char line)
{
line=line0x07; //0
//設定列地址----Y:0--63
void SetColumn(unsigned char column)
{
column=column0x3f; //0
//設定開(kāi)始行
void SetStartLine(unsigned char startline)
{
startline=startline0x3f; //0
//開(kāi)關(guān)顯示
//1:開(kāi)顯示 0:關(guān)顯示
void SetOnOff(unsigned char state)
{
state=state|0x3e;
WriteCommand(state);
}
/*--------------------------------------------------*/
//選擇屏幕
//screen: 1:左屏 2:右屏
void SlectScreen(unsigned char screen)
{
switch(screen)
{
case 1: CSA=0;
CSB=1;//左屏
break;
case 2: CSA=1;
CSB=0;//右屏
break;
}
}
/*--------------------------------------------------*/
//清屏
//screen: 1:左屏 2:右屏
void ClearScreen(unsigned char screen)
{
unsigned char i,j;
SlectScreen(screen);
for(i=0;i
//顯示一個(gè)16X16的漢字
void Show16X16(unsigned char line,unsigned char column,const unsigned char *pt)
{
unsigned char i,column_temp;
column_temp=column;
SlectScreen(1); //選通左屏
SetColumn(column); //設置起始列
SetLine(line); //設置行
for(i=0;i=64) //如果列>=64,則選通右屏
{
SlectScreen(2);
column=column%64; //設置右屏起始列
SetColumn(column);
SetLine(line);
}
WriteData(*pt); //寫(xiě)數據
*pt++;//
column++;
}
SlectScreen(1);
SetLine(line+1); //設置漢字下半部分顯示頁(yè)
column=column_temp;
SetColumn(column);
for(i=0;i=64)
{
SlectScreen(2);
column=column%64;
SetColumn(column);
SetLine(line+1);
}
WriteData(*pt);
*pt++;
column++;
}
}
/*-------------------------------------------------------*/
//顯示一個(gè)16X16的漢字帶上劃線(xiàn)
void Show16X16_2(unsigned char line,unsigned char column,const unsigned char *pt)
{
unsigned char i,column_temp;
column_temp=column;
SlectScreen(1); //選通左屏
SetColumn(column); //設置起始列
SetLine(line); //設置行
for(i=0;i=64) //如果列>=64,則選通右屏
{
SlectScreen(2);
column=column%64; //設置右屏起始列
SetColumn(column);
SetLine(line);
}
WriteData(*pt|0x01); //寫(xiě)數據
*pt++;
column++;
}
SlectScreen(1);
SetLine(line+1); //設置漢字下半部分顯示頁(yè)
column=column_temp;
SetColumn(column);
for(i=0;i=64)
{
SlectScreen(2);
column=column%64;
SetColumn(column);
SetLine(line+1);
}
WriteData(*pt);
*pt++;
column++;
}
}
/*-------------------------------------------------------*/
//顯示一個(gè)16X16的漢字帶下劃線(xiàn)
void Show16X16_3(unsigned char line,unsigned char column,const unsigned char *pt)
{
unsigned char i,column_temp;
column_temp=column;
SlectScreen(1); //選通左屏
SetColumn(column); //設置起始列
SetLine(line); //設置行
for(i=0;i=64) //如果列>=64,則選通右屏
{
SlectScreen(2);
column=column%64; //設置右屏起始列
SetColumn(column);
SetLine(line);
}
WriteData(*pt); //寫(xiě)數據
*pt++;
column++;
}
SlectScreen(1);
SetLine(line+1); //設置漢字下半部分顯示頁(yè)
column=column_temp;
SetColumn(column);
for(i=0;i=64)
{
SlectScreen(2);
column=column%64;
SetColumn(column);
SetLine(line+1);
}
WriteData(*pt|0x80);
*pt++;
column++;
}
}
/*-------------------------------------------------------*/
//顯示一個(gè)8X16的字符
void Show8X16(unsigned char line,unsigned char column,const unsigned char *pt)
{
unsigned char i,column_temp;
column_temp=column;
SlectScreen(1); //選通左屏
SetColumn(column); //設置起始列
SetLine(line); //設置行
for(i=0;i=64) //如果列>=64,則選通右屏
{
SlectScreen(2);
column=column%64; //設置右屏起始列
SetColumn(column);
SetLine(line);
}
WriteData(*pt); //寫(xiě)數據
*pt++;
column++;
}
SlectScreen(1);
SetLine(line+1); //設置漢字下半部分顯示頁(yè)
column=column_temp;
SetColumn(column);
for(i=0;i=64)
{
SlectScreen(2);
column=column%64;
SetColumn(column);
SetLine(line+1);
}
WriteData(*pt);
*pt++;
column++;
}
}
/*-------------------------------------------------------*/
//顯示一個(gè)8X16的字符帶上劃線(xiàn)
void Show8X16_2(unsigned char line,unsigned char column,const unsigned char *pt)
{
unsigned char i,column_temp;
column_temp=column;
SlectScreen(1); //選通左屏
SetColumn(column); //設置起始列
SetLine(line); //設置行
for(i=0;i=64) //如果列>=64,則選通右屏
{
SlectScreen(2);
column=column%64; //設置右屏起始列
SetColumn(column);
SetLine(line);
}
WriteData(*pt|0x01); //寫(xiě)數據
*pt++;
column++;
}
SlectScreen(1);
SetLine(line+1); //設置漢字下半部分顯示頁(yè)
colu mn=column_temp;
SetColumn(column);
for(i=0;i=64)
{
SlectScreen(2);
column=column%64;
SetColumn(column);
SetLine(line+1);
}
WriteData(*pt);
*pt++;
column++;
}
}


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>