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

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

        返回頂部
        国产伦精品一区二区免费| 国产偷亚洲偷欧美偷精品| 四虎国产精品永久一区| 亚洲午夜精品久久久久久浪潮| 影音看片网站5566| 成人免费精品网站在线观看影片| 黄色污污视频在线观看| 国产精品偷窥熟女精品视频| 久久国产午夜精品一区二区三区| 日本人精品video黑人| 国产亚洲精品AA片在线观看不加载| 91麻豆精品国产| 久久66热人妻偷产精品9| 亚洲精品国产美女久久久| 影音先锋精品国产资源| 国产AV午夜精品一区二区入口| 亚洲精品国产精品乱码在线观看| 精品一区二区三区波多野结衣| 久久精品国产99国产电影网| 欧美成人精品欧美一级乱黄码| 亚洲欧美日韩精品久久| 乱人伦人妻精品一区二区| 久久996热精品xxxx| 亚洲精品无码鲁网中文电影| 久久99热狠狠色精品一区| 日韩精品无码免费视频| 久久久久99精品成人片牛牛影视 | 99久久精品毛片免费播放| 国产成人精品一区二区三区| 美女扒开尿口给男人捅| 久久国产精品久久精品国产| 老司机午夜网站国内精品久久久久久久久 | 亚洲精品高清久久| 精品国产三级a乌鸦在线观看| 中日韩产精品1卡二卡三卡| 91麻豆精品国产自产在线观看亚洲| 国产午夜精品理论片久久| 亚洲AV成人精品网站在线播放| 欧美精品色婷婷五月综合| 久久精品中文闷骚内射| 精品国产午夜肉伦伦影院|