- 相關推薦
分枝結構的程序設計 (一)
實驗報告撰寫要求
實驗操作是理論聯系實際的重要環節,實驗報告必須在科學實驗的基礎上進行,實驗報告的撰寫是知識系統化的吸收和升華的過程,實驗報告應該體現完整性、規范性、正確性、有效性,F將撰寫實驗報告的有關內容說明如下:
1.實驗名稱
2.實驗目的
本次實驗所涉及并要求掌握的知識點。
3.實驗內容與實驗步驟
實驗內容、原理、原理圖分析及具體實驗步驟。
4.實驗環境
實驗所使用的器件、儀器設備名稱及規格。
5.設計實驗數據表格
6.實驗過程與分析
詳細記錄在實驗過程中發生的故障和問題,并進行故障分析,說明故障排除的過程及方法。
根據具體實驗,記錄、整理相應數據表格、繪制曲線、波形圖等,并進行誤差分析。
7.實驗結果總結
對實驗結果進行分析,完成思考題目,總結實驗的心得體會,并提出實驗的改進意見。
注:1.前5項必須在做實驗之前完成,并由指導教師簽字后才能做實驗。
2.對于學生自擬實驗題目、參與科研、創新實驗等形式實驗項目的實驗報告可采用論文、實驗總結報告等形式完成。
3.此封皮標準頁面為16K,下載網址
實驗名稱:
分枝結構的程序設計
實驗目的:
1.通過進行分枝結構的程序設計,進一步掌握PIC系列單片機開發環境的應用步驟和命令;
2.掌握分枝結構的程序設計方法。
實驗環境:
PC計算機 MAPLAB開發環境
實驗原理 :
實驗一:用PIC單片機的常見指令編寫多字節加法程序
本實驗通過編程,令PIC具有處理多字節加法的功能,在這個程序中,僅以兩字節加法為例。
首先,將需要進行運算的兩個數據分別放入四個寄存器中,其中,RAL和RAH分別放置第一個數據的低八位和高八位,RBL和RBH分別放置第二個數據的低八位和高八位。然后,調用加法子程序進行加法運算。當運算結束后,返回到主程序并結束。
子程序中的加法進行過程:首先將兩個數據的低八位進行相加,結果存入RBL,然后判斷狀態寄存器f3的進位標志CARRY是否為0,如果是0,則代表無進位,跳過下一步直接進行高八位的加法操作,結果存入RBH;如果CARRY是1,則代表有進位,那么先將RBH進行加1操作后再與RAH求和,結果放入RBH中,最后,通過RB的數據即可到最后的結果。
實驗二:用移位相加的方法編程實現X×3,其中X為8位二進制數。
本實驗首先設置一個寄存器NA為存放原始數據的位置,另外需要設置一個寄存器RE存放實驗最后結果。
實驗開始,對原始數據寄存器賦值,并調用乘3子程序。子程序中,將原始數據放入work寄存器中,然后,將原始數據在NA中左移1位,那么等價于對此數據進行了乘2的操作,然后將work寄存器和NA寄存器中的內容相加求和,并將結果存入RE寄存器中,最后返回主程序并結束。
實驗三:(選作) 用PIC單片機的常見指令編寫簡單的多字節減法程序
本實驗通過編程,令PIC具有處理多字節減法的功能,在這個程序中,僅以兩字節減法為例。
首先,將需要進行運算的兩個數據分別放入四個寄存器中,其中,RAL和RAH分別放置第一個數據的低八位和高八位,RBL和RBH分別放置第二個數據的低八位和高八位。然后,調用減法子程序進行加法運算。當運算結束后,返回到主程序并結束。
子程序中的減法進行過程:首先將兩個數據的低八位進行相減,結果存入RBL,然后判斷狀態寄存器f3的進位標志CARRY是否為1,如果是1,則代表無借位,跳過下一步直接進行高八位的減法操作,結果存入RAH;如果CARRY是0,則代表有借位,那么先將RAH進行減1操作后再與RBH求差,結果放入RAH中,最后,通過RA的數據即可到最后的結果。
實驗程序:
實驗一:
LIST P=16C54
RAL EQU 10
RAH EQU 11
RBL EQU 12
RBH EQU 13
STATU EQU 3
CARRY EQU 0
ORG 1FFH
GOTO MAIN
ORG 0
ADDX MOVF RAL,0
ADDWF RBL
BTFSC STATU, CARRY
INCF RBH
MOVF RAH,0
ADDWF RBH
RETLW 0
MAIN NOP
MOVLW 15H
MOVWF RAH
MOVLW 3AH
MOVWF RAL
MOVLW 08H
MOVWF RBH
MOVLW 79H
MOVWF RBL
CALL ADDX
END
實驗二:
LIST P=16c54
STATU EQU 3
CARRY EQU 0
NA EQU 9
RE EQU 12
ORG 1FFH
GOTO MAIN
ORG 0
MULT MOVF NA,0
BCF STATU,CARRY
RLF NA
ADDWF NA,0
MOVWF RE
RETLW 0
MAIN NOP
MOVLW 10H
MOVWF NA
CALL MULT
END
實驗三:(選作)
LIST P=16C54
RAL EQU 10
RAH EQU 11
RBL EQU 12
RBH EQU 13
STATU EQU 3
CARRY EQU 0
ORG 1FFH
GOTO MAIN
ORG 0
SUBX MOVF RBL,0
SUBWF RAL
BTFSS STATU, CARRY
DECF RAH
MOVF RBH,0
SUBWF RAH
RETLW 0
MAIN NOP
MOVLW 23H
MOVWF RAH
MOVLW 4CH
MOVWF RAL
MOVLW 1EH
MOVWF RBH
MOVLW 07H
MOVWF RBL
CALL SUBX
END
調試結果:
實驗一:
153AH+0879H=1DB3H
1、附值后
2、低位相加后的情況
3、高位相加后的情況
實驗二:
1、附值前的情況
2、給寄存器NA附值
3、數值存入WORK寄存器,并將NA中的數據左移后
4、與自己本身相加得到乘以三的結果放入RE寄存器
實驗三:
234CH-1E07H=545H
1、附值后
2、低位相減后的情況
3、高位相減后的情況
實驗分析與實驗體會:
通過本實驗的實際操作,我學會了基本的分枝結構程序的設計,進一步掌握了PIC系列單片機開發環境MAPLAB的應用步驟和相關的命令,并且學會了如何應用移位相加方法實現對已知數據的乘法運算,以及如何進行多位數據的加減法。
通過編寫完整的程序,令我熟悉了PIC程序的結構特點和一些編寫技巧,實驗步驟清晰,結果正確,得到了相關的鍛煉,并掌握了實驗目的所要求的能力。
【分枝結構的程序設計 (一)】相關文章:
C語言程序設計 (一)05-11
學位論文的結構要件04-26
結構方面的毛病05-08
淺談德國的教育結構06-19
論文的結構和排版格式07-25
醫學論文寫作結構要點08-20
論文寫作有哪些常用結構10-13
論文的基本結構和提綱構建06-23
結構設計開題報告10-18
金融貿易結構優化研討05-30