《單片機分支程序設(shè)計教案》由會員分享,可在線閱讀,更多相關(guān)《單片機分支程序設(shè)計教案(5頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、一、復(fù)習(xí)上次課內(nèi)容
1、什么是標識符?
答:標識符是程序員選擇的名字,用來標識常量、變量、過程、段名等。2、什么是偽指令?
答:注釋性的,沒有對應(yīng)的機器碼,不令計算機做任何操作,不產(chǎn)生目標程序,不影響程序的執(zhí)行。。
二、講授新課
4.3分支程序設(shè)計
? ? 在很多實際問題中,都需要根據(jù)不同的情況進行不同的處理。這種思想體現(xiàn)在程序設(shè)計中,就是根據(jù)不同條件而轉(zhuǎn)到不同的程序段去執(zhí)行,這就構(gòu)成了分支程序。分支程序的結(jié)構(gòu)有兩種,如圖4.2所示。
圖4.2 分支程序結(jié)構(gòu)
圖4.2(a) 結(jié)構(gòu)使用條件轉(zhuǎn)移指令來實現(xiàn)分支,當給出的條件成立時,執(zhí)行程序段A,否則執(zhí)行程序段B。
圖4
2、.2 (b) 結(jié)構(gòu)使用散轉(zhuǎn)指令JMP來實現(xiàn)多分支轉(zhuǎn)移,它首先將分支程序按序號的值來實現(xiàn)分支轉(zhuǎn)移。
分支程序的特點是改變程序的執(zhí)行順序,跳過一些指令,去執(zhí)行另外一些指令。應(yīng)注意:對每一個分支都要單獨編寫一段程序,每一分支的開始地址賦給一個標號。
對部分專用寄存器產(chǎn)生影響,復(fù)位后,這些內(nèi)部寄存器狀態(tài)如表2-6。
發(fā)表見解和主張,從而達到感召聽眾、說服聽眾、教育聽眾的藝術(shù)化的語言交際形式。
“演”與“講”在演講實踐活動中,在傳遞信息的時候,并不是平分秋色,各占一半。二者雖然需要和諧統(tǒng)一
3、,但不是一加一等于二的統(tǒng)一,而是以“講”為主,以“演”為輔,互相交織、互相滲透、互相促進的統(tǒng)一。
二、演講的本質(zhì)
演講是人類的一種社會實踐活動,具有鼓動性、現(xiàn)實性、適應(yīng)性和藝術(shù)性,是它的主要特征。整個演講活動,必須具備演講者(主體),聽眾(客體),溝通主客體的信息,及主、客體同處一起的時境(時間環(huán)境)四個條件。這四者缺一不可,也就是說,離開任何一個條件,都構(gòu)不成演講活動。但是僅僅具備這四個條件,也不足以揭示出演講的本質(zhì)屬性。因為,任何一種帶有藝術(shù)性的活動,都有其自己獨特的物質(zhì)傳達手段,形成自己特殊的規(guī)律,揭示著自身活動的本質(zhì)特點。演講活動自然也不例外,演講者要想發(fā)表自己的意見
4、,陳述自己的觀點和主張,從而達到影響、說服、感染他人的目的,就必須通過與其內(nèi)容相一致的傳達手段。
在編寫分支程序時,關(guān)鍵是如何判斷分支的條件。在MCS-51系列單片機中可以直接用來判斷分支條件的指令并不多,只有累加器為零(或不為零)、比較條件轉(zhuǎn)移指令CJNE等,MCS-51單片機還提供了位條件轉(zhuǎn)移指令,如JC,JB等。把這些指令結(jié)合在一起使用,就可以完成各種各
5、樣的條件判斷。
【例4-5】設(shè)補碼X放在內(nèi)部RAM30H單元中,函數(shù)Y與X有如下的關(guān)系式:
試編寫程序,根據(jù)X的值求出Y,并放回原單元。
解 取出X后先做取值范圍的判斷,用累加器A狀態(tài)轉(zhuǎn)移指令判斷X是否為0,用位狀態(tài)轉(zhuǎn)移指令判斷X是大于0還是小于0。程序流程圖如圖4.3所示。
程序如下:
MOV A,30H
JZ ZER0
JNB ACC.7,PLUS
ADD A,#5
6、
ADD A,#5
MOV 30H,A
PLUS: SJMP $
ZERO: MOV 30H,#20H
SJMP $
END
【例4-6】內(nèi)部RAM40H和41H單元中各有一無符號數(shù),比較其大小,將大數(shù)存放于內(nèi)部RAM60H單元,小數(shù)存放于內(nèi)部RAM61H單元,如兩數(shù)相等,則分別送往這2個單元。
解 用比較不等轉(zhuǎn)移指令CJNE比較力兩個無符號書,先確定它們是否相等,若不相等時再根據(jù)借位標志確定這兩個無符號書的大小。程序框圖如
7、圖4.4所示。
程序如下:
? MOV
A, 40H
?
?
? MOV
61H, 41H
?
?
? CJNE
A, 41H, LOOP
?
?
? AJMP
AGEQ
?
?? LOOP:
? JNC
AGEQ
;A≥(41H)則無借位
?
? XCH
A, 61H
;A<(41H)有借位
?? AGEQ:
? MOV
60H, A
;A與(61H)交換
?
? SJMP
$
?
?
? END
?
?
8、
【例4-8】將ASCII碼制轉(zhuǎn)換為十六進制數(shù)。如果不是十六進制數(shù)得ASCII碼,用戶標志位置1。解:由ASCII碼表知,30H~39H為0~9的ASCII碼,41H~46H為A~F的ASCII碼。在這一范圍的ASCII碼減去37H就可以獲得對應(yīng)的十六進制。設(shè)ASCII碼放在累加器A中,轉(zhuǎn)換結(jié)果放回A中。程序流程圖如圖4.5所示
三、課堂鞏固
四、課堂小結(jié)
五、作業(yè)
5 / 55 / 5