欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
基于P89V51控制LCD顯示屏源程序
[打印本頁]
作者:
wsmtty
時間:
2018-12-27 09:39
標(biāo)題:
基于P89V51控制LCD顯示屏源程序
基于P89V51控制LCD顯示屏
單片機(jī)源程序如下:
#include "System.h"
#include "STRING.h"
#include "LCD.h"
#include "I2C.h"
#include "Relay_Parameter.h"
#include "Display.h"
uchar xdata xy1[19][2]={
{21,30},{22,30},{21,56},{21,82},
{21,108},{22,108},{23,108},{24,108},{25,108},
{21,134},{22,134},{23,134},{24,134},{25,134},
{14,75},{15,75},{16,75},{17,75},{18,75}
};//光標(biāo)坐標(biāo)
uchar xdata x,y;
/****鍵盤控制LCD上的光標(biāo)左移****/
void Left_M(uchar JL_or_ceshi)//0為測試界面,1計量界面
{
uchar xdata i,a,b;
if(JL_or_ceshi==1)
{
a=14;b=19;
}
else
{
if((Relay1.delay_type[0]-0x30)==3) {a=0;b=14;}
else {a=0;b=9;}
}
for(i=a;i<b;i++)
{
if(x==xy1[i][0]&&y==xy1[i][1])
{
LcmClear_1();
if(i!=a)
{
if(xy1[i][0]==21&&xy1[i][1]==82)
{
dprintf(xy1[i-1][0],xy1[i-1][1],StrForMixed10,0);
dprintf(xy1[i-1][0]+1,xy1[i-1][1],StrForMixed10,0);
dprintf(xy1[i-1][0]+2,xy1[i-1][1],StrForMixed10,0);
dprintf(xy1[i-1][0]+3,xy1[i-1][1],StrForMixed10,0);
dprintf(xy1[i-1][0]+4,xy1[i-1][1],StrForMixed10,0);
dprintf(xy1[i-1][0]+5,xy1[i-1][1],StrForMixed10,0);
}
else
{
dprintf(xy1[i-1][0],xy1[i-1][1],StrForMixed10,0);
}
x=xy1[i-1][0];y=xy1[i-1][1];
}
else
{
dprintf(xy1[i][0],xy1[i][1],StrForMixed10,0);
x=xy1[i][0];y=xy1[i][1];
}
break;
}
}
}
/****鍵盤控制LCD上的光標(biāo)右移****/
void Right_M(uchar JL_or_ceshi)//0測試界面,1計量界面
{
uchar xdata i,a,b;
if(JL_or_ceshi==1)
{
a=14;b=19;
}
else
{
if((Relay1.delay_type[0]-0x30)==3) {a=0;b=14;}
else {a=0;b=9;}
}
for(i=a;i<b;i++)
{
if(x==xy1[i][0]&&y==xy1[i][1])
{
LcmClear_1();
if(i!=(b-1))
{
if(xy1[i][0]==22&&xy1[i][1]==30)
{
dprintf(xy1[i+1][0],xy1[i+1][1],StrForMixed10,0);
dprintf(xy1[i+1][0]+1,xy1[i+1][1],StrForMixed10,0);
dprintf(xy1[i+1][0]+2,xy1[i+1][1],StrForMixed10,0);
dprintf(xy1[i+1][0]+3,xy1[i+1][1],StrForMixed10,0);
dprintf(xy1[i+1][0]+4,xy1[i+1][1],StrForMixed10,0);
dprintf(xy1[i+1][0]+5,xy1[i+1][1],StrForMixed10,0);
}
else
{
dprintf(xy1[i+1][0],xy1[i+1][1],StrForMixed10,0);
}
x=xy1[i+1][0];y=xy1[i+1][1];
}
else
{
dprintf(xy1[i][0],xy1[i][1],StrForMixed10,0);
x=xy1[i][0];y=xy1[i][1];
}
break;
}
}
}
/****向上調(diào)LCD上的參數(shù)****/
void Uchange_P(uchar *Ptr,uint t)
{
uchar xdata i,c1;
if(Ptr==Relay1.chud_num)
{
for(i=0;i<13;i++) //13為觸點類型種數(shù)
{
if(strcmp(Relay1.chud_num,Relay_CD_numbers[i])==0)
{
if(i==12) {strncpy(Relay1.chud_num,Relay_CD_numbers[0],7);}
else {strncpy(Relay1.chud_num,Relay_CD_numbers[i+1],7);}
switch(strlen(Relay1.chud_num))
{
case 2:
dddprintf(21,56,Relay1.chud_num,2,1);
dprintf(23,56,StrForMixed58,1);
dprintf(25,56,StrForMixed58,1);
break;
case 4:
dddprintf(21,56,Relay1.chud_num,4,1);
dprintf(25,56,StrForMixed58,1);
break;
case 6:
dddprintf(21,56,Relay1.chud_num,7,1);
break;
}
break;
}
}
}
else if(Ptr==Relay1.delay_type)
{
for(i=0;i<7;i++)
{
if(strcmp(Relay1.delay_type,Relay_YS_Type[i])==0)
{
if(i==6) {strncpy(Relay1.delay_type,Relay_YS_Type[0],2);}
else {strncpy(Relay1.delay_type,Relay_YS_Type[i+1],2);}
dddprintf(21,82,Relay1.delay_type,2,1);
break;
}
}
}
else
{
c1=Ptr[t];
switch(c1)
{
case 0x39:
if(Ptr==Relay1.number) {c1=0x2F;}
else {c1=0x2D;}
break;
case 0x2E:
c1=0x2F;
break;
default:
break;
}
if(c1>=0x10)
{
WriteCommand(CspDirD);
Locatexy(x,y,1);
WriteCommand(mWrite);
for(i=0;i<16;i++)
WriteData(ASC_MSK[(c1-0x20+1)*16+i]);
Ptr[t]=c1+1;
}
}
}
/*****向下調(diào)LCD上的參數(shù)****/
void Dchange_P(uchar *Ptr,uint t)
{
uchar xdata i,c1;
if(Ptr==Relay1.chud_num)
{
for(i=0;i<13;i++)
{
if(strcmp(Relay1.chud_num,Relay_CD_numbers[i])==0)
{
if(i==0) {strncpy(Relay1.chud_num,Relay_CD_numbers[12],7);}
else {strncpy(Relay1.chud_num,Relay_CD_numbers[i-1],7);}
switch(strlen(Relay1.chud_num))
{
case 2:
dddprintf(21,56,Relay1.chud_num,2,1);
dprintf(23,56,StrForMixed58,1);
dprintf(25,56,StrForMixed58,1);
break;
case 4:
dddprintf(21,56,Relay1.chud_num,4,1);
dprintf(25,56,StrForMixed58,1);
break;
case 6:
dddprintf(21,56,Relay1.chud_num,7,1);
break;
}
break;
}
}
}
else if(Ptr==Relay1.delay_type)
{
for(i=0;i<7;i++)
{
if(strcmp(Relay1.delay_type,Relay_YS_Type[i])==0)
{
if(i==0) {strncpy(Relay1.delay_type,Relay_YS_Type[6],2);}
else {strncpy(Relay1.delay_type,Relay_YS_Type[i-1],2);}
dddprintf(21,82,Relay1.delay_type,2,1);
break;
}
}
}
else
{
c1=Ptr[t];
switch(c1)
{
case 0x30:
if(Ptr==Relay1.number) {c1=0x3A;}
else {c1=0x2F;}
break;
case 0x2E:
c1=0x3A;
break;
default:
break;
}
if(c1>=0x10)
{
uint xdata j;
WriteCommand(CspDirD);
Locatexy(x,y,1);
WriteCommand(mWrite);
for(j=0;j<16;j++)
WriteData(ASC_MSK[(c1-0x20-1)*16+j]);
Ptr[t]=c1-1;
}
}
}
/****移動光標(biāo),調(diào)大LCD上的參數(shù)****/
void SheZP1()
{
if(x==21&&y==30) Uchange_P(Relay1.number,0);
if(x==22&&y==30) Uchange_P(Relay1.number,1);
if(x==21&&y==56) Uchange_P(Relay1.chud_num,0);
if(x==21&&y==82) Uchange_P(Relay1.delay_type,0);
if(x==21&&y==108) Uchange_P(Relay1.time1,0);
if(x==22&&y==108) Uchange_P(Relay1.time1,1);
if(x==23&&y==108) Uchange_P(Relay1.time1,2);
if(x==24&&y==108) Uchange_P(Relay1.time1,3);
if(x==25&&y==108) Uchange_P(Relay1.time1,4);
if(x==21&&y==134) Uchange_P(Relay1.time2,0);
if(x==22&&y==134) Uchange_P(Relay1.time2,1);
if(x==23&&y==134) Uchange_P(Relay1.time2,2);
if(x==24&&y==134) Uchange_P(Relay1.time2,3);
if(x==25&&y==134) Uchange_P(Relay1.time2,4);
if(x==14&&y==75) Uchange_P(JL_Time,0);
if(x==15&&y==75) Uchange_P(JL_Time,1);
if(x==16&&y==75) Uchange_P(JL_Time,2);
if(x==17&&y==75) Uchange_P(JL_Time,3);
if(x==18&&y==75) Uchange_P(JL_Time,4);
}
/****移動光標(biāo),調(diào)小LCD上的參數(shù)****/
void SheZP2()
{
if(x==21&&y==30) Dchange_P(Relay1.number,0);
if(x==22&&y==30) Dchange_P(Relay1.number,1);
if(x==21&&y==56) Dchange_P(Relay1.chud_num,0);
if(x==21&&y==82) Dchange_P(Relay1.delay_type,0);
if(x==21&&y==108) Dchange_P(Relay1.time1,0);
if(x==22&&y==108) Dchange_P(Relay1.time1,1);
if(x==23&&y==108) Dchange_P(Relay1.time1,2);
if(x==24&&y==108) Dchange_P(Relay1.time1,3);
if(x==25&&y==108) Dchange_P(Relay1.time1,4);
if(x==21&&y==134) Dchange_P(Relay1.time2,0);
if(x==22&&y==134) Dchange_P(Relay1.time2,1);
if(x==23&&y==134) Dchange_P(Relay1.time2,2);
if(x==24&&y==134) Dchange_P(Relay1.time2,3);
if(x==25&&y==134) Dchange_P(Relay1.time2,4);
if(x==14&&y==75) Dchange_P(JL_Time,0);
if(x==15&&y==75) Dchange_P(JL_Time,1);
if(x==16&&y==75) Dchange_P(JL_Time,2);
if(x==17&&y==75) Dchange_P(JL_Time,3);
if(x==18&&y==75) Dchange_P(JL_Time,4);
}
/****判斷輸入的延時形式是否為3,從而決定是否出現(xiàn)“延時時間T2“****/
void Second_PD()
{
if((Relay1.delay_type[0]-0x30)==3)
{
switch(strlen(Relay1.chud_num))
{
case 2:
dddprintf(21,56,Relay1.chud_num,2,1);
dprintf(23,56,StrForMixed58,1);
dprintf(25,56,StrForMixed58,1);
break;
case 4:
dddprintf(21,56,Relay1.chud_num,4,1);
dprintf(25,56,StrForMixed58,1);
break;
case 6:
dddprintf(21,56,Relay1.chud_num,7,1);
break;
}
//dddprintf(21,56,Relay1.chud_num,7,1);
dddprintf(21,82,Relay1.delay_type,2,1);
dddprintf(21,108,Relay1.time1,5,1);
dprintf(15,108,StrForMixed181,1);
dprintf(7,134,StrForMixed18,1);
dprintf(15,134,StrForMixed182,1);
dddprintf(21,134,Relay1.time2,5,1);
dprintf(26,134,StrForMixed20,1);
}
else
{
switch(strlen(Relay1.chud_num))
{
case 2:
dddprintf(21,56,Relay1.chud_num,2,1);
dprintf(23,56,StrForMixed58,1);
dprintf(25,56,StrForMixed58,1);
break;
case 4:
dddprintf(21,56,Relay1.chud_num,4,1);
dprintf(25,56,StrForMixed58,1);
break;
case 6:
dddprintf(21,56,Relay1.chud_num,7,1);
break;
}
//dddprintf(21,56,Relay1.chud_num,7,1);
dddprintf(21,82,Relay1.delay_type,2,1);
dddprintf(21,108,Relay1.time1,5,1);
}
}
/****根據(jù)輸入的產(chǎn)品編號,得到其在EEPROM中存儲的位置,
并判斷該位置上是否存有繼電器參數(shù),如果有更新相應(yīng)的LCD顯示****/
void number_just()
{
uchar xdata t,t1;
uchar xdata ADL,ADH;
uchar xdata BianH[2];
t=10*(Relay1.number[0]-0x30)+(Relay1.number[1]-0x30);
ADL=(t*32)%256;
ADH=(t*32)/256;
RW_EEPROM(0,ADH,ADL,BianH,2);
if(BianH[0]!=0x00&&BianH[1]!=0x00)
{
t1=10*(BianH[0]-0x30)+(BianH[1]-0x30);
if(t1==t)
{
RW_EEPROM(0,ADH,ADL,Relay1.number,RelayBits);
Second_PD();
RW_EEPROM(1,0x1F,0xE0,Relay1.number,RelayBits);
}
}
}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
Display.zip
(2.7 KB, 下載次數(shù): 9)
2018-12-27 09:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2018-12-28 01:51
補全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1