📄 sc1.c
字号:
#include "msp430x14x.h"
#include "string.h"
#include "math.h"
#include "stdlib.h"
#include "float.h"
#include "stdio.h"
#define TRUE 1
#define FALSE 0
char signal=0;
int i=0,fig1=10000,fig2=4000;
int layer[5]={0,0,0,0,0};
char character1,character2;
char s4[6]={'\0'},s1[6]={'\0'},s2[9]={'\0'},s9[5]={'\0'};
char s8[9]={'\0'},s6[5]={'\0'}, s5[6]={'\0'},s7[5]={'\0'};
char pol[5]={'\0'},agc[5]={'\0'};
void getkey();
int j_flag=1,q_flag=1,g_flag=1,p_flag=1,manual_flag=0,go_flag=0,neg_flag=0,x_flag=0,y_flag=0,wait_kflag=0,wait_gflag=0,continue_flag=0;
float saveparam_agc,saveparam_fang,saveparam_jihua,saveparam_fuyang,param_fang,param_jihua,param_fuyang;
float temp_f;
unsigned char lock1=1,lock2=0 ,lock3=0,lock4=0,go_num=2;
int j=0;
char s1_rec[6]={'\0'},s3_rec[5]={'\0'},s4_rec[7]={'\0'},s5_rec[9]={'\0'};
char char_temp = 0;
char s8_rec[9]={'\0'};
char ns_figure=0,in_flag=1;
unsigned int ReceiveSequence_Len =0;
char ReceiveSequence[100]= {'\0'};
char flag=0,send_flag=0;
char SendSequence[100] = {'\0'};
unsigned int Reset = TRUE;
unsigned int SendSequence_Len = 0;
char show_buf[4][16];
char menu_1[4][16]={ {0x20,0x20,0x20,0x20,0xb2,0xcb,0x20,0x20,0x20,0x20,0xb5,0xa5},//菜单
{0x31,0x2e,0xb2,0xce,0xca,0xfd,0xc9,0xe8,0xd6,0xc3},//1.参数设置
{0x32,0x2e,0xca,0xd6,0xb6,0xaf,0xc4,0xa3,0xca,0xbd},//2.手动模式
{0x33,0x2e,0xd7,0xd4,0xb6,0xaf,0xc4,0xa3,0xca,0xbd}};//3.自动模式
char menu_2[2][16]={ {0x34,0x2e,0xcc,0xec,0xcf,0xdf,0xb8,0xe6,0xbe,0xaf},//4.故障告警
{0x35,0x2e,0xca,0xd6,0xb3,0xd6,0xbb,0xfa,0xc9,0xe8,0xd6,0xc3} } ;//5.手持机设置
char alarm1[4][16]={ { 0xbd,0xd3,0xca,0xd5,0xbb,0xfa,0x3a},//接收机
{ 0xc7,0xe3,0xd0,0xb1,0xd2,0xc7,0x3a},//倾斜仪
{0x47,0x50,0x53,0x3a},//GPS
{0xbc,0xab,0xbb,0xaf,0x3a}//极化
};
char gps_r[3][16]={{0x20},
{0x20,0x20,0x47,0x50,0x53,0x20,0xce,0xb4,0xb6,0xa8,0xce,0xbb},
{0x20,0x20,0x20,0x20,0xc7,0xeb,0xc9,0xd4,0xb5,0xc8},
};//GPS未定位请稍等
char gps_o[2][16]={{0x20},
{0x20,0x20,0x47,0x50,0x53,0x20,0xb6,0xa8,0xce,0xbb,0xcd,0xea,0xb3,0xc9}
};
char protect[3][16]={{0x20},
{0x20,0x20,0x20,0x20,0xb6,0xcf,0xb5,0xe7,0xb1,0xa3,0xbb,0xa4},
{0x20,0x20,0x20,0x20,0xc7,0xeb,0xb0,0xb4,0xb8,0xb4,0xce,0xbb} };//断电保护请复位
char state2[2][16]={{0xbe,0xad,0xb6,0xc8,0x3a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xa1,0xe3},//
{0xce,0xb3,0xb6,0xc8,0x3a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xa1,0xe3},//
//{0xc2,0xde,0xc5,0xcc,0x3a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xa1,0xe3}
};
char manual[4][16]={{0xb7,0xbd,0xce,0xbb,0x3a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xa1,0xe3},//方位
{0xb8,0xa9,0xd1,0xf6,0x3a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xa1,0xe3},//俯仰
{0xbc,0xab,0xbb,0xaf,0x3a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xa1,0xe3},//极化
{0xb5,0xe7,0xc6,0xbd,0x3a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x56}};//电平
char set1[4][16]={ {0x20,0x20,0x20,0x20,0xcc,0xec,0xcf,0xdf,0xc9,0xe8,0xd6,0xc3},//天线设置
{0xce,0xc0,0xd0,0xc7,0xbe,0xad,0xb6,0xc8,0x3a},//卫星经度
{0xd0,0xc5,0xb1,0xea,0xc6,0xb5,0xc2,0xca,0x3a},//信标频率
{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4d,0x48,0x7a,0x1f}//MHZ
};
char set2[3][16]={ {0xbc,0xab,0xbb,0xaf,0xb7,0xbd,0xcf,0xf2,0x3a},//极化方式
{0x20},
{0xb5,0xe7,0xc6,0xbd,0xc3,0xc5,0xcf,0xde,0x3a,0x20,0x20,0x20,0x20,0x20,0x56} //电平门限
};
char set3[3][16]={ {0xd5,0xbe,0xb5,0xe3,0xbe,0xad,0xb6,0xc8,0x3a},//站点经度
{0x20},
{0xd5,0xbe,0xb5,0xe3,0xce,0xb3,0xb6,0xc8,0x3a}//站点纬度
};
char back[3][16]={{0xb1,0xb3,0xbe,0xb0,0xb5,0xc6,0xc9,0xe8,0xd6,0xc3,0x3a},
{0xbf,0xaa,0xb0,0xb4,0x31},
{0xb9,0xd8,0xb0,0xb4,0x32}
};
char restart[2][16]={{0x20},
{0x20,0x20,0x20,0x21,0xb8,0xb4,0xce,0xbb,0xce,0xb4 ,0xcd,0xea,0xb3,0xc9}};
char restartok[3][16]={{0x20},
{0x20,0x20,0x20,0x20,0xb8,0xb4,0xce,0xbb,0xcd,0xea,0xb1,0xcf},
{0x20,0x20,0x20,0x20,0xc7,0xeb,0xb0,0xb4,0xb2,0xcb,0xb5,0xa5}
};
char pack[3][16]={{0x20},
{0x20,0x20,0x20,0x20,0xca,0xd5,0xb2,0xd8,0xc7,0xeb,0xb0,0xb4,0x31},//收藏请按1
{0x20,0x20,0x20,0x20,0xb8,0xb4,0xce,0xbb,0xc7,0xeb,0xb0,0xb4,0x32}//复位请按2
};
char init[4][16]={{0x20,0x20,0xa1,0xef,0xb0,0xae,0xbf,0xc6,0xb5,0xcf,0xa1,0xef},//爱科迪
{0x20},
{0xcc,0xec,0xcf,0xdf,0xd5,0xfd,0xd4,0xda,0xb3,0xf5,0xca,0xbc,0xbb,0xaf},//天线正在初始化
{0x20,0x20,0x20,0x20,0xc7,0xeb,0xc9,0xd4,0xb5,0xc8}};//请稍等
char ini[2][16]={{0x20},
{0x20,0x20,0x20,0x20,0xb3,0xf5,0xca,0xbc,0xbb,0xaf}
};
char initok[3][16]={{0x20},
{0x20,0x20,0xb3,0xf5,0xca,0xbc,0xbb,0xaf,0xcd,0xea,0xb1,0xcf,0x21,0x21},//初始化完成
{0x20,0x20,0xc7,0xeb,0xb0,0xb4,0xb2,0xcb,0xb5,0xa5,0xc9,0xe8,0xd6,0xc3}};//请按菜单设置
char bian1[3][16]={{0x20},
{0x20,0x20,0x20,0x20,0xb0,0xb2,0xd7,0xb0,0xb1,0xdf,0xb0,0xea},//安装边瓣
{0x20,0x20,0xcd,0xea,0xb3,0xc9,0xc7,0xeb,0xb0,0xb4,0xc8,0xb7,0xc8,0xcf}//完成请按确认
};
char bian2[3][16]={{0x20},
{0x20,0x20,0x20,0x20,0xb2,0xf0,0xd0,0xb6,0xb1,0xdf,0xb0,0xea},//拆卸边瓣
{0x20,0x20,0xcd,0xea,0xb3,0xc9,0xc7,0xeb,0xb0,0xb4,0xc8,0xb7,0xc8,0xcf}//完成请按确认
};
char pro1[3][16]={{0x20},
{0x20,0x20,0xbd,0xd3,0xca,0xd5,0xbb,0xfa,0xb7,0xa2,0xc9,0xfa,0xb9,0xca,0xd5,0xcf},//接收机发生故障
{0x20,0x20,0xb0,0xb4,0xc8,0xb7,0xc8,0xcf,0xbc,0xfc,0xbc,0xcc,0xd0,0xf8}};//按确认键继续
char pro2[3][16]={{0x20},
{0x20,0x20,0xbc,0xab,0xbb,0xaf,0xb7,0xa2,0xc9,0xfa,0xb9,0xca,0xd5,0xcf},//极化发生故障
{0x20,0x20,0xb0,0xb4,0xc8,0xb7,0xc8,0xcf,0xbc,0xfc,0xbc,0xcc,0xd0,0xf8}//按确认键继续
};
char pro3[3][16]={
{0x20},
{ 0x20,0x20,0xc7,0xe3,0xd0,0xb1,0xd2,0xc7,0xb7,0xa2,0xc9,0xfa,0xb9,0xca,0xd5,0xcf},//倾斜仪发生故障
{0x20,0x20,0xb0,0xb4,0xc8,0xb7,0xc8,0xcf,0xbc,0xfc,0xbc,0xcc,0xd0,0xf8}//按确认键继续
};
char wait[2][16]={{0x20},
{0x20,0x20,0x20,0x20,0xc7,0xeb,0xc9,0xd4,0xb5,0xc8}}
;
char zzsc[3][16]={ {0x20},
{0x20,0x20,0x20,0x20,0xd5,0xfd,0xd4,0xda,0xca,0xd5,0xb2,0xd8},
{ 0x20,0x20,0x20,0x20,0xc7,0xeb,0xc9,0xd4,0xb5,0xc8} };//正在收藏
char scwb[3][16]={{0x20},
{0x20,0x20,0x20,0x20,0xca,0xd5,0xb2,0xd8,0xcd,0xea,0xb1,0xcf},//收藏完毕
{0x20,0x20,0x20,0x20,0xb9,0xd8,0xb1,0xd5,0xb5,0xe7,0xd4,0xb4}};//请关闭电源
char zzfw[2][16]={ {0x20}, //复位
{0x20,0x20,0x20,0x20,0x20,0x20,0xb8,0xb4,0xce,0xbb}};
char Ch_null[16]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
char Ch_all[16]={
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
};
char key_temp =0;
char keya = 0xf8;
char keyb = 0xf8;
char keyc = 0xf8;
char keyd = 0xf8;
char keye = 0xf8;
int key=0; //char
#define KEY_0 0
#define KEY_1 1
#define KEY_2 2
#define KEY_3 3
#define KEY_4 4
#define KEY_5 5
#define KEY_6 6
#define KEY_7 7
#define KEY_8 8
#define KEY_9 9
#define KEY_DOT 10
#define KEY_NS 11
#define KEY_LEFT 12
#define KEY_RIGHT 15
#define KEY_UP 13
#define KEY_DOWN 14
#define KEY_CLR 16
#define KEY_ENTER 17
#define KEY_EDIT 18
#define KEY_MENU 19
#define KEY_STOP 20
//#define KEY_RESET 21
#define KEY_SIGN 22
union
{
int WW[40];
struct SatStation
{
float sat_long;
char sat_east;
float Station_long;
char Station_east;
float Station_lat;
char Station_north;
float rec_freq;
float track_range;
float Track_agc;
char polar_vet;
float luopan;
}param;
}saveparam,saveparam_temp;
#define PINDATA ( P4OUT )
#define PINRS (P5OUT |=BIT2)
#define PINRSC (P5OUT &=~BIT2)
#define PINRW (P5OUT |=BIT1)
#define PINRWC (P5OUT &=~BIT1)
#define PINEN (P5OUT |=BIT0)
#define PINENC (P5OUT &=~BIT0)
#define ALARMR (P5OUT &=~BIT7)
#define ALARMRC (P5OUT |=BIT7)
#define ALARMG (P5OUT &=~BIT6)
#define ALARMGC (P5OUT |=BIT6)
#define LOCKED (P5OUT &=~BIT5)
#define LOCKC (P5OUT|= BIT5)
#define SEARCH (P5OUT &=~BIT4)
#define SEARCHC (P5OUT |=BIT4)
#define BACK (P1OUT &=~BIT2)
#define BACKC (P1OUT |=BIT2)
void Delay(unsigned int t)
{
unsigned int i; //0~65535
for (i = t; i > 0; i--)
_NOP();
}
void set(char aa)
{SendSequence[SendSequence_Len]=aa;
SendSequence_Len++;
}
void set_end()
{ SendSequence[SendSequence_Len]=0x0D;
SendSequence_Len++;}
void set_sta(void)
{set('S');
set('t');
set('a');
set('?');
set_end();
}
void set_set(void)
{
set('S');
set('e');
set('t');
set('?');
set_end();
}
void set_wa(void)
{set('W');
set('a');
set('?');
set_end();
}
void setnum(char sk[],int n)
{ int i;
int m;
m=n;
for(i=0;i<m;i++)
{
if(!((sk[i]>='0')&&(sk[i]<='9')))
{
if(sk[i]!='.')
{
if(sk[i]==0x00)
break;
set('0');
}
}
else set(sk[i]);
}
}
void set_fre(void)
{
char sk[9]={'\0'};
if(SendSequence_Len<70)
{
set('F');//返回目前卫星频率(1000倍)
sprintf(sk,"%8.3f",saveparam.param.rec_freq);
setnum(sk,8);
set_end();
}
}
void set_go(void)
{set('G');
set('O');
set('!');
}
void set_sat_long(void)
{
char sk[6]={'\0'};
if(SendSequence_Len<70)
{
set('L');//设置卫星经度(10倍)
sprintf(sk,"%5.1f",saveparam.param.sat_long);
setnum(sk,5) ;
set('P');
if (saveparam.param.polar_vet==1)
set('V');
else
set('H');
set_end();
}
}
void set_station_long_lat(void)
{ char sk[6]={'\0'};
if(SendSequence_Len<70)
{
set('O');//设置卫星站点经度(10倍)
sprintf(sk,"%5.1f",saveparam.param.Station_long);
setnum(sk,5);
set('T');//设置卫星站点纬度(10倍)
sprintf(sk,"%4.1f",saveparam.param.Station_lat);
setnum(sk,4);
set_end();
}
}
void set_agc(void)
{
char sk[4]={'\0'};
if(SendSequence_Len<70)
{
set('H');//设置卫星站点经度(10倍)
sprintf(sk,"%3.1f",saveparam.param.Track_agc);
setnum(sk,3);
set_end();
}
}
void set_maualmode(void)
{
set('M');
set('_');
set('M');
set_end();
}
void set_automode(void)
{set('M');
set('_');
set('A');
set_end();
}
void set_aegr(void)
{set('M');
set('_');
set('N');
set_end();
}
void set_pack(void)
{set('B');
set('a');
set('!');
}
void set_restart(void)
{set('M');
set('_');
set('R');
set_end();
}
void set_add_p(void)
{
set ('P');
if(manual_flag==0)
set('1');
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -