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