📄 menu_func.h
字号:
}
if(NowKey==KEY_2)
{
TR1=0;
i--;
if(i>7)
{
i=7;
}
NowKey=0xff;
temp1=(temp1&0xf0)|P_motor1[i];
PC8255=temp1;
delay(10);
TR1=1;
}
if(NowKey==KEY_3)
{
Motor_speed++;
if(Motor_speed>200)
Motor_speed=200;
NowKey=0xff;
TR1=0;
num_disp(1,0,0,Motor_speed/100);
num_disp(1,0,8,Motor_speed/10%10);
num_disp(1,0,16,Motor_speed%10);
TR1=1;
}
if(NowKey==KEY_4)
{
Motor_speed--;
if(Motor_speed<20)
Motor_speed=20;
NowKey=0xff;
TR1=0;
num_disp(1,0,0,Motor_speed/100);
num_disp(1,0,8,Motor_speed/10%10);
num_disp(1,0,16,Motor_speed%10);
TR1=1;
}
}
ET1=0;
TR1=0;
Menu_Back();
}
/*------------24CXX 按输入的起始地址读取16个字节--------*/
void Menu_Memory_ReData()
{
uchar idata temp1[16];
uint idata addr;
uchar i,j,x,y;
bit cs3;
cs3=1;
clrscr();
x=0;
y=0;
NowKey=0xff;
while (NowKey!=KEY_OK)
{
//EX0=1;
GetTextInput();
if(KeyInputTemp==1)
{
addr<<=4;
addr+=TextInputTemp;
num_disp(cs3,x,y,TextInputTemp);
y+=8;
if(y==64) // 输出8个数字时换右屏
{
cs3=!cs3;
y=0;
j++;
}
KeyInputTemp=0;
}
}
R24C32(addr,temp1,16);
x=2;
y=0;
for (i=0;i<16;i++)
{
num_disp(cs3,x,y,temp1[i]>>4);
y+=8;
num_disp(cs3,x,y,temp1[i]&0x0f);
y+=8;
if(y==64) // 输出8个数字时换右屏
{
cs3=!cs3;
y=0;
j++;
}
if(j==2)
{
j=0;
x+=2;
}
}
while(NowKey!=KEY_ESC);
Menu_Back();
}
void Menu_Memory_WrData()
{
uchar idata temp1[16];
uint idata addr;
uchar i,j,x,y;
bit cs3;
cs3=1;
clrscr();
x=0;
y=0;
NowKey=0xff;
while (NowKey!=KEY_OK)
{
//EX0=1;
GetTextInput();
if(KeyInputTemp==1)
{
addr<<=4;
addr+=TextInputTemp;
num_disp(cs3,x,y,TextInputTemp);
y+=8;
if(y==64) // 输出8个数字时换右屏
{
cs3=!cs3;
y=0;
j++;
}
KeyInputTemp=0;
}
}
NowKey=0xff;
i=0;
j=0;
x=2;
y=0;
while (NowKey!=KEY_OK)
{
//EX0=1;
GetTextInput();
if(KeyInputTemp==1)
{
temp1[i]<<=4;
temp1[i]+=TextInputTemp;
num_disp(cs3,x,y,TextInputTemp);
j++;
if(!(j%2))
i++;
y+=8;
if(y==64) // 输出8个数字时换右屏
{
cs3=!cs3;
y=0;
}
KeyInputTemp=0;
}
}
W24C32(addr,temp1,i);
while(NowKey!=KEY_ESC);
Menu_Back();
}
/*-------------模数转换--------*/
void Menu_ADC0832()
{
uchar adtemp1;
clrscr();
EX0=1;
chn_disp(0,0,2,8,1,2,hz_in); //IN
chn_disp(0,24,2,8,1,1,hz_mh); //:
chn_disp(2,0,2,8,1,2,hz_in); //in
chn_disp(2,24,2,8,1,1,hz_mh);
chn_disp(4,0,2,8,1,2,hz_in);
chn_disp(4,24,2,8,1,1,hz_mh);
chn_disp(6,0,2,8,1,2,hz_in);
chn_disp(6,24,2,8,1,1,hz_mh);
num_disp(1,0,16,0);
num_disp(1,2,16,1);
num_disp(1,4,16,2);
num_disp(1,6,16,3);
num_disp(0,0,16,4);
num_disp(0,2,16,5);
num_disp(0,4,16,6);
num_disp(0,6,16,7);
while(NowKey!=KEY_ESC)
{
//EX0=1;
AD0809_IN0=0x00; //启动AD
delay(80);
adtemp1=AD0809_IN0;
num_disp(1,0,32,adtemp1>>4);
num_disp(1,0,40,(adtemp1&0x0f));
AD0809_IN1=0x00; //启动AD
delay(80);
adtemp1=AD0809_IN1;
num_disp(1,2,32,adtemp1>>4);
num_disp(1,2,40,(adtemp1&0x0f));
AD0809_IN2=0x00; //启动AD
delay(80);
adtemp1=AD0809_IN2;
num_disp(1,4,32,adtemp1>>4);
num_disp(1,4,40,(adtemp1&0x0f));
AD0809_IN3=0x00; //启动AD
delay(80);
adtemp1=AD0809_IN3;
num_disp(1,6,32,adtemp1>>4);
num_disp(1,6,40,(adtemp1&0x0f));
AD0809_IN4=0x00; //启动AD
delay(80);
adtemp1=AD0809_IN4;
num_disp(0,0,32,adtemp1>>4);
num_disp(0,0,40,(adtemp1&0x0f));
AD0809_IN5=0x00; //启动AD
delay(80);
adtemp1=AD0809_IN5;
num_disp(0,2,32,adtemp1>>4);
num_disp(0,2,40,(adtemp1&0x0f));
AD0809_IN6=0x00; //启动AD
delay(80);
adtemp1=AD0809_IN6;
num_disp(0,4,32,adtemp1>>4);
num_disp(0,4,40,(adtemp1&0x0f));
AD0809_IN7=0x00; //启动AD
delay(80);
adtemp1=AD0809_IN7;
num_disp(0,6,32,adtemp1>>4);
num_disp(0,6,40,(adtemp1&0x0f));
}
Menu_Back();
}
/*--------------数模转换-------------------*/
void Menu_DAC0808()
{
uchar cs3,x,y,j,ADCtemp;
cs3=1;
clrscr();
NowKey=0xff;
while (NowKey!=KEY_OK)
{
//EX0=1;
GetTextInput();
if(KeyInputTemp==1)
{
ADCtemp<<=4;
ADCtemp+=TextInputTemp;
num_disp(cs3,x,y,TextInputTemp);
y+=8;
if(y==64) // 输出8个数字时换右屏
{
cs3=!cs3;
y=0;
j++;
}
if(j==2) // 输出16个数字时换行
{
x+=2;
j=0;
}
if(x==8)
{
x=0;
clrscr();
}
KeyInputTemp=0;
}
}
Opt9555(Cmd_op0,ADCtemp);
//EX0=1;
while(NowKey!=KEY_ESC);
Menu_Back();
}
/*---------------- 与PC通信--串口接收--------------*/
void Menu_SerialReceive_PC()
{
uchar cs3,x,y,j;
uchar PSerial;
clrscr();
cs1=1;
cs2=0;
chn_disp(0,0,2,16,1,2,hz_test_1); //显示起始行
chn_disp(0,32,2,16,1,2,hz_test_2);
cs1=0;
cs2=1;
chn_disp(0,32,2,16,1,2,hz_test);
chn_disp(0,0,2,16,1,2,hz_jishi);
x=2;
y=0;
cs3=1;
TMOD=0x20;
TH1=0xfd; //波特率9600
TL1=0xfd;
TR1=1;
SCON=0x50; //方式一,接收
while (1)
{
//EX0=1;
while(!RI)
if (NowKey==KEY_ESC) goto Exit_SerialReceive;
RI=0;
PSerial=SBUF;
num_disp(cs3,x,y,PSerial&0x0f);
y+=8;
if(y==64) // 输出8个数字时换右屏
{
cs3=!cs3;
y=0;
j++;
}
if(j==2) // 输出16个数字时换行
{
x+=2;
j=0;
}
if(x==8)
{
x=2;
clrscr();
}
}
Exit_SerialReceive:
NowKeyReg=0;
Menu_Back();
}
/*------------------与PC通信--串口发送-----------------*/
void Menu_SerialSend_PC()
{
uchar cs3,x,y,k,j;
uchar PSerial;
clrscr();
cs1=1;
cs2=0;
chn_disp(0,0,2,16,1,2,hz_test_1); //显示起始行
chn_disp(0,32,2,16,1,2,hz_test_3);
cs1=0;
cs2=1;
chn_disp(0,32,2,16,1,2,hz_test);
chn_disp(0,0,2,16,1,2,hz_jishi);
x=2;
y=0;
cs3=1;
TMOD=0x20; //波特率9600
TH1=0xfd;
TL1=0xfd;
TR1=1; //方式一,不允许接收
SCON=0x40;
while (NowKey!=KEY_ESC)
{
//EX0=1;
GetTextInput();
if(KeyInputTemp==1)
{
PSerial<<=4;
PSerial+=TextInputTemp;
num_disp(cs3,x,y,TextInputTemp);
k++;
if(k==2)
{
k=0;
SBUF=PSerial;
while(!TI);
TI=0;
}
y+=8;
if(y==64) // 输出8个数字时换右屏
{
cs3=!cs3;
y=0;
j++;
}
if(j==2) // 输出16个数字时换行
{
x+=2;
j=0;
}
if(x==8)
{
x=2;
clrscr();
}
KeyInputTemp=0;
}
}
Menu_Back();
}
/*----------------多机接收----------------*/
void Menu_SerialReceive_MCU()
{
uchar name,y,i=0;
uchar led_buff[3]={0x00,0x00,0x00};
clrscr();
NowKey=0xff;
name=0;
cs1=1;
cs2=0;
chn_disp(0,32,2,16,1,2,hz_test_4);
chn_disp(2,0,2,16,1,3,hz_please);
chn_disp(4,0,2,16,1,2,hz_test);
chn_disp(4,32,2,16,1,1,hz_test_4+32);
chn_disp(4,48,2,16,1,1,hz_hao);
cs1=0;
cs2=1;
chn_disp(0,0,2,16,1,2,hz_test);
num_disp(0,4,16,1);
num_disp(0,4,48,2);
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
while (NowKey!=KEY_OK)
{
//EX0=1;
GetTextInput();
if(KeyInputTemp==1)
{
name=TextInputTemp;
}
num_disp(0,2,16,name);
}
TR1=1;
SCON=0xf8;
SBUF=0x10|name;
while (!TI);
TI=0;
SM2=0;
while (NowKey!=KEY_ESC)
{
//EX0=1;
if(name==0x01)
{
for(i=0;i<3;i++)
{
while (!RI);
RI=0;
led_buff[i]=SBUF;
}
}
if(name==0x02)
{
while (!RI);
RI=0;
led_buff[0]=SBUF;
}
y=0;
for(i=0;i<3;i++)
{
num_disp(0,6,y,led_buff[i]>>4);
y+=8;
num_disp(0,6,y,led_buff[i]&0xf);
y+=8;
}
}
cs1=0;
cs2=1;
chn_disp(0,0,2,16,1,2,hz_test);
Menu_Back();
}
/*----------------多机发送----------------*/
void Menu_SerialSend_MCU()
{
uchar name,y,i=0,j=0;
uchar led_buff[3];
clrscr();
NowKey=0xff;
name=0;
cs1=1;
cs2=0;
chn_disp(0,32,2,16,1,2,hz_test_4);
chn_disp(2,0,2,16,1,3,hz_please);
chn_disp(4,0,2,16,1,2,hz_test);
chn_disp(4,32,2,16,1,1,hz_test_4+32);
chn_disp(4,48,2,16,1,1,hz_hao);
cs1=0;
cs2=1;
chn_disp(0,0,2,16,1,2,hz_test);
num_disp(0,4,16,1);
num_disp(0,4,48,2);
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
while (NowKey!=KEY_OK)
{
// EX0=1;
GetTextInput();
if(KeyInputTemp==1)
{
name=TextInputTemp;
KeyInputTemp=0;
}
num_disp(0,2,16,name);
}
NowKey=0xff;
cs1=1;
cs2=0;
chn_disp(4,0,2,16,1,4,hz_chuanshu);
y=0;
while (NowKey!=KEY_OK)
{
//EX0=1;
GetTextInput();
if(KeyInputTemp==1)
{
led_buff[i]<<=4;
led_buff[i]+=TextInputTemp;
num_disp(0,6,y,TextInputTemp);
j++;
if(!(j%2))
i++;
y+=8;
if(y==48)
y=8;
KeyInputTemp=0;
}
}
TR1=1;
SCON=0xf8;
SBUF=name;
while (!TI);
TI=0;
TB8=0;
if(name==0x01)
{
for(i=0;i<3;i++)
{
SBUF=led_buff[i];
while(!TI);
TI=0;
}
}
if(name==0x02)
{
i=0;
SBUF=led_buff[i];
while (!TI);
TI=0;
}
clrscr();
cs1=1;
cs2=0;
chn_disp(0,32,2,16,1,2,hz_test_4);
cs1=0;
cs2=1;
chn_disp(0,0,2,16,1,2,hz_test);
//EX0=1;
while (NowKey!=KEY_ESC);
Menu_Back();
}
/*----------------返回菜单--------*/
void Menu_Back()
{
NowKey=0xff;
clrscr();
JudgeHLight();
}
/*----------------版本说明------------*/
void MenuFunction_Help_2()
{
DispFaceBmp();
NowKey=0xff;
EX0=1;
while(NowKey==0xff); // 按任意键退出
Menu_Back();
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -