📄 main.c
字号:
#include "SPCE061V004.H"
#include "lab_parameter.h"
#include"splc501user.h"
#include"chinese.h"
#include"key.h"
#define P_IOB_Data (volatile unsigned int *)0x7005
#define P_IOB_Buffer (volatile unsigned int *)0x7006
#define P_IOB_Dir (volatile unsigned int *)0x7007
#define P_IOB_Attrib (volatile unsigned int *)0x7008
typedef unsigned char uchar;
#define HaveKey 1
#define NoKey 0
#define reference 2.500 //内部参考电压值
unsigned int KeyFlag;
unsigned int KeyVal;
char b0="0",b1="1",b2="2",b3="3",b4="4",b5="5",b6="6",b7="7",b8="8",b9="9",b=".";
char bb ,*p=0;
unsigned int k0=0,u=0,a11=0,a22=0,a33=0,b11=0,b22=0,b33=0,cc=0;
unsigned int key_value=0,ooo=0,tm0=0,tm1=0,tm2=0,tm3=0,tm[7]={0};
int key=0,i=0,value_h=0,j=0,k=0;
int key_in_value=2000,j0=0,binary=0,xx=0;
float value=0,Zvalue=0,Xvalue=0,Rvalue=0;
float set_value;
unsigned int key_in[10]={0},key_i=0;
unsigned int Da_data1=0x7ee0,Da_data2=0x7ee0,Da_data_flag=0,Ad_data=0;
float Ad_data_f=0,Data_f=0,Data_i_f=0;
float n=3.47,Ns=2.7285,Nb=30,R=0.334;//R=0.3157;
void Shift(void);
void Delay(void);
void ad5664_output(unsigned int channal,float votage);
int DataConversion(void);
float Tpower(int x);
void LCD_ini(void);
//=========================================================================================
//描述:主函数
//edit by Spring 维护记录:2007.01.12
//=========================================================================================
main()
{
int Ent_Flag = 0;
unsigned int uiKey;
unsigned int uxKey;
LCD_ini();
Key_Init() ;
while(1)
{
uiKey = Key_Get();
i=0;
switch(uiKey)
{
case KEY_0: //置确认键
if(Ent_Flag == 0)
{
Ent_Flag=1;
*P_Watchdog_Clear = 0x0001; //清看门狗
}
break;
case KEY_1: //该键保留
if(Ent_Flag == 0)
{
}
break;
case KEY_2: //该键保留
if(Ent_Flag == 0)
{
}
break;
case KEY_3: //实现手动输入功能
if(Ent_Flag == 0)
{
LCD501_Bitmap(0,40,(unsigned int *)encoding_23); //显示"手"
LCD501_Bitmap(16,40,(unsigned int *)encoding_24); //显示"动"
LCD501_Bitmap(32,40,(unsigned int *)encoding_1f); //显示"输"
LCD501_Bitmap(48,40,(unsigned int *)encoding_20); //显示"入"
LCD501_PutChar(64,40,'.');
LCD501_PutChar(80,40,'.');
LCD501_PutChar(96,40,'.');
for(j=0;j<=0x003f;j++) //延时
for(i=0;i<0xffff;i++)
*P_Watchdog_Clear = 0x0001;
LCD501_ClrScreen(0); //清屏
LCD501_Bitmap(0,0,(unsigned int *)encoding_19); //显示"预"
LCD501_Bitmap(16,0,(unsigned int *)encoding_1a); //显示"设"
LCD501_Bitmap(32,0,(unsigned int *)encoding_1b); //显示"电"
LCD501_Bitmap(48,0,(unsigned int *)encoding_1c); //显示"压"
LCD501_PutChar(64,0,':');
LCD501_PutChar(112,16,'V');
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_4: //输出"."
if(Ent_Flag == 0)
{
Shift();
tm[0]=10;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_5: //输出3
if(Ent_Flag == 0)
{
Shift();
tm[0]=3;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_6: //输出6
if(Ent_Flag == 0)
{
Shift();
tm[0]=6;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_7:
if(Ent_Flag == 0) //输出9
{
Shift();
tm[0]=9;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_8: //输出0
if(Ent_Flag == 0)
{
Shift();
tm[0]=0;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_9: //输出2
if(Ent_Flag == 0)
{
Shift();
tm[0]=2;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_A: //输出5
if(Ent_Flag == 0)
{
Shift();
tm[0]=5;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_B: //输出8
if(Ent_Flag == 0)
{
Shift();
tm[0]=8;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_C: //清零
if(Ent_Flag == 0)
{
tm[0]=tm[1]=tm[2]=tm[3]=tm[4]=tm[5]=tm[6]=0;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_D: //输出1
if(Ent_Flag == 0)
{
Shift();
tm[0]=1;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_E: //输出4
if(Ent_Flag == 0)
{
Shift();
tm[0]=4;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
case KEY_F: //输出7
if(Ent_Flag == 0)
{
Shift();
tm[0]=7;
for(i=0;i<7;i++)
{
bb=*(&b0 + tm[i]);
LCD501_PutString(112-(i+1)*8,16,bb);
}
*P_Watchdog_Clear = 0x0001; //清看门狗操作
}
break;
default:
break;
}
*P_Watchdog_Clear = 0x0001; //清看门狗
if(Ent_Flag==1)
{
Rvalue=DataConversion();
if(Rvalue>4)
{
value=0;
LCD501_ClrScreen(0); //清屏
LCD501_Bitmap(16,26,(unsigned int *)encoding_1f); //显示"输"
LCD501_Bitmap(32,26,(unsigned int *)encoding_20); //显示"入"
LCD501_Bitmap(48,26,(unsigned int *)encoding_1b); //显示"电"
LCD501_Bitmap(64,26,(unsigned int *)encoding_1c); //显示"压"
LCD501_Bitmap(80,26,(unsigned int *)encoding_27); //显示"过"
LCD501_Bitmap(96,26,(unsigned int *)encoding_28); //显示"高"
LCD501_Bitmap(24,52,(unsigned int *)encoding_29); //显示"请"
LCD501_Bitmap(40,52,(unsigned int *)encoding_2a); //显示"重"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -