新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用定時器進行計數(shù)的一個簡單例子

        用定時器進行計數(shù)的一個簡單例子

        作者: 時間:2012-11-15 來源:網(wǎng)絡 收藏

        /*
        注:該程序主要是如何運用進行計數(shù),體現(xiàn)模塊化的子函數(shù),是一個比較淺顯的程序
        */

        #includereg52.h> //
        #define uchar unsigned char //宏定義
        #define uint unsigned int
        uchar count; //定義全局變量
        void display_led() //led顯示子函數(shù)
        {
        if(count==20) //每隔1S發(fā)生變化(晶振為:12MHZ)
        {
        count=0; //計數(shù)清零,以便下次計數(shù)
        P2=~P2; //P2的值取反
        P2=P21; //P2的值左移
        P2=~P2;
        if(P2==0xff) //如果最后一個LED亮后,
        P2=0xfe; //則第一個LED亮
        }
        }
        void init() //初始化子函數(shù)
        {
        EA=1; //打開總中斷
        ET0=1; //打開中斷
        TR0=1; //啟動
        TMOD=0x01; //T0工作方式1,16位計數(shù)
        TH0=(65536-50000)/256;//設置定時器的初始值
        TL0=(65536-50000)%256;
        P2=0xfe; //給P2口賦初始值
        while(1)
        {
        display_led(); //調用LED顯示子函數(shù)
        }
        }
        void main() //主函數(shù)
        {
        init(); //調用初始化子函數(shù)
        }
        void delay() interrupt 1 //定時中斷子函數(shù)
        {
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        count++; //自加1
        }



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 拜城县| 融水| 潜江市| 南和县| 陆川县| 正镶白旗| 翁源县| 安国市| 拜泉县| 莲花县| 惠东县| 龙山县| 彭山县| 广东省| 喀什市| 凤庆县| 喜德县| 东兰县| 福鼎市| 宁安市| 托里县| 小金县| 武义县| 安庆市| 镶黄旗| 鄂州市| 开原市| 云南省| 肇州县| 永顺县| 旅游| 潜山县| 廉江市| 庆阳市| 建瓯市| 珠海市| 平远县| 济源市| 乐业县| 南乐县| 莒南县|