新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機測變周期脈沖信號的簡便方法

        51單片機測變周期脈沖信號的簡便方法

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

        51單片機測變周期脈沖信號的簡便方法
        定時器Tl中斷服務程序清單如下:
        INT1:CLR TR1 ;關計數器1
        PUSH ACC;ACC入棧
        PUSH 00H;R0入棧
        CLR C;清零進位標志
        MOV A,TL1;計數值低8位→累加器
        ADD A,#23H;計數器值+中斷執行時間32us(12MHz晶振)+
        ;最小中斷響應時間3-脈沖周期
        MOV R0,A ;低8位暫存R0
        MOV A,TH1
        ADDC A,#00H
        MOVX @DPTR,A;脈沖周期高8位→@DPTR指向的RAM單元
        INC DPTR;指向下一RAM單元
        MOV A,R0
        MOVX @DPTR,A;脈沖周期低8位→DPTR指向的RAM單元
        INC DPTR
        INC R1;脈沖周期個數加一
        MOV TH1,#00H;清零計數器1
        MOV TL1,#00H
        POP 00H
        POP ACC
        SETB TR1;重新啟動計數
        RETI;中斷返回

        該中斷服務程序能采樣的最小脈沖周期為32us,若去掉該程序中的現場保護和將計數值變為脈沖周期放在采樣后進行,則可進一步減小能采樣的脈沖周期。能采樣的最大脈沖周期為65535us(12MHz晶振時),若大于該值,則用戶對程序稍加修改即可,因此,實際上對最大周期可不加限制。設對脈沖信號采樣100個周期,采樣值存于50H開始的外部RAM中,則主程序如下:

        MAIN:
        PUSH TMOD ;專用寄存器TMOD TCON IE入棧
        PUSH TCON
        PUSH IE
        MOV THI,#00H ;清零計數器
        MOV TL1,#00H
        MOV TMOD.10H;計數器1工作方式1
        SETB EA ;允許中斷
        SETB EX1 ;外部中斷1
        SETB IT1 ;INT1負跳變觸發中斷
        MOV DPTR,#50H;存脈沖周期的RAM首地址
        MOV R1,#00H ;R1一控制采樣周期個散
        SETB TR1 ;計數器1開始計時
        CJNE R1,#64H,$;等待100個周期采樣結束
        CLR TR1 ;關計數器
        POP IE
        POP TCON
        POP TMOD

        以上采樣的第一脈沖周期不準,應在數據處理時丟掉,也可在中斷服務程序中加判斷語句自動丟掉。由以上可以看出,該方法無額外硬件,軟件簡明,能測量的脈沖周期范圍大,但不能測得脈沖信號的第一個周期。

        51單片機相關文章:51單片機教程


        塵埃粒子計數器相關文章:塵埃粒子計數器原理
        晶振相關文章:晶振原理
        脈沖點火器相關文章:脈沖點火器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长子县| 拉萨市| 张家界市| 绩溪县| 乌苏市| 武功县| 明溪县| 鸡西市| 灵台县| 千阳县| 衡水市| 岱山县| 荆门市| 皋兰县| 沙田区| 正定县| 白沙| 辉南县| 枣庄市| 宜都市| 江西省| 莒南县| 苏州市| 东阳市| 昔阳县| 侯马市| 麻栗坡县| 百色市| 绥化市| 固原市| 三门峡市| 资溪县| 云林县| 钟山县| 正定县| 镇江市| 名山县| 元朗区| 古交市| 青川县| 景谷|