欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16090|回復: 0
打印 上一主題 下一主題
收起左側

單片機片內RAM和片外RAM數據傳送實驗報告

[復制鏈接]
跳轉到指定樓層
樓主
實驗一   數據傳送
一、實驗目的
1.進一步熟悉仿真器的使用方法。
2.練習設計簡單的程序。
3.掌握8051片內RAM和片外RAM的數據傳送方法,從而了解這兩部分存貯器的特點。

二、實驗內容
將8051內部RAM 40H~4FH置初值00H~0FH,然后將40H~4FH內容傳送到外部RAM的4800H~480FH,再將4800H~480FH傳回內部RAM的50H~5FH。設置斷點B1、B2、B3每運行到斷點時檢查相應的CPU現場和存貯單元的內容。

三、實驗準備
1、認真閱讀本實驗指導。
2、讀懂下面的程序:
#include<reg51.h>
#include<absacc.h>
char data *p40 ,*p50 ;
char xdata *p4800;
char i, j, k;
void main( )
{
  p40=0x40;
  p50=0x50;
  p4800=0x4800;
  for(i=0;i<16;i++)
   {
   *p40=i;
   p40=p40+1;
}
//B1
p40=0x40;
for(j=0;j<16;j++)
   {
*p4800=*p40;
p40=p40+1;
p4800=p4800+1;
}

//    B2
  p4800=0x4800;
for(k=0;k<16;k++)
   {
*p50=*p4800;
p50=p50+1;
p4800=p4800+1;
} }     
//B3
    3、畫出如下要測的數據表格:


四、實驗步驟
1、向機器輸入程序。
2、運行程序至第一個斷點B1,檢查40H~0FH單元內容及指針p40的內容。
3、運行程序至第二個斷點B2,檢查4800H~480FH單元內容及指針p40,p4800的內容。
4、運行程序至第三個斷點B3,檢查50H~5FH單元內容及累加器及指針p50的內容。

五、實驗報告要求
1、寫出C語言源程序和對應的匯編語言指令及注解的程序清單。
   126: ?C_STARTUP:     LJMP    STARTUP1
   127:  
   128:                 RSEG    ?C_C51STARTUP
   129:  
   130: STARTUP1:
   131:  
   132: IF IDATALEN <> 0
C:0x0000    020889   LJMP     STARTUP1(C:0889)   
6: void main( )
     7: {
     8:   p40=0x40;
C:0x0800    750A40   MOV      p40(0x0A),#0x40
     9:   p50=0x50;
C:0x0803    750B00   MOV      p50(0x0B),#0x00
C:0x0806    750C00   MOV      0x0C,#0x00
C:0x0809    750D50   MOV      0x0D,#0x50
    10:   p4800=0x4800;
C:0x080C    750848   MOV      p4800(0x08),#0x48
C:0x080F    750900   MOV      0x09,#0x00
    11:   for(i=0;i<16;i++)  
C:0x0812    E4       CLR      A
C:0x0813    F50E     MOV      i(0x0E),A
    12:    {
    13:    *p40=i;
C:0x0815    A80A     MOV      R0,p40(0x0A)
C:0x0817    A60E     MOV      @R0,i(0x0E)
    14:    p40=p40+1;
C:0x0819    050A     INC      p40(0x0A)
    15: }  
    16: //B1
C:0x081B    050E     INC      i(0x0E)
C:0x081D    E50E     MOV      A,i(0x0E)
C:0x081F    B410F3   CJNE     A,#k(0x10),C:0815
    17:  p40=0x40;
C:0x0822    750A40   MOV      p40(0x0A),#0x40
    18: for(j=0;j<16;j++)  
C:0x0825    E4       CLR      A
C:0x0826    F50F     MOV      j(0x0F),A
    19:    {
    20: *p4800=*p40;
C:0x0828    A80A     MOV      R0,p40(0x0A)
C:0x082A    E6       MOV      A,@R0
C:0x082B    850982   MOV      DPL(0x82),0x09
C:0x082E    850883   MOV      DPH(0x83),p4800(0x08)
C:0x0831    F0       MOVX     @DPTR,A
    21: p40=p40+1;
C:0x0832    050A     INC      p40(0x0A)
    22: p4800=p4800+1;
C:0x0834    0509     INC      0x09
C:0x0836    E509     MOV      A,0x09
C:0x0838    7002     JNZ      C:083C
C:0x083A    0508     INC      p4800(0x08)
    23: }  
    24:  
    25: //      B2
C:0x083C    050F     INC      j(0x0F)
C:0x083E    E50F     MOV      A,j(0x0F)
C:0x0840    B410E5   CJNE     A,#k(0x10),C:0828
    26:   p4800=0x4800;
C:0x0843    750848   MOV      p4800(0x08),#0x48
C:0x0846    750900   MOV      0x09,#0x00
    27: for(k=0;k<16;k++)
C:0x0849    E4       CLR      A
C:0x084A    F510     MOV      k(0x10),A
    28:    {
    29: *p50=*p4800;
C:0x084C    850982   MOV      DPL(0x82),0x09
C:0x084F    850883   MOV      DPH(0x83),p4800(0x08)
C:0x0852    E0       MOVX     A,@DPTR
C:0x0853    AB0B     MOV      R3,p50(0x0B)
C:0x0855    AA0C     MOV      R2,0x0C
C:0x0857    A90D     MOV      R1,0x0D
C:0x0859    120877   LCALL    C?CSTPTR(C:0877)
    30: p50=p50+1;
C:0x085C    7401     MOV      A,#0x01
C:0x085E    250D     ADD      A,0x0D
C:0x0860    F50D     MOV      0x0D,A
C:0x0862    E4       CLR      A
C:0x0863    350C     ADDC     A,0x0C
C:0x0865    F50C     MOV      0x0C,A
    31: p4800=p4800+1;
C:0x0867    0509     INC      0x09
C:0x0869    E509     MOV      A,0x09
C:0x086B    7002     JNZ      C:086F
C:0x086D    0508     INC      p4800(0x08)
    32: } }      
C:0x086F    0510     INC      k(0x10)
C:0x0871    E510     MOV      A,k(0x10)
C:0x0873    B410D6   CJNE     A,#k(0x10),C:084C
C:0x0876    22       RET      
                 C?CSTPTR:
C:0x0877    BB0106   CJNE     R3,#0x01,C:0880
C:0x087A    8982     MOV      DPL(0x82),R1
C:0x087C    8A83     MOV      DPH(0x83),R2
C:0x087E    F0       MOVX     @DPTR,A
C:0x087F    22       RET      
C:0x0880    5002     JNC      C:0884
C:0x0882    F7       MOV      @R1,A
C:0x0883    22       RET      
C:0x0884    BBFE01   CJNE     R3,#0xFE,C:0888
C:0x0887    F3       MOVX     @R1,A
C:0x0888    22       RET      
   133:                 MOV     R0,#IDATALEN - 1
C:0x0889    787F     MOV      R0,#0x7F
   134:                 CLR     A
C:0x088B    E4       CLR      A
   135: IDATALOOP:      MOV     @R0,A
C:0x088C    F6       MOV      @R0,A
   136:                 DJNZ    R0,IDATALOOP
C:0x088D    D8FD     DJNZ     R0,IDATALOOP(C:088C)
   185:                 MOV     SP,#?STACK-1
   186:  
   187: ; This code is required if you use L51_BANK.A51 with Banking Mode 4
   188: ;<h> Code Banking
   189: ; <q> Select Bank 0 for L51_BANK.A51 Mode 4
   190: #if 0   
   191: ;     <i> Initialize bank mechanism to code bank 0 when using L51_BANK.A51 with Banking Mode 4.
   192: EXTRN CODE (?B_SWITCH0)
   193:                 CALL    ?B_SWITCH0      ; init bank mechanism to code bank 0
   194: #endif
   195: ;</h>
C:0x088F    758110   MOV      SP(0x81),#k(0x10)
   196:                 LJMP    ?C_START
C:0x0892    020800   LJMP     main(C:0800)

2、將測得的數據填入表格,并和理論分析的結果相比較。
答:通過實驗結果可以發現本次實驗的理論分析結果與實際實驗結果相同

3、說明8031CPU對內部存貯器和外部擴展RAM存貯器各有哪些尋址方式?
答:8031CPU對內部存貯器可用立即尋址、直接尋址、寄存器尋址、寄存器間接尋址,對外部擴展RAM存貯器只有寄存器間接尋址。

4、如果要讀外部程序存儲器0x4800中的內容,該如何訪問?
答:訪問片外數據存儲區比訪問片內數據存儲區慢,因為訪問片外數據存儲區要通過數據指針加載地址來間接尋址訪問的。C51提供兩種不同的數據存儲類型xdata和pdata來訪問片外數據存儲區。所以要讀外部程序存儲器0x4800中的內容只要將數據存儲類型定義成xdata就可以訪問了。

5.實驗心得。
       通過第一次的實驗,我學會了對keil的基本利用,我們首先要新建一個工程,然后選擇型號,再新建一個File,將自己的程序寫進去,然后點擊保存,要注意的是保存成xxx.c的格式,然后鼠標右鍵點擊右側的Targe1,選擇第一項在,在output一欄生成hxe文件,最后將文件添加到工程中去,點擊運行,觀察程序是否有錯誤,通過debug,在view一欄找到disassembly windows可以翻譯成匯編語言,在memory windows和watch&call stack windows這里可以找到本次實驗的結果。這是對keil最簡單的運用了,還有更多的需要去學習,繼續努力.

完整的Word格式文檔51黑下載地址:
666.docx (26.37 KB, 下載次數: 12)



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表