- 相關(guān)推薦
循環(huán)結構的程序設計方法(一)
實(shí)驗報告撰寫(xiě)要求
實(shí)驗操作是理論聯(lián)系實(shí)際的重要環(huán)節,實(shí)驗報告必須在科學(xué)實(shí)驗的基礎上進(jìn)行,實(shí)驗報告的撰寫(xiě)是知識系統化的吸收和升華的過(guò)程,實(shí)驗報告應該體現完整性、規范性、正確性、有效性,F將撰寫(xiě)實(shí)驗報告的有關(guān)內容說(shuō)明如下:
1.實(shí)驗名稱(chēng)
2.實(shí)驗目的
本次實(shí)驗所涉及并要求掌握的知識點(diǎn)。
3.實(shí)驗內容與實(shí)驗步驟
實(shí)驗內容、原理、原理圖分析及具體實(shí)驗步驟。
4.實(shí)驗環(huán)境
實(shí)驗所使用的器件、儀器設備名稱(chēng)及規格。
5.設計實(shí)驗數據表格
6.實(shí)驗過(guò)程與分析
詳細記錄在實(shí)驗過(guò)程中發(fā)生的故障和問(wèn)題,并進(jìn)行故障分析,說(shuō)明故障排除的過(guò)程及方法。
根據具體實(shí)驗,記錄、整理相應數據表格、繪制曲線(xiàn)、波形圖等,并進(jìn)行誤差分析。
7.實(shí)驗結果總結
對實(shí)驗結果進(jìn)行分析,完成思考題目,總結實(shí)驗的心得體會(huì ),并提出實(shí)驗的改進(jìn)意見(jiàn)。
注:1.前5項必須在做實(shí)驗之前完成,并由指導教師簽字后才能做實(shí)驗。
2.對于學(xué)生自擬實(shí)驗題目、參與科研、創(chuàng )新實(shí)驗等形式實(shí)驗項目的實(shí)驗報告可采用論文、實(shí)驗總結報告等形式完成。
3.此封皮標準頁(yè)面為16K
實(shí)驗名稱(chēng):
循環(huán)結構的程序設計方法
實(shí)驗目的:
1.掌握循環(huán)結構的程序設計方法;
2.通過(guò)循環(huán)結構的程序設計,加深理解程序設計的步驟,掌握較復雜應用的設計方法。
實(shí)驗環(huán)境:
PC計算機 MPLAB編程環(huán)境
實(shí)驗原理 :
實(shí)驗一:編程實(shí)現兩個(gè)16位二進(jìn)制數的乘法運算(用部分積右移的方法)
本實(shí)驗通過(guò)運用部分積右移法進(jìn)行兩個(gè)十六位數的乘法運算。
部分積右移:首先,將兩個(gè)待乘數據放入寄存器A和B。然后將乘數B所在的寄存器按位右移,使最后一位移入狀態(tài)寄存器的進(jìn)位標志位。接下來(lái),判斷進(jìn)位標志位是否為1,如果為1,那么將被乘數與結果相加(初始值為零),并將結果右移一位,為下一次相加做準備;反之,如果進(jìn)位標志是0,那么,部分積不與任何值相加,但是仍然要向右移動(dòng)一位,為下面的加法做準備。這樣,利用循環(huán)程序,共循環(huán)16次,使乘數所有位都進(jìn)入過(guò)狀態(tài)寄存器標志位,這樣,就將結果值進(jìn)行了16次右移,并在特定的位置加上了原數據,得到了最后的結果,結果由于是32位的,所以放入兩個(gè)寄存器所組成的單元之中,在本實(shí)驗里,放入了C和D寄存器。
實(shí)驗二:(選作)編程實(shí)現兩個(gè)16位二進(jìn)制數的乘法運算(用被乘數左移的方法)
本實(shí)驗通過(guò)運用被乘數左移法進(jìn)行兩個(gè)十六位數的乘法運算。
被乘數左移:首先,將兩個(gè)待乘數據放入寄存器AB和C。由于在運算過(guò)程中需要移動(dòng)被乘數AB共16次,AB本身又是一個(gè)16位的數據,那么,AB應該有四個(gè)寄存器組成,即AB為一個(gè)32位的寄存器(由AH AL BH BL構成,其中,B存放高八位,A存放低八位)。然后將乘數B所在的寄存器按位右移,使最后一位移入狀態(tài)寄存器的進(jìn)位標志位。接下來(lái),判斷進(jìn)位標志位是否為1,如果為1,那么將被乘數與結果相加(初始值為零),并將被乘數左移一位,為下一次相加做準備;反之,如果進(jìn)位標志是0,那么,被乘數不與結果值相加,但是仍然要向左移動(dòng)一位,為下面的加法做準備。這樣,利用循環(huán)程序,共循環(huán)16次,使乘數所有位都進(jìn)入過(guò)狀態(tài)寄存器標志位,這樣,就將被乘數進(jìn)行了16次左移,并在特定的位置加到了結果值數據上,得到了最后的結果,結果由于是32位的,所以放入兩個(gè)寄存器所組成的單元之中,在本實(shí)驗里,放入了D(低八位)和E(高八位)寄存器。
但是,不論應用那種方法,都有不足之處,那就是,如果計算的數值結果超過(guò)了32位,也就是在進(jìn)行最后一次加法運算時(shí),產(chǎn)生了溢出,那么,結果將產(chǎn)生錯誤。也就是說(shuō),這兩個(gè)程序都不可能完成所有16位的數據的乘法運算。
實(shí)驗程序:
實(shí)驗一:
AL EQU 10
AH EQU 11
BL EQU 12
BH EQU 13
CL EQU 14
CH EQU 15
DL EQU 16
DH EQU 17
COUNTER EQU 18
STATU EQU 3
CARRY EQU 0
ORG 1FFH
GOTO MAIN
ORG 0H
MULT RRF BH
RRF BL
BTFSC STATU,CARRY
CALL ADD
RRF CH
RRF CL
RRF DH
RRF DL
DECFSZ COUNTER
GOTO MULT
RETLW 0
ADD MOVF AL,0
ADDWF CL
BTFSC STATU,CARRY
INCF CH
MOVF AH,0
ADDWF CH
RETLW 0
SETU MOVLW 13H
MOVWF AL
MOVLW 2CH
MOVWF AH; 被乘數->A
MOVLW 7AH
MOVWF BL
MOVLW 18H
MOVWF BH; 乘數->B
MOVLW 10H
MOVWF COUNTER
CLRF DL
CLRF DH
RETLW 0
MAIN NOP
CALL SETU
CALL MULT
END
實(shí)驗二:
AL EQU 10
AH EQU 11
BL EQU 12
BH EQU 13
CL EQU 14
CH EQU 15
DL EQU 16
DH EQU 17
EL EQU 18
EH EQU 19
COUNTER EQU 1A
STATU EQU 3
CARRY EQU 0
ORG 1FFH
GOTO MAIN
ORG 0H
MULT RRF CH
RRF CL
BTFSC STATU,CARRY
CALL ADD
RLF AL
RLF AH
RLF BL
RLF BH
DECFSZ COUNTER
GOTO MULT
RETLW 0
ADD MOVF AL,0
ADDWF DL
BTFSC STATU,CARRY
INCF DH
MOVF AH,0
ADDWF DH
BTFSC STATU,CARRY
INCF EL
MOVF BL,0
ADDWF EL
BTFSC STATU,CARRY
INCF EH
MOVF BH,0
ADDWF EH
RETLW 0
SETU MOVLW 5DH
MOVWF AL
MOVLW 13H
MOVWF AH
MOVLW 2CH
MOVWF CL
MOVLW 07H
MOVWF CH
MOVLW 10H
MOVWF COUNTER
CLRF BL
CLRF BH
CLRF DL
CLRF DH
CLRF EL
CLRF EH
RETLW 0
MAIN NOP
CALL SETU
CALL MULT
END
調試結果:
實(shí)驗一
2C13*187A=436C90E
1、加載數據前的情況
2、賦值后的情況
2、乘法過(guò)程中,部分積右移的情況
3、結果
實(shí)驗二
135D*072C=8ADEFC
加載數據前的情況
賦值后的情況
乘法過(guò)程中,被乘數左移的情況
結果實(shí)驗分析與實(shí)驗體會(huì ):
通過(guò)本實(shí)驗的操作,我掌握了循環(huán)結構的程序設計方法,加深理解程序設計的步驟,掌握較復雜應用的設計方法。
在實(shí)驗中,通過(guò)實(shí)際動(dòng)手編程操作,深入理解了部分積右移和被乘數左移兩種多位數乘法運算的算法,并掌握了其在PIC單片機上是如何編程實(shí)現的。通過(guò)使用MPLAB仿真,看到了各個(gè)寄存器在實(shí)驗過(guò)程中的變化,在理解程序的基礎上充分理解了整個(gè)程序進(jìn)行的過(guò)程,并通過(guò)單步進(jìn)行實(shí)際看到了循環(huán)結構的進(jìn)行順序。
整個(gè)實(shí)驗進(jìn)行順利,使我受益匪淺。
【循環(huán)結構的程序設計方法(一)】相關(guān)文章:
分枝結構的程序設計 (一)03-07
淺談C語(yǔ)言中循環(huán)結構的教學(xué)方法03-28
UNIX網(wǎng)絡(luò )的服務(wù)器程序設計方法03-20
物理與化學(xué)方法下循環(huán)水換熱器查漏分析的方法11-19
C語(yǔ)言程序設計 (一)12-26
企業(yè)資本結構及其決策方法探析03-18
淺析最優(yōu)資本結構的確定方法12-04
淺談建筑混凝土結構裂縫的修補設計與方法03-14