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

📄 welcome.msa

📁 ATJ2091N 54版源程序
💻 MSA
字号:
//************************************************************
//*  Project:SDK30 标准MP3-上电欢迎程序                       *
//*  File:welcome.msa                                       *
//*  SoftWare Engineer:jmzhang                              *
//*  2005-5-31 13:46  Version: 1.0                               *
//*  Actions Semiconductor Co., Ltd                          *
//*  Function Description:                                  *
//*  History Record:                                        *
//************************************************************
            #include "UI_S0724.h"
            name  Welcome
            public  DispStarting

#define        InitClear    132

            rseg    CODEDISPSTART
DispStarting:                                 //使LCM的Reset Pin 有效
//    ld    (welcomeNum),a
//    cp    0
//    jr    z,FirstGowelcome
//    jr    SecondGowelcome
//FirstGowelcome:
//    ret            //第一次进入//The first enter
//    
//SecondGowelcome:        //第二次进入 //The second enter       
            in      a,(0x05)
            ld      b,a
            or      07h
            out     (0x05),a

            in      a,(0x70)
            ld      c,a
            set     5,a
            set     4,a
            out     (0x70),a

            ld      a,b                     //切完IO才有RAM保存
            ld      (IO05Bak),a             //变量区
            ld      a,c
            ld      (IO70Bak),a             //变量区

        in      a,(0xee)             //F1:GIO
        and     1fh
        or    0x08
        out     (0xee),a
//******************************** Port configuration***************************
    in      a,(LCMRST_GIO_EN_REG)   //set GPIO_b0(Oled_RST) to Output Port.
    or      LCMRST_SET_BIT          
    out     (LCMRST_GIO_EN_REG),a
    
    in      a,(LCMA0_GIO_EN_REG)    //set GPIO_B2(Oled_A0) to Output Port.
    or      LCMA0_SET_BIT           
    out     (LCMA0_GIO_EN_REG),a
    
//    in      a,(LCMBL_GIO_EN_REG)    //set GPIO_B4(Oled_BackLightPower) to Output Port.
//    or      LCMBL_SET_BIT           
//    out     (LCMBL_GIO_EN_REG),a
    
//    in      a,(0f3h)
//    or      08h
//    out     (0f3h),a
//    
//    in      a,(0f4h)
//    or      08h
//    out     (0f4h),a
    
//    in      a,(LCMBL_GIO_DATA_REG)
//    or      LCMBL_SET_BIT
//    out     (LCMBL_GIO_DATA_REG),a


//***********reset S6B0724******************************
    in    a,(REG02_EMHiPageReg)        //REG02 保存
    ld    (REG02_Buff),a
    ld    a,0x18
    out    (REG02_EMHiPageReg),a        //enable ce3 and  clear CS1B         
        
    ld      c,LCMRST_SET_BIT        
    ld      d,LCMRST_CLR_BIT
    in      a,(LCMRST_GIO_DATA_REG)
    or      c
    out     (LCMRST_GIO_DATA_REG),a   //RESET pin high
    out     (LCMRST_GIO_DATA_REG),a   //Delay
    out     (LCMRST_GIO_DATA_REG),a   //Delay
    and     d
    out     (LCMRST_GIO_DATA_REG),a   //RESET pin low
    out     (LCMRST_GIO_DATA_REG),a   //Delay
    out     (LCMRST_GIO_DATA_REG),a   //Delay
    out     (LCMRST_GIO_DATA_REG),a   //Delay
    out     (LCMRST_GIO_DATA_REG),a   //Delay
    or      c
    out     (LCMRST_GIO_DATA_REG),a   //RESET pin high
    out     (LCMRST_GIO_DATA_REG),a   //Delay
    out     (LCMRST_GIO_DATA_REG),a   //Delay

//************** Initial configure
    
    ld    c,0xa2        //bias select    1/6
    call    sUI_CmdTrans
    ld    c,0xa1        //ADC select(s131-s36)
    call    sUI_CmdTrans
    ld    c,0xc0        //SHL select(com0-com31)        
    call    sUI_CmdTrans
    
    ld    c,0x27            //1+Ra/Rb=4
    call    sUI_CmdTrans
    ld    c,0x81
    call    sUI_CmdTrans
    ld    a,0x0c//(ContrastSelect)    
    ld    c,a
    call    sUI_CmdTrans        ////set reference voltage register,确定电压:5.3v
    ld    c,0x2f
    call    sUI_CmdTrans
       
       ld      c,0xaf            //display on
        call    sUI_CmdTrans
        ld      c,0xa4            //entire display off
        call    sUI_CmdTrans
    
//******************************** First clear screen **************************
    ld    c,0xb0        //Page address set:page 0
    call    sUI_CmdTrans    
    ld    c,0x10        //Column address set upper bit:0        
    call    sUI_CmdTrans
    ld    c,0x00        //Column address set lower bit:0
    call    sUI_CmdTrans 
    
    ld    b,InitClear
    in    a,(A0_GIO_DATA_REG)    
    or    A0_SET_BIT
    out    (A0_GIO_DATA_REG),a    //A0=1;Data bits:data
    xor    a

Clearline0_Cycle:
    ld    (0x8001),a
    djnz    Clearline0_Cycle
    
    ld    c,0xb1        //Page address set:page 1
    call    sUI_CmdTrans
    ld    c,0x10
    call    sUI_CmdTrans
    ld    c,0x0
    call    sUI_CmdTrans 
    ld    b,InitClear

    ld    b,InitClear
    in    a,(A0_GIO_DATA_REG)    
    or    A0_SET_BIT
    out    (A0_GIO_DATA_REG),a    //A0=1;Data bits:data
    xor    a
    
Clearline1_Cycle:
    ld    (0x8001),a
    djnz    Clearline1_Cycle
    
    ld    c,0xb2        //Page address set:page 2
    call    sUI_CmdTrans
    ld    c,0x10
    call    sUI_CmdTrans
    ld    c,0x00
    call    sUI_CmdTrans 
    
    ld    b,InitClear
    in    a,(A0_GIO_DATA_REG)    //A0=1;Data bits:data 
    or    A0_SET_BIT
    out    (A0_GIO_DATA_REG),a
    xor    a
    
Clearline2_Cycle:
    ld    (0x8001),a
    djnz    Clearline2_Cycle
    
    ld    c,0xb3        //Page address set:page 3
    call    sUI_CmdTrans
    ld    c,0x10
    call    sUI_CmdTrans
    ld    c,0x0
    call    sUI_CmdTrans 
    ld    b,InitClear

    in    a,(A0_GIO_DATA_REG)    //A0=1;Data bits:data 
    or    A0_SET_BIT
    out    (A0_GIO_DATA_REG),a
    xor    a
    
Clearline3_Cycle:
    ld    (0x8001),a
    djnz    Clearline3_Cycle
    
    
        in      a,(4eh)
        or      0x08
        out    (4eh),a              //清除WATCHDOG
    
    ld    a,5
    ld    (UpdPgNum),a
    ld    b,128
    ld    c,0xb0
    ld    hl,DisplayBuffer
lsUpdLoop:                
        call    sUpdOnePage             //输入参数 b=长度,c=Page选择,hl=Buffer地址 
        inc     c                       //c=Page选择
        ld      a,(UpdPgNum)
        dec     a     
        ld      (UpdPgNum),a
        jr      nz,lsUpdLoop

//        in      a,(4eh)
//        or      0x08
//        out    (4eh),a              //清除WATCHDOG
//
//        ld      c,DisplayOnReg      //LCD display on
//        call    sUI_CmdTrans

    ld    a,(REG02_Buff)
       out    (REG02_EMHiPageReg),a        //CE 恢复  
            ld      a,(IO05Bak)
            ld      b,a
            ld      a,(IO70Bak)
            out     (0x70),a
            ld      a,b
            out     (0x05),a

            ret


//********************************************************
sUpdOnePage:                                //输入参数 b=长度,c=Page选择,hl=Buffer地址
         push    bc
         call    sUI_CmdTrans
         ld      c,0x10
         call    sUI_CmdTrans
         ld      c,0
         call    sUI_CmdTrans
         call    sUI_TransPage            
         pop    bc
            ret



//********************************************************
/*
** FUNCTION:    sUI_CmdTrans
** PURPOSE:    Trasnport one Byte  CMD data to S6B0724
** PARAMETERS:    动到寄存器A
**         input---none
**        output---none
** DESCRIPTION: 注意这里的函数和硬件外围I/O分配关系密切,改动时要小心
*/
//********************************************************
sUI_CmdTrans:
    push    bc
    in     a,(LCMA0_GIO_DATA_REG)        //LCM A0=0; for s2 by ccm
    and  LCMA0_CLR_BIT
    out     (LCMA0_GIO_DATA_REG),a
    ld    a,c
    ld    (0x8000),a
    pop     bc
            ret

//******************************************************
sUI_TransPage:
    in    a,(LCMA0_GIO_DATA_REG)        //LCM A0=1; for s2 by ccm
    or    LCMA0_SET_BIT
    out   (LCMA0_GIO_DATA_REG),a
sUI_TransPage1:
            ld      a,(hl)
            ld      (0x8001),a
            inc     hl
            djnz    sUI_TransPage1
            ret




//****************************************************************8
DisplayBuffer:
    defb    0x00,0x00,0x00,0x08,0xf8,0x08,0x08,0x18,0x00,0x70,0x88,0x88,0x88,0x70,0x00,0x10
    defb    0xa8,0xa8,0xf8,0x08,0x00,0x00,0x70,0x88,0x88,0xf8,0x08,0x00,0x88,0xf8,0x08,0x00
    defb    0x00,0x88,0xf8,0x88,0x80,0xf8,0x08,0x00,0xfe,0xaa,0xea,0x8e,0x00,0x00,0x18,0x00
    defb    0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00
    defb    0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
        
    defb    0x00,0x00,0x00,0x02,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x02,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
        
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
        
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    defb    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
IO05Bak             defb    0   //1Byte
IO70Bak             defb    0   //1Byte
IOeeBak             defb    0   //1Byte
REG02_Buff            defb    0
welcomeNum             defb    0
UpdPgNum            defb    4


welcomestringstart:
welcomestring:      //"Starting..."
                    defb        62h,92h,92h,92h,8ch,0   //S
                    defb        20h,0fch,22h,02h,04h,0  //t
                    defb        04h,2ah,2ah,2ah,1eh,0   //a
                    defb        3eh,10h,20h,20h,10h,0   //r
                    defb        20h,0fch,22h,02h,04h,0  //t
                    defb        0,22h,0beh,02h,0,0      //i
                    defb        3eh,10h,20h,20h,1eh,0   //n
                    defb        30h,4ah,4ah,4ah,7ch,0   //g
                    defb        0,06h,06h,0,0,0         //.
                    defb        0,06h,06h,0,0,0         //.
                    defb        0,06h,06h,0,0,0         //.
welcomestringend:



end





























⌨️ 快捷键说明

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