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

📄 sys_initial.c

📁 其乐达(Cheertek)LCD驱动芯片(CT675)的C51源代码
💻 C
字号:
#include "INC\SYS_DECLARE.H"
#include "INC\SYS_INITIAL.H"
#include "INC\SYS_GLOBAL.H"
#include "INC\SYS_KEY.H"
#include "INC\SYS_IR.H"
#include "INC\SYS_IIC.H"

/****************************************************************************
 * Internal function prototype declaretion
 ***************************************************************************/
void SYS_CPU_Initial(void);
void SYS_Variable_Initial(void);

/****************************************************************************
 * Function
 ***************************************************************************/
void SYS_Initial(void)
{
    SYS_CPU_Initial();
    SYS_Variable_Initial();
    SYS_BacklightPower(0);
    SYS_ChipReset();
    SYS_Key_Initial();
    SYS_IR_Initial();
}

//--------------------------------------------------------------------------
void SYS_CPU_Initial(void)
{
    IE      = 0;                        // Disable Interrupt
    TMOD    = 0x11;                     // Timer1: 16 bit timer, Timer0: 16 bit timer
    IP      = 0x07;                     // Set INT0,INT1,TIMER0 to high priority

    TH0     = TIMER0_INIT_VALUE >> 8;
    TL0     = TIMER0_INIT_VALUE & 0xFF;
    TH1     = 0;                        // Clear Timer1
    TL1     = 0;

    TR0     = 1;                        // Start Timer0, 10 mS fixed timer
    TR1     = 0;                        // Stop  Timer1, remote control

    IT0     = 0;                        // Set INT0 to level trigger,Scaler Interrupt
    IT1     = 1;                        // Set INT1 to edge trigger,IR Interrupt

    ET0     = 1;                        // Enable  Timer0 interrupt
    ET1     = 0;                        // Disable Timer1 interrupt

    EX0     = 0;                        // Disable INT0 interrupt
    EX1     = 0;                        // Disable INT1 interrupt

    CHIPCON = 0x14;                     // Enable STK601X's XDATA, CPU double clock rate

    STK601X_PAD_OPT1    = 0x00;
    STK601X_PAD_OPT2    = 0x00;
    STK601X_ADC         = 0x00;         // Disable ADC

    STK601X_DA0         = 0x00;
    STK601X_DA1         = 0x00;
    STK601X_DA2         = 0x00;
    STK601X_DA3         = 0x00;
    STK601X_DA4         = 0x00;

    STK601X_WDT         = 0x00;         // Disable Watchdog

    EA      = 1;
}

void SYS_Variable_Initial(void)
{
    gfFlowControlInitial        = 1;
    gbTimer1Sec                 = 0;
    gbOsdPromptTimer            = 0;
    gbModeDetectTimer           = 0;
    gbModeDetectCounter         = 3;
    gScalerPara.fAutoBklitCtrl  = 0;
    gScalerPara.fBatteryDetect  = 0;
    gSysInfo.fStopPolling       = 0;
}

void SYS_CpuEnterIspMode(void)
{
    CHIPCON         = 0x10;
    STK601X_WDT     = 0x00;
    IE              = 0;
    TCON            = 0x00;
    STK601X_ISP_SLV = 0x2E;             // STK6011_ISP_SlaAddr
    STK601X_ISP_EN  = 0x93;             // Keyword to enable ISP
    PCON            = 0x01;             // Enter idle mode to launch ISP
}

//--------------------------------------------------------------------------
void SYS_BacklightPower(BOOL fOnOff)
{
    BACKLIGHT_PIN = ~fOnOff;
}

//--------------------------------------------------------------------------
void SYS_ChipReset(void)
{
    CHIP_RESETN_PIN = 0;
    SYS_Delay_mS(0);
    CHIP_RESETN_PIN = 1;
}

⌨️ 快捷键说明

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