我們從單片機(jī)的工作原理可以看出單片機(jī)是執(zhí)行程序來(lái)完成我們所要求的任務(wù)的,在單片機(jī)中有很多子程序,單片機(jī)根據(jù)外部的不同執(zhí)行條件去調(diào)用不同的子程序,因而就完成了不同的任務(wù)了。
單片機(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í)行。
責(zé)任編輯人:CC
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
STM32單片機(jī)DEBUG進(jìn)入不了主程序1.上電不運(yùn)行,DEBUG還進(jìn)入不了主程序2.總結(jié)2.1 STM32單片機(jī)Flash分類2.2 關(guān)于boot腳的設(shè)置3.其他DEBUG模式不能進(jìn)
發(fā)表于 11-29 06:52
0X0000H處開(kāi)始執(zhí)行,地址0X0000H又會(huì)指向主程序入口,即主函數(shù)處,即片內(nèi)下載的用戶程序而不會(huì)執(zhí)行前面已經(jīng)固化的檢測(cè)串口那段程序。這
發(fā)表于 11-19 15:27
?6100次閱讀
單片機(jī)又叫芯片,里面是有程序的。芯片里面的程序都是經(jīng)過(guò)加密的,一般是讀不出來(lái)的。但是可以破解出來(lái),有加密自然就有解密。如果你想解密你手里的單片機(jī),只需要在百度里輸入“芯片解密”就可以找
發(fā)表于 02-02 11:32
?7.5w次閱讀
單片機(jī)執(zhí)行程序的過(guò)程,實(shí)際上就是執(zhí)行我們所編制程序的過(guò)程。即逐條指令的過(guò)程。
發(fā)表于 08-07 14:47
?5489次閱讀
單片機(jī)的中斷就是類似的一個(gè)過(guò)程,發(fā)生中斷時(shí),就會(huì)打斷正在執(zhí)行的主程序,先處理完中斷任務(wù),返回主程序繼續(xù)運(yùn)行,當(dāng)然在執(zhí)行中斷函數(shù)之前,
發(fā)表于 01-27 17:11
?1.1w次閱讀
過(guò)程,發(fā)生中斷時(shí),就會(huì)打斷正在執(zhí)行的主程序,先處理完中斷任務(wù),返回主程序繼續(xù)運(yùn)行,當(dāng)然在執(zhí)行中斷函數(shù)之前,單片機(jī)需要把關(guān)鍵的數(shù)據(jù)保存下來(lái),中
發(fā)表于 01-04 10:11
?1.4w次閱讀
任何一個(gè)可用程序都必然是死循環(huán)程序,這不僅僅是指單片機(jī)程序。因?yàn)槿魏挝⑻幚砥飨到y(tǒng)一旦開(kāi)機(jī),系統(tǒng)都在處理內(nèi)部事件和外設(shè)響應(yīng),這個(gè)過(guò)程是一個(gè)循環(huán)過(guò)程,除非關(guān)機(jī)才能結(jié)束這個(gè)死循環(huán)
發(fā)表于 07-15 17:38
?5281次閱讀
單片機(jī)執(zhí)行指令過(guò)程詳解單片機(jī)執(zhí)行程序的過(guò)程,實(shí)際上就是執(zhí)行我們所編制程序的過(guò)程。即逐條指令的過(guò)程
發(fā)表于 11-17 09:36
?19次下載
Author: Manba Cople專業(yè):IOT說(shuō)明:記錄和輸出學(xué)習(xí)內(nèi)容文章目錄問(wèn)題思考修改進(jìn)階聲明問(wèn)題??最近在給小伙伴培訓(xùn)單片機(jī)中斷時(shí),小伙伴寫了一段中斷的代碼(代碼如下),出現(xiàn)每次執(zhí)行完中斷
發(fā)表于 11-22 12:06
?12次下載
單片機(jī)的運(yùn)行需要執(zhí)行程序,同時(shí)硬件也是必不可少的,二者缺一不可。大家都知道單片機(jī)的運(yùn)行需要執(zhí)行寫好的程序,但是
發(fā)表于 11-23 17:51
?9次下載
單片機(jī)的運(yùn)行需要執(zhí)行程序,同時(shí)硬件也是必不可少的,二者缺一不可。大家都知道單片機(jī)的運(yùn)行需要執(zhí)行寫好的程序,但是
發(fā)表于 12-01 16:06
?7次下載
?有些小伙伴喜歡在單片機(jī)中斷里做任務(wù),殊不知可能會(huì)因此遇到棘手的bug,然后查半天查不出個(gè)所以然。本文為了糾正這個(gè)不良習(xí)慣,對(duì)單片機(jī)中斷進(jìn)行闡述。?無(wú)中斷時(shí),單片機(jī)跑著主程序,當(dāng)中斷時(shí)
發(fā)表于 01-14 14:54
?2次下載
單片機(jī)執(zhí)行程序的過(guò)程,實(shí)際上就是執(zhí)行我們所編制程序的過(guò)程。即逐條指令的過(guò)程。計(jì)算機(jī)每執(zhí)行一條指令都可分為三個(gè)階段進(jìn)行。即取指令-----分析
發(fā)表于 02-09 11:13
?3次下載
我們想要理解單片機(jī)是如何運(yùn)行程序的,我們首先需要了解單片機(jī)的組成,我們這里以80C51單片機(jī)為例來(lái)理解程序在
發(fā)表于 10-12 15:02
?4109次閱讀
在單片機(jī)中有兩個(gè)重要的概念分別叫做中斷、中斷系統(tǒng),那么他們分別又代表什么意義呢?當(dāng)單片機(jī)CPU正在運(yùn)行主程序時(shí)外界發(fā)生了緊急事件請(qǐng)求,要求單片機(jī)停止當(dāng)前的工作,而去處理這個(gè)緊急事件,處
發(fā)表于 07-26 17:23
?2415次閱讀
評(píng)論