<th id="h7ftf"></th><th id="h7ftf"><ol id="h7ftf"><ol id="h7ftf"></ol></ol></th>

        <track id="h7ftf"></track>

        <video id="h7ftf"><ruby id="h7ftf"></ruby></video>

            <track id="h7ftf"><del id="h7ftf"><output id="h7ftf"></output></del></track>

            <track id="h7ftf"></track>

            <track id="h7ftf"></track>

            專注電子技術學習與研究
            當前位置:單片機教程網 >> 基礎教程 >> 瀏覽文章

            9課:單片機數據傳遞類指令

            作者:佚名   來源:本站原創   點擊數:  更新時間:2007年08月16日   【字體:
            1. 單片機數據傳遞類指令

            3)以直接地址為目的操作數的指令

            MOV direct,A 例: MOV 20H,A

            MOV direct,Rn MOV 20H,R1

            MOV direct1,direct2 MOV 20H,30H

            MOV direct,@Ri MOV 20H,@R1

            MOV direct,#data MOV 20H,#34H

            4)以間接地址為目的操作數的指令

            MOV @Ri,A 例:MOV @R0,A

            MOV @Ri,direct MOV @R1,20H

            MOV @Ri,#data MOV @R0,#34H

            5)十六位數的傳遞指令

            MOV DPTR,#data16

            8051是一種8位機,這是唯一的一條16位立即數傳遞指令,其功能是將一個16位的立即數送入DPTR中去。其中高8位送入DPH,低8位送入DPL。例:MOV DPTR,#1234H,則執行完了之后DPH中的值為12H,DPL中的值為34H。反之,如果我們分別向DPH,DPL送數,則結果也一樣。如有下面兩條指令:MOV DPH,#35H,MOV DPL,#12H。則就相當于執行了MOV DPTR,#3512H。

            數據傳遞類指令綜合練習:

            1. 給出每條指令執行后的結果

            2. 上機練習:

              MOV 23H,#30H

              MOV 12H,#34H

              MOV R0,#23H

              MOV R7,#22H

              MOV R1,12H

              MOV A,@R0

              MOV 34H,@R1

              (23h)=30h

              (12h)=34h

              (R0)=23H

              (R7)=22H

              (R1)=12H

              (A)=30H

              (34H)=34H

              MOV 45H,34H

              MOV DPTR,#6712H

              MOV 12H,DPH

              MOV R0,DPL

              MOV A,@R0

              (45H)=34H

              (DPTR)=6712H

              (12H)=67H

              (R0)=12H

              (A)=67H

              說明:用括號括起來代表內容,如(23H)則代表內部RAM23H單元中的值,(A)則代表累加器A單元中的值。

            1. 進入DOS狀態,進入WAVE所在的目錄,例D:\WAVE

            2. 鍵入MCS51,出現如下畫面

              <單片機數據傳遞指令>圖1

            3. File->Open,出現對話框后,在Name處輸入一個文件名(見圖2),如果是下面列表中已存在的,則打開這個文件,如果不存在這個文件,則新建一個文件(見圖3

              圖2

            4. 在空白處將上面的程序輸入。見圖4。用ALT+A匯編通過。用F8即可單步執行,在執行過程中注意觀察屏幕左邊的工作寄存器及A累加器中的值的變化。

              圖4

            5. 內存中值的變化在此是看不到的,可以用如下方法觀察(看圖5):將鼠標移到DATA,雙擊,則光標進入此行,此時可以鍵盤上的上下光標鍵上下翻動來觀察內存值的變化。本行的最前面DATA后面的數據代表的是“一段”的開始地址,如現在為20H,再看屏幕的最上方,數字從0F,顯示兩者相加就等于真正的地址值,如現在圖上所示的內存20H、21H、22H、23H中的值分別是FBH 、0EH、E8H、30H。

              圖5

              6、當運行完程序后,即進入它的反匯編區,不是我們想要的東西。為了再從頭開始,可以用CTRL+F2功能鍵復位PC值。注意此時不會看到原來的窗口,為看到原來的窗口,請用ALT+4ALT+5等來切換。當然以上操作也可以菜單進行。CTRL+F2是程序復位,用RUN菜單。窗口用WINDOWS菜單。

            此次大家就用用熟這個軟件吧,說實話,我并不很喜歡它,操作起來不方便,但給我的機器只能上這個,沒辦法,下次再給網友單獨介紹一個好一點的吧,F在最好的是keil 這個軟件本站有詳細的教程請看:    keil教程  單片機c語言教程

            關閉窗口
            91尤物无码不卡在线_少妇高潮喷水在线观看_国产无圣光一区福利二区_国产欧美日韩一级

            <th id="h7ftf"></th><th id="h7ftf"><ol id="h7ftf"><ol id="h7ftf"></ol></ol></th>

                  <track id="h7ftf"></track>

                  <video id="h7ftf"><ruby id="h7ftf"></ruby></video>

                      <track id="h7ftf"><del id="h7ftf"><output id="h7ftf"></output></del></track>

                      <track id="h7ftf"></track>

                      <track id="h7ftf"></track>