新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C語言程序設(shè)計(jì):用計(jì)數(shù)器中斷實(shí)現(xiàn)100以內(nèi)的按鍵計(jì)數(shù)

        單片機(jī)C語言程序設(shè)計(jì):用計(jì)數(shù)器中斷實(shí)現(xiàn)100以內(nèi)的按鍵計(jì)數(shù)

        作者: 時(shí)間:2013-08-03 來源:網(wǎng)絡(luò) 收藏

        /* 名稱:用 100 以內(nèi)的按鍵計(jì)數(shù)

        說明:本例用 T0 按鍵技術(shù),由于計(jì)數(shù)寄存器初值為 1,因此

        P3.4 引腳的每次負(fù)跳變都會(huì)觸發(fā) T0 中斷,實(shí)現(xiàn)計(jì)數(shù)值累加。

        的清零用外部中斷 0 控制。
        */

        #includereg51.h>

        #define uchar unsigned char

        #define uint unsigned int

        //段碼

        uchar code

        DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

        uchar Count=0;

        //主程序

        void main()

        {

        P0=0x00;

        P2=0x00;

        TMOD=0x06; //計(jì)數(shù)器 T0 方式 2

        TH0=TL0=256-1; //計(jì)數(shù)值為 1

        ET0=1; //允許 T0 中斷

        EX0=1; //允許 INT0 中斷

        EA=1; //允許 CPU 中斷

        IP=0x02; //設(shè)置優(yōu)先級(jí),T0 高于 INT0

        IT0=1; //INT0 中斷觸發(fā)方式為下降沿觸發(fā)

        TR0=1; //啟動(dòng) T0

        while(1)

        {

        P0=DSY_CODE[Count/10];

        P2=DSY_CODE[Count%10];

        }

        }

        //T0 計(jì)數(shù)器中斷函數(shù)

        void Key_Counter() interrupt 1

        {

        Count=(Count+1)%100; //因?yàn)橹挥袃晌粩?shù)碼管,計(jì)數(shù)控制在 100 以內(nèi)(00~99)

        }

        //INT0 中斷函數(shù)

        void Clear_Counter() interrupt 0

        {

        Count=0;

        }

        單片機(jī)C語言程序設(shè)計(jì):用計(jì)數(shù)器中斷實(shí)現(xiàn)100以內(nèi)的按鍵計(jì)數(shù)

        c語言相關(guān)文章:c語言教程


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


        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 金门县| 沐川县| 轮台县| 鄱阳县| 洱源县| 曲水县| 尼木县| 山东| 澎湖县| 习水县| 濮阳市| 凤城市| 九龙县| 永安市| 皋兰县| 芦溪县| 贡嘎县| 泗洪县| 永兴县| 略阳县| 化德县| 佛冈县| 河曲县| 镇江市| 巨野县| 富顺县| 聂荣县| 铁岭市| 秦皇岛市| 万年县| 遂川县| 霍州市| 西和县| 罗甸县| 莒南县| 镇赉县| 昌都县| 长乐市| 永寿县| 泉州市| 巧家县|