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

📄 init.c

📁 一整套电梯控制器源程序
💻 C
字号:
#include "public.h"

void init(void)
{

    P1=0xf5;      //LHM QUESTION: 为什么是0xF5
    P3=0xff;  
     
    P2_0=1;
    P2_1=1;
    P2_2=1;
    P2_3=1;

    P2_5=0;
    P2_6=0;

	

    P2_4=!P2_4;   //sja1000片选选中   //LHM QUESTION: 是否应该是P2_4=0更好一些
    PA377=0xff;
    PB377=0xff;
    PC377=0xff;
    PD377=0xff;

    //定时器初始化(定时器0,16位定时器,50ms定时)
    TMOD=0x01;
    TH0=-50000/256;
    TL0=-50000%256;
    IP=0x08;      //LHM QUESTION : 设置T1最高优先级,为什么? 用了T0,并没用T1啊
    EA=1;
    ET0=1;        //T0开中断
    TR0=1;        //启动计数

}

void init_data(void)
{
    uchar i=0;
    for(i=0; i<FLOOR_DISP_BYTENUM; i++){
		m_cSrcFloorHigh[i]=0xFF;
		m_cSrcFloorLow[i]=0xFF;
        m_cDispFloorHigh[i]=0xFF;
        m_cDispFloorLow[i]=0xFF;
    }

    for(i=0; i<DIRECT_DISP_BYTENUM; i++){
//        m_cSrcDirect[i]=0xFF;
        m_cDispDirect[i]=0xFF;
    }

//    data5045.cF0=0;
//    data5045.cF1=0;
//    data5045.cF2=0;
//    data5045.cF3=0;
//    data5045.cF4=0; 

    m_RecData.cCurFloor=0xFF;         //保证新楼层的接收
    m_RecData.cDirect=0xFF;
    m_RecData.cMaxFloor=1;

//    m_cMakeNewFlg=1;                  //置做文字标记
    m_cFuncCnt=0;
    m_cFuncTimer=TIMER_FUNC_NUM;
    m_cSettingFuncFlg=0;
    m_cNewFuncFlg=0;

    m_cSubFuncCnt=0;                  //各功能计数(F0:1-8 F1:1-48 F2:1-3 F3:0/1 F4:0/1)
    m_cSubFuncTimer=TIMER_SUBFUNC_NUM;//功能切换计数器(每500毫秒切换一次)
    m_cSettingSubFuncFlg=0;
    m_cNewSubFuncFlg=0;

    m_cSubToParTimer=TIMER_SUBTOPAR_NUM; //
    m_cSubToParLess2sFlg=0;			  //2004.08.31	14:25 LHM 

	m_cWholeMoveOKFlg=0;	
	m_cMoveCnt=0;        
	m_cMoveTimer=TIMER_ONELINE_NUM;
	m_cNewLineFlg=0;

	m_set5045flg=0;

    time1_count=TIMER_FILTER_NUM;     //上呼计数
    time2_count=TIMER_FILTER_NUM;     //下呼计数
    time3_count=TIMER_FILTER_NUM;     //锁梯呼计数
    time4_count=TIMER_FILTER_NUM;     //消防返回计数
    time5_count=TIMER_FILTER_NUM;     //消防计数
	time6_count=TIMER_1000ms;
    time7_count=TIMER_200ms;
    time1_flg=0;       //上呼计数到标记
    time2_flg=0;       //下呼计数到标记
    time3_flg=0;       //消防计数到标记
    time4_flg=0;       //消防返回计数到标记
    time5_flg=0;       //锁梯计数到标记
	time6_flg=0;
	time7_flg=0;
    m_existupcallflg=0;  //上呼存在标记
    m_existdowncallflg=0;//下呼存在标记
    time_nocan_count=TIMER_400ms;
	time_nocan_flg=0;
    //四状态
    m_cFireFlg=0;
    m_cFireBaseFlg=0;
    m_cRepairFlg=0;
    m_cLockFlg=0;
    m_cLockDarkFlg=0;
    m_cStopFlg=0;
    m_cFireServiceFlg=0;

    time_stop_count=TIMER_STOP_NUM;             //到站动作计数
    time_stop_flg=0;                            //到站动作标志
    time_stop2s_flg=0;                          //到站动作计时到标志
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -