找回密碼
         注冊會員
        搜索附件  

        測試程序11.txt

         

        各位在行的幫我看看這代碼為什么不能運(yùn)行:
        各位在行的幫我看看這代碼為什么不能運(yùn)行
        /***********************************************************/
        //MCU : STC12C2052AD */
        //DATA: 2011.0602 */
        //EDIT: V 0.1 */
        /***********************************************************/
        //--------------------------------------------------
        //頭文件
        #include <STC12C2052AD.H>
        #include <intrins.h>
        #define uint unsigned int
        #define uchar unsigned char
        #define NOP() _nop_()
        //使用內(nèi)部時鐘6MHZ,
        #define T10MS 65536-500 //定時器初值設(shè)定,現(xiàn)在設(shè)定為1ms
        /***********************************************************/
        //變量定義 */
        /***********************************************************/
        bit Flag_p3p3;
        bit Flag_ex0;
        bit Flag_ex1;
        bit Enab_E_A;
        bit EA_En1_5;
        bit EA_En60s;
        /**********************************************************/
        /*
        sbit A = P3^2;
        sbit B0 = P3^3;
        sbit C = P3^4;
        sbit D = P3^5;
        sbit E = P3^7;
        */
        /**********************************************************/
        uint T0count ;
        uchar Pionum ;
        uchar Pionum1 ;
        uint E_Acount;
        /***********************************************************/
        //流水燈列表 */
        /***********************************************************/
        uchar code dis1[5] = {0x01,0x02,0x04,0x08,0x10};
        uchar code dis2[5] = {0x20,0x40,0x80,0x01,0x02};
        /***********************************************************/
        //延時子程序 */
        //輸入:ms */
        //輸出:無 */
        /***********************************************************/
        void Delay_ms(uchar ms)
        {
        uchar i,j;
        for(i=0;i<ms;i++)
        {
        for(j=0;j<10;j++) ;
        }
        }
        /***********************************************************/
        //系統(tǒng)變量初始化 */
        //輸入:無 */
        //輸出:無 */
        /***********************************************************/
        void SYS_init()
        {
        P3 = 0x00;
        P1 = 0x00;
        Pionum = 0;
        Pionum1 = 0;
        T0count = 0;
        Flag_p3p3= 1;
        Flag_ex0 = 0;
        Flag_ex1 = 0;
        Enab_E_A = 0;
        EA_En1_5 = 0;
        EA_En60s = 0;
        }
        /***********************************************************/
        //定時器0初始化 */
        //輸入:無 */
        //輸出:無 */
        /***********************************************************/
        void timer_init()
        {
        //WAKE_CLKO |=0x60;
        AUXR &=0x3f; //12分頻
        TL0 = T10MS&0xff; //1ms
        TH0 = (T10MS>>8)&0xff;
        TMOD = 0X11;
        ET0 = 1;
        TR0 = 1;
        EA = 1;

        }
        /***********************************************************/
        //外中斷初始化 */
        //輸入:無 */
        //輸出:無 */
        /***********************************************************/
        void Ex_init()
        {
        IT0=0;
        IT1=0; //外部下降沿觸發(fā)
        EX0=1; //開啟外部中斷
        EX1=1;
        }
        /***********************************************************/
        //定時器0中斷服務(wù)程序 */
        //輸入:無 */
        //輸出:無 */
        /***********************************************************/
        void timer0() interrupt 1
        {
        TL0 = T10MS&0xff; //1ms
        TH0 = (T10MS>>8)&0xff;
        T0count++;
        if(Enab_E_A)
        {
        E_Acount++;
        }
        else
        {
        E_Acount=0;
        }
        }
        /***********************************************************/
        //外中斷0服務(wù)程序 */
        //輸入:無 */
        //輸出:無 */
        /***********************************************************/
        void Ex_int0() interrupt 0
        {
        EX0=0;
        Delay_ms(10);
        if(Flag_ex0)
        {
        Flag_ex0=0;
        }
        else
        {
        Flag_ex0=1;
        T0count =0;
        }

        EX0=1;
        }
        /***********************************************************/
        //外中斷1服務(wù)程序 */
        //輸入:無 */
        //輸出:無 */
        /***********************************************************/
        void Ex_int1() interrupt 2
        {
        EX1=0;
        Delay_ms(10);
        if(Flag_ex1)
        {
        Flag_ex1=0;
        }
        else
        {
        Flag_ex1=1;
        T0count =0;
        }

        EX1=1;
        }
        /***********************************************************/
        //1-5流水燈運(yùn)行 */
        //輸入:無 */
        //輸出:無 */
        /***********************************************************/
        void LED_1_5()
        {
        if(Flag_ex0)
        {
        if(P3&0x08 ==0) //P3.3=1 ?
        {
        //--------------------------
        if((T0count == 6000)&&(Pionum<5))
        {
        T0count=0;
        P1 = dis1[Pionum++];
        }
        else if(Pionum>=5)
        {
        Pionum=0;
        }
        Flag_p3p3=1;
        }
        else
        {
        //--------------------------
        if(Flag_p3p3)
        {
        Flag_p3p3=0;
        T0count =0;
        }
        if((T0count == 10)&&(Pionum<5))
        {
        T0count=0;
        P1 = dis1[Pionum++];
        }
        else if(Pionum>=5)
        {
        Pionum=0;
        }

        }
        }
        }
        /***********************************************************/
        //6-10流水燈運(yùn)行 */
        //輸入:無 */
        //輸出:無 */
        /***********************************************************/
        void LED_6_10()
        {
        if(Flag_ex1)
        {
        if(P3&0x08 ==0) //P3.3=1 ?
        {
        //--------------------------
        if((T0count == 6000)&&(Pionum1<3))
        {
        T0count=0;
        P1 = dis1[Pionum1++];
        }
        else if((T0count == 6000)&&(Pionum1>=3)&&(Pionum1<5))
        {
        T0count=0;
        P3 = dis1[Pionum1++];
        }
        else if(Pionum1>=5)
        {
        Pionum1=0;
        }
        Flag_p3p3=1;
        }
        else
        {
        //--------------------------
        if(Flag_p3p3)
        {
        Flag_p3p3=0;
        T0count =0;
        }
        if((T0count == 10)&&(Pionum1<3))
        {
        T0count=0;
        P1 = dis1[Pionum1++];
        }
        else if((T0count == 10)&&(Pionum1>=3)&&(Pionum1<5))
        {
        T0count=0;
        P1 = dis1[Pionum1++];
        }
        else if(Pionum1>=5)
        {
        Pionum1=0;
        }

        }
        }
        }
        /***********************************************************/
        //6-10流水燈運(yùn)行 */
        //輸入:無 */
        //輸出:無 */
        /***********************************************************/
        void E_A_1_5()
        {
        while((P3&0x84 == 0)) //E=0 p3.7=0,p3.2=0
        {
        Enab_E_A=1;
        if(E_Acount>=10000) //大于10S,1-5流水燈
        {
        T0count =0;
        Pionum =0;
        E_Acount=0;
        EA_En1_5=1;
        }
        }
        //Enab_E_A=0;
        if(EA_En1_5)
        {
        while(Pionum<5)
        {
        if(P3&0x08 ==0) //P3.3=1 ?
        {
        //--------------------------
        if(T0count == 6000)
        {
        T0count=0;
        P1 = dis1[Pionum++];
        }
        Flag_p3p3=1;
        }
        else
        {
        //--------------------------
        if(Flag_p3p3)
        {
        Flag_p3p3=0;
        T0count =0;
        }
        if((T0count == 10))
        {
        T0count=0;
        P1 = dis1[Pionum++];
        }
        }
        }
        EA_En1_5=0;
        EA_En60s=1;
        E_Acount=0;
        } else Enab_E_A=0;
        //-----------------------------------------------------
        if(EA_En60s)
        {
        if(E_Acount>=60000) //大于60S ,1-5流水
        {
        while(Pionum<5)
        {
        if(P3&0x08 ==0) //P3.3=1 ?
        {
        //--------------------------
        if(T0count == 6000)
        {
        T0count=0;
        P1 = dis1[Pionum++];
        }
        Flag_p3p3=1;
        }
        else
        {
        //--------------------------
        if(Flag_p3p3)
        {
        Flag_p3p3=0;
        T0count =0;
        }
        if((T0count == 10))
        {
        T0count=0;
        P1 = dis1[Pionum++];
        }
        }
        }
        Enab_E_A=0;
        }
        }

        }
        /***********************************************************/
        //主函數(shù) */
        //功能1:C/D觸發(fā)后,對應(yīng)的1-5/6-10流水燈啟動,正常每6S跳變,*/
        // 如果B高時每10MS跳變 */
        //功能2:E高A無效,如果E底并且A連續(xù)底10S,1-5流水燈,并1M后*/
        // 重復(fù)一次 */
        /***********************************************************/
        void main()
        {

        SYS_init() ;
        timer_init();
        Ex_init() ;
        /*******************************************************/
        while(1)
        {
        LED_1_5() ; //外部C下降沿來是,1-5流水燈
        LED_6_10(); //外部D下降沿來是,6-10流水燈
        E_A_1_5() ; //E為低,并且A為低10S后,1-5流水一次,并6s后再循環(huán)一次
        }
        }

        [ 此帖被bsm5632在2011-06-04 19:29重新編輯 ]


        QQ|手機(jī)版|MCU資訊論壇 ( 京ICP備18035221號-2 )|網(wǎng)站地圖

        GMT+8, 2025-5-4 18:32 , Processed in 0.039727 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2025 Discuz! Team.

        返回頂部
        99精品无人区乱码在线观看| 麻豆国产精品VA在线观看不卡| 色哟哟国产精品免费观看| 久夜色精品国产一区二区三区 | 国产成人精品久久一区二区三区av | 亚洲综合一区二区国产精品| 国产精品无码免费播放| 精品露脸国产偷人在视频| 羞羞视频网站在线观看| freesexvideos精品老师毛多| 国产成人精品久久亚洲高清不卡| 中文字幕精品一区| japanese乱人伦精品| 精品久久久久久久久久中文字幕| 中文精品久久久久人妻不卡| 国产精品18久久久久久vr| 日本欧美国产精品第一页久久| 久久亚洲精品人成综合网| 亚洲中文字幕久久精品无码APP | 欧美日韩精品乱国产538| 久久丝袜精品中文字幕| 久久Av无码精品人妻系列| 国产精品成| 无码囯产精品一区二区免费 | 国产hs免费高清在线观看| 精品久久久久久综合日本| 影音看片网站5566| 久久精品国产亚洲Aⅴ蜜臀色欲| 五级黄无遮挡免费看| 精品九九久久国内精品| 最新国产精品拍自在线观看| 国产精品久久久久久久久鸭| 亚洲爆乳无码精品AAA片蜜桃| 97精品一区二区视频在线观看| 精品无码人妻久久久久久| 国产精品亚洲а∨无码播放| 久夜色精品国产一区二区三区| 1000部精品久久久久久久久| 亚洲精品国产高清嫩草影院| 久久青草国产精品一区| 成人免费毛片视频app|