導航:首頁 > 操作系統 > 單片機的運行程序

單片機的運行程序

發布時間:2022-08-23 06:57:43

單片機如何運行程序的

你只要把程序下載到單片機里,上電它會自己運行的。

⑵ 單片機定時計數器程序運行過程

程序運行到這里就死循環了,
while
(1)
{
led2
=
0;
}
後邊的代碼是無緣運行的。
程序運行首先從地址0000H開始,跳轉到主程序入口也就是main()那裡開始,所以真正有意義的運行第一條是:

=
0x01;
依次往下執行,到TR0=1;開始定時器開始計數,根據你的賦值,計數到50000之後,定時器0溢出,開始申請中斷,進入中斷服務程序
void
intt0()
interrupt
1
using
2
執行完中斷後返回到主程序,你現在的情況是在while(1)那個死循環之中。
你說的那個while(1)後邊的{
}里邊的程序在執行完TR0=1之後就執行了,並一直在執行到中斷開始。中斷結束後又一直執行下去,一直反復如此。

⑶ 51單片機執行程序的過程

單片機執行程序的過程,實際上就是執行我們所編製程序的過程。即逐條指令的過程。計算機每執行一條指令都可分為三個階段進行。即取指令-----分析指令-----執行指令。

取指令的任務是:根據程序計數器PC中的值從程序存儲器讀出現行指令,送到指令寄存器。
分析指令階段的任務是:將指令寄存器中的指令操作碼取出後進行解碼,分析其指令性質。如指令要求操作數,則尋找操作數地址。
計算機執行程序的過程實際上就是逐條指令地重復上述操作過程,直至遇到停機指令可循環等待指令。

一般計算機進行工作時,首先要通過外部設備把程序和數據通過輸入介面電路和數據匯流排送入到存儲器,然後逐條取出執行。但單片機中的程序一般事先我們都已通過寫入器固化在片內或片外程序存儲器中。因而一開機即可執行指令。
下面我們將舉個實例來說明指令的執行過程:

開機時,程序計算器PC變為0000H。然後單片機在時序電路作用下自動進入執行程序過程。執行過程實際上就是取出指令(取

出存儲器中事先存放的指令階段)和執行指令(分析和執行指令)的循環過程。
例如執行指令:MOV A,#0E0H,其機器碼為「74H E0H」,該指令的功能是把操作數E0H送入累加器,

0000H單元中已存放74H,0001H單元中已存放E0H。當單片機開始運行時,首先是進入取指階段,其次序是:
1 程序計數器的內容(這時是0000H)送到地址寄存器;

2 程序計數器的內容自動加1(變為0001H);
3 地址寄存器的內容(0000H)通過內部地址匯流排送到存儲器,以存儲器中地址解碼電跟,使地址為0000H的單元被選中;
4 CPU使讀控制線有效;

5 在讀命令控制下被選中存儲器單元的內容(此時應為74H)送到內部數據匯流排上,因為是取指階段,所以該內容通過數據匯流排被送到指令寄存器。
至此,取指階段完成,進入解碼分析和執行指令階段。
由於本次進入指令寄存器中的內容是74H(操作碼),以解碼器解碼後單片機就會知道該指令是要將一個數送到A累加器,而該數是在這個代碼的下一個存儲單元。所以,執行該指令還必須把數據(E0H)從存儲器中取出送到CPU,即還要在存儲器中取第二個位元組。其過程與取指階段很相似,只是此時PC已為0001H。指令解碼器結合時序部件,產生74H操作碼的微操作系列,使數字E0H從0001H單元取出。因為指令是要求把取得的數送到A累加器,所以取出的數字經內部數據匯流排進入A累加器,而不是進入指令寄存器。至此,一條指令的執行完畢。單片機中PC=0002H,PC在CPU每次向存儲器取指或取數時自動加1,單片機又進入下一取指階段。這一過程一直重復下去,直至收到暫停指令或循環等待指令暫停。CPU就是這樣一條一條地執行指令,完成所有規定的功能。

⑷ 單片機上電後程序從哪開始執行

1、單片機上電後程序從0000H開始執行。
2、如果是用C51編程,不用指定語句的地址。編譯後編譯器會給你自動安排地址。
3、如果用匯編語言編程,應該指定第一條語句的地址是0000H,然後在0000H處寫一條跳轉指令,跳到你的主程序處。
4、至於startup.a51中的內容,不同的編譯器應該不一樣,但和你的程序制定的第一條語句的地址是0000H不會矛盾。
5、編譯後產生的.HEX文件代碼,在燒寫時要從0000H地址開始燒寫。

⑸ 求教:單片機怎麼同時運行幾個程序啊

你說的是狀態機。你可以立一個flag表示模式,模式一,模式二,模式三,這樣循環運行,那你可能要問了,我每個模式程序的有延時怎麼辦?
這時可以用定時器,定時器flag時間到了,主程序判斷運行某一個模式的下一步。
又或者你是比較簡單的程序不用定時器,比如電機,每4S開關,蜂鳴器每2S開關,取你最小的延時時間。那麼程序只需要放一個2S延時對應的flag,flag%1==0,蜂鳴器開關,flag%2==0,電機開關。

⑹ 單片機上電後如何運行

單片機上電後的流程:
第一步,硬體晶振起振(有內部rc振盪的,一般是先啟動rc,然後待穩定後切換到晶振),這一步需要1-10ms.
第二步,硬體復位腳復位,如果採用rc復位,這個時間約為2-50ms,這個時間與rc的時間常數有關。如果是專門的復位晶元,則以晶元的時間為准。
第三步,單片機本身初始化,pc指針按向量表執行,然後跳轉到指定程序位置。這個時間比較短一般少於1ms
第四步,軟體初始化,清ram,設定寄存器等用戶程序。這個時間也比較短,少於1ms。
第五步,執行數據發送,如果有按鍵的,還需要檢測按鍵。數據發送也需要有點時間。這個時間看軟體如何寫的。有快有慢。同時和單片機的晶振速度有也關
最後pt2262這個晶元,也有復位時間,還有數據發送的前期等待時間等。需要看晶元資料才知道。
所以,延時100ms以內,基本上不會太多。如你所說延時1s,估計有點多。你可以用老波器把各個段的時間全部抓出來分析。

⑺ 什麼程序是單片機能夠直接執行的程序

只有 ROM 中的機器語言程序,才是單片機能夠直接執行的。

⑻ 單片機能夠直接運行的程序是

存在於 ROM 中的,機器語言程序。

⑼ 單片機的運行方法是什麼呀

如果讓單片機運行起來需要兩個條件:硬體平台和程序代碼。
硬體平台可以動手搭建一個最簡51系統,也可以網上買塊實驗板,這就是硬體的准備。
程序代碼至少要有C語言編寫技能和學會一款編寫程序的軟體。
1、編寫C語言程序
2、編譯成單片機識別語言
3、如果編譯通過,接下來就需要調試運行,單片機工作狀況是否是自己預期的。
4、如果調試通過,下載程序到單片機
5、下載成功,正常運行

⑽ 單片機運行的程序是RAM中的還是RoM中的

常規上ROM是用來存儲固化程序的,RAM是用來存放數據的。由於FLASH ROM比普通的ROM讀寫速度快,擦寫方便,一般用來存儲用戶程序和需要永久保存的數據。譬如說,現在家用的電子式電度表,它的內核是一款單片機,該單片機的程序就是存放在ROM里的。電度表在工作過程中,是要運算數據的,要採集電壓和電流,並根據電壓和電流計算出電度來。電壓和電流時一個適時的數據,用戶不關心,它只是用來計算電度用,計算完後該次採集的數據就用完了,然後再採集下一次,因此這些值就沒必要永久存儲,就把它放在RAM里邊。然而計算完的電度,是需要永久保存的,單片機會定時或者在停電的瞬間將電度數存入到FLASH里。
羅素了這么多,不知道樓主看明白了沒有。

閱讀全文

與單片機的運行程序相關的資料

熱點內容
app廣告怎麼賺錢 瀏覽:916
男主被系統控制的小說下載 瀏覽:951
鈦2電影高清完整版 瀏覽:440
linux啟動項目命令 瀏覽:531
乳山迷霧txt全文閱讀全文小說 瀏覽:885
vm同步命令 瀏覽:14
安卓轉移到ios王者榮耀怎麼登 瀏覽:955
工業壓縮機品牌 瀏覽:182
蘋果系統怎麼更改app的圖標 瀏覽:668
泰劇女同電影 瀏覽:435
人造變異女的電影 瀏覽:237
懷舊經典老錄像片 瀏覽:593
和利時功能塊怎麼加密 瀏覽:30
宣萱電影好看 瀏覽:568
韓國純真時代動態圖 瀏覽:100
關於男主有個能操控別人 瀏覽:303
怎麼測試doh加密 瀏覽:210
歐美 小說 圖片 瀏覽:908
西安程序員未來的發展趨勢 瀏覽:173
叫阿能的電影 瀏覽:261