📄 main.c
字号:
#include "f2407_c.h"
#include "global.h"
#include "lcdsub.h"
#include "key.h"
#include "zimo.h"
int initial(void)
{
asm(" SETC INTM"); /*Interrupt Mask; */
WSGR=0x0000; /*Disable all wait-state;*/
asm(" CLRC SXM");
asm(" CLRC OVM");
asm(" CLRC CNF"); /*B0 is configured for Data*/
*SCSR1=0x83FE; /*CLKIN=10M CLKOUT=20M and enable spi module clock*/
/*SCSR2=0x000E;*/
*IFR=0xFFFF;
*WDCR=0x0E8; /*diable watch dog*/
*MCRA=0x0000;
*MCRC=0x8000;
CON8255=0x0080; /*8255 control word initilize*/
WORD8255=0xAA;
Delay1S();
WORD8255=0x55;
Delay1S();
}
void ret_submeau2(void) /*return to submeau2*/
{
LCD_CLEAR();
LCD_SUBMEAU2('2');
LCD_SUBMEAU2('3');
LCD_SUBMEAU2('5');
LCD_SUBMEAU2('7');
LCD_SUBMEAU2('9');
SUBBAR2('1');
SUBMEAU2FLAG=0x0001;
}
void ret_submeau3(void) /*return to submeau3*/
{
LCD_CLEAR();
LCD_SUBMEAU3('2');
LCD_SUBMEAU3('3');
LCD_SUBMEAU3('5');
SUBBAR3('1');
SUBMEAU3FLAG=0x0001;
}
void ret_submeau4(void) /*return to submeau4*/
{
LCD_CLEAR();
LCD_SUBMEAU4('2');
LCD_SUBMEAU4('3');
LCD_SUBMEAU4('5');
LCD_SUBMEAU4('7');
SUBBAR4('1');
SUBMEAU4FLAG=0x0001;
}
void ret_mainmeau(void)
{
LCD_CLEAR();
LCD_STARTMEAU('1');
LCD_STARTMEAU('4');
LCD_STARTMEAU('5');
LCD_STARTMEAU('7');
LCD_STARTMEAU('9');
MAINBAR('2');
}
void motor_startup(argument1,argument2)
{
*SCITXBUF=0x01;
WORD8255=0x0f;
Delay1S();
*SCITXBUF=motor_data;
WORD8255=0xf0;
}
void motor_speedup(argument1,argument2)
{
if(motor_num<11)
{motor_data++;
motor_num++;}
else
{motor_data=0x04;
motor_num=0;}
*SCITXBUF=motor_data;
Delay1S();
}
void electronic(argument1,argument2)
{
if(num_8255<7)
{data_8255=data_8255*2;
num_8255++;}
else
{data_8255=0x01;
num_8255=0;}
WORD8255=data_8255;
Delay1S();
}
void WAIT_KEY(int i)
{
i=0;
while(!i)
i=KEY_SCAN();
return;
}
void PIN_SET(argument1,argument2,argument3,argument4,i)
{
WAIT_KEY(i);
Delay1S();
if(KEY_RIGHT==1)
{
hand_num=hand_num+1;
if(hand_num==9)
hand_num=1;
HAND_SHOW(hand_num);
}
if(KEY_LEFT==1)
{
hand_num=hand_num-1;
if(hand_num==0)
hand_num=8;
HAND_SHOW(hand_num);
}
if(KEY_UP==1)
{
if(hand_num<5)
{
if(pin_num1==98)
pin_num1=14;
else
pin_num1=pin_num1+1;
HAND_PINNUM(pin_num1);
}
if(hand_num==5)
{
if(pin_num2==98)
pin_num2=5;
else
pin_num2=pin_num2+1;
HAND_PINNUM(pin_num2);
}
if(hand_num==6)
{
if(pin_num1==98)
pin_num1=14;
else
pin_num1=pin_num1+1;
HAND_PINNUM(pin_num1);
}
if(hand_num==7|hand_num==8)
{
if(pin_num3==499)
pin_num3=5;
else
pin_num3=pin_num3+1;
HAND_PINNUM(pin_num3);
}
} /*if(KEY_UP==1)*/
if(KEY_DOWN==1)
{
if(hand_num<5)
{
if(pin_num1==14)
pin_num1=98;
else
pin_num1=pin_num1-1;
HAND_PINNUM(pin_num1);
}
if(hand_num==5)
{
if(pin_num2==5)
pin_num2=98;
else
pin_num2=pin_num2-1;
HAND_PINNUM(pin_num2);
}
if(hand_num==6)
{
if(pin_num1==14)
pin_num1=98;
else
pin_num1=pin_num1-1;
HAND_PINNUM(pin_num1);
}
if(hand_num==7|hand_num==8)
{
if(pin_num3==5)
pin_num3=499;
else
pin_num3=pin_num3-1;
HAND_PINNUM(pin_num3);
}
} /*if(KEY_DOWN==1)*/
}
void TIGHT_SET(argument1,argument2,argument3,argument4,argument5,i)
{
int HANZI_CON[16];
WAIT_KEY(i);
Delay1S();
if(KEY_LEFT==1)
{if(caidan==1)
{TIGHT_BILI(1,HANZI_CON,HANZI_BILI,HANZI_BILI+16,HANZI_YINZI,HANZI_YINZI+16,0xFFB9);
DAOZHILING(2,HANZI_CON);}
if(caidan==2)
{TIGHT_BILI(2,HANZI_CON,HANZI_BILI,HANZI_BILI+16,HANZI_YINZI,HANZI_YINZI+16,0xFFB9);
TIGHT_BILI(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBB);}
if(caidan==3)
{TIGHT_BILI(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
TIGHT_BILI(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,0xFFBB);}
if(caidan==4)
{TIGHT_BILI(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
DAOZHILING(1,HANZI_CON);}
if(caidan==1)
caidan=4;
else
caidan=caidan-1;
}
if(KEY_RIGHT==1)
{if(caidan==1)
{TIGHT_BILI(1,HANZI_CON,HANZI_BILI,HANZI_BILI+16,HANZI_YINZI,HANZI_YINZI+16,0xFFB9);
TIGHT_BILI(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBB);}
if(caidan==2)
{TIGHT_BILI(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBB);
TIGHT_BILI(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);}
if(caidan==3)
{TIGHT_BILI(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
DAOZHILING(2,HANZI_CON);}
if(caidan==4)
{DAOZHILING(1,HANZI_CON);
TIGHT_BILI(2,HANZI_CON,HANZI_BILI,HANZI_BILI+16,HANZI_YINZI,HANZI_YINZI+16,0xFFB9);}
if(caidan==4)
caidan=1;
else
caidan=caidan+1;
}
if(KEY_UP==1)
{
switch(caidan)
{
case 1:
if(pin_num1==4)
pin_num1=1;
else
pin_num1=pin_num1+1;
LCD_NUM(pin_num1,0xFFB9);
break;
case 2:
if(pin_num2==32)
pin_num2=5;
else
pin_num2=pin_num2+1;
LCD_NUM(pin_num2,0xFFBB);
break;
case 3:
if(pin_num3==32)
pin_num3=5;
else
pin_num3=pin_num3+1;
LCD_NUM(pin_num3,0xFFBD);
break;
case 4:
if(pin_num4==1)
pin_num4=0;
else
pin_num4=1;
LCD_NUM(pin_num4,0xFFBF);
break;
}
}
if(KEY_DOWN==1)
{
switch(caidan)
{
case 1:
if(pin_num1==1)
pin_num1=4;
else
pin_num1=pin_num1-1;
LCD_NUM(pin_num1,0xFFB9);
break;
case 2:
if(pin_num2==5)
pin_num2=32;
else
pin_num2=pin_num2-1;
LCD_NUM(pin_num2,0xFFBB);
break;
case 3:
if(pin_num3==5)
pin_num3=32;
else
pin_num3=pin_num3+1;
LCD_NUM(pin_num3,0xFFBD);
break;
case 4:
if(pin_num4==0)
pin_num4=1;
else
pin_num4=0;
LCD_NUM(pin_num4,0xFFBF);
break;
}
}
}
void SPEED_SET(argument1,argument2,argument3,argument4,argument5,i)
{
int HANZI_CON[16];
WAIT_KEY(i);
Delay1S();
if(KEY_LEFT==1)
{if(caidan==1)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);
SPEED_SEXIAN(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);}
if(caidan==2)
{SUDU(1,HANZI_CON);
SPEED_SEXIAN(2,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);}
if(caidan==3)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
SUDU(2,HANZI_CON);}
if(caidan==4)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);
SPEED_SEXIAN(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);}
if(caidan==1)
caidan=4;
else
caidan=caidan-1;
}
if(KEY_RIGHT==1)
{if(caidan==1)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);
SUDU(2,HANZI_CON);}
if(caidan==2)
{SUDU(1,HANZI_CON);
SPEED_SEXIAN(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);}
if(caidan==3)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
SPEED_SEXIAN(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);}
if(caidan==4)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);
SPEED_SEXIAN(2,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);}
if(caidan==4)
caidan=1;
else
caidan=caidan+1;
}
if(KEY_UP==1)
{
switch(caidan)
{
case 1:
if(hand_num==8)
hand_num=1;
else
hand_num=hand_num+1;
HAND_SHOW(hand_num);
break;
case 2:
if(pin_num2==220)
pin_num2=20;
else
pin_num2=pin_num2+1;
LCD_NUM(pin_num2,0xFFBB);
break;
case 3:
if(pin_num3==48)
pin_num3=1;
else
pin_num3=pin_num3+1;
LCD_NUM(pin_num3,0xFFBD);
break;
case 4:
if(pin_num4==48)
pin_num4=1;
else
pin_num4=pin_num4+1;
LCD_NUM(pin_num4,0xFFBF);
break;
}
}
if(KEY_DOWN==1)
{
switch(caidan)
{
case 1:
if(hand_num==1)
hand_num=8;
else
hand_num=hand_num-1;
HAND_SHOW(hand_num);
break;
case 2:
if(pin_num2==20)
pin_num2=220;
else
pin_num2=pin_num2-1;
LCD_NUM(pin_num2,0xFFBB);
break;
case 3:
if(pin_num3==1)
pin_num3=48;
else
pin_num3=pin_num3+1;
LCD_NUM(pin_num3,0xFFBD);
break;
case 4:
if(pin_num4==1)
pin_num4=48;
else
pin_num4=pin_num4+1;
LCD_NUM(pin_num4,0xFFBF);
break;
}
}
}
void SEXIAN_SET(argument1,argument2,argument3,argument4,argument5,i)
{
int HANZI_CON[16];
WAIT_KEY(i);
Delay1S();
if(KEY_LEFT==1)
{if(caidan==1)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);
SPEED_SEXIAN(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);}
if(caidan==2)
{SHUJUHAO(1,HANZI_CON);
SPEED_SEXIAN(2,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);}
if(caidan==3)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
SHUJUHAO(2,HANZI_CON);}
if(caidan==4)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);
SPEED_SEXIAN(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);}
if(caidan==1)
caidan=4;
else
caidan=caidan-1;
}
if(KEY_RIGHT==1)
{if(caidan==1)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);
SHUJUHAO(2,HANZI_CON);}
if(caidan==2)
{SHUJUHAO(1,HANZI_CON);
SPEED_SEXIAN(2,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);}
if(caidan==3)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_QISHI,HANZI_QISHI+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBD);
SPEED_SEXIAN(2,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);}
if(caidan==4)
{SPEED_SEXIAN(1,HANZI_CON,HANZI_ZHONGNIAO,HANZI_ZHONGNIAO+16,HANZI_HENGLIE,HANZI_HENGLIE+16,0xFFBF);
SPEED_SEXIAN(2,HANZI_CON,HANZI_DANGQIAN,HANZI_DANGQIAN+16,HANZI_BUWEI,HANZI_BUWEI+16,0xFFB9);}
if(caidan==4)
caidan=1;
else
caidan=caidan+1;
}
if(KEY_UP==1)
{
switch(caidan)
{
case 1:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -