📄 main.c
字号:
#include <intrins.h>
#include <absacc.h>
#include <math.h>
#include <float.h>
#include <initmcu.h> //端口定义、数据宏定义
#include <TABLE.h> //显示的数据表格
void Read_EE(uchar RLen,uint SAdd,uchar xdata *DAdd);
void Write_EE(uchar RLen,uint SAdd,uchar xdata *DAdd);
void DISPro(uchar code *LPIC);
void StartTxd(void);
void divdata(void)
{
uint dataI;
uchar ddd;
ddd=dataI/140;
}
void InitMCU(void)
{
P0 = 0xFF ;
P1 = 0xFF ;
P2 = 0xEF ;
P3 = 0xFF ;
BACK = LEDON ;
PMR |= 0x41 ; //启动77E58的外部SRAM
PCON = 0x00 ;
TMOD = 0x20 ; //设置定时器1为自动重装(串口) 注意定时0
SCON1 = 0x50 ; //设置8位UART方式,启动串口1
TL1 = 0xFD; // 0xFD ;
TH1 = 0xFD; // 0xFD ; //设置波特率为9600
TCON = 0x50 ;
SCON = 0x50 ; //设置8位UART方式,启动串口0
CKCON=0x01;
T2CON=0x34;
WDCON=0x00;
EIE=0x00;
T2MOD = 0x00 ;
RCAP2H=0xFF; // 9600/FFDC ;4800/FFB8; 2400/FF70; 1200/FEE0
RCAP2L=0xB8;
IP = 0x50;//0x08 ;
IE = 0xD3 ; //启动总中断
}
//---------------------------------------//
//-------------始化RAM资源---------------//
void InitRAM(void)
{ uchar i;
for(i=3;i<9;i++)
{DISTemp[i]=0x00;
}
t_empty=0; //串口0初始化标志
t_done=0;
r_full=0;
r_out=14;
t_out=1;
r_in=0;
t_buf[0]=0x68;
t_buf[2]=0x43; //串口1初始化标志
t_out1=1;
t_empty1=0;
t_done1=0;
r_full1=0;
r_in1=0;
t_buf1[0]=0x7A;
FRTX1 = 0;
KeyTemp = 0;
Flag_Tel = 0;
Flag_EE = 0;
Flag_Set = 0;
KeyTime =0x08;
KeyDelay =TimeNKD;
PIC =0x00;
FGB =1;
Flag_Warn =1;
ReTxdTimes=0x00;
IOintFlag=0xFF;
for(i=0;i<8;i++)
{TimeIO[i]=0x00;
WarnAdd[i]=0x00;
}
WarnAdd[8]=0x00;
KJBJ=0;
ZDTX=0;
ZDGJ=0;
WarnFlag=0;
}
//---------------延时子程序------------//
//#pragma disable
void Delay()
{
NOP;
NOP;
NOP;
NOP;
NOP;
NOP;
}
// Delay time 10ms //
//#pragma disable
void Delay10ms()
{
uchar i,j;
for(i=0;i<25;i++)
{
for(j=0;j<250;j++)
{}
}
}
void Delay2s(void)
{
uchar i;
for(i=0;i<200;i++)
{WD=~WD;
Delay10ms();
}
}
//--------------延时结束-----------------//
//--------------数据转换-----------------//
uint HEXtoBCD(uchar HEXData)
{uint BCDData=0x00;
while(HEXData>99)
{
HEXData-=100;
BCDData++ ;
}
BCDData<<=4;
while (HEXData>9)
{
HEXData-=10;
BCDData++;
}
BCDData=(BCDData<<=4)|HEXData;
return BCDData;
}
/*
ulong HEXtoBCD(uint HEXData)
{ulong idata BCDData=0x00;
while(HEXData>9999)
{HEXData-=10000;
BCDData++;
}
BCDData<<=4;
while(HEXData>999)
{HEXData-=1000;
BCDData++;
}
BCDData<<=4;
while(HEXData>99)
{
HEXData-=100;
BCDData++ ;
}
BCDData<<=4;
while (HEXData>9)
{
HEXData-=10;
BCDData++;
}
BCDData=(BCDData<<=4)|HEXData;
return BCDData;
}
uint BCDtoHEX(uint BCDData)
{uchar i1,i2,i3,i4;
i1=(BCDData>>12)&0x0f;
i2=(BCDData>>8)&0x0f;
i3=(BCDData>>4)&0x0f;
i4=BCDData&0x0f;
BCDData=i1*1000+i2*100+i3*10+i4;
return BCDData;
}
ulong LHEXtoBCD(ulong HEXData)
{ulong BCDData=0x00;
while(HEXData>99999999)
{
HEXData-=100000000;
BCDData++;
}
BCDData<<=4;
while(HEXData>9999999)
{
HEXData-=10000000;
BCDData++;
}
while(HEXData>999999)
{
HEXData-=1000000;
BCDData++;
}
BCDData<<=4;
while(HEXData>99999)
{
HEXData-=100000;
BCDData++;
}
BCDData<<=4;
while(HEXData>9999)
{HEXData-=10000;
BCDData++;
}
BCDData<<=4;
while(HEXData>999)
{HEXData-=1000;
BCDData++;
}
BCDData<<=4;
while(HEXData>99)
{
HEXData-=100;
BCDData++ ;
}
BCDData<<=4;
while (HEXData>9)
{
HEXData-=10;
BCDData++;
}
BCDData=(BCDData<<=4)|HEXData;
return BCDData;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -