公司動态

單片機是如何工作(zuò)的?

      單片機的工作(zuò)過程就是一個(gè)不斷“取指令-分析指令-執行(xíng)指令”的過程。單片機的程序以一條一條指令的形式存放在程序存儲器(qì)中,單片機開(kāi)始工作(zuò)後,就從程序存儲器(qì)的特定位置開(kāi)始取指令,然後由單片機內(nèi)部的控制(zhì)器(qì)對指令進行(xíng)分析,根據指令要求,進行(xíng)“取數(shù)、送數(shù)、算(suàn)術(shù)運算(suàn)、邏輯運算(suàn)、跳(tiào)轉”等基本操作(zuò)中的一種或幾種,這些(xiē)操作(zuò)都在一個(gè)規定的周期中完成,執行(xíng)完了以後,到下一個(gè)存儲器(qì)單元中取指令,重複剛才的操作(zuò),如此不斷重複,直到斷電(diàn)為(wèi)止。這裏所說的“存儲器(qì)特定位置”、“規定的周期”等與單片機的型号有(yǒu)關,下面以51系列單片機為(wèi)例來(lái)說明(míng)。

 
   在51系列單片機中有(yǒu)一個(gè)名為(wèi)PC的寄存器(qì)(就是用來(lái)存數(shù)的一個(gè)容器(qì)),在單片機複位後,這個(gè)寄存器(qì)中的內(nèi)容被置為(wèi)0000H,單片機內(nèi)部的控制(zhì)器(qì)總是根據PC寄存器(qì)中的值去相應的程序存儲器(qì)單元取指令,因此,開(kāi)機後,将從0000H單元取第一條指令,分析執行(xíng),同時(shí),PC值将作(zuò)相應的調整,指向将要執行(xíng)的下一條指令的位置,下一條指令的位置在哪裏呢?
 
   對于51單片機來(lái)說,一條指令可(kě)能占用一個(gè)字節、二個(gè)字節或三個(gè)字節,如果第一條指令是單字節指令,取完第一條指令以後,PC的值就會(huì)變為(wèi)0001H,因此,第一條指令執行(xíng)完畢以後,将從0001H單元中取出第二條指令來(lái)執行(xíng),以此類推。如果程序是順序執行(xíng)的,PC的值将始終不斷增加,如果程序中有(yǒu)跳(tiào)轉指令,該指令将影(yǐng)響PC中的值,使PC中的值指向将要執行(xíng)的下一條指令所在地址單元。這種跳(tiào)轉既可(kě)能是正向的,例如由0000H跳(tiào)轉到0030H,也可(kě)能是反向的,即往回跳(tiào)轉,如由200H跳(tiào)轉到100H。正是由于指令可(kě)以影(yǐng)響到PC中的值,才使得(de)程序可(kě)以實現“分支”、“循環”等各種功能。
 

   那(nà)麽,執行(xíng)一條指令的時(shí)間(jiān)又是多(duō)少(shǎo)呢?對于51單片機來(lái)說,指令執行(xíng)時(shí)間(jiān)有(yǒu)三種可(kě)能,單周期、雙周期和(hé)四周期,不管一條指令需要做(zuò)多(duō)少(shǎo)工作(zuò),都必然在規定的時(shí)間(jiān)內(nèi)完成。 




首頁

電(diàn)話(huà)

地址

到底了~