<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 跟我來編一個最簡單的單片機程序

          跟我來編一個最簡單的單片機程序

          作者: 時間:2016-10-07 來源:網(wǎng)絡(luò) 收藏

            在中,讓某個端口輸出高電平或低電平都有專用的語句,以P1.0端口為例:

          本文引用地址:http://www.ex-cimer.com/article/201610/310905.htm

            讓該端口輸出高電平的語句是:

            SETB P1.0

            讓該端口輸出低電平的語句是:

            CLR P1.0

            好了,現(xiàn)在我們將小燈接在的P1.0端口上,如下圖所示:

            

           

            由上圖可知,當端口P1.0輸出高電平時,小燈D不亮,因為小燈中不會有電流通過;當端口P1.0輸出低電平時,小燈就亮,因為此時小燈中有電流通過。

            要讓小燈亮一會兒、滅一會兒,還必須要有一個延時的程序,下面就是讓小燈亮一會兒、滅一會兒,交替閃爍的程序:

            MAIN:;程序開始

            SETB P1.0;讓P1.0輸出高電平

            LCALL DELAY;這一行是調(diào)用延時子程序

            ;目的是讓P1.0保持高電平

            ;多停留一段時間

            CLR P1.0;讓P1.0輸出低電平

            LCALL DELAY;這一行也是調(diào)用延時子程序

            ;和剛才一樣,讓P1.0保持低

            ;電平停留一段時間,其實就

            ;是讓它多亮一會兒再熄滅

            LJMP MAIN;跳轉(zhuǎn)到MAIN處執(zhí)行(循環(huán))

            ;以下是延時子程序,有關(guān)該延時程序的內(nèi)容以后再學

            DELAY: MOV R7,#250

            D1: MOV R6,#250

            D2: DJNZ R6,D2

            DJNZ R7,D1

            RET

            END

            在以上匯編程序中,延時子程序每一行的具體含義先不管他,以后慢慢學到,上面的程序需要在一個名為“Keil uVision2”的軟件中匯編完成,匯編后得到一個*.hex文件,這就是目標文件,然后用編程器將該文件“寫”到89s51中,這樣該89s51就具有自動控制小燈閃爍的功能了。

            在實驗的時候,通常用發(fā)光二極管LED代替小燈,由于LED工作電壓小,由此LED要串接一個小電阻,用220歐姆——1k之間的都行,我用的是510歐姆的。

            

           

            這樣還不夠,工作還需要兩個條件,一是需要加上一定的工作電壓,AT89S51工作電壓為5V,第20腳接負極,第40腳接正極;另外還要給單片機安裝一個心臟起搏器,就是振蕩器,通常叫做時鐘,只要在18腳和19腳之間接一個石英晶體就行了,我用的是12MHz的,另外為了保證振蕩器穩(wěn)定工作,還要在18腳、19腳分別接一個27PF的小電容到地(就是接到負極),此外,89s51的第9腳為復位端,要接一個10uF電容到正極,再接一個10K電阻到負極,最后,第31腳也要和電源的正極接起來,關(guān)于31腳,以后再說,這樣一臺由單片機控制的會自動閃爍的小燈就做好了。下面是完整的電路圖:

            

           

            沒有使用的管腳空著就行了,什么也不用接。一通上電,小燈就開始不停的閃爍了。大約1秒鐘閃爍3——4次。



          關(guān)鍵詞: 單片機 匯編語言

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();