我們從單片機的工作原理可以看出單片機是執(zhí)行程序來完成我們所要求的任務(wù)的,在單片機中有很多子程序,單片機根據(jù)外部的不同執(zhí)行條件去調(diào)用不同的子程序,因而就完成了不同的任務(wù)了。
單片機的工作過程
由于單片機的工作過程是比較復(fù)雜的,為了說明問題,下面我們先來簡單了解一下單片機的工作過程,單片機在執(zhí)行我們給它的命令時是按照三步走的方法去執(zhí)行的,它先是從它的記憶存儲“容器”ROM中取出要執(zhí)行的一條命令,接收到命令后就要分析這條命令的具體內(nèi)容,然后按照命令的具體內(nèi)容去完成相應(yīng)的任務(wù)。這有點和我們?nèi)祟惤邮杖蝿?wù)是一樣的。
單片機主程序的執(zhí)行過程
下面我們舉出一個大家非常熟悉而又簡單的交通燈的程序,來說明主程序是如何執(zhí)行的。我們知道交通燈有紅綠黃燈的交替轉(zhuǎn)換,還有數(shù)顯的倒計時。那么主程序的主要任務(wù)是根據(jù)條件是不是滿足來調(diào)用各個子程序進行工作,主程序有點像樂隊的指揮,當需要哪種樂器發(fā)出聲音,指揮就去引導(dǎo)樂手去執(zhí)行演奏,指揮可以一遍又一遍地不停重復(fù)地執(zhí)行下去。那么單片機的主程序也這種情況差不多,當電源一但開啟其,單片機復(fù)位完畢后就先執(zhí)行主程序,當條件滿足后就不停地調(diào)用各個子程序。在交通燈程序中,主程序要不停地調(diào)用亮燈子程序和數(shù)碼管倒計時子程序。只有這樣交通燈才能周而復(fù)始地不斷重復(fù)循環(huán)運行著,這就是主程序的功能。如果在主程序沒有死循環(huán)的話,交通燈只會運轉(zhuǎn)一遍亮燈閃爍和倒計時,一但執(zhí)行完一遍后就不會有下文了。所以我們要把這些子程序放在主程序的死循環(huán)語句里,使整個程序周而復(fù)始地運行著。
不但交通燈程序是這樣工作的,其它程序也是如此,不管是分支結(jié)構(gòu)還是順序結(jié)構(gòu)的程序,都要把這些子程序放在主程序的死循環(huán)當中,然后根據(jù)所執(zhí)行的條件去調(diào)用執(zhí)行子程序。

單片機子程序與主程序的關(guān)系
在主程序中是可以調(diào)用子程序的,子程序之間也是可以相互調(diào)用的。但是在子程序中有一種程序我們不用主程序調(diào)用,它就是中斷程序或者中斷定時程序。這個中斷子程序一般是主程序執(zhí)行的條件,一但觸發(fā)中斷了,主程序就會立馬去執(zhí)行這個中斷子程,當中斷程序完成后,主程序必須還要回到剛才所執(zhí)行的程序當中。所以子程序是在主程序中的,它要由主程序不斷地調(diào)用去執(zhí)行。

責(zé)任編輯人:CC
-
單片機
+關(guān)注
關(guān)注
6074文章
45451瀏覽量
667015 -
程序
+關(guān)注
關(guān)注
117文章
3838瀏覽量
85063
發(fā)布評論請先 登錄
STM32單片機DEBUG進入不了主程序的原因
stc單片機燒錄協(xié)議分析
怎么讀取單片機程序_單片機程序是如何執(zhí)行的_如何讀懂單片機程序
單片機的中斷程序如何運行
單片機的主程序和中斷程序是怎么樣運行的
為什么單片機的主程序是死循環(huán)
單片機執(zhí)行指令過程詳解
【51單片機】有關(guān)單片機執(zhí)行中斷無法恢復(fù)主程序探討
單片機程序是如何執(zhí)行的?指令數(shù)據(jù)寫哪了?
單片機程序是如何執(zhí)行的:指令數(shù)據(jù)寫哪了
謹慎處理單片機中斷,中斷等價于比主程序優(yōu)先級更高的線程
單片機是怎么執(zhí)行指令的?
關(guān)于單片機程序的執(zhí)行過程
基于單片機的外部中斷實驗 中斷系統(tǒng)知識介紹
單片機的主程序是如何執(zhí)行的
評論