📄 lcd_menu.h
字号:
/***************************************
功能:LCD128*64显示函数程序
文件名:LCD_menu.H
硬件:AT89S52
编译人:罗忠超
编译:Keil-2008-12-9
****************************************/
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned char
#endif
#ifndef __LCD_menu_H__
#define __LCD_menu_H__
#include"lcd_12864.h"
#include"LCD_mod.h"
void delay_20ms(void); //延时函数
void Number(uchar page,uchar row,uchar cs);
void InputCarNumber1(uchar page,uchar row,uchar cs,uchar j);
void InputCarNumber2(uchar page,uchar row,uchar cs,uchar j);
void SureKey(uchar page,uchar row,uchar cs,bit Sure_flag);
void BlackInput(uchar page,uchar row,uchar cs,bit Black_Flag);
void Chinese(uchar page,uchar row,uchar cs,bit Click_Flag);
void ClickNumber(uchar j,bit YN);
void Piture_1(bit MQ );
void Start_Piture(uchar page,uchar row,uchar cs,bit Pture_Flag) ;
void Work_Piture(uchar page,uchar row,uchar cs);
void Over_Piture(uchar page,uchar row,uchar cs);
void Unoption_Piture(uchar page,uchar row,uchar cs);
/**********************************************
/ 点亮特定的点:void pix(uchar x,uchar y,uchar cs) /
/ /
*********************************************/
/*
void pix(uchar x,uchar y)
{
uchar page,dX,dY;
uchar dot=0;
uchar cs =0;
if(x>=64)
{
x-=64;
cs=2;
}
else
{
cs=1;
}
dX=x; //算出x坐标
page=y/8;
dY=y%8; //算出页号
dot|=1<<dY; //算出y坐标 (对应数据的每个位)
Led_Open(cs);
Led_StartLine(cs); //对应坐标上的点设置为"1",--light
Led_SetPage(page,cs); //设置页地址
Led_SetRow(dX,cs); //设置列地址
Send_Data(dot,cs);
}
/*********************************************************************
/ 显示数字:void Number(uchar page,uchar row,uchar cs) (半角) /
/ /
********************************************************************/
void Number(uchar page,uchar row,uchar cs)
{
uchar i,p,k;
Led_Open(cs);
//////////////////////号车库
for(p=0;p<4;p++)
{
// Led_Open(cs);
for(k=0;k<2;k++)
{
Led_StartLine(cs);
Led_SetPage(page+k,cs);
Led_SetRow(row+16*(p),cs);
for(i=0;i <16; i++)
{
Send_Data(NUMBER[2*p+k+10][i],cs);
}
}
}
}
/*********************************************************************
/ 车库号输入:void chekuhao(uchar page,uchar row,uchar cs) (半角) /
/ /
/ ********************************************************************/
void InputCarNumber1(uchar page,uchar row,uchar cs,uchar j)
{
uchar i;
cs = 1;
Led_Open(cs);
Led_StartLine(cs);
Led_SetPage(page,cs);
Led_SetRow(row,cs);
for(i=0;i<8;i++)
{
Send_Data(NUMBER[j][i],cs);
}
Led_SetPage(page+1,cs);
Led_SetRow(row,cs);
for(i=8;i<16;i++)
{
Send_Data(NUMBER[j][i],cs);
}
}
void InputCarNumber2(uchar page,uchar row,uchar cs,uchar j)
{
uchar i;
cs = 1;
Led_Open(cs);
Led_StartLine(cs);
Led_SetPage(page,cs);
Led_SetRow(row+8,cs);
for(i=0;i<8;i++)
{
Send_Data(NUMBER[j][i],cs);
}
Led_SetPage(page+1,cs);
Led_SetRow(row+8,cs);
for(i=8;i<16;i++)
{
Send_Data(NUMBER[j][i],cs);
}
}
/*********************************************************************
/ 确定按钮:void SureKey(uchar page,uchar row,uchar cs) (半角) /
/ /
/********************************************************************/
void SureKey(uchar page,uchar row,uchar cs,bit Sure_flag)
{ uchar i=0,k=0,j=0;
cs=1;
Led_Open(cs);
Led_StartLine(cs);
Led_SetPage(page,cs);
Led_SetRow(row,cs);
for(j=0;j<2;j++)
{
for(k=0;k<2;k++)
{
Led_StartLine(cs);
Led_SetPage(page+k,cs);
Led_SetRow(row+16*j,cs);
for(i=0;i <16; i++)
{
if (Sure_flag==1)
{
Send_Data(SURE[2*j+k][i],cs);
}
else
{
Send_Data(~SURE[2*j+k][i],cs);
}
}
}
}
}
/*********************************************************************
/ 重新输入:void BlackInput(uchar page,uchar row,uchar cs) (半角) /
/ /
/********************************************************************/
void BlackInput(uchar page,uchar row,uchar cs,bit Black_Flag)
{
uchar i=0,k=0,j=0;
cs=2;
Led_Open(cs);
Led_StartLine(cs);
Led_SetPage(page,cs);
Led_SetRow(row,cs);
for(j=0;j<2;j++)
{
for(k=0;k<2;k++)
{
Led_StartLine(cs);
Led_SetPage(page+k,cs);
Led_SetRow(row+16*j,cs);
for(i=0;i <16; i++)
{
if (Black_Flag==1)
{
Send_Data(BLACK[2*j+k][i],cs);
}
else
{
Send_Data(~BLACK[2*j+k][i],cs);
Number(2,0,1);
}
}
}
}
}
/*************************************************************
/ 显示汉字:void Chinese(uchar page,uchar row,uchar cs) /
/ /
************************************************************/
void Chinese(uchar page,uchar row,uchar cs,bit Click_Flag)
{
// uchar *p=CHINESE;
uchar i=0,k=0,j=0;
// uchar *p;
// p = &CHINESE[0];
for(j=0;j<4;j++)
{
Led_Open(cs);
for(k=0;k<2;k++)
{
cs=1;
Led_StartLine(cs);
Led_SetPage(page+k,cs);
Led_SetRow(row+16*j,cs);
for(i=0;i <16; i++)
{
if(Click_Flag==0)
{Send_Data(CHINESE[2*j+k][i],cs);}
else
{Send_Data(CHINESE[2*j+k+16][i],cs);}
}
}
}
cs=2;
Led_Open(cs);
for(j=0;j<4;j++)
{
for(k=0;k<2;k++)
{
// cs=1;
Led_StartLine(cs);
Led_SetPage(page+k,cs);
Led_SetRow(row+16*j,cs);
for(i=0;i <16; i++)
{
if(Click_Flag==0)
{Send_Data(CHINESE[2*j+k+8][i],cs);}
else
{Send_Data(CHINESE[2*j+k+24][i],cs);}
}
}
}
}
/*********************************************************************
/ 数字判断:ClickNumber(uchar page,uchar row,uchar cs) (半角) /
/ /
********************************************************************/
void ClickNumber(uchar j,bit YN)
{
uchar num;
num = j;
switch (num)
{
case 0:
{
if(YN==1)
{
InputCarNumber1(2,0,1,0);break;
}
else
{
InputCarNumber2(2,0,1,0);break;
}
}
case 1:
{
if(YN==1)
{
InputCarNumber1(2,0,1,1);break;
}
else
{
InputCarNumber2(2,0,1,1);break;
}
}
case 2:
{
if(YN==1)
{
InputCarNumber1(2,0,1,2);break;
}
else
{
InputCarNumber2(2,0,1,2);break;
}
}
case 3:
{
if(YN==1)
{
InputCarNumber1(2,0,1,3);break;
}
else
{
InputCarNumber2(2,0,1,3);break;
}
}
case 4:
{
if(YN==1)
{
InputCarNumber1(2,0,1,4);break;
}
else
{
InputCarNumber2(2,0,1,4);break;
}
}
case 5:
{
if(YN==1)
{
InputCarNumber1(2,0,1,5);break;
}
else
{
InputCarNumber2(2,0,1,5);break;
}
}
case 6:
{
if(YN==1)
{
InputCarNumber1(2,0,1,6);break;
}
else
{
InputCarNumber2(2,0,1,6);break;
}
}
case 7:
{
if(YN==1)
{
InputCarNumber1(2,0,1,7);break;
}
else
{
InputCarNumber2(2,0,1,7);break;
}
}
case 8:
{
if(YN==1)
{
InputCarNumber1(2,0,1,8);break;
}
else
{
InputCarNumber2(2,0,1,8);break;
}
}
case 9:
{
if(YN==1)
{
InputCarNumber1(2,0,1,9);break;
}
else
{
InputCarNumber2(2,0,1,9);break;
}
}
}
}
/*************************************************************
/ 选择过程画面:Piture_1/2(bit MQ) /
/ 0:画面2,1:画面1 /
/*************************************************************/
void Piture_1(bit MQ )
{
delay_20ms();
if(MQ==0)
{
Chinese(0,0,1,1);
}
else
{
Chinese(0,0,1,0);
}
Number(2,0,1);
SureKey(6,16,1,1);
BlackInput(6,16,2,1);
}
/////////////////////////////////////////////
/*************************************************************
/ 图片显示:void Start_Piture(void) /
/ /
/*************************************************************/
void Start_Piture(uchar page,uchar row,uchar cs,bit Pture_Flag)
{
uchar *p=&piture1[0];
uchar *q=&piture2[0];
uchar j,i;
Led_Open(cs);
for(j=0;j<8;j++)
{ cs = 1;
Led_StartLine(cs);
Led_SetPage(page+j,cs);
Led_SetRow(row,cs);
for(i=0;i<64;i++)
{
if(Pture_Flag==0)
{
Send_Data(~*(p++),cs);
}
else
{
Send_Data(*(q++),cs);
}
}
cs = 2;
Led_Open(cs);
Led_StartLine(cs);
Led_SetPage(page+j,cs);
Led_SetRow(row,cs);
for(i=0;i<64;i++)
{
if(Pture_Flag==0)
{
Send_Data(~*(p++),cs);
}
else
{
Send_Data(*(q++),cs);
}
}
}
}
void Over_Piture(uchar page,uchar row,uchar cs)
{
uchar j,i;
uchar *p=&piture4[0];
Led_Open(cs);
for(j=0;j<8;j++)
{ cs = 1;
Led_StartLine(cs);
Led_SetPage(page+j,cs);
Led_SetRow(row,cs);
for(i=0;i<64;i++)
{
Send_Data(*(p++),cs);
}
cs = 2;
Led_Open(cs);
Led_StartLine(cs);
Led_SetPage(page+j,cs);
Led_SetRow(row,cs);
for(i=0;i<64;i++)
{
Send_Data(*(p++),cs);
}
}
}
/*************************************************************
/ 延时10ms:delay_20ms(void) /
/ /
/*************************************************************/
void delay_20ms(void)
{
uchar i,j;
for(i = 0;i < 200 ;i++)
{
for( j = 0;j < 100; j++ );
}
}
void Work_Piture(uchar page,uchar row,uchar cs)
{
uchar j,i;
uchar *p=&piture3[0];
Led_Open(cs);
for(j=0;j<8;j++)
{ cs = 1;
Led_StartLine(cs);
Led_SetPage(page+j,cs);
Led_SetRow(row,cs);
for(i=0;i<64;i++)
{
Send_Data(*(p++),cs);
}
cs = 2;
Led_Open(cs);
Led_StartLine(cs);
Led_SetPage(page+j,cs);
Led_SetRow(row,cs);
for(i=0;i<64;i++)
{
Send_Data(*(p++),cs);
}
}
}
void Eorr_Piture(uchar page,uchar row,uchar cs)
{
uchar j,i;
uchar *p=&piture5[0];
Led_Open(cs);
for(j=0;j<8;j++)
{ cs = 1;
Led_StartLine(cs);
Led_SetPage(page+j,cs);
Led_SetRow(row,cs);
for(i=0;i<64;i++)
{
Send_Data(*(p++),cs);
}
cs = 2;
Led_Open(cs);
Led_StartLine(cs);
Led_SetPage(page+j,cs);
Led_SetRow(row,cs);
for(i=0;i<64;i++)
{
Send_Data(*(p++),cs);
}
}
}
void Unoption_Piture(uchar page,uchar row,uchar cs) //操作无效函数
{
uchar j,i;
uchar *p=&piture6[0];
Led_Open(cs);
for(j=0;j<8;j++)
{ cs = 1;
Led_StartLine(cs);
Led_SetPage(page+j,cs);
Led_SetRow(row,cs);
for(i=0;i<64;i++)
{
Send_Data(*(p++),cs);
}
cs = 2;
Led_Open(cs);
Led_StartLine(cs);
Led_SetPage(page+j,cs);
Led_SetRow(row,cs);
for(i=0;i<64;i++)
{
Send_Data(*(p++),cs);
}
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -