新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機的脈沖控制器

        51單片機的脈沖控制器

        作者: 時間:2016-11-24 來源:網(wǎng)絡 收藏
        這個是在前面那個定時器的基礎(chǔ)上改過來的。
        脈沖控制器
        輸出4個脈沖,輸出方式:
        先輸出P0 50ms,停止100ms后,輸出P1 50ms,停止100ms后。。。
        P3輸出完成后,停止10秒,之后循環(huán)
        由于時間比較規(guī)整,可以在中斷里判斷輸出:
        第一個到時,輸出P0, 第二個到時,關(guān)閉P0 第三個到時,無動作
        第四個到時,輸出P1, 第五個到時,關(guān)閉P1 第六個到時,無動作
        第七個到時,輸出P2, 第八個到時,關(guān)閉P2 第九個到時,無動作
        第十個到時,輸出P3, 第11個到時,關(guān)閉P3
        休息200個周期,第211個到時,復位i
        case i=1,4,7,10,輸出; 2,5,8,11,關(guān)閉所有輸出
        50ms,晶振為11.0592,初值為0x4C00
        #include "reg51.h"
        sbit P0_0 = P0^0;
        sbit P0_1 = P0^1;
        sbit P0_2 = P0^2;
        sbit P0_3 = P0^3;
        char i = 0;
        void main()
        {
        TMOD = 0x11; //T0方式1
        TL0 = 0x0; //TL0的初值
        TH0 = 0x4C; //TH0的初值
        ET0 = 1; //定時器1的中斷允許
        EA = 1; //開中斷
        TF0 = 0;
        TR0 = 1;
        while(1);
        }
        void Int_T0() interrupt 1 using 2
        {
        TL0 = 0x00; //重新裝入初值
        TH0 = 0x4C;
        i++;
        switch (i)
        {
        case 1: P0_0 = 0; break;
        case 2: P0_0 = 1; break;
        case 4: P0_1 = 0; break;
        case 5: P0_1 = 1; break;
        case 7: P0_2 = 0; break;
        case 8: P0_2 = 1; break;
        case 10: P0_3 = 0; break;
        case 11: P0_3 = 1; break;
        case 211: i = 0; break;
        }
        }



        關(guān)鍵詞: 51單片機脈沖控制

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 固阳县| 灌南县| 屏东市| 车致| 新巴尔虎左旗| 乌审旗| 威远县| 朔州市| 青海省| 丹东市| 犍为县| 双柏县| 东乌珠穆沁旗| 武汉市| 三台县| 凤山市| 西丰县| 城市| 黄平县| 上思县| 青州市| 呼玛县| 扶余县| 侯马市| 岢岚县| 德阳市| 咸丰县| 延安市| 赫章县| 平阴县| 时尚| 凌云县| 沧源| 柘荣县| 宁夏| 额尔古纳市| 桓台县| 昭平县| 高台县| 寿阳县| 启东市|