新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MC9S12XS128驅動LEDP10顯示屏

        MC9S12XS128驅動LEDP10顯示屏

        作者: 時間:2016-11-27 來源:網絡 收藏
        void hangxuan(unsigned char P)
        {
        A=P&0x01;
        B=(P>>1)&0x01;
        C=(P>>2)&0X01;
        D=(P>>3)&0X01;
        CT=1;
        }
        void init()
        {
        DisableInterrupts;
        SC=0;
        CP=0;
        A=0;
        B=0;
        C=0;
        D=0;
        RI=0;
        CT=1;
        DIR=0XFF;
        EnableInterrupts;
        }
        void INIT_PLL(void)
        {
        CLKSEL &= 0x7f; //set OSCCLK as sysclk
        PLLCTL &= 0x8F; //Disable PLL circuit
        CRGINT &= 0xDF;
        #if(BUS_CLOCK == 40000000)
        SYNR = 0x44;
        #elif(BUS_CLOCK == 32000000)
        SYNR = 0x43;
        #elif(BUS_CLOCK == 24000000)
        SYNR = 0x42;
        #endif
        REFDV = 0x81; //PLLCLK=2×OSCCLK×(SYNDIV+1)/(REFDIV+1)=64MHz ,fbus=32M
        PLLCTL =PLLCTL|0x70; //Enable PLL circuit
        asm NOP;
        asm NOP;
        while(!(CRGFLG&0x08)); //PLLCLK is Locked already
        CLKSEL |= 0x80; //set PLLCLK as sysclk
        }
        void timer_init()
        {
        //CLKSEL &= 0x7f; //set OSCCLK as sysclk
        TSCR1_PRNT=0;//使能預分頻
        TSCR2=0x87;//使能溢出中斷 128分頻
        TCNTH=((unsigned int)(-20000))/256; //500ms
        TCNTL=((unsigned int)(-20000))%6;
        TFLG2_TOF=1; //清除溢出中斷標志位
        TSCR1_TEN=1; //使能定時器
        }
        #pragma CODE_SEG __NEAR_SEG NON_BANKED
        interrupt void timer()
        {
        TFLG2_TOF=1; //清除溢出中斷標志位
        TCNTH=((unsigned int)(-20000))/256; //500ms
        TCNTL=((unsigned int)(-20000))%6;
        shu++;
        if(shu==128)
        {
        shu=0;
        }
        }

        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 青海省| 关岭| 中宁县| 隆昌县| 肇州县| 色达县| 进贤县| 江达县| 岢岚县| 吴桥县| 阳原县| 辽中县| 九龙坡区| 阜城县| 石楼县| 城固县| 绥宁县| 灵川县| 竹溪县| 介休市| 云阳县| 宜城市| 隆化县| 罗田县| 万全县| 邵阳市| 乐亭县| 贵德县| 溆浦县| 兴隆县| 秭归县| 平塘县| 彩票| 象山县| 中方县| 汕头市| 靖西县| 石屏县| 尼勒克县| 双城市| 来安县|