新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 定時(shí)器計(jì)數(shù)LED顯示的簡(jiǎn)單程序

        定時(shí)器計(jì)數(shù)LED顯示的簡(jiǎn)單程序

        作者: 時(shí)間:2012-11-10 來(lái)源:網(wǎng)絡(luò) 收藏

        /*
        注:該程序主要是如何運(yùn)用定時(shí)器進(jìn)行計(jì)數(shù)
        體現(xiàn)的子函數(shù),是一個(gè)比較淺顯的程序
        */

        #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; //計(jì)數(shù)清零,以便下次計(jì)數(shù)
        P2=~P2; //P2的值取反
        P2=P21; //P2的值左移
        P2=~P2;
        if(P2==0xff) //如果最后一個(gè)LED亮后,
        P2=0xfe; //則第一個(gè)LED亮
        }
        }
        void init() //初始化子函數(shù)
        {
        EA=1; //打開總中斷
        ET0=1; //打開定時(shí)器中斷
        TR0=1; //啟動(dòng)定時(shí)器
        TMOD=0x01; //T0工作方式1,16位計(jì)數(shù)
        TH0=(65536-50000)/256;//設(shè)置定時(shí)器的初始值
        TL0=(65536-50000)%256;
        P2=0xfe; //給P2口賦初始值
        while(1)
        {
        display_led(); //調(diào)用子函數(shù)
        }
        }
        void main() //主函數(shù)
        {
        init(); //調(diào)用初始化子函數(shù)
        }
        void delay() interrupt 1 //定時(shí)中斷子函數(shù)
        {
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        count++; //計(jì)數(shù)變量自加1
        }



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 兴国县| 丹阳市| 靖远县| 沾益县| 宾川县| 连城县| 同德县| 鱼台县| 靖远县| 新乐市| 乌审旗| 阿拉善左旗| 鄂尔多斯市| 阿勒泰市| 安泽县| 阜新市| 海原县| 呼图壁县| 容城县| 明星| 丘北县| 麻城市| 常山县| 广灵县| 彭阳县| 开平市| 赤水市| 温宿县| 赤壁市| 克拉玛依市| 兰州市| 通许县| 湾仔区| 洞头县| 富顺县| 岳普湖县| 伊春市| 平邑县| 万盛区| 普定县| 定结县|