在匯編語言中,讓某個(gè)端口輸出高電平或低電平都有專用的語句,以P1.0端口為例:
讓該端口輸出高電平的語句是:
SETB P1.0
讓該端口輸出低電平的語句是:
CLR P1.0
好了,現(xiàn)在我們將小燈接在單片機(jī)的P1.0端口上,如下圖所示:
由上圖可知,當(dāng)端口P1.0輸出高電平時(shí),小燈D不亮,因?yàn)樾糁胁粫?huì)有電流通過;當(dāng)端口P1.0輸出低電平時(shí),小燈就亮,因?yàn)榇藭r(shí)小燈中有電流通過。
要讓小燈亮一會(huì)兒、滅一會(huì)兒,還必須要有一個(gè)延時(shí)的程序,下面就是讓小燈亮一會(huì)兒、滅一會(huì)兒,交替閃爍的程序:
MAIN:;程序開始
SETB P1.0;讓P1.0輸出高電平
LCALL DELAY;這一行是調(diào)用延時(shí)子程序
;目的是讓P1.0保持高電平
;多停留一段時(shí)間
CLR P1.0;讓P1.0輸出低電平
LCALL DELAY;這一行也是調(diào)用延時(shí)子程序
;和剛才一樣,讓P1.0保持低
;電平停留一段時(shí)間,其實(shí)就
;是讓它多亮一會(huì)兒再熄滅
LJMP MAIN;跳轉(zhuǎn)到MAIN處執(zhí)行(循環(huán))
;以下是延時(shí)子程序,有關(guān)該延時(shí)程序的內(nèi)容以后再學(xué)
DELAY: MOV R7,#250
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END
在以上匯編程序中,延時(shí)子程序每一行的具體含義先不管他,以后慢慢學(xué)到,上面的程序需要在一個(gè)名為“Keil uVision2”的軟件中匯編完成,匯編后得到一個(gè)*.hex文件,這就是目標(biāo)文件,然后用編程器將該文件“寫”到單片機(jī)89s51中,這樣該89s51就具有自動(dòng)控制小燈閃爍的功能了。
在實(shí)驗(yàn)的時(shí)候,通常用發(fā)光二極管LED代替小燈,由于LED工作電壓小,由此LED要串接一個(gè)小電阻,用220歐姆——1k之間的都行,我用的是510歐姆的。
這樣還不夠,單片機(jī)工作還需要兩個(gè)條件,一是需要加上一定的工作電壓,AT89S51工作電壓為5V,第20腳接負(fù)極,第40腳接正極;另外還要給單片機(jī)安裝一個(gè)心臟起搏器,就是振蕩器,通常叫做時(shí)鐘,只要在18腳和19腳之間接一個(gè)石英晶體就行了,我用的是12MHz的,另外為了保證振蕩器穩(wěn)定工作,還要在18腳、19腳分別接一個(gè)27PF的小電容到地(就是接到負(fù)極),此外,89s51的第9腳為復(fù)位端,要接一個(gè)10uF電容到正極,再接一個(gè)10K電阻到負(fù)極,最后,第31腳也要和電源的正極接起來,關(guān)于31腳,以后再說,這樣一臺(tái)由單片機(jī)控制的會(huì)自動(dòng)閃爍的小燈就做好了。下面是完整的電路圖:
沒有使用的管腳空著就行了,什么也不用接。一通上電,小燈就開始不停的閃爍了。大約1秒鐘閃爍3——4次。
-
單片機(jī)
+關(guān)注
關(guān)注
6043文章
44623瀏覽量
638774 -
發(fā)光二極管
+關(guān)注
關(guān)注
13文章
1205瀏覽量
66517 -
匯編語言
+關(guān)注
關(guān)注
14文章
410瀏覽量
35965
原文標(biāo)題:跟我來編一個(gè)最簡單的單片機(jī)程序
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
如何編寫STC單片機(jī)的ISP協(xié)議
![如何<b class='flag-5'>編寫</b>STC<b class='flag-5'>單片機(jī)</b>的ISP協(xié)議](https://file1.elecfans.com//web2/M00/A5/4E/wKgZomUMN9SAV1E0AAARnmEjXlA045.gif)
單片機(jī)蜂鳴器簡單發(fā)聲程序【C語言版】
給要接觸單片機(jī)和剛接觸單片機(jī)的人一些程序編寫的經(jīng)驗(yàn)之談,Some experience of MCU
使用單片機(jī)做一個(gè)簡單的流水燈的程序和燒寫資料免費(fèi)下載
![使用<b class='flag-5'>單片機(jī)</b>做<b class='flag-5'>一個(gè)</b><b class='flag-5'>簡單</b>的流水燈的<b class='flag-5'>程序</b>和燒寫資料免費(fèi)下載](https://file.elecfans.com/web1/M00/A3/CD/o4YBAF1baRCAVWs-AASxHMIsm-Y130.png)
一個(gè)簡單的51單片機(jī)串口接收和發(fā)送的程序免費(fèi)下載
![<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>簡單</b>的51<b class='flag-5'>單片機(jī)</b>串口接收和發(fā)送的<b class='flag-5'>程序</b>免費(fèi)下載](https://file.elecfans.com/web1/M00/97/07/o4YBAF0JnfGAUE6jAAGZwKtWrso171.png)
如何制作一個(gè)單片機(jī)的最小系統(tǒng)程序和資料詳細(xì)說明
![如何制作<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>單片機(jī)</b>的最小系統(tǒng)<b class='flag-5'>程序</b>和資料詳細(xì)說明](https://file.elecfans.com/web1/M00/C6/46/o4YBAF9bPnaAUdUlAADl76Lqj_A125.png)
單片機(jī)最小JSON解析,含編寫了一個(gè)非常簡單的JSON資料下載
![<b class='flag-5'>單片機(jī)</b>最小JSON解析,含<b class='flag-5'>編寫</b>了<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>非常<b class='flag-5'>簡單</b>的JSON資料下載](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
推薦一個(gè)簡單好用的單片機(jī)
![推薦<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>簡單</b>好用的<b class='flag-5'>單片機(jī)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
單片機(jī)硬件知識(shí)介紹 基于單片機(jī)點(diǎn)亮LED燈
![<b class='flag-5'>單片機(jī)</b>硬件知識(shí)介紹 基于<b class='flag-5'>單片機(jī)</b>點(diǎn)亮LED燈](https://file1.elecfans.com/web2/M00/8D/95/wKgZomS98uyAM3tDAAT-yByLX-k077.jpg)
評論