新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 可預(yù)置的8位計數(shù)器程序的主要部分分析

        可預(yù)置的8位計數(shù)器程序的主要部分分析

        作者: 時間:2012-07-31 來源:網(wǎng)絡(luò) 收藏

        /******************************************************************/

        void pt_cnt(void) //輸出控制子開始

        {

        if((cnt[0]==pre_cnt[0])(cnt[1]==pre_cnt[1])

        (cnt[2]==pre_cnt[2])(cnt[3]==pre_cnt[3])

        (cnt[4]==pre_cnt[4])(cnt[5]==pre_cnt[5])

        (cnt[6]==pre_cnt[6])(cnt[7]==pre_cnt[7])) //若計數(shù)值等于

        out_flag=1; //輸出標(biāo)志置1

        else out_flag=0; //否則輸出標(biāo)志置0

        //=================================================

        if(out_flag)drv=0; //若輸出標(biāo)志為1,輸出端(P3.4)置0,驅(qū)動光耦U2

        else drv=1; //否則輸出端(P3.4)置1

        } //輸出控制子結(jié)束

        /**********************************************************/

        void main(void) //主開始

        { IE=0x84; //開放CPU中斷,開放外中斷1的中斷

        IT1=1; //置外中斷1為邊沿觸發(fā)

        while(1) //無限循環(huán)

        {P3_6=0;P3_7=1; //禁止發(fā)送給顯示器,消隱有效

        SBUF=0x00;while(!TI);TI=0; //向IC2發(fā)送0x00,使IC2輸出為全0

        if((P30x24)!=0x24)keydown_flag=1; //檢測P3.2、P3.5是否為高電平。

        //若不為高電平,說明有鍵按下,鍵被按下標(biāo)志置1

        else keydown_flag=0; //否則,鍵被按下標(biāo)志置0

        //-------------------------------------------------------------------------------

        SBUF=0xfe;while(!TI);TI=0; //向IC2發(fā)送0xfe

        if(!P3_2)set_flag=!set_flag; //若P3.2為0,說明S9鍵按下,標(biāo)志set_flag取反

        //==================================================

        if(!set_flag){cnter();dis_cnter();pt_cnt();delay(100);}

        //若標(biāo)志set_flag為0,調(diào)用計數(shù)、顯示計數(shù)、輸出控制的子程序

        else {scan_key();dis_pre_cnter();delay(10);}

        否則標(biāo)志set_flag為1,調(diào)用掃描S1~S8鍵、顯示值的子程序

        //=====================================================

        if(keydown_flag)delay(300); //因有鍵按下,調(diào)用延時300mS子程序,

        //以免調(diào)整鍵值的速度過快

        }

        } //主程序結(jié)束

        /***************************************************************/

        void extern_int1(void) interrupt 2 using 1 //外中斷1服務(wù)子程序

        {

        cnt[0]++; //的最低位加1

        }

        塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理

        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 翁源县| 察哈| 渭源县| 泰和县| 西华县| 泰州市| 古田县| 潍坊市| 昌吉市| 甘泉县| 安阳市| 冀州市| 全州县| 灵石县| 治县。| 横山县| 柏乡县| 屏南县| 沅江市| 三原县| 河津市| 灵璧县| 平乐县| 郁南县| 永昌县| 峨山| 山西省| 乐东| 巴塘县| 南丹县| 贵溪市| 广灵县| 甘肃省| 会宁县| 嘉峪关市| 平塘县| 婺源县| 宁河县| 柞水县| 镇江市| 黄龙县|