新聞中心

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

        51單片機系統應用

        作者: 時間:2016-11-26 來源:網絡 收藏
        應用1:設有51應用系統連接如附圖。試說明該系統分別執行如下程序段A和程序段B時,與P1.0端口連接的LED如何顯示變化?對應程序段A和程序段B的顯示變化有何區別?

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

        程序段A:

        LP: CPL P1.0

        MOV R0,#0

        DJNZ R0,$

        JMP LP

        程序段B:

        LP: SETB P1.0

        DJNZ R0,$

        CLR P1.0

        DJNZ R0,$

        DJNZ R0,$

        JMP LP

        答:對應程序段A和程序段B,LED都將周期性變換亮滅狀態。每個亮滅變換周期內,對程序段A,LED持續亮的時間與持續滅的時間長度相同;對程序段B,LED持續亮的時間是持續滅的時間長度的2倍。程序段B時的LED亮滅周期約為程序段A時的LED亮滅周期的1.5倍。

        應用2:設有51應用系統連接如應用1附圖,且系統所用晶振頻率為12MHz。試編寫程序段應用51單片機的定時/計數器1實現連接在P1.0上的LED的顯示狀態每隔10秒鐘翻轉一次。

        答:

        MOV TMOD,#20H;T1定時方式2:8位自動重裝入

        MOV TH1,#(256-250) ;定時周期250us(對應12MHz晶振,每個機器周期=1us)

        MOV TL1,TH1

        CLR TF1;清T1溢出標志

        SETB TR1;啟動T1計時

        MOV R0,#0;R0用于累計T1溢出的次數

        MOV R1,#0;R1用于累計R0達到200的次數

        LP:JBC TF1,L1;如果TF1為1則清零TF1并轉去進行溢出次數累計

        JMP LP;循環等待T1溢出

        L1:INC R0;累計T1溢出次數

        CJNE R0,#200,LP;未達到200次則轉去等待下一次溢出

        MOV R0,#0;確保R0的值在0~199之間

        INC R1;累計時間達到50ms的次數(250us*200=50ms)

        CJNE R1,#200,LP;累計時間未達到10s則轉去等待下一次溢出

        MOV R1,#0;確保R1的值在0~199之間

        CPL P1.0;累計時間已達到10s,則翻轉P1.0狀態1次(50ms*200=10s)

        JMP LP;繼續循環累計時間



        關鍵詞: 51單片機系統應

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 邮箱| 进贤县| 仙游县| 忻城县| 民县| 丘北县| 新民市| 上犹县| 大竹县| 台北市| 清水河县| 巴塘县| 临桂县| 郓城县| 松潘县| 蓝田县| 韩城市| 思茅市| 肥城市| 富顺县| 大方县| 即墨市| 古蔺县| 金寨县| 康乐县| 富顺县| 武乡县| 广灵县| 夏邑县| 宁蒗| 东阳市| 昌吉市| 五莲县| 罗平县| 娱乐| 东兴市| 荥经县| 华坪县| 若羌县| 泾阳县| 申扎县|