?? test.c
字號:
#include <REG52.h>
#include "T6963.h"
#include "KeyBoard.h"
#define LAST 5
#define NEXT 6
#define FATHER 7
#define CHILD 8
#define UC unsigned char
#define UI unsigned int
#define UL unsigned long
UC xdata LCD_Num,LCD_Key,LCD_Now;
UC xdata key;
UC xdata d_num=0;
UC xdata d[10];
UC xdata Clock[7];//格式為: 秒 分 時 日 月 星期 年
void Task0(void)
{ Lcd_Num_Uchar(0,6,0,1);
while(1)
{}
}
void Task1(void)//主屏幕
{ static UC Temp_LCD_Num=0;
//五個圖標
noab();
ClearScreen();
tx(1,2,0,0);
tx(7,2,1,0);
tx(13,2,2,0);
tx(19,2,3,0);
tx(25,2,4,0);
switch(Temp_LCD_Num)
{ case 0:
tx(1,2,0,1);
break;
case 1:
tx(7,2,1,1);
break;
case 2:
tx(13,2,2,1);
break;
case 3:
tx(19,2,3,1);
break;
case 4:
tx(25,2,4,1);
break;
}
while(1)
{
key=getchar();
// key=13;
if (key!=0)//按PC鍵盤開始測試
{
if(key==LEFT)
{ switch(Temp_LCD_Num){
case 0:
Temp_LCD_Num=4;
tx(1,2,0,0);
tx(25,2,4,1);
break;
case 1:
Temp_LCD_Num=0;
tx(1,2,0,1);
tx(7,2,1,0);
break;
case 2:
Temp_LCD_Num=1;
tx(7,2,1,1);
tx(13,2,2,0);
break;
case 3:
Temp_LCD_Num=2;
tx(13,2,2,1);
tx(19,2,3,0);
break;
case 4:
Temp_LCD_Num=3;
tx(19,2,3,1);
tx(25,2,4,0);
break;
}
}
else if(key==RIGHT)
{ switch(Temp_LCD_Num){
case 0:
Temp_LCD_Num=1;
tx(1,2,0,0);
tx(7,2,1,1);
break;
case 1:
Temp_LCD_Num=2;
tx(7,2,1,0);
tx(13,2,2,1);
break;
case 2:
Temp_LCD_Num=3;
tx(13,2,2,0);
tx(19,2,3,1);
break;
case 3:
Temp_LCD_Num=4;
tx(19,2,3,0);
tx(25,2,4,1);
break;
case 4:
Temp_LCD_Num=0;
tx(25,2,4,0);
tx(1,2,0,1);
break;
}
}
else if(key==ENTER)
{ LCD_Num=Temp_LCD_Num;
LCD_Key=CHILD;
return;
}
}
}
}
void Task2(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,2,1);
while(1)
{ key=getchar();
// key=20;
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ //LCD_Num=Temp_LCD_Num;
LCD_Key=FATHER;
return;
}
}
}
}
void Task3(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,3,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=ESC; return;
}
}
}
}
void Task4(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,4,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; break;
}
}
}
}
void Task5(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,5,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; break;
}
}
}
}
void Task6(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,6,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; return;
}
}
}
}
void Task7(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,7,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; break;
}
}
}
}
void Task8(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,8,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; break;
}
}
}
}
void Task9(void) //設置屏幕
{ static UC Temp_LCD_Num=0;
//五個圖標
noab();
ClearScreen();
xsch(7,0,0,0);
Lcd_printf(10,0,"設置系統時鐘",0,0);
xsch(7,4,0,0);
Lcd_printf(10,4,"設置機器參數",0,0);
switch(Temp_LCD_Num){
case 0:
xsch(7,0,1,0);
Lcd_printf(10,0,"設置系統時鐘",0,1);
break;
case 1:
xsch(7,4,1,0);
Lcd_printf(10,4,"設置機器參數",0,0);
break;
default://出現異常
xsch(7,0,1,0);
Lcd_printf(10,0,"設置系統時鐘",0,1);
Temp_LCD_Num=0;
break;
}
while(1)
{
key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==UP)
{ switch(Temp_LCD_Num){
case 0:
Temp_LCD_Num=2;
xsch(7,0,0,0);
Lcd_printf(10,0,"設置系統時鐘",0,0);
xsch(7,4,1,0);
Lcd_printf(10,4,"設置機器參數",0,1);
break;
case 1:
Temp_LCD_Num=0;
xsch(7,0,1,0);
Lcd_printf(10,0,"設置系統時鐘",0,1);
xsch(7,4,0,0);
Lcd_printf(10,4,"設置機器參數",0,0);
break;
default://出現異常
ClearScreen();
xsch(7,0,1,0);
Lcd_printf(10,0,"設置系統時鐘",0,1);
xsch(7,4,0,0);
Lcd_printf(10,4,"設置機器參數",0,0);
Temp_LCD_Num=0;
break;
}
}
else if(key==DOWN)
{ switch(Temp_LCD_Num){
case 0:
Temp_LCD_Num=1;
xsch(7,0,0,0);
Lcd_printf(10,0,"設置系統時鐘",0,0);
xsch(7,4,1,0);
Lcd_printf(10,4,"設置機器參數",0,1);
break;
case 1:
Temp_LCD_Num=0;
xsch(7,4,0,0);
Lcd_printf(10,4,"設置機器參數",0,0);
xsch(7,0,1,0);
Lcd_printf(10,0,"設置系統時鐘",0,1);
break;
default://出現異常
ClearScreen();
xsch(7,0,1,0);
Lcd_printf(10,0,"設置系統時鐘",0,1);
xsch(7,4,0,0);
Lcd_printf(10,4,"設置機器參數",0,0);
Temp_LCD_Num=0;
break;
}
}
else if(key==ENTER)
{ LCD_Num=Temp_LCD_Num;
LCD_Key=CHILD;
return;
}
else if (key!=0)//按PC鍵盤開始測試
{ if(key==ESC)
{ LCD_Key=FATHER;
return;
}
}
}
}
}
void Task10(void) //時鐘設置
{ noab();
ClearScreen();
// UC xdata Clock[7];//格式為: 秒 分 時 日 月 星期 年
Lcd_printf(4,0,"年份:",0,1);
Lcd_Num_Uchar(9,0,Clock[0],2);
Lcd_printf(4,2,"月份:",0,0);
Lcd_Num_Uchar(9,2,Clock[0],2);
Lcd_printf(4,4,"日期:",0,0);
Lcd_Num_Uchar(9,4,Clock[0],2);
Lcd_printf(4,6,"星期:",0,0);
Lcd_Num_Uchar(9,6,Clock[0],2);
Lcd_printf(17,0,"時鐘:",0,0);
Lcd_Num_Uchar(22,0,Clock[0],2);
Lcd_printf(17,2,"分鐘:",0,0);
Lcd_Num_Uchar(22,2,Clock[0],2);
Lcd_printf(17,4,"秒鐘:",0,0);
Lcd_Num_Uchar(22,4,Clock[0],2);
ab(9,0);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; return;
}
}
}
}
void Task11(void) //流水單元
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,11,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; return;
}
}
}
}void Task12(void) //機器參數
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,12,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; return;
}
}
}
}void Task13(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,13,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; return;
}
}
}
}void Task14(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,14,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{LCD_Key=FATHER; return;
}
}
}
}void Task15(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,15,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; return;
}
}
}
}void Task16(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,16,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER;
//LCD_Num=FATHER;
return;
}
}
}
}
void Task17(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,11,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; return;
}
}
}
}
void Task18(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,11,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Key=FATHER; return;
}
}
}
}
void Task19(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,19,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Num=FATHER; break;
}
}
}
}void Task20(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,20,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Num=FATHER; break;
}
}
}
}void Task21(void)
{ noab();
ClearScreen();
Lcd_Num_Uchar(0,6,21,1);
while(1)
{ key=getchar();
if (key!=0)//按PC鍵盤開始測試
{
if(key==ESC)
{ LCD_Num=FATHER; break;
}
}
}
}
code void (*LCD[])(void) =
{ Task0,
Task1,
Task2,
Task3,
Task4,
Task5,
Task6,
Task7,
Task8,
Task9,
Task10,
Task11,
Task12,
Task13,
Task14,
Task15,
Task16,
Task17,
Task18,
Task19,
Task20,
Task21,
};
// LCD菜單顯示數據結構
char code LCD_MSK[22][7]={//新的菜單ID,本屏菜單ID
//0-4是子菜單ID,5是前菜單,6是后菜單,7父菜單
/* Child0;Child1;Child2;Child3;Child4;Last;Next;Father;*/
1,1,1,1,1, 1,1,//0初始化
2,17,16,6,9, 1,1,//1主屏幕
3,3,3,4,3, 2,2,//2
3,3,3,3,3, 3,3,//3
4,4,4,4,4, 4,4,//4
5,5,5,5,5, 5,5,//5
6,6,6,6,6, 6,6,//6
7,7,7,7,7, 7,7,//7
8,8,8,8,8, 8,8,//8
10,11,12,13,9, 9,9,//9設置屏幕
10,10,10,10,10, 10,10,//10時間設置屏幕
11,11,11,11,11, 12,12,//11
12,12,12,12,12, 11,11,//12
13,13,13,13,13, 13,13,//13
14,14,14,14,14, 15,15,//14機器參數設置屏幕A
15,15,15,15,15, 14,14,//15機器參數設置屏幕B
16,16,16,16,16, 16,16,//16
17,18,17,17,17, 17,17,//17
18,18,18,18,18, 18,18,//18
19,19,19,19,19, 19,19,//19
20,20,20,20,20, 20,20,//20文件起名屏幕
21,21,21,21,21, 21,21,//21文件刪除屏幕
};
void Push_LCD(UC dat)
{ if(d_num<10)
{ d[d_num]=dat;
d_num++;
}
}
UC Pop_LCD(void)
{ UC dat;
if(d_num>0)
{ d_num--;
dat=d[d_num];
}
return dat;
}
/*************************************
名稱:main
功能:主函數
輸入參數:無
輸出參數:無
*************************************/
void main(void)
{
init_kb();
T6963_init();
noab();
LCD_Now=1;
(*LCD[LCD_Now])();//調用標準請求
while(1)
{
if(LCD_Key==CHILD)
{ Push_LCD(LCD_Now);
LCD_Now=LCD_MSK[LCD_Now][LCD_Num];
}
else if(LCD_Key==FATHER)
{
LCD_Now=Pop_LCD();
}
else
{ if(LCD_Num<7)
LCD_Now=LCD_MSK[LCD_Now][LCD_Num];
else
LCD_Now=LCD_Num;//直接調用菜單ID號
}
(*LCD[LCD_Now])();//調用函數
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -