新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 定時器計數LED顯示的簡單程序

        定時器計數LED顯示的簡單程序

        作者: 時間:2012-11-10 來源:網絡 收藏

        /*
        注:該程序主要是如何運用定時器進行計數
        體現的子函數,是一個比較淺顯的程序
        */

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 精河县| 景洪市| 长岭县| 札达县| 凌云县| 沧源| 长泰县| 沐川县| 余庆县| 东辽县| 太湖县| 淅川县| 凤凰县| 邵东县| 余庆县| 蕉岭县| 淮阳县| 清水河县| 巨鹿县| 大城县| 合阳县| 新化县| 泰州市| 柏乡县| 攀枝花市| 灵川县| 孝义市| 龙陵县| 仙居县| 贵定县| 方山县| 大田县| 甘德县| 阿巴嘎旗| 遂平县| 冷水江市| 新龙县| 措美县| 康乐县| 循化| 永新县|