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

        測試程序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.

        返回頂部
        精品一区二区三区在线观看| 亚洲日韩国产AV无码无码精品| 日本不卡在线播放| 国产精品视频永久免费播放| 91精品国产福利尤物| 2020最新久久久视精品爱| 久久久久人妻一区精品| 亚洲精品卡2卡3卡4卡5卡区| 99热国内精品| 久久精品国产一区二区电影| 亚洲av无码精品网站| 亚洲国产精品一区二区久久| 国产伦精品一区二区三区| 日本精品在线视频| 欧美精品区一级片免费播放| 无码人妻精品一区二区三区99仓本| 2020国产精品| 精品人妻无码专区中文字幕| 日韩精品亚洲人成在线播放| 97热久久免费频精品99| 国模和精品嫩模私拍视频| 无码国产精品一区二区免费式芒果 | 国产夫妇精品自在线| 国产呦小j女精品视频| 国产精品每日在线观看男人的天堂 | 成人精品在线视频| 亚洲国产午夜中文字幕精品黄网站 | 2023国产精品自拍| 青春草在线免费视频| 欧洲精品视频在线观看| 在线亚洲精品福利网址导航| 国产日韩欧美精品| 久久国产精品一区二区| 午夜三级国产精品理论三级 | 国产精品小黄鸭一区二区三区| 精品亚洲永久免费精品| 亚洲午夜精品久久久久久人妖 | 国产最新进精品视频| 国产情侣大量精品视频| 精品国际久久久久999波多野| 久久精品视屏|