<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 循環結構的程序設計方法(一)

    時間:2024-07-29 06:35:50 電子信息工程畢業論文 我要投稿
    • 相關推薦

    循環結構的程序設計方法(一)

    實驗報告撰寫要求
     實驗操作是理論聯系實際的重要環節,實驗報告必須在科學實驗的基礎上進行,實驗報告的撰寫是知識系統化的吸收和升華的過程,實驗報告應該體現完整性、規范性、正確性、有效性。現將撰寫實驗報告的有關內容說明如下:
     1.實驗名稱
     2.實驗目的
     本次實驗所涉及并要求掌握的知識點。
     3.實驗內容與實驗步驟
     實驗內容、原理、原理圖分析及具體實驗步驟。
     4.實驗環境
     實驗所使用的器件、儀器設備名稱及規格。
     5.設計實驗數據表格
     6.實驗過程與分析
    詳細記錄在實驗過程中發生的故障和問題,并進行故障分析,說明故障排除的過程及方法。
    根據具體實驗,記錄、整理相應數據表格、繪制曲線、波形圖等,并進行誤差分析。
     7.實驗結果總結
    對實驗結果進行分析,完成思考題目,總結實驗的心得體會,并提出實驗的改進意見。
     注:1.前5項必須在做實驗之前完成,并由指導教師簽字后才能做實驗。
     2.對于學生自擬實驗題目、參與科研、創新實驗等形式實驗項目的實驗報告可采用論文、實驗總結報告等形式完成。
    3.此封皮標準頁面為16K

    實驗名稱:
    循環結構的程序設計方法
    實驗目的:
    1.掌握循環結構的程序設計方法;
     2.通過循環結構的程序設計,加深理解程序設計的步驟,掌握較復雜應用的設計方法。
    實驗環境:
    PC計算機   MPLAB編程環境
    實驗原理 :
    實驗一:編程實現兩個16位二進制數的乘法運算(用部分積右移的方法)
     本實驗通過運用部分積右移法進行兩個十六位數的乘法運算。
     部分積右移:首先,將兩個待乘數據放入寄存器A和B。然后將乘數B所在的寄存器按位右移,使最后一位移入狀態寄存器的進位標志位。接下來,判斷進位標志位是否為1,如果為1,那么將被乘數與結果相加(初始值為零),并將結果右移一位,為下一次相加做準備;反之,如果進位標志是0,那么,部分積不與任何值相加,但是仍然要向右移動一位,為下面的加法做準備。這樣,利用循環程序,共循環16次,使乘數所有位都進入過狀態寄存器標志位,這樣,就將結果值進行了16次右移,并在特定的位置加上了原數據,得到了最后的結果,結果由于是32位的,所以放入兩個寄存器所組成的單元之中,在本實驗里,放入了C和D寄存器。
    實驗二:(選作)編程實現兩個16位二進制數的乘法運算(用被乘數左移的方法)
     本實驗通過運用被乘數左移法進行兩個十六位數的乘法運算。
     被乘數左移:首先,將兩個待乘數據放入寄存器AB和C。由于在運算過程中需要移動被乘數AB共16次,AB本身又是一個16位的數據,那么,AB應該有四個寄存器組成,即AB為一個32位的寄存器(由AH AL BH BL構成,其中,B存放高八位,A存放低八位)。然后將乘數B所在的寄存器按位右移,使最后一位移入狀態寄存器的進位標志位。接下來,判斷進位標志位是否為1,如果為1,那么將被乘數與結果相加(初始值為零),并將被乘數左移一位,為下一次相加做準備;反之,如果進位標志是0,那么,被乘數不與結果值相加,但是仍然要向左移動一位,為下面的加法做準備。這樣,利用循環程序,共循環16次,使乘數所有位都進入過狀態寄存器標志位,這樣,就將被乘數進行了16次左移,并在特定的位置加到了結果值數據上,得到了最后的結果,結果由于是32位的,所以放入兩個寄存器所組成的單元之中,在本實驗里,放入了D(低八位)和E(高八位)寄存器。
     
     但是,不論應用那種方法,都有不足之處,那就是,如果計算的數值結果超過了32位,也就是在進行最后一次加法運算時,產生了溢出,那么,結果將產生錯誤。也就是說,這兩個程序都不可能完成所有16位的數據的乘法運算。
    實驗程序:
    實驗一:
         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

    實驗二:
         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
    調試結果:

    實驗一
    2C13*187A=436C90E
    1、加載數據前的情況

    2、賦值后的情況

    2、乘法過程中,部分積右移的情況

    3、結果

    實驗二
    135D*072C=8ADEFC
    加載數據前的情況

    賦值后的情況

    乘法過程中,被乘數左移的情況

    結果實驗分析與實驗體會:
        通過本實驗的操作,我掌握了循環結構的程序設計方法,加深理解程序設計的步驟,掌握較復雜應用的設計方法。
     在實驗中,通過實際動手編程操作,深入理解了部分積右移和被乘數左移兩種多位數乘法運算的算法,并掌握了其在PIC單片機上是如何編程實現的。通過使用MPLAB仿真,看到了各個寄存器在實驗過程中的變化,在理解程序的基礎上充分理解了整個程序進行的過程,并通過單步進行實際看到了循環結構的進行順序。
     整個實驗進行順利,使我受益匪淺。

    【循環結構的程序設計方法(一)】相關文章:

    分枝結構的程序設計 (一)03-07

    淺談C語言中循環結構的教學方法03-28

    UNIX網絡的服務器程序設計方法03-20

    物理與化學方法下循環水換熱器查漏分析的方法11-19

    C語言程序設計 (一)12-26

    企業資本結構及其決策方法探析03-18

    淺析最優資本結構的確定方法12-04

    淺談建筑混凝土結構裂縫的修補設計與方法03-14

    健康水循環框架下的區域水資源綜合規劃方法及應用03-16

    主站蜘蛛池模板: 国产精品无码免费播放| 亚洲精品自产拍在线观看| 亚洲精品第一国产综合境外资源| 国产精品1024在线永久免费| 九九99精品久久久久久| 国产精品电影网| 国产精品VA在线观看无码不卡 | 久久91这里精品国产2020| 国产精品亚洲专区无码WEB | 无码人妻丰满熟妇精品区| 久久亚洲精品国产精品| 国产精品无码无卡在线播放| 欧美午夜精品久久久久久浪潮| 亚洲欧美一级久久精品 | 91视频国产精品| 9999国产精品欧美久久久久久| 国产成人久久精品二区三区| 国产精品igao视频| 97久久精品无码一区二区| 777久久精品一区二区三区无码| 久久精品中文无码资源站| 国产夫妇精品自在线| 无码人妻丰满熟妇精品区| 日韩精品一区二区三区不卡| 色婷婷在线精品国自产拍| 欧美精品91欧美日韩操| 国产亚洲精品激情都市| 日韩精品无码熟人妻视频| 久久无码人妻精品一区二区三区 | 北条麻妃国产九九九精品视频| 国产成人亚洲合集青青草原精品| 国内精品伊人久久久久av一坑| 最新国产精品亚洲| 91精品美女在线| 国产欧美日韩精品丝袜高跟鞋| 亚洲日韩精品一区二区三区| 精品九九人人做人人爱| 国产精品网站在线观看免费传媒| 久久水蜜桃亚洲av无码精品麻豆| 亚洲AV永久无码精品成人| 亚洲av无码精品网站|