<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機常見(jiàn)問(wèn)題10問(wèn)

單片機常見(jiàn)問(wèn)題10問(wèn)

作者: 時(shí)間:2013-03-04 來(lái)源:網(wǎng)絡(luò ) 收藏

1.什么是?

簡(jiǎn)單地說(shuō),就是一個(gè)小。為了說(shuō)明清楚這個(gè)問(wèn)題,得要從計算機說(shuō)起。提到計算機,大家可能馬上會(huì )想到“顯示器、鼠標、鍵盤(pán)”,不過(guò),這不是一個(gè)計算機的核心和關(guān)鍵,計算機的核心部分在一邊的機箱里呢。打開(kāi)機箱,可以看到,機箱里有主板、硬盤(pán)、光驅等。仔細觀(guān)察主板,這上面有CPU、內存條、BIOS芯片,通常還有25針的打印機接口等,這些部件都是通過(guò)主板上的連線(xiàn)相互連接。

不論計算機復雜程度如何,它總是由運算器,控制器,存儲器,輸入/輸出接口,總線(xiàn)這五個(gè)部分組成。通常運算器和控制器被做成一塊芯片,也就是CPU(中央處理器)。在計算機主板上,內存條和BIOS芯片就是存儲器,25針打印機接口就是輸出/輸出設備,而總線(xiàn)則被設計在主板上,即各部件相互連接的線(xiàn)路。

在一些應用場(chǎng)合,人們不需要計算機完成十分復雜的運算,但卻希望計算機小巧,可靠,價(jià)格低。于是人們就把組成計算機的這5個(gè)部分全部集成到一塊芯片上,也說(shuō)是一塊芯片就能構成一個(gè)獨立的計算機,在當時(shí)的技術(shù)條件下,這是一件了不起的事情,于是人們就用這個(gè)特征來(lái)為之命名,稱(chēng)為“”。

將構成一個(gè)計算機所需要的5個(gè)部分全部都集成到一塊芯片中,這塊芯片是否要很大、價(jià)格是否很高呢?并非如此。如果要把圖1所示主板上的所有元件都集成到一塊芯片中,那當然非常昂貴,可能技術(shù)上也無(wú)法實(shí)現,但很多單片機中所需要用到的功能完全沒(méi)必要那么強大,因此很多單片機體積很小,價(jià)格也很低。如市場(chǎng)上常見(jiàn)的單片機有8,14,16,18,20,28,40,84等引腳,有些甚至只有6個(gè)引腳,如圖2所示是微芯公司(Microchip)發(fā)布的一款6引腳單片機。而價(jià)格從幾元到幾十、上百元的都有,有些品種在大批量定購時(shí)甚至可以低至1元以下。

剛接觸到單片機的人往往會(huì )有個(gè)疑惑:既然人們已經(jīng)有能力制造功能強大的計算機,為何還要生產(chǎn)些功能不強的計算機?其實(shí),功能強弱并不是決定是否生產(chǎn)的決定因素,市場(chǎng)需要才是關(guān)鍵。比如,用來(lái)控制一臺電箱的計算機顯然沒(méi)必要使用“奔騰”芯片的強大運算能力,只要進(jìn)行非常簡(jiǎn)單的計算,作個(gè)比較,看一看溫度是否在所控制區間之內,然后再做出相應的控制就行了。

單片機在人們的生活中、工農業(yè)生產(chǎn)設備中處處有應用,例如各定時(shí)裝置、自動(dòng)控制裝置等。愛(ài)好者學(xué)習單片機應該注意觀(guān)察事物,找到自己周?chē)軌蚴褂脝纹瑱C的場(chǎng)合,從而將學(xué)到的知識應用到實(shí)際中去。例如,使用單片機技術(shù)改造傳統的機電設備、在特定的場(chǎng)合使用單片機替代PLC等就有著(zhù)廣闊的應用前景;又如,使用單片機控制電扇、抽油煙機、空調等,從而制作出具有更強功能、能夠通用的控制器,也是可以嘗試的。

2.單片機是如何工作的?

單片機的工作過(guò)程就是一個(gè)不斷“取指令-分析指令-執行指令”的過(guò)程。單片機的程序以一條一條指令的形式存放在程序存儲器中,單片機開(kāi)始工作后,就從程序存儲器的特定位置開(kāi)始取指令,然后由單片機內部的控制器對指令進(jìn)行分析,根據指令要求,進(jìn)行“取數、送數、算術(shù)運算、邏輯運算、跳轉”等基本操作中的一種或幾種,這些操作都在一個(gè)規定的周期中完成,執行完了以后,到下一個(gè)存儲器單元中取指令,重復剛才的操作(當然,這些要執行的操作具體內容可能跟上一次不一樣了),如此不斷重復,直到斷電為止。這里所說(shuō)的“存儲器特定位置”、“規定的周期”等與單片機的型號有關(guān),下面以51系列單片機為例來(lái)說(shuō)明。

在51系列單片機中有一個(gè)名為PC的寄存器(就是用來(lái)存數的一個(gè)容器),在單片機復位后,這個(gè)寄存器中的內容被置為0000H,單片機內部的控制器總是根據PC寄存器中的值去相應的程序存儲器單元取指令,因此,開(kāi)機后,將從0000H單元取第一條指令,分析執行,同時(shí),PC值將作相應的調整,指向將要執行的下一條指令的位置,下一條指令的位置在哪里呢?對于51單片機來(lái)說(shuō),一條指令可能占用一個(gè)字節、二個(gè)字節或三個(gè)字節,如果第一條指令是單字節指令,取完第一條指令以后,PC的值就會(huì )變?yōu)?001H,因此,第一條指令執行完畢以后,將從0001H單元中取出第二條指令來(lái)執行,以此類(lèi)推。如果程序是順序執行的,PC的值將始終不斷增加,如果程序中有跳轉指令,該指令將影響PC中的值,使PC中的值指向將要執行的下一條指令所在地址單元。這種跳轉既可能是正向的,例如由0000H跳轉到0030H,也可能是反向的,即往回跳轉,如由200H跳轉到100H。正是由于指令可以影響到PC中的值,才使得程序可以實(shí)現“分支”、“循環(huán)”等各種功能。那么,執行一條指令的時(shí)間又是多少呢?對于51單片機來(lái)說(shuō),指令執行時(shí)間有三種可能,單周期、雙周期和四周期,不管一條指令需要做多少工作,都必然在規定的時(shí)間內完成。

3.單片機程序的作用是什么?如何編寫(xiě)?如何寫(xiě)入單片機?

單片機程序的用途是讓單片機“聽(tīng)話(huà)”,按人們所預定的設計完成一系列動(dòng)作,最終實(shí)現一個(gè)特定的功能。

例如使用單片機控制流水燈,接通電源后,第一次燈亮,然后延時(shí)一段時(shí)間,第二次燈亮,然后延時(shí)一段時(shí)間,第三次燈亮……,延時(shí)一段時(shí)間后又回到第一次燈亮,如此循環(huán)不已。這里就有這樣的一些問(wèn)題:第一次亮幾盞燈、延時(shí)多少時(shí)間、一個(gè)循環(huán)中設置多少次不同的燈亮的情況……,這些決定了流水燈的花樣,流動(dòng)的速度,而這些,單片機顯然沒(méi)有自我判斷能力,必須依靠人們給它“布置”任務(wù),而它則是按人們的設計依次執行。

要讓單片機“聽(tīng)話(huà)”,就要用單片機能夠聽(tīng)懂的語(yǔ)言發(fā)布命令,單片機能夠聽(tīng)懂的語(yǔ)言稱(chēng)之為“指令”。任何一種型號單片機能夠接受的指令都是有限的,51單片機的指令條數為111條,而PIC單片機的指令僅有35條。每一條指令完成一個(gè)最基本的動(dòng)作,人們?yōu)榱艘瓿梢粋€(gè)特定的功能,就要將這些指令排列組合,成為一個(gè)指令序列,這就是程序。

指令的表示形式有兩種:機器語(yǔ)言和匯編語(yǔ)言。以51為例,如果要讓P1.0引腳變?yōu)榈碗娖?,用機器語(yǔ)言來(lái)表示就是 C2H 90H,將這兩個(gè)數放進(jìn)單片機的程序存儲器中,單片機執行后,就可以讓P1.0引腳變?yōu)榈碗娖搅?而要讓P1.0引腳變?yōu)楦唠娖?,用機器語(yǔ)言來(lái)表示就是D2H,90H。至于為什么是這兩個(gè)數字,大家沒(méi)必要追究,這是設計這塊芯片的設計工程師規定的,我們不能更改,只能學(xué)習。

C2H,90H就是一條指令,顯然這樣的指令形式是很難記憶的,編程也非常困難,于是人們使用了“助記符”來(lái)代替這些數字。例如C2H,90H的助記符是CLR P1.0,而D2H,90H的助記符是SETB P1.0,由于助記符采用了英語(yǔ)字母的縮寫(xiě),有一定含義,因此比數字形式的指令易記、易用。使用助記符形式的指令來(lái)編寫(xiě)程序就稱(chēng)之為“匯編語(yǔ)言源程序”。但是匯編語(yǔ)言源程序是沒(méi)有辦法直接送到單片機內部去的,使用助記符形式的指令編寫(xiě)的程序最終還是要變成為諸如:C2H,90H,D2H,90H,這種形式的指令才能被送入單片機的程序存儲器。將助記符形式的指令變?yōu)閿底中问降闹噶畹倪^(guò)程稱(chēng)之“匯編”。匯編有兩種方法,一種是“手工匯編”,即人們通過(guò)查表的形式找到所寫(xiě)匯編指令的數字形式然后寫(xiě)下來(lái);另一種是“機器匯編”,即編寫(xiě)好匯編語(yǔ)言源程序以后,使用一個(gè)計算機軟件對這些源程序進(jìn)行處理,從而得到數字形式的指令序列,這個(gè)指令序列通常被稱(chēng)為“機器碼”,即可以直接被機器所執行的代碼。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>