久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于P89V51控制LCD顯示屏源程序
[打印本頁]
作者:
wsmtty
時間:
2018-12-27 09:39
標題:
基于P89V51控制LCD顯示屏源程序
基于P89V51控制LCD顯示屏
單片機源程序如下:
#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}
};//光標坐標
uchar xdata x,y;
/****鍵盤控制LCD上的光標左移****/
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上的光標右移****/
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;
}
}
}
/****向上調LCD上的參數****/
void Uchange_P(uchar *Ptr,uint t)
{
uchar xdata i,c1;
if(Ptr==Relay1.chud_num)
{
for(i=0;i<13;i++) //13為觸點類型種數
{
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;
}
}
}
/*****向下調LCD上的參數****/
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;
}
}
}
/****移動光標,調大LCD上的參數****/
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);
}
/****移動光標,調小LCD上的參數****/
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,從而決定是否出現“延時時間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);
}
}
/****根據輸入的產品編號,得到其在EEPROM中存儲的位置,
并判斷該位置上是否存有繼電器參數,如果有更新相應的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黑下載附件…………
復制代碼
所有資料51hei提供下載:
Display.zip
(2.7 KB, 下載次數: 9)
2018-12-27 09:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2018-12-28 01:51
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲高清在线
|
亚洲国产精品精华素
|
av中文字幕在线播放
|
欧美黄色一区
|
日韩三级电影一区二区
|
亚洲精品美女
|
av三级在线观看
|
欧美一区
|
欧美日韩精品综合
|
特黄特色大片免费视频观看
|
中文字幕亚洲无线
|
欧美成视频
|
一区二区三区久久
|
天堂资源最新在线
|
日日夜夜天天
|
国产成人一区二区三区电影
|
中文字幕在线观看精品
|
国产黄色大片在线观看
|
h视频在线免费
|
91大神在线资源观看无广告
|
亚洲精品99
|
久久午夜精品
|
伊人免费观看视频
|
国产一区二区在线免费播放
|
国产精品久久久久久久一区探花
|
在线观看国产视频
|
欧美一级在线观看
|
91色综合
|
国精产品一区二区三区
|
国产电影一区二区在线观看
|
亚洲一区二区中文字幕在线观看
|
国产在线精品一区二区
|
久久久免费毛片
|
亚洲毛片在线观看
|
成人黄色av
|
成人福利电影
|
欧美精品v国产精品v日韩精品
|
日韩中文字幕
|
久久久久国产一区二区三区四区
|
成人亚洲一区
|
欧美一区二区网站
|