新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用單片機控制的閃爍燈

        用單片機控制的閃爍燈

        作者: 時間:2012-02-12 來源:網絡 收藏

        1.實驗任務
        如圖所示:在P1.0端口上接一個發光二極管L1,使L1在不停地一亮一滅,一亮一滅的時間間隔為0.2秒。
        2.電路原理圖
        用單片機控制的閃爍燈電路圖Flash light

        3.系統板上硬件連線
        把“系統”區域中的P1.0端口用導線連接到“八路發光二極管指示模塊”區域中的L1端口上。
        4.程序設計內容
        (1).延時程序的設計方法
        作為的指令的執行的時間是很短,數量大微秒級,因此,我們要求的時間間隔為0.2秒,相對于微秒來說,相差太大,所以我們在執行某一指令時,插入延時程序,來達到我們的要求,但這樣的延時程序是如何設計呢?下面具體介紹其原理:
        如圖4.1.1所示的石英晶體為12MHz,因此,1個機器周期為1微秒
        機器周期微秒
        MOVR6,#202個2
        D1:MOVR7,#2482個22+2×248=49820×
        DJNZR7,$2個2×248(498
        DJNZR6,D12個2×20=4010002
        因此,上面的延時程序時間為10.002ms。
        由以上可知,當R6=10、R7=248時,延時5ms,R6=20、R7=248時,延時10ms,以此為基本的計時單位。如本實驗要求0.2秒=200ms,10ms×R5=200ms,則R5=20,延時子程序如下:
        DELAY:MOVR5,#20
        D1:MOVR6,#20
        D2:MOVR7,#248
        DJNZR7,$
        DJNZR6,D2
        DJNZR5,D1
        RET
        (2)輸出
        如圖1所示,當P1.0端口輸出高電平,即P1.0=1時,根據發光二極管的單向導電性可知,這時發光二極管L1熄滅;當P1.0端口輸出低電平,即P1.0=0時,發光二極管L1亮;我們可以使用SETBP1.0指令使P1.0端口輸出高電平,使用CLRP1.0指令使P1.0端口輸出低電平。
        5.程序框圖

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

        未命名.jpg
        6.匯編源程序
        ORG0
        START:CLRP1.0
        LCALLDELAY
        SETBP1.0
        LCALLDELAY
        LJMPSTART
        DELAY:MOVR5,#20;延時子程序,延時0.2秒
        D1:MOVR6,#20
        D2:MOVR7,#248
        DJNZR7,$
        DJNZR6,D2
        DJNZR5,D1
        RET
        END
        7.C語言源程序
        #include
        sbitL1=P1^0;
        voiddelay02s(void)//延時0.2秒子程序
        {
        unsignedchari,j,k;
        for(i=20;i>0;i--)
        for(j=20;j>0;j--)
        for(k=248;k>0;k--);
        }
        voidmain(void)
        {
        while(1)
        {
        L1=0;
        delay02s();
        L1=1;
        delay02s();
        }
        }



        關鍵詞: 閃爍 控制 單片機

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 浙江省| 瑞金市| 阿鲁科尔沁旗| 永丰县| 柘城县| 徐汇区| 井陉县| 弋阳县| 长沙市| 巴楚县| 沿河| 迁西县| 山丹县| 天津市| 平定县| 泸西县| 和平县| 安远县| 苏尼特右旗| 高淳县| 清苑县| 聂荣县| 丰城市| 景谷| 武清区| 永顺县| 大足县| 尚义县| 汝南县| 军事| 利津县| 甘孜县| 巴彦县| 黄冈市| 收藏| 龙海市| 监利县| 辰溪县| 灵川县| 东源县| 利川市|