導航:首頁 > 編程語言 > 簡述單片機執行程序的過程

簡述單片機執行程序的過程

發布時間:2023-05-26 15:11:40

1. 單片機的開發過程包括哪些步驟

以51單片機為例。51現在很多都是用模擬器來進行在線調試的,而每個公司的模擬器都會有自帶的編程軟體,當然,跟keil是差不了多少的。
步驟大體如下鬧或:
1.新建,進行程序的編寫
2.連上模擬器或燒寫器,這一步有可能要對模擬器或燒寫器進行設置,具體可看讓指它們的使用說明
3.對程序進行編譯,這一步會自動檢測你的程序有沒錯,如果有錯,是不能進入下一步的.如果你用的是模擬器,這一步編譯成功後就可以直接運行進行在線調試了。
4.如果用的是燒寫器,那就進行燒寫

各個軟體和調試方法會有些不同,但大體就是這樣,一些調試工具的說明書液滑伍也有很詳細的說明。

2. 單片機編程步驟

一、什麼是 nec 單片機

隨著大范疇集成電路的顯現和發展,將計算機的cpu、ram、rom、定時/數器和多種i/o介面集成在一片晶元上,組成晶元級的計較機,因此單片機早期的含義稱為單片微型計較機,直譯為單片機。單片機是一種集成在電路晶元,是採用超大范疇集成電路技能把具有數據處理本事的中心處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和間斷系統、 定時器 / 計時器 等成果(大要還包括表現驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完竣的計算機系

二、nec單片機的操縱教程詳解

1、在智能儀器儀表中的操縱:在各類儀器儀表中引入單片機,使儀器儀表智能化,進步測試的自動化程度和精度,簡化儀器儀表的硬體結構,進步其性能價格比。

2、在機電一體化中的操縱:機電一體化產品是指集呆板、微電子技能、計較機技能於一本,具有智能化特徵的電子產品。

3、在實時過程式控制制中的操縱:用單片機實時進行數據處理和控制,使系統保持最佳事變狀態,進步系統的事變從命和產品的品格。

4、在人類生活中的操縱:目前國外各種家用電器已普通採用單片機代替傳統的控制電路。

5、在此外方面的操縱:單片機除以上各方面的操縱,它還遍布操縱於辦公自動化范圍、商業營銷范圍、汽車及通信、計較機外部裝備、暗昧控制等各范圍中。

以上就是為大家整理的關於單片機含義及其具體操縱教程的全部內容了。此外小編還額外為大家整理了單片機的優點:低電壓、低功耗、集成度高、可靠性高、體積小、控製成果強等。希望通過這篇文章能夠給想要了解單片機相關知識的朋友帶來一些幫助。另外大家如果想了解更多單片機的知識可以通過圖書查閱、網路查閱等方式。

3. 請教單片機的啟動過程

看過一篇文章說道:

CPU啟動後到有兩種方式:
1、CPU重啟後,將其PC寄存器設為特定地址,只要用戶的起始程序存在這個地址,就可以被正確執行;
——貌雹寬似51就是啟動後將PC寄存器設為00H。

2、CPU重啟後,會將CPU中存儲中斷矢量表地址的寄存器設為某特定地址,接著引發RESET中斷,程序
員只要把中源薯亮斷矢量表存儲在這個地址。並指定RESET中斷的處理程序為自己寫的某個函數,則該函數就可以在
開機後被CPU執行手信。
——中斷矢量表不是固定在FLASH內部的一段內存嗎?怎麼又多了個存儲中斷矢量表的寄存器?
——棧、堆等的初始化到底是在RESET中斷的執行之前還是之後?

由於,應用到的程序一直是用C寫的,很少去關心單片機的啟動過程,往往編譯器也有現成的傻瓜版啟動代碼
至於匯編畢業後就都忘得7788了。所以,單片機啟動過程這一塊我還是很亂很迷糊的,希望哪位有經驗的朋友
能夠指導或者做個概述一下,萬分感謝!~

4. 單片機編程的整個流程

首先,你需要單片機吧,其次需要下載器,下載線,單片機模擬晶元等,如果你還要自己做電路,那麼還要一套電子工具,什麼電烙鐵,剪線鉗,鑷子,吸錫器什麼的.

我拿51系列單片機來舉例.

(1)首先你要做的是,規劃好你要做什麼,對設計的各個方面做一個粗略的規劃.如,編程要實現什麼,需不需要自己做電路....

(2)把電路圖畫好,對照電路圖做電路,如果自己做電路的話,你需要去電子城購買電子元器件,然後對照電路圖把硬體電路做好.檢查電路有沒有問題,如是否短路,虛焊什麼的...

(3)步驟2是針對較簡單的單片機最小系統,如果你做的電路有點復雜,最好做一塊PCB板,這時你就需要用電路編輯工具如DXP,等PCB文件發給生產PCB板的廠家加工,這個過程也不長,如果你經驗積累得很多的話.但要設計一塊好的PCB板,還有電路圖設計,這都是有很深的學問的.冰凍三尺,非一日之寒...

(4)通過步驟2,3你的硬體已有了,現在可以編程,編程也是分幾個階段的,但主要階段是:設計演算法-->繪制流程圖-->編寫代碼-->編譯-->下載-->運行或調試-->程序的優化.

其中,演算法設計的優劣很重要,它是決定你的設計的質量如何的一方面.繪制流程圖這個環節被很多人忽略,對於一些小程序,不需要繪制流程圖,但對於一個很大的程序,你沒有一個體系的思想,是很難寫下去的.但不否認,有這樣的高手,但我覺得要從一開始養成良好的習慣,簡單的畫畫流程圖是有好處的.日積月累,它會提高你編程的效率.接下來,編寫代碼,可以用KEIL軟體,其它還有什麼ASM什麼的.我知道的最多的都是用的KEIL.代碼編寫好後,編譯生成HEX,BIN文件,這兩種類型的文件都是可以下載到單片機的ROM中的.

(5)下載到單片機後,就開始運行了,或用模擬晶元進行在線調試,有問題就改,直到沒有問題為止.成功後,還需要反思一下,自己的設計還有沒有需要改進的地方.如程序需不需要優化,電路需不需要優化,換種演算法行不行....

(註:你問題中說要」做成一個晶元」,這一點我不知道.我沒做過.向ATMEL,SST,周立功等的工程師打聽打聽說不定會有更大的收獲.)

5. 單片機應用程序的開發步驟

具體步驟如下:

1、首先,開啟我們的keil軟體,具體的安裝步驟就不做太多的介紹內了;

開啟後,點擊菜容單欄上的Project選項,創建我們的工程,如圖所示;

編譯完成後,在我們的文件夾下找到.hex的文件,將其燒寫到我們的晶元中即可。

6. 請幫解釋一下單片機程序各步驟

POP DPH ;從堆棧中彈出一個8位二進制數到DPH中,
POP DPL ;從堆棧中彈出一個8位二進制數到DPL中
MOV DPTR,#4000H ;給DPTR賦值#4000h
RL A ; 累加器A的內容左移一位
MOV B,A ; 把累加器 A的內容送到寄存器B中
MOVC A,@A+DPTR ;把DPTR的內容加A的內容作為地址,兼址定址該地址中的內容送A
帶進位位
PUSH Acc ;壓堆棧,把A的內容推入堆棧
MOV A,B 把B的內容送到A中
INC A ;A的內容累加1
MOVC A,@A+DPTR ;把DPTR的內容加A的內容作為地址,兼址定址該地址中的內容送A
帶進位位
PUSH Acc ;壓堆棧,把A的內容推入堆棧
RET ;中斷子程序結束
ORG 4000H ; 偽指令 段地址開始位置為:4000H
DB 10H,80H,30H,50H,30H,50H ;數據段 連續存6個16進制數。
--------------
大致就是這樣,你再查查指令系統的具體含義,可以更准確地解釋其含義,我已經有10年沒編寫這些程序代碼了,所以有可能記憶不是太准確。

7. 單片機應用程序的開發步驟是什麼

1:針對需要開發的設備構建原理圖,可以用AD09,PROTEUS 軟體

2:針對需要實現的功能編程,使用KEIL編寫調試(51,AVR單片機)

3:程序編好測試,測試包括功能測試,老化測試,可靠性測試等

單片機編程就是簡單的嵌入式軟體開發過程,首先你應該精通C語言(當然也有使用匯編語言的,不過主流還是使用C的),能夠熟練運用C語言實現相應的單片機要實現的功能。所謂的單片機開發,就必須對單片機有一定的了解。這就是為什麼嵌入式的工資高,入門難的原因,它必須要有一定的硬體基礎,還需配合很好的編碼能力。如果你掌握了單片機硬體,同時也精通編程,那麼寫單片機程序也就是水到渠成的事了。

8. 單片機的工藝流程是怎麼樣的

單片機由運算器、控制器、存儲器、輸入輸出設備構成。
單片機自動完成賦予它的任務的過程,也就是單片機執行程序的過程,即一條條執行的指令的過程,所謂指令就是把要求單片機執行的各種操作用的命令的形式寫下來,這是在設計人員賦予它的指令系統所決定的,一條指令對應著一種基本操作;單片機所能執行的全部指令,就是該單片機的指令系統,不同種類的單片機,其指令系統亦不同。為使單片機能自動完成某一特定任務,必須把要解決的問題編成一系列指令(這些指令必須是選定單片機能識別和執行的指令)滲談,這一系列指令的集合就成為程序,程序需要預先存放在具有存儲功能的部件——存儲器中。存儲器由許多存儲單元(最小的存儲單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出並執行就像大樓房的每個房間的被分配到了唯一一個房間號一樣,每一個存儲單元也必須被分配到唯一的地址號,該地址號稱為存儲單元的地氏答址,這樣只要知道了存儲單元的地址,就可以找到這個存儲單元,其中存儲的指令就可以被取出,然後再被執行。程序通常是順序執行的,所以程序中的指令也是一條條順序存放的叢核碰,單片機在執行程序時要能把這些指令一條條取出並加以執行,必須有一個部件能追蹤指令所在的地址,這一部件就是程序計數器PC(包含在CPU中),在開始執行程序時,給PC賦以程序中第一條指令所在的地址,然後取得每一條要執行的命令,PC在中的內容就會自動增加,增加量由本條指令長度決定,可能是1、2或3,以指向下一條指令的起始地址,保證指令順序執行。
希望採納

9. 簡述CPU執行一條指令的過程

幾乎所有的馮·諾伊曼型計算機的CPU,其工作都可以分為5個階段:取指令、指令解碼、執行指令、訪存取數、結果寫回。

1.取指令階段

取指令(InstructionFetch,IF)階段是將一條指令從主存中取到指令寄存器的過程。

程序計數器PC中的數值,用來指示當前指令在主存中的位置。當一條指令被取出後,PC中的數值將根據指令字長度而自動遞增:若為單字長指令,則(PC)+1àPC;若為雙字長指令,則(PC)+2àPC,依此類推。

2.指令解碼階段

取出指令後,計算機立即進入指令解碼(InstructionDecode,ID)階段。

在指令解碼階段,指令解碼器按照預定的指令格式,對取回的指令進行拆分和解釋,識別區分出不同的指令類別以及各種獲取操作數的方法。

在組合邏輯控制的計算機中,指令解碼器對不同的指令操作碼產生不同的控制電位,以形成不同的微操作序列;在微程序控制的計算機中,指令解碼器用指令操作碼來找到執行該指令的微程序的入口,並從此入口開始執行。

3.執行指令階段

在取指令和指令解碼階段之後,接著進入執行指令(Execute,EX)階段。

此階段的任務是完成指令所規定的各種操作,具體實現指令的功能。為此,CPU的不同部分被連接起來,以執行所需的操作。

4.訪存取數階段

根據指令需要,有可能要訪問主存,讀取操作數,這樣就進入了訪存取數(Memory,MEM)階段。

此階段的任務是:根據指令地址碼,得到操作數在主存中的地址,並從主存中讀取該操作數用於運算。

5.結果寫回階段

作為最後一個階段,結果寫回(WriteBack,WB)階段把執行指令階段的運行結果數據「寫回」到某種存儲形式:

結果數據經常被寫到CPU的內部寄存器中,以便被後續的指令快速地存取;

在有些情況下,結果數據也可被寫入相對較慢、但較廉價且容量較大的主存。許多指令還會改變程序狀態字寄存器中標志位的狀態,這些標志位標識著不同的操作結果,可被用來影響程序的動作。

在指令執行完畢、結果數據寫回之後,若無意外事件(如結果溢出等)發生,計算機就接著從程序計數器PC中取得下一條指令地址,開始新一輪的循環,下一個指令周期將順序取出下一條指令。

(9)簡述單片機執行程序的過程擴展閱讀:

指令的執行過程例子:

開機時,程序計算器PC變為0000H。然後單片機在時序電路作用下自動進入執行程序過程。執行過程實際上就是取出指令(取出存儲器中事先存放的指令階段)和執行指令(分析和執行指令)的循環過程。

例如執行指令:MOVA,#0E0H,其機器碼為「74HE0H」,該指令的功能是把操作數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就是這樣一條一條地執行指令,完成所有規定。

10. 單片機中一個程序的運行過程

單片機中一個程序的運行過程分為取指令,分析指令和執行指令幾個步驟。
取指令的任務是:根據程序計數器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就是這樣一條一條地執行指令,完成所有規定的功能。
ROM是只讀存儲器,用於存儲程序代碼;RAM是數據存儲器,用於存放單片機運行時的數據,也就是說RAM中的數據掉電(復位)後就會消失,而ROM中的數據不會。

閱讀全文

與簡述單片機執行程序的過程相關的資料

熱點內容
網路載入視頻失敗是怎麼回事 瀏覽:805
傳奇賬號在哪個文件夾里 瀏覽:346
百度app在哪裡安裝 瀏覽:587
如何設置路由器網路不斷網 瀏覽:471
傳到qq群里的文件怎麼刪除 瀏覽:861
索尼安卓71更新日誌 瀏覽:234
怎麼找手機里的垃圾app 瀏覽:540
2015藍橋杯代碼填空 瀏覽:698
安卓資料庫dbexecSQL 瀏覽:227
doc重命名文件格式 瀏覽:728
getscreen截圖工具下載 瀏覽:719
共識數據是什麼時候開始的 瀏覽:96
數碼管顯示電壓程序 瀏覽:479
資料庫文件有哪個 瀏覽:543
途強儲存在哪個文件夾 瀏覽:172
如何恢復被覆蓋文件 瀏覽:611
iphone5用哪個版本最好 瀏覽:327
extjsgrid禁用 瀏覽:426
如何查找國外論文的編程代碼 瀏覽:366
暗金顏色代碼 瀏覽:789

友情鏈接