⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainc.c

📁 在89C51上操作小型LCD,显示汉字,字符和图案,字库放在EEPROM
💻 C
字号:
#include <stdio.h>
#include "externh.h"
#define DisINT() 	EA=0;
#define EnINT()		EA=1;
const U8 *MenuTable0[]={"信息","电话本","通话记录","设置","游戏"};
const U8 *MenuTable1[]={"写信息","收到的信息","已存信息","聊天室"};
const U8 *MenuTable2[]={"查找","删除","增加号码","单键拨号","其它选项"};
const U8 *MenuTable3[]={"未接来电","已接来电","已拨电话","通话计时"};
const U8 *MenuTable4[]={"时间","闹钟","手机设置","通话设置"};
const U8 *MenuTable5[]={"记忆力","贪食蛇","八面夹击","逻辑猜图"};
idata GOB g;
unsigned char Buf[10];
void main(void)
{
	P1=0xff;
	P2=0xff;
	P3=0xff;
	LCDInit(1);
	LCDInit(2);
	Cls();
	DispChange();
	SystemInit();
	g.State=0;
	g.Flag.Disp=1;
	g.menu0=0;
	while(1){
		if(OS.Flag.Timer32ms){
			OS.Flag.Timer32ms=0;
			if(DelayTime) DelayTime--;
			if(SystemNum) SystemNum--;
		}
		if(g.Flag.DispUpData){
			g.Flag.DispUpData=0;
			DisINT();
			DispChange();
			EnINT();
		}
		OSHandle();
		switch(g.State){
			case 0:
				if(g.Flag.Disp){
					g.Flag.Disp=0;
					DisINT();
					Cls();
					string=(U8 *)&MenuTable0[g.menu0][0];
					DispString(40,10);
					EnINT();
				}
				GetKey();
				if(OS.hz[0]==0) break;
				if(OS.hz[0]==UP){
					if(++g.menu0>4) g.menu0=0;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==DOWN){
					if(!g.menu0) g.menu0=5;
					g.menu0--;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==OK){
					g.Flag.Disp=1;
					g.State=1+g.menu0;
					g.menu1=0;
					break;
				}
				break;
			case 1://信息
				if(g.Flag.Disp){
					DisINT();
					g.Flag.Disp=0;
					DisplayLogo(BMPSTART,g.menu1);
//					EnINT();
//					string=(U8 *)&MenuTable1[g.menu1][0];
//					Cls();
//					DispString(40,10);
				}
				GetKey();
				if(OS.hz[0]==0) break;
				if(OS.hz[0]==UP){
					if(++g.menu1>3) g.menu1=0;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==DOWN){
					if(!g.menu1) g.menu1=4;
					g.menu1--;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==OK){
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==CANCEL){
					g.Flag.Disp=1;
					g.State=0;
					break;
				}
				break;
			case 2://电话本
				if(g.Flag.Disp){
					g.Flag.Disp=0;
					string=(U8 *)&MenuTable2[g.menu1][0];
					Cls();
					DispString(40,10);
					sprintf(&Buf[0],"%bd.%bd",g.menu0,g.menu1);
					string=(U8 *)&Buf[0];
					DispString(50,0);
				}
				GetKey();
				if(OS.hz[0]==0) break;
				if(OS.hz[0]==UP){
					if(++g.menu1>4) g.menu1=0;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==DOWN){
					if(!g.menu1) g.menu1=5;
					g.menu1--;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==OK){
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==CANCEL){
					g.Flag.Disp=1;
					g.State=0;
					break;
				}
				break;
			case 3://通话记录
				if(g.Flag.Disp){
					g.Flag.Disp=0;
					string=(U8 *)&MenuTable3[g.menu1][0];
					Cls();
					DispString(40,10);
					sprintf(&Buf[0],"%bd.%bd",g.menu0,g.menu1);
					string=(U8 *)&Buf[0];
					DispString(50,0);
				}
				GetKey();
				if(OS.hz[0]==0) break;
				if(OS.hz[0]==UP){
					if(++g.menu1>3) g.menu1=0;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==DOWN){
					if(!g.menu1) g.menu1=4;
					g.menu1--;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==OK){
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==CANCEL){
					g.Flag.Disp=1;
					g.State=0;
					break;
				}
				break;
			case 4://设置
				if(g.Flag.Disp){
					g.Flag.Disp=0;
					string=(U8 *)&MenuTable4[g.menu1][0];
					Cls();
					DispString(40,10);
					sprintf(&Buf[0],"%bd.%bd",g.menu0,g.menu1);
					string=(U8 *)&Buf[0];
					DispString(50,0);
				}
				GetKey();
				if(OS.hz[0]==0) break;
				if(OS.hz[0]==UP){
					if(++g.menu1>3) g.menu1=0;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==DOWN){
					if(!g.menu1) g.menu1=4;
					g.menu1--;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==OK){
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==CANCEL){
					g.Flag.Disp=1;
					g.State=0;
					break;
				}
				break;
			case 5://游戏
				if(g.Flag.Disp){
					g.Flag.Disp=0;
					string=(U8 *)&MenuTable5[g.menu1][0];
					Cls();
					DispString(40,10);
					sprintf(&Buf[0],"%bd.%bd",g.menu0,g.menu1);
					string=(U8 *)&Buf[0];
					DispString(50,0);
				}
				GetKey();
				if(OS.hz[0]==0) break;
				if(OS.hz[0]==UP){
					if(++g.menu1>3) g.menu1=0;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==DOWN){
					if(!g.menu1) g.menu1=4;
					g.menu1--;
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==OK){
					g.Flag.Disp=1;
					break;
				}
				if(OS.hz[0]==CANCEL){
					g.Flag.Disp=1;
					g.State=0;
					break;
				}
				break;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -