新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機,計數溢出

        51單片機,計數溢出

        作者: 時間:2016-11-23 來源:網絡 收藏
        51單片機,計數溢出,CPU響應中斷,執行中斷函數過程中,計數器是否已清0開始計數,還是等CPU執行完中斷函數后再計數,

        請以下面程序為例解釋解釋

        本文引用地址:http://www.104case.com/article/201611/320238.htm

        //用T0使隔1秒流水燈亮一次,用T1使隔2秒靜態數碼管依次顯示數字
        #include
        #include
        #define uint unsigned int
        #define uchar unsigned char
        uchar tcount0,tcount1,temp,num;
        uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
        0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
        void main()
        {
        TMOD=0x11;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%6;
        TH1=(65536-50000)/256;
        TL1=(65536-50000)%6;
        EA=1;
        ET0=1;
        ET1=1;
        num=0;
        temp=0xfe;
        tcount0=0;
        tcount1=0;
        TR0=1;
        TR1=1;
        while(1);
        }
        void t0() interrupt 1//計數溢出,CPU響應中斷
        {
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%6;//設定回計數初值,但此時計數溢出后已清0仍在計數嗎?
        tcount0++;
        if(tcount0==20)
        {
        tcount0=0;
        P1=temp;
        temp=_crol_(temp,1);
        }
        }
        void t1() interrupt 3
        {
        TH1=(65536-50000)/256;
        TL1=(65536-50000)%6;
        tcount1++;
        if(tcount1==40)
        {
        tcount1=0;
        if (num==16)
        num=0;
        P0=table[num];
        num++;
        }
        }



        關鍵詞: 51單片機計數溢

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 体育| 铁力市| 通海县| 左权县| 宜阳县| 四会市| 射阳县| 蓬安县| 永泰县| 永城市| 济阳县| 凭祥市| 贵阳市| 赤城县| 达拉特旗| 潮州市| 广安市| 晋中市| 尚志市| 邵阳县| 巨鹿县| 永胜县| 桂东县| 五莲县| 枣强县| 交口县| 攀枝花市| 天全县| 北安市| 镇宁| 湛江市| 句容市| 大关县| 远安县| 长治市| 阳谷县| 西林县| 日土县| 和静县| 攀枝花市| 金坛市|