當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]探討了MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)相關(guān)問題,研究了MCS-51系列單片機(jī)結(jié)構(gòu)化程序的三種基本結(jié)構(gòu),并給出了程序?qū)崿F(xiàn)方法范例,介紹了MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)步驟及各部分具體設(shè)計(jì)要求。

1 MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)概述

結(jié)構(gòu)化程序指程序組成結(jié)構(gòu)化、功能模塊化、運(yùn)行流程化。結(jié)構(gòu)化程序要求將處理特定任務(wù)的代碼和數(shù)據(jù)與程序其余部分隔離,在MCS-51系列單片機(jī)結(jié)構(gòu)化程序中,實(shí)現(xiàn)隔離的方法是將處理特定任務(wù)的指令和數(shù)據(jù)設(shè)計(jì)成子程序或中斷服務(wù)子程序。這些子程序或中斷服務(wù)子程序稱作功能模塊,其具有確定功能,處理特定任務(wù),解決專門問題。

在MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)時(shí),按照總體規(guī)劃和總體設(shè)計(jì),由若干軟件設(shè)計(jì)人員分別編程設(shè)計(jì)各功能模塊,再依據(jù)軟件結(jié)構(gòu)和程序流程,由若干功能模塊組成結(jié)構(gòu)化程序,實(shí)現(xiàn)應(yīng)用程序整體功能,解決復(fù)雜的實(shí)際問題。

MCS-51系列單片機(jī)結(jié)構(gòu)化程序具有結(jié)構(gòu)清晰、邏輯性強(qiáng)、易于維護(hù)、便于共享、運(yùn)行穩(wěn)定、可靠性高等特點(diǎn)。按照結(jié)構(gòu)化程序設(shè)計(jì)要求編程,有助于規(guī)范軟件設(shè)計(jì)人員的編程工作,有助于提高軟件設(shè)計(jì)人員的編程效率,有助于提升軟件設(shè)計(jì)人員的編程水平。

2 三種基本結(jié)構(gòu)及程序?qū)崿F(xiàn)方法

MCS-51系列單片機(jī)結(jié)構(gòu)化程序由若干功能模塊構(gòu)成,功能模塊由三種基本結(jié)構(gòu)組成,即順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。由這三種基本結(jié)構(gòu)組成的功能模塊,能實(shí)現(xiàn)各種程序算法,解決復(fù)雜實(shí)際問題。

2.1 順序結(jié)構(gòu)

在順序結(jié)構(gòu)程序中,按先后順序,CPU逐條執(zhí)行指令或逐段執(zhí)行程序段。順序結(jié)構(gòu)分為逐條順序結(jié)構(gòu)和逐段順序結(jié)構(gòu)兩種。逐條順序結(jié)構(gòu)如圖1所示,逐段順序結(jié)構(gòu)如圖2所示。


2.2 選擇結(jié)構(gòu)

在選擇結(jié)構(gòu)程序中,CPU執(zhí)行條件判斷指令(或間接轉(zhuǎn)移指令),依據(jù)條件(或轉(zhuǎn)移目的地址)執(zhí)行對(duì)應(yīng)分支程序段。選擇結(jié)構(gòu)分為二分支選擇結(jié)構(gòu)和多分支選擇結(jié)構(gòu)。

2.2.1 二分支選擇結(jié)構(gòu)

在二分支選擇結(jié)構(gòu)程序中,CPU執(zhí)行條件判斷指令,判斷轉(zhuǎn)移條件。當(dāng)條件滿足時(shí),CPU執(zhí)行程序段1;當(dāng)條件不滿足時(shí),CPU執(zhí)行程序段2,實(shí)現(xiàn)了二分支選擇功能。條件轉(zhuǎn)移類指令、比較不相等轉(zhuǎn)移類指令均可作為條件判斷指令。二分支選擇結(jié)構(gòu)如圖3所示。程序?qū)崿F(xiàn)方法參見范例1。

范例1:
CJNE A,# DATA,PGM2
PGM1:{程序段1}
LJMP EXIT
PGM2:{程序段2}
EXIT:┇

2.2.2 多分支選擇結(jié)構(gòu)

在多分支選擇結(jié)構(gòu)程序中,CPU執(zhí)行間接轉(zhuǎn)移指令,計(jì)算多分支轉(zhuǎn)移目標(biāo)地址,依據(jù)多分支轉(zhuǎn)移目標(biāo)地址,CPU執(zhí)行對(duì)應(yīng)分支程序段,實(shí)現(xiàn)了多分支選擇功能。在多分支選擇結(jié)構(gòu)程序?qū)崿F(xiàn)方法范例2中,A中保存有多分支選擇條件值n,多分支選擇結(jié)構(gòu)如圖4所示。程序?qū)崿F(xiàn)方法參見范例2。

范例2:
PGM:MOV R1,A
RL A
ADD A,R1
MOV DPTR,# PGMTB
JMP @A+DPTR
PGMTB: LJMP PGM0
LJMP PGM1

LJMP PGMn

PGM0:{程序段0}
LJMP EXIT
PGM1:{程序段1}
LJMP EXIT

PGMn:{程序段n}
LJMP EXIT
EXIT:┇

2.3 循環(huán)結(jié)構(gòu)

在循環(huán)結(jié)構(gòu)程序中,CPU執(zhí)行條件轉(zhuǎn)移指令,依據(jù)條件決定是否繼續(xù)執(zhí)行循環(huán)體。循環(huán)結(jié)構(gòu)分為當(dāng)型循環(huán)結(jié)構(gòu)和直到型循環(huán)結(jié)構(gòu)兩種,下面分別介紹。

2.3.1 當(dāng)型循環(huán)結(jié)構(gòu)

在當(dāng)型循環(huán)結(jié)構(gòu)程序中,CPU首先執(zhí)行條件轉(zhuǎn)移指令,判斷循環(huán)條件。當(dāng)條件滿足時(shí),CPU繼續(xù)執(zhí)行循環(huán)體程序;當(dāng)條件不滿足時(shí),CPU退出循環(huán)結(jié)構(gòu)程序,接著執(zhí)行后續(xù)程序。當(dāng)型循環(huán)結(jié)構(gòu)如圖5所示,程序?qū)崿F(xiàn)方法參見范例3、范例4。

范例3:
LOP1: JB BIT,LOP2
LJMP EXIT
LOP2: {循環(huán)體}
LJMP LOP1
EXIT:┇
范例4:
LOP1: JNB BIT,EXIT
{循環(huán)體}
LJMP LOP1
EXIT:┇

2.3.2 直到型循環(huán)結(jié)構(gòu)

在直到型循環(huán)結(jié)構(gòu)程序中,CPU首先執(zhí)行循環(huán)體程序,再執(zhí)行條件轉(zhuǎn)移指令,判斷循環(huán)條件。當(dāng)條件滿足時(shí),CPU繼續(xù)執(zhí)行循環(huán)體程序;當(dāng)條件不滿足時(shí),CPU退出循環(huán)結(jié)構(gòu)程序,接著執(zhí)行后續(xù)程序。直到型循環(huán)結(jié)構(gòu)如圖6所示,程序?qū)崿F(xiàn)方法參見范例5、范例6。

范例5:
MOV R2,#COUNT
LOP1:{循環(huán)體}
DJNZ R2,LOP1

范例6:
LOP1:{循環(huán)體}
JB BIT,LOP1

說明:條件轉(zhuǎn)移類指令、比較不相等轉(zhuǎn)移類指令、減1不為0轉(zhuǎn)移指令均可作為條件判斷指令,由CPU決定是否繼續(xù)執(zhí)行循環(huán)體,從而實(shí)現(xiàn)了循環(huán)執(zhí)行程序段功能。

3 MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)步驟

MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)步驟如圖7所示,現(xiàn)對(duì)各部分具體設(shè)計(jì)要求分別敘述。


(1)需求分析

通過現(xiàn)場調(diào)研及與用戶交流,全面、深入、準(zhǔn)確地分析MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)所要解決的實(shí)際問題,搞清實(shí)際問題所涉及的應(yīng)用環(huán)境、應(yīng)用對(duì)象、應(yīng)用過程、應(yīng)用要求、應(yīng)用聯(lián)系,從整體上得出結(jié)構(gòu)化程序設(shè)計(jì)所要達(dá)到的目標(biāo)及系統(tǒng)所要實(shí)現(xiàn)的功能、完成的具體任務(wù)、產(chǎn)品的形式,最后形成需求分析報(bào)告。

(2)總體規(guī)劃

在需求分析的基礎(chǔ)之上,制訂出MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)的總體規(guī)劃??傮w規(guī)劃中應(yīng)確定MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)的設(shè)計(jì)原則、設(shè)計(jì)目標(biāo)、設(shè)計(jì)任務(wù)、設(shè)計(jì)方式、設(shè)計(jì)進(jìn)度和設(shè)計(jì)協(xié)作。

(3)總體設(shè)計(jì)

基于需求分析,按照總體規(guī)劃進(jìn)行總體設(shè)計(jì),確定出MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)的具體技術(shù)方案??傮w設(shè)計(jì)包括系統(tǒng)性能設(shè)計(jì)、功能設(shè)計(jì)、工作原理設(shè)計(jì)、軟件結(jié)構(gòu)設(shè)計(jì)、程序流程設(shè)計(jì)和通信協(xié)議設(shè)計(jì)。

(4)模型建立

總體設(shè)計(jì)確定了軟件結(jié)構(gòu)的所有功能模塊,某些功能模塊涉及處理復(fù)雜實(shí)際問題,應(yīng)根據(jù)相關(guān)理論和專業(yè)知識(shí),對(duì)復(fù)雜實(shí)際問題建立數(shù)學(xué)模型,為后續(xù)算法設(shè)計(jì)提供依據(jù)。

(5)數(shù)據(jù)結(jié)構(gòu)

依據(jù)功能模塊所要完成的指定功能、所要執(zhí)行的具體任務(wù)、所要處理的具體問題,針對(duì)為特定功能模塊所建立的數(shù)學(xué)模型,應(yīng)確定出功能模塊的輸入數(shù)據(jù)、暫存數(shù)據(jù)、輸出數(shù)據(jù)、數(shù)據(jù)關(guān)系。對(duì)于MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì),應(yīng)統(tǒng)籌規(guī)劃內(nèi)部RAM、確定數(shù)據(jù)類型、定義程序變量、分配數(shù)據(jù)存儲(chǔ)單元,為后續(xù)算法設(shè)計(jì)打好基礎(chǔ)。

(6)算法設(shè)計(jì)

結(jié)構(gòu)化程序設(shè)計(jì)包括結(jié)構(gòu)化算法設(shè)計(jì)。在建立了特定功能模塊的數(shù)學(xué)模型、規(guī)劃了特定功能模塊的數(shù)據(jù)結(jié)構(gòu)之后,應(yīng)對(duì)數(shù)學(xué)模型進(jìn)行結(jié)構(gòu)化算法設(shè)計(jì),結(jié)構(gòu)化算法設(shè)計(jì)的原則如下:
①自頂向下、逐步求精?;谛枨蠓治鲋朴喅隹傮w規(guī)劃,依據(jù)總體規(guī)劃完成總體設(shè)計(jì),按照總體設(shè)計(jì)自頂向下對(duì)總?cè)蝿?wù)逐層分解細(xì)化,直到每個(gè)子任務(wù)僅處理一個(gè)特定問題。
②模塊化設(shè)計(jì)。由自頂向下、逐步求精得出的子任務(wù)處理程序稱為功能模塊,處理復(fù)雜實(shí)際問題的應(yīng)用程序由多層若干功能模塊組成。
③功能模塊特性。功能模塊僅處理一個(gè)特定子任務(wù);功能模塊由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成;功能模塊可獨(dú)立編程、獨(dú)立編譯、獨(dú)立調(diào)試;功能模塊可被上層功能模塊調(diào)用。

(7)程序編輯

按照數(shù)據(jù)結(jié)構(gòu)規(guī)劃,對(duì)軟件結(jié)構(gòu)中各層功能模塊應(yīng)分別進(jìn)行編程。對(duì)于建有數(shù)學(xué)模型、設(shè)有算法的功能模塊,應(yīng)依據(jù)算法設(shè)計(jì)進(jìn)行編程。

(8)程序編譯

利用集成開發(fā)調(diào)試工具軟件,對(duì)各層功能模塊源程序分別編譯,檢查程序語法。若發(fā)現(xiàn)語法錯(cuò)誤,應(yīng)修改源程序重新編譯,直到所有功能模塊源程序編譯通過為止。

基于總體設(shè)計(jì),參照軟件結(jié)構(gòu)圖及程序流程圖,將各層功能模塊集成到一起,形成一個(gè)完整應(yīng)用程序,并進(jìn)行統(tǒng)一編譯。若發(fā)現(xiàn)語法錯(cuò)誤,應(yīng)修改應(yīng)用程序重新編譯,直到應(yīng)用程序編譯通過為止。

(9)程序調(diào)試

利用集成開發(fā)調(diào)試工具軟件,首先對(duì)各層功能模塊分別進(jìn)行調(diào)試,檢查各功能模塊的功能是否正確。若發(fā)現(xiàn)功能邏輯錯(cuò)誤,應(yīng)修改程序錯(cuò)誤后重新調(diào)試,直到所有功能模塊調(diào)試通過為止。然后對(duì)應(yīng)用程序進(jìn)行統(tǒng)調(diào),檢查應(yīng)用程序的總體功能是否正確。若發(fā)現(xiàn)功能邏輯錯(cuò)誤,應(yīng)跟蹤查找錯(cuò)誤原因,確定引起錯(cuò)誤的位置,修改程序錯(cuò)誤后重新調(diào)試,直到應(yīng)用程序調(diào)試通過為止。

(10)文檔整理

應(yīng)用程序調(diào)試通過后,應(yīng)對(duì)應(yīng)用程序進(jìn)行測試,測試通過后,應(yīng)整理出應(yīng)用程序的整套技術(shù)文檔。技術(shù)文檔包括需求分析報(bào)告、總體規(guī)劃報(bào)告、總體設(shè)計(jì)報(bào)告、源程序文件和使用說明。

本文探討了MCS-51系列單片機(jī)結(jié)構(gòu)化程序設(shè)計(jì)相關(guān)問題,對(duì)于其他系列單片機(jī),軟件程序設(shè)計(jì)人員可參照本文進(jìn)行對(duì)應(yīng)結(jié)構(gòu)化程序設(shè)計(jì)。對(duì)于本文所述功能模塊,軟件設(shè)計(jì)人員應(yīng)結(jié)合實(shí)際、準(zhǔn)確理解、整體考慮、總體設(shè)計(jì)、按功能分層次設(shè)計(jì)好各層功能模塊。本程序的設(shè)計(jì)步驟及硬件設(shè)計(jì)部分,對(duì)MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)同樣適用。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉