第一篇:MATLAB_分支結(jié)構(gòu)程序設(shè)計答案
MATLAB分支結(jié)構(gòu)程序設(shè)計
一、實驗?zāi)康?/p>
1.理解MATLAB的編程方法 2.掌握if語句和switch語句的使用 3.掌握分支結(jié)構(gòu)程序設(shè)計方法
4.通過練習(xí)理解MATLAB編程方法和分支結(jié)構(gòu)程序設(shè)計方法。
二、實驗環(huán)境
1.計算機
2.MATLAB7.0集成環(huán)境
三、實驗說明
1.熟練操作MATLAB7.0運行環(huán)境 2.自主編寫程序,必要時參考相關(guān)資料 3.實驗前應(yīng)寫出程序大致框架或完整的程序代碼 5.實驗學(xué)時:2學(xué)時
四、實驗內(nèi)容和步驟
1.實驗內(nèi)容
(1)從鍵盤輸入一個數(shù),將它反向輸出,例如輸入693,輸出為396 >> clear >> format long g s=input('s=')n=fix(log10(s));A=0;for i=1:n a=fix(s/10^n);x=fix(mod(s,10^i)/10.^(i-1));A=A+x*10^(n+1-i);end A+a s=693 s = 693 ans = 396(2)輸入一個百分制成績,要求輸出成績等級A,B,C,D,E其中90-100位A,80-89為B,70-79為C,60-69為D,60以下為E 1)分別用if語句和switch語句實現(xiàn)
2)輸入百分制成績后要判斷成績的合理性,對不合理的成績應(yīng)輸出出錯信息 If語句
>> a=input('輸入成績')if a>=90&a<=100 disp('A 成績合理');elseif a>=80&a<90 disp('B 成績合理');elseif a>=70&a<80 disp('C 成績合理');elseif a>=60&a<70 disp('D 成績合理');elseif a<60 disp('E 成績合理');else disp('成績錯誤')end 輸入成績56 a = 56 E 成績合理 switch語句
>> a=input('輸入成績')
switch a;case num2cell(0:59)disp('E 成績合理');case num2cell(60:69)disp('D 成績合理');case num2cell(70:79)disp('C 成績合理');case num2cell(80:89)disp('B 成績合理');case num2cell(90:100)disp('A 成績合理');otherwise disp('成績錯誤');end 輸入成績78 a = 78 C 成績合理 2.實驗步驟
(1)分析實驗內(nèi)容,寫出程序大致框架或完整的程序代碼。(2)進(jìn)入MATLAB7.0集成環(huán)境。(3)編輯程序并進(jìn)行保存。
(4)運行程序,若有錯誤,修改錯誤后再次運行,如此反復(fù)進(jìn)行到不顯示出錯為止。
(5)檢查程序輸出結(jié)果。
五、實驗報告要求1.整理實驗結(jié)果,填入相應(yīng)表格中 2.小結(jié)實驗心得體會
通過本次實驗,我逐漸掌握了點if語句和switch語句的使用,了解了分支結(jié)構(gòu)程序設(shè)計方法。因為本次實驗較有難度,所以完成的不是很順利。在分支結(jié)構(gòu)程序設(shè)計方面還有待加強。
第二篇:分支結(jié)構(gòu)程序設(shè)計教案
感受分支結(jié)構(gòu)程序的作用
一、教學(xué)目標(biāo) 1.知識與技能目標(biāo)
(1)理解程序的分支結(jié)構(gòu)。(2)了解編程思路。2.過程與方法目標(biāo)
(1)借助多媒體教學(xué),強化學(xué)生的理解力和注意力。(2)能根據(jù)問題設(shè)計界面和編寫程序。3.情感、態(tài)度與價值觀目標(biāo)
(1)讓學(xué)生從無到有的探索過程中感受成功的喜悅。(2)培養(yǎng)學(xué)生探究精神與獨立操作能力。
二、教學(xué)重點和難點 1.教學(xué)重點:
使用visual basic語言的條件語句來實現(xiàn)分支結(jié)構(gòu),從而解決實際問題。
2、教學(xué)難點:
理解程序中流程的代碼描述。
三、教學(xué)方法
情境教學(xué)法、講授法、任務(wù)驅(qū)動法
四、教學(xué)準(zhǔn)備
1、教學(xué)環(huán)境。多媒體網(wǎng)絡(luò)教室。
2、教學(xué)資源。
學(xué)生用機需要安裝好visual Bastc語言環(huán)境。任務(wù)卡
五、教學(xué)過程
1.創(chuàng)設(shè)情境,導(dǎo)入新課
ppt演示導(dǎo)出課題“分支結(jié)構(gòu)”通過鏈接到“體型判斷”小程序,然后讓同學(xué)們自己推薦同學(xué)來測試是否偏胖或偏瘦或正常。學(xué)生的興趣度很高,積極的配合。
設(shè)計意圖:引起學(xué)生興趣,激發(fā)學(xué)生的學(xué)習(xí)熱情,點名課題。2.講授新課
(1)給出標(biāo)準(zhǔn)體重的計算公式,并簡介如何評判體型。
(2)列舉生活中需要進(jìn)行條件選擇的例子來講解,幫學(xué)生理解分支結(jié)構(gòu)程序設(shè)計的概念。(3)關(guān)系表達(dá)式和邏輯表達(dá)式的簡介。(4)畫出if語句流程圖,了解簡單的if語句。
(5)教師操作“體型判斷”的案例,介紹框架控件的使用,編寫部分程序,回憶舊知。
設(shè)計意圖:師生共同構(gòu)思,寫出“體型判斷”源程序,讓學(xué)生對分支結(jié)構(gòu)的理解更深刻。
3.布置作業(yè),鞏固提高
以書本上的典型案例“體型判斷”讓學(xué)生操作,有不懂的看書本或任務(wù)卡。(巡回指導(dǎo),及時幫學(xué)生解決操作過程中存在的問題)
4.歸納總結(jié),加強記憶
先讓學(xué)生們歸納總結(jié)本節(jié)課所學(xué)的內(nèi)容,然后教師總結(jié),讓學(xué)生有一個更深刻的印象,并強調(diào)應(yīng)注意的幾個問題。
設(shè)計意圖:課堂小結(jié)的目的是強化認(rèn)識,可以把課堂傳授的知識盡快地轉(zhuǎn)化為學(xué)生的知識;簡單扼要的課堂小結(jié),可使學(xué)生更深刻地理解分支結(jié)構(gòu)程序設(shè)計在實際生活中的應(yīng)用。
六、課后反思
整節(jié)課以學(xué)生動手為主,學(xué)生的興趣濃厚,課堂充滿活力,能夠達(dá)到預(yù)期目的。學(xué)生基本上都完成了課堂作業(yè),但是已經(jīng)做好的同學(xué)還沒能形成先預(yù)習(xí)下節(jié)課要講的內(nèi)容的好習(xí)慣,總體來說這節(jié)課是相對成功的。
第三篇:分支程序設(shè)計實驗報告[范文模版]
實驗二 二 分支程序設(shè)計 一、實驗?zāi)康? 1、學(xué)習(xí)分支程序得設(shè)計方法 2、熟悉在 PC 機上建立、匯編、連接、調(diào)試與運行匯編語言程序得過程 二、實驗環(huán)境:
硬件環(huán)境
IBM/ PC 及其兼容機 軟件環(huán)境
統(tǒng) 操作系統(tǒng) DO S
編輯程序 EDIT 或其她編輯程序
序程編匯? 匯編程序 M ASM、E XE
連接程序LIN K、EXE 序 調(diào)試程序 DEB UG、EXE 三、實驗內(nèi)容:
:、在屏幕上顯示如下信息:—-— —- ------—-—---— — ------—-Panda
2— —- --— — ---—-—-———-----— —-—--Cat
?
3-——--------------———- -——-Ra bbit
4— — -— —-— — -— —--— — --- —- --——------Pig—— ------—--—--—-—---— —- --—EXI T
(Pl(wèi)ea se
ch oo se 1, 2, 3,4or 5)—- ----入 若輸入 1, 顯示“I like e
p panda ”后程序結(jié)束;若輸入 2, 顯示“I
lik e cat” ”后程序結(jié)束;若輸入 3,顯示“I
lik e rab bit t入 ”后程序結(jié)束;若輸入 4, 顯示“I do n’t l like pig ”后程序結(jié)束;若輸入 5,程序直接結(jié)束;若輸入其它字符,顯示“You
pr ess an error key!“ 后程序結(jié)束.1)流程圖
2)源程序 DATA SEGMENT
INFOR1 DB 0AH,0DH,”1-—-—----—-—Panda:$"
INFOR2 DB 0AH,0DH,”2—-—-——--———Cat:$”
INFOR3 DB 0AH,0DH,"3---—---——-—Rabbit;$”
INFOR4 DB 0AH,0DH,"4---—------—pig:$“
INFOR5 DB 0AH,0DH,”5--—--——--—-EXIT:$"
INFOR6 DB 0AH,0DH,”(please choose 1,2,3,4 or 5——-):$“
INFOR7 DB 0AH,0DH,”I like Panda:$“
INFOR8 DB 0AH,0DH,"I like Cat:$”
INFOR9 DB 0AH,0DH,"I like Rabbit;$"
INFOR10 DB 0AH,0DH,”I like pig:$"
INFOR11 DB 0AH,0DH,”you press an error key!:$” DATA ENDS
;數(shù)據(jù)段結(jié)束 CODE SEGMENT
;代碼段開始 Y Y Y Y N N N N N 開始 選項 用戶輸入 Al=1 Al=2 Al=3 Al=4 Al=5 You press an error key 結(jié)束 I like panda I like cat I like rabbit I like do not
ASSUME
CS:CODE,DS:DATA
;段尋址 START: MOV AX,DATA
;將 dat(yī)a 得數(shù)據(jù)存入ax 中
MOV DS,AX
;為 ds 賦值
MOV DX,OFFSET
INFOR1
;返回變量 INFOR1 段內(nèi)偏移地址【運行后在屏幕上顯示字符 1--——--—--—-Panda:】
MOV AH,09H
INT 21H
;執(zhí)行九號功能調(diào)用
MOV DX,OFFSET
INFOR2
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR3
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR4
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR5
;返回變量 INFOR5 段內(nèi)偏移地址【運行后在屏幕上顯示字符 5—-—--——----EXIT:】
MOV AH,09H
INT 21H
MOV DX,OFFSET
INFOR6
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
CMP AL,“1’
JE
Panda
CMP AL,'2’
JE
Cat
CMP AL,”3’
JE
Rabbit
CMP AL,’4'
JE Pig
CMP AL,’5’
JE PEND
JMP Other Panda:
MOV DX,OFFSET INFOR7
MOV AH,09H
INT 21H
JMP PEND Cat:
8ROFNI TESFFO,XD VOM? H90,HA VOM? H12 TNI? JMP PEND Rabbit:
MOV DX,OFFSET INFOR9
MOV AH,09H
H12 TNI?
JMP PEND Pig:
MOV DX,OFFSET INFOR10
H90,HA VOM? INT 21H
JMP PEND Other:
MOV DX,OFFSET INFOR11
MOV AH,09H
H12 TNI?
JMP PEND PEND:
MOV AH,4CH
INT 21H CODE
ENDS
END START
2、、從鍵盤輸入一字符,判斷該字符就是小寫字母、大寫字母、數(shù)字或其它字符.若輸入為小寫字母, 顯示“Y You
I nput a Lo wer case Letter!”;若輸入為大寫字母, 顯示“You Inp ut a Uppercase L et ter!”;若輸入為數(shù)字,顯示“Yo ou Input a Digit!“;
若輸入為其它字符,顯示“You Inpu t
Ot her Let tt er!”。、編程指導(dǎo) 字 數(shù)字 0? ? 9得ASC II 碼為30H? ?39H;大寫字母得 ASCII 碼為 4 1H? ? 5AH,小寫字母得AS CI I碼為61H? ?7AH。本題目將字符分為小寫字母、大寫字母、數(shù)字及其它字符,得 根據(jù)鍵入字符得 AS CII 碼值判斷其所屬類型, 并顯示相應(yīng)得信息 息.字符串顯示使用功能號為 09H 得 得 DOS 功能調(diào)用, 接收鍵盤輸入得單個字符使為 用功能號為 01H 得 得 DOS 功能調(diào)用。
2、流程圖及程序框圖 1)流程圖 2)源程序 DATA SEGMENT
INFOR1 DB 0AH,0DH,”Please Press Any Key to input a letter:$"
INFOR2 DB 0AH,0DH,”You input a lowercase letter!$”
INFOR3 DB 0AH,0DH,“You input a Uppercase letter!
$”
INFOR4 DB 0AH,0DH,"You input a Digit!
$”
INFOR5 DB 0AH,0DH,“You input Other letter!$” DATA ENDS CODE SEGMENT
ASSUME
CS:CODE,DS:DATA START:
MOV AX,DATA
; 顯示信息“Please Press Any Key to input a letter”得指令序列以及接收從鍵盤輸入一個字符得指令序列
MOV DS,AX
MOV
DX,OFFSET
INFOR1
H90,HA
VOM?
INT
21H
MOV AH,01H
INT 21H Y Y Y Y Y Y 顯示提示信息“Please Press Any Key to input a letter” 及功能號為 1 得接收鍵盤輸入單個字符得指令序列 開始 結(jié)束(AL)<’0’(AL)<=’9’(AL)<’A’(AL)<=’Z’(AL)<’a’(AL)<=’z’ 輸入得就是小寫字母,顯示信息 輸入得就是大寫字母,顯示信息 輸入得就是數(shù)字,顯示有關(guān)信息 輸入得就是其它字符,顯示信息
CMP
AL,’0’
JB
OTHER
CMP
AL,’9’
JBE
DIGIT
CMP
AL,’A“
REHTO(shè)
BJ? ”Z',LA
PMC? REPPU
EBJ? CMP
AL,’a’
JB
OTHER
“z',LA
PMC? JBE
LOWER
JMP
PEND LOWER:
;顯示“You Input a Lowercase Letter!”得指令序列
MOV DX,OFFSET INFOR2
H90,HA VOM? INT 21H
出跳序程使應(yīng)后支分個一完行執(zhí)意注;
DNEP PMJ?UPPER:
; 顯示“You Input a Uppercase Letter”得指令序列 MOV DX,OFFSET INFOR3
H90,HA VOM? H12 TNI? DNEP PMJ?DIGIT:
; 顯示“You Input a Digit!”得指令序列 MOV DX,OFFSET INFOR4
H90,HA VOM? INT 21H
JMP PEND OTHER:
; 顯示“You Input Other Letter!”得指令序列
5ROFNI TESFFO,XD VOM? MOV AH,09H
H12 TNI?PEND:
MOV AH,4CH
H12 TNI?CODE
ENDS
END START
四、心得 通過這次上機實驗, 我掌握了分支程序額設(shè)計方法, 宏定義及宏調(diào)用得基本方法,了解了小寫字母與大寫字母得ASCII 碼表示及其轉(zhuǎn)換方法,了解了數(shù)字及其她得 字符得 AS CII 碼表示方法, 進(jìn)一步掌握了調(diào)試工具得 使用方法。
第四篇:活動八《體驗順序、分支結(jié)構(gòu)程序設(shè)計》說課稿
活動八《體驗順序、分支結(jié)構(gòu)程序設(shè)計》說課稿
尊敬的評委,各位老師,大家好:
我是平和縣大溪中學(xué)信息技術(shù)教師江文權(quán),我說課的題目是活動八《體驗順序、分支結(jié)構(gòu)程序設(shè)計》
一、說教材
1、本節(jié)課選自福建教育人民出版社出版《信息技術(shù)》教材。本教材貫徹“以學(xué)生為主體,教師為主導(dǎo)”的方針,把提高學(xué)生的積極性,培養(yǎng)學(xué)生的創(chuàng)新能力作為教育的根本目標(biāo)。本節(jié)課所學(xué)的順序、分支結(jié)構(gòu)是Visual Basic程序設(shè)計制作過程的重要內(nèi)容,是在學(xué)生對 Visual Basic掌握后的能力提高訓(xùn)練,激發(fā)學(xué)生制作出更加精彩的Visual Basic作品的靈感。
2、教學(xué)目標(biāo):(在新課程理念指導(dǎo)下,根據(jù)本節(jié)課教學(xué)內(nèi)容制定如下教學(xué)目標(biāo),分三個方面)①知識與技能:
(1)學(xué)生通過 了解變量和賦值語句格式的操作練習(xí),熟練使用語法;
(2)學(xué)生通過IF語句操作練習(xí),熟練使用分支結(jié)構(gòu);
(3)結(jié)合前面知識,感受順序、分支結(jié)構(gòu)程序的作用。②過程與方法:
(1)能夠通過教師引導(dǎo)、動腦思考、交流與實踐操作學(xué)習(xí)過程,體驗和感悟探究的一般過程;
(2)能夠仔細(xì)傾聽其他同學(xué)的發(fā)言,體驗合作學(xué)習(xí)的過程和方法; ③情感、態(tài)度與價值觀:
(1)聯(lián)系生活實際,學(xué)習(xí)本課內(nèi)容順序、分支結(jié)構(gòu)程序設(shè)計,激發(fā)學(xué)生對Visual Basic的學(xué)習(xí)興趣。
(2)學(xué)生在協(xié)作與交流過程中,提高自己的操作能力,肯定自己的價值。
3、教學(xué)重、難點:(如今信息技術(shù)學(xué)科不再是孤立的技能性工具,我們更要考慮信息技術(shù)與其它學(xué)科的整合過程,本著這一理念,我確定本節(jié)課的重點與難點,)重點:學(xué)生通過本節(jié)課學(xué)習(xí),熟練制作可視化作品 ;
難點:學(xué)生通過交流與實踐操作掌握VB 技巧,并做到與數(shù)學(xué)學(xué)科完美整合。
二、說學(xué)習(xí)者特征
1、學(xué)生是八年級的學(xué)生;
2、學(xué)生思維活躍,樂于接受有趣的感性知識;
3、學(xué)生善于和同學(xué)交流,能夠虛心學(xué)習(xí)他人長處;
4、學(xué)生強烈希望自己能夠制作一份VB可視化程序設(shè)計作品。
三、說教學(xué)策略
1、信息技術(shù)綱要中明確指出:知識及技能的傳授應(yīng)當(dāng)以完成典型“任務(wù)”為主。本課的新知識環(huán)節(jié)中的學(xué)習(xí)目標(biāo)是以任務(wù)方式出現(xiàn)的,例如“計算各隊的凈勝球數(shù)”。
2、本課內(nèi)容比較抽象,我本著直觀性教學(xué)的原則,多次采利用直觀演示教學(xué)手段,調(diào)動學(xué)生多種感官,吸引學(xué)生注意力,激發(fā)學(xué)生的興奮點。比如在“求N層立方體的表面積”。
3、為了更好的突破重難點,我把“探究——合作——創(chuàng)新”的思想滲透到整個教學(xué)過程中,最大限度的發(fā)揮學(xué)生的學(xué)習(xí)積極性。如“體型判斷”。
4、學(xué)生通過實踐操作,增強分析問題能力、動手操作能力,使理論學(xué)習(xí)與實踐操作有機地結(jié)合在一起。
四、說教學(xué)過程:
依據(jù)新課程改革教學(xué)理論,充分體現(xiàn)學(xué)生的主體地位,培養(yǎng)學(xué)生獨立獲取知識的能力,本節(jié)課的教學(xué)設(shè)計我采用“激趣導(dǎo)入、探究新知、協(xié)作提高、觀摩欣賞”四個環(huán)節(jié)進(jìn)行教學(xué)。
(一)激趣導(dǎo)入:
廣播“計算各隊的凈勝球數(shù)”視頻,學(xué)生帶著無比的興奮觀看完游戲視頻,我提出:這樣的視頻我們也能制作,你們想不想也來動手制作一件這樣的作品。那就讓我們馬上出發(fā)吧。這樣的設(shè)計,適合學(xué)生的年齡特點,能激發(fā)學(xué)生學(xué)習(xí)新知識的濃厚興趣,成功地引起學(xué)生對新知識的好奇和探求之心。
(二)探究新知:
本環(huán)節(jié)以任務(wù)驅(qū)動式展開分層教學(xué)。任務(wù)一:感受順序結(jié)構(gòu)程序的作用,由我來通過屏幕廣播方式演示示范操作過程,讓學(xué)生們觀看我我操作過程中作品的變化是什么?(這樣設(shè)計是為了勾起學(xué)生的好奇心,訓(xùn)練學(xué)生的觀察力)。給學(xué)生15分鐘,在學(xué)生完成任務(wù)后,對操作過程中的問題加以強調(diào)、說明,同時肯定學(xué)生的成績。(我這樣設(shè)計目的是及時對學(xué)生的操作成果進(jìn)行評價,讓每個學(xué)生都能確定自己的方向)任務(wù)二:如果“求N層立方體的表面積”,我們接下來該如何操作呢? 在這一環(huán)節(jié)里我設(shè)計讓學(xué)生通過自己的理解,同桌交流以及我及時必要的補充,完成書中設(shè)定的任務(wù)。
設(shè)計意圖:教學(xué)過程以啟迪學(xué)生思維為核心,以學(xué)生參與為標(biāo)志,不能將結(jié)果簡單地塞給學(xué)生,而應(yīng)讓學(xué)生自己得出結(jié)論,然后互相討論補充,教師總結(jié)。
任務(wù)三:感受分支結(jié)構(gòu)程序的作用,這個任務(wù)我設(shè)計讓學(xué)生通過認(rèn)真研讀教材后,與小組交流討論,然后制作演示,適時請幾名同學(xué)談一下自己的操作過程,“為什么會出現(xiàn)這樣的結(jié)果”,學(xué)生在交流中彌補自己的不足。
任務(wù)四:我們生活中真實的 分支結(jié)構(gòu)是這樣嗎?學(xué)生回答后,接下來我們共同來學(xué)習(xí)制作 “體型判斷”。在任務(wù)的驅(qū)動下,學(xué)生借助老師的直觀演示學(xué)習(xí)“體型判斷”。
(三)協(xié)作提高:本環(huán)節(jié)是本節(jié)課教學(xué)內(nèi)容的升華,是本節(jié)課最具閃光點的一環(huán),在這時里既應(yīng)充分體現(xiàn)學(xué)生的合作討論,又要體現(xiàn)學(xué)生的自主創(chuàng)新,所以我設(shè)計以小組為單位,在學(xué)習(xí)了以上內(nèi)容的基礎(chǔ)上,完成本組的一件個性作品。
(四)觀摩欣賞:在這個環(huán)節(jié)里,我請學(xué)生通過屏幕廣播功能去欣賞學(xué)生作品,互相看一看,評一評,虛心的學(xué)習(xí)他人的長處。(這樣設(shè)計的目的是為了達(dá)到梳理所學(xué)知識,加深記憶的目的。)
作業(yè):以小組為單位,完成書中“計算各隊的凈勝球數(shù)”,“體型判斷”例題。
五、說評價:
本節(jié)課對學(xué)生學(xué)習(xí)效果的評價主要采用如下三種方式進(jìn)行,一是在教學(xué)實踐過程中對學(xué)生操作效果的及時反饋評價; 二是在小組協(xié)作學(xué)習(xí)過程中學(xué)生間的互評過程;
三是完成本節(jié)課的學(xué)習(xí)任務(wù)后,學(xué)生根據(jù)教學(xué)目標(biāo)完成自我評價。總結(jié):
本節(jié)課,我本著“以學(xué)生發(fā)展為本”的原則,把探究的主動權(quán)交給了學(xué)生,給他們一些求知欲望,多一些學(xué)習(xí)的興趣,多一些表現(xiàn)的機會,多一份創(chuàng)造的信心,多一份成功的體驗,給學(xué)生一種到達(dá)成功彼岸的力量。謝謝各位評委
第五篇:單片機-分支程序設(shè)計教案
一、復(fù)習(xí)上次課內(nèi)容
1、什么是標(biāo)識符?
答:標(biāo)識符是程序員選擇的名字,用來標(biāo)識常量、變量、過程、段名等。
2、什么是偽指令?
答:注釋性的,沒有對應(yīng)的機器碼,不令計算機做任何操作,不產(chǎn)生目
標(biāo)程序,不影響程序的執(zhí)行。
二、講授新課
4.3分支程序設(shè)計
在很多實際問題中,都需要根據(jù)不同的情況進(jìn)行不同的處理。這種
思想體現(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)分支,當(dāng)給出的條件成立時,執(zhí)行程序段A,否則執(zhí)行程序段B。
圖4.2(b)結(jié)構(gòu)使用散轉(zhuǎn)指令JMP來實現(xiàn)多分支轉(zhuǎn)移,它首先將分支程序按序號的值來實現(xiàn)分支轉(zhuǎn)移。
分支程序的特點是改變程序的執(zhí)行順序,跳過一些指令,去執(zhí)行另外一些指令。應(yīng)注意:對每一個分支都要單獨編寫一段程序,每一分支的開始地址賦給一個標(biāo)號。
在編寫分支程序時,關(guān)鍵是如何判斷分支的條件。在MCS-51系列單片機中可以直接用來判斷分支條件的指令并不多,只有累加器為零(或不為零)、比較條件轉(zhuǎn)移指令CJNE等,MCS-51單片機還提供了位條件轉(zhuǎn)移指令,如JC,JB等。把這些指令結(jié)合在一起使用,就可以完成各種各樣的條件判斷。
【例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 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ù)借位標(biāo)志確定這兩個無符號書的大小。程序框圖如圖4.4所示。程序如下:
LOOP:
AGEQ:
SJMP END $
XCH MOV A,61H 60H,A
;A<(41H)有借位
;A與(61H)交換 MOV MOV CJNE AJMP JNC A,40H 61H,41H A,41H,LOOP AGEQ AGEQ
;A≥(41H)則無借位
【例4-8】將ASCII碼制轉(zhuǎn)換為十六進(jìn)制數(shù)。如果不是十六進(jìn)制數(shù)得ASCII碼,用戶標(biāo)志位置1。解:由ASCII碼表知,30H~39H為0~9的ASCII碼,41H~46H為A~F的ASCII碼。在這一范圍的ASCII碼減去37H就可以獲得對應(yīng)的十六進(jìn)制。設(shè)ASCII碼放在累加器A中,轉(zhuǎn)換結(jié)果放回A中。程序流程圖如圖4.5所示
三、課堂鞏固
四、課堂小結(jié)
五、作業(yè)