📄 boot.c
字号:
#include".\XQG.h"
#include".\Disp.h"
#include".\Key.h"
#include".\EEPROM.h"
//-------------------------------------------
unsigned char gvc_counter_i,gvc_counter_j,gvc_counter_h;
unsigned char gvc_menu_point; //the point of the menu. save the menu menber
unsigned char gvc_pulse_wide_point;
unsigned char gvc_pulse_gap_point;
unsigned char gvc_current_point;
unsigned char gvc_speed_point;
unsigned char gvc_voltage_point;
unsigned char gvc_load_flg;
unsigned char gvc_tmp;
bit gvb_speed_flg;
bit gvb_speed_time_flg=0;
bit gvb_dop=0;
//--------------------------------------------
bit gvb_key_get_flg; //the flag mark the mcu get the valid key
unsigned char code gcc_default_value[8][8]={
{0,2,0,3,0,10,0,0},
{1,2,0,3,0,10,0,0},
{2,2,0,3,0,10,0,0},
{3,2,0,3,0,10,0,0},
{4,2,0,3,0,10,0,0},
{5,2,0,3,0,10,0,0},
{6,2,0,3,0,10,0,0},
{7,2,0,3,0,10,0,0}
};
unsigned char code gcc_pulse_wide[7]={2,4,8,16,32,64,128};
//unsigned char code gcc_pulse_wide[7]={15,3,6,12,24,48,96};
unsigned char code gcc_pulse_gap[6]={9,4,5,6,7,8};
unsigned char code gcc_speed[7]={10,15,20,25,30,40,50};
//unsigned char code gcc_speed[7]={5,10,15,20,25,30,50};
unsigned int code gcc_menu_addr[8]={SECTOR1,SECTOR2,SECTOR3,SECTOR4,SECTOR5,SECTOR6,SECTOR7,SECTOR8};
extern unsigned int gvi_com_counter;
extern bit gvb_time_ok_flg;
void main()
{
TMOD=0X25; //定时器1工作方式1
SCON=0X50; //串口方式1,8位UART ,波特率可变
PCON=0x00;
TH1=0xfa; //波特率=振荡器频率/[32*12(256-TH1)]
TL1=0xfa; //9600=11059200/[32*12*(256-TH1)] 22118400
T2CON=T2CON_VALUE;
RCAP2H=RCAP2H_VALUE;
RCAP2L=RCAP2L_VALUE;
IE=0X00; //关中断
IT0=SET;
IT1=SET;
EX1=CLEAR;
EX0=CLEAR;
ES=CLEAR;
TR1=CLEAR;
TR2=SET;
TR0=CLEAR;
ET2=SET;
ET0=CLEAR;
ET1=CLEAR;
WDT_CONTR=0x3b;
EA=SET;
//---------------------------------------
//------------------------------------------------
gvc_load_flg=byte_read(EEPROM_MENU);
// gvc_load_flg=0;
if(gvc_load_flg==EEPROM_VALUE)
{
for(gvc_counter_h=0;gvc_counter_h<8;gvc_counter_h++)
for(gvc_counter_j=0;gvc_counter_j<8;gvc_counter_j++)
gvu_Menu_buffer[gvc_counter_h].gvc_arr[gvc_counter_j]=byte_read(gcc_menu_addr[gvc_counter_h]+gvc_counter_j);
}
else
{
for(gvc_counter_h=0;gvc_counter_h<8;gvc_counter_h++)
Sector_eraser(gcc_menu_addr[gvc_counter_h]);
for(gvc_counter_i=0;gvc_counter_i<8;gvc_counter_i++)
{
for(gvc_counter_j=0;gvc_counter_j<8;gvc_counter_j++)
{
gvu_Menu_buffer[gvc_counter_i].gvc_arr[gvc_counter_j]=gcc_default_value[gvc_counter_i][gvc_counter_j];
byte_write((gcc_menu_addr[gvc_counter_i]+gvc_counter_j), gcc_default_value[gvc_counter_i][gvc_counter_j]);
//byte_write(gcc_menu_addr[gvc_counter_i]+gvc_counter_j,gcc_default_value[gvc_counter_i][gvc_counter_j]);
}
}
gvc_tmp=1;
Sector_eraser(EEPROM_MENU);
byte_write(EEPROM_MENU, EEPROM_VALUE);
}
gvc_menu_point=0;
#if 0
for(gvc_counter_i=0;gvc_counter_i<8;gvc_counter_i++)
{
// erasure_sector(gcc_menu_addr[gvc_counter_i]);
for(gvc_counter_j=0;gvc_counter_j<8;gvc_counter_j++)
{
gvu_Menu_buffer[gvc_counter_i].gvc_arr[gvc_counter_j]=gcc_default_value[gvc_counter_i][gvc_counter_j];
// byte_write(gcc_menu_addr[gvc_counter_i]+gvc_counter_j, gcc_default_value[gvc_counter_i][gvc_counter_j]);
}
}
#endif
#if 0
for(gvc_counter_i=0;gvc_counter_i<8;gvc_counter_i++)
{
gvu_Menu_buffer[0].gvc_arr[gvc_counter_i]=byte_read(0x8000+gvc_counter_i);
//gvu_Menu_buffer[0].gvc_arr[gvc_counter_i]=1;
}
Sector_eraser(0x8000);
for(gvc_counter_i=0;gvc_counter_i<8;gvc_counter_i++)
{
byte_write(0x8000+gvc_counter_i, 3);
}
#endif
//-----------------------------------------------------
gvc_menu_point=0;
Fill_disp_buff(gvc_menu_point);
//-------------------------------------------------
while(1)
{
/*
F_A=1;
F_B=0;
F_C=1;
*/
WDT_CONTR=0x3b;
//---------------------------------------------------------------
if(gvb_key_scan_flg)
{
gvb_key_scan_flg=0;
gvb_key_get_flg=Key_get();
gvb_com_flg=Commad_Get();
}
//---------------------------------------------------------------
if(gvb_key_get_flg&&(!gvc_com_out))
//if(gvb_key_get_flg)
{
// gvb_com_flg=1;
gvb_key_get_flg=0;
// VOLTAGE=!VOLTAGE;
switch(gvc_key_out)
{
case KEY1_UP:
Sector_eraser(gcc_menu_addr[gvc_menu_point]);
for(gvc_counter_i=0;gvc_counter_i<8;gvc_counter_i++)
{
byte_write(gcc_menu_addr[gvc_menu_point]+gvc_counter_i, gvu_Menu_buffer[gvc_menu_point].gvc_arr[gvc_counter_i]);
}
gvc_menu_point++; //add the menu
if(gvc_menu_point>7)
gvc_menu_point=0;
//refresh the display
break;
case KEY1_DOWN:
Sector_eraser(gcc_menu_addr[gvc_menu_point]);
for(gvc_counter_i=0;gvc_counter_i<8;gvc_counter_i++)
{
byte_write(gcc_menu_addr[gvc_menu_point]+gvc_counter_i, gvu_Menu_buffer[gvc_menu_point].gvc_arr[gvc_counter_i]);
}
if(gvc_menu_point>0)
gvc_menu_point-=1;
else
gvc_menu_point=7;
break;
//------------------------------------------------------------
case KEY2_UP:
gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide_Value++;
if(gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide_Value>6)
gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide_Value=0;
gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide=
gcc_pulse_wide[gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide_Value];
if(gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide_Value==0)
gvb_dop=0;
else
gvb_dop=1;
break;
case KEY2_DOWN:
if(gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide_Value>0)
gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide_Value--;
else
gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide_Value=6;
gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide=
gcc_pulse_wide[gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide_Value];
if(gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Wide_Value==0)
gvb_dop=0;
else
gvb_dop=1;
break;
//-------------------------------------------------------------------
case KEY3_UP:
gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Gap++;
if(gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Gap>9)
gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Gap=4;
break;
case KEY3_DOWN:
if(gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Gap>4)
gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Gap--;
else
gvu_Menu_buffer[gvc_menu_point].menu.S_Pulse_Gap=9;
break;
//--------------------------------------------------------------------
case KEY4_UP:
gvu_Menu_buffer[gvc_menu_point].menu.S_Current++;
if(gvu_Menu_buffer[gvc_menu_point].menu.S_Current>7)
gvu_Menu_buffer[gvc_menu_point].menu.S_Current=0;
break;
case KEY4_DOWN:
if(gvu_Menu_buffer[gvc_menu_point].menu.S_Current>0)
gvu_Menu_buffer[gvc_menu_point].menu.S_Current--;
else
gvu_Menu_buffer[gvc_menu_point].menu.S_Current=7;
break;
//-------------------------------------------------------------------------
case KEY5_UP:
gvu_Menu_buffer[gvc_menu_point].menu.S_Speed_Value++;
if(gvu_Menu_buffer[gvc_menu_point].menu.S_Speed_Value>6)
gvu_Menu_buffer[gvc_menu_point].menu.S_Speed_Value=0;
gvu_Menu_buffer[gvc_menu_point].menu.S_Speed=
gcc_speed[gvu_Menu_buffer[gvc_menu_point].menu.S_Speed_Value];
break;
case KEY5_DOWN:
if(gvu_Menu_buffer[gvc_menu_point].menu.S_Speed_Value>0)
gvu_Menu_buffer[gvc_menu_point].menu.S_Speed_Value--;
else
gvu_Menu_buffer[gvc_menu_point].menu.S_Speed_Value=6;
gvu_Menu_buffer[gvc_menu_point].menu.S_Speed=
gcc_speed[gvu_Menu_buffer[gvc_menu_point].menu.S_Speed_Value];
break;
//---------------------------------------------------------------------------
case KEY6_UP:
case KEY6_DOWN:
gvc_voltage_point=gvu_Menu_buffer[gvc_menu_point].menu.S_Voltage;
if(gvc_voltage_point)
gvc_voltage_point=0;
else
gvc_voltage_point=1;
gvu_Menu_buffer[gvc_menu_point].menu.S_Voltage=gvc_voltage_point;
break;
default: break;
}
Fill_disp_buff(gvc_menu_point);
if(!gvc_menu_point)
{
gvb_com_flg=1;
gvb_time_ok_flg=1;
}
}
//----------------------------------------------------------------
if(gvb_com_flg)
{
gvb_com_flg=0;
Fill_disp_buff(gvc_com_out);
gvc_pulse_wide_point=gvu_Menu_buffer[gvc_com_out].menu.S_Pulse_Wide_Value;
gvc_pulse_gap_point=gvu_Menu_buffer[gvc_com_out].menu.S_Pulse_Gap-3;
gvc_current_point=gvu_Menu_buffer[gvc_com_out].menu.S_Current;
gvc_speed_point=gvu_Menu_buffer[gvc_com_out].menu.S_Speed_Value+1;
//gvc_speed_point=2;
/*
if(gvc_speed_point&0x01)
KS3=1;
else
KS3=0;
gvc_speed_point>>=1;
*/
gvc_pulse_gap_point<<=2;
gvc_pulse_wide_point<<=5;
gvc_speed_point<<=1;
P1=P1&0X03;
P1|=(gvc_pulse_gap_point|gvc_pulse_wide_point);
if(gvu_Menu_buffer[gvc_com_out].menu.S_Voltage)
VOLTAGE=1;
else
VOLTAGE=0;
//gvc_speed_point=~gvc_speed_point;
//P2=P2&gvc_speed_point;
if(gvc_speed_point&0x02)
F_A=0;
else
F_A=1;
if(gvc_speed_point&0x04)
F_B=0;
else
F_B=1;
if(gvc_speed_point&0x08)
F_C=0;
else
F_C=1;
//P2=P2|gvc_current_point;
//P2=P2|gvc_speed_point;
KS1=0;
KS2=0;
KS3=0;
gvb_speed_flg=1;
gvb_speed_time_flg=1;
}
if(gvb_speed_flg&&gvb_time_ok_flg)
{
gvb_speed_flg=0;
gvb_time_ok_flg=0;
gvi_com_counter=0;
/*
if(gvc_current_point&0x01)
KS3=1;
else
KS3=0;
gvc_current_point>>=1;
P1&=0xfc;
P1|=gvc_current_point;
*/
if(gvc_speed_point&0x01)
KS1=0;
else
KS1=1;
if(gvc_speed_point&0x02)
KS2=0;
else
KS2=1;
if(gvc_speed_point&0x04)
KS3=0;
else
KS3=1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -