⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 基于华邦W925E/C240所开发的短信话机、来电显示的C语言源程序
💻 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 + -