数据传送实验
数据传送实验
一、上机目的及内容
1、熟悉KeilC51 Uvision的使用方法。
2、掌握89C51内部RAM和外部RAM的数据操作,了解这两部分RAM存贮器的特点和应用。
3、内容:将8051内部RAM30H~3FH置初值A0H~AFH,然后把30H~3FH单元内容传送到外部RAM的1800H~180FH,1800H~180FH内容传送到8051内部RAM的40H~4FH。
二、实验原理及本技术路线图(方框原理图或程序流程图)
89C51单片机具有极丰富的数据传送指令,能够实现多种数据传送操作,给程序设计带来了极大方便。
1、内部RAM数据传送
89C51内部RAM低128字节(00H~7FH)包含四个工作寄存器区(00H~1FH)、位地址空间(20H~2FH)、堆栈区,可用的传送指令多达16条。因此,数据在内部128字节里传送就显得灵活方便。
内部RAM 0~31个单元可作通用工作寄存器RO~R7,被划分为四个寄存器块,由程序状态字PSW中的RSI、RSO选择,其对应关
RSI RSO
0 0 选0区,OOH~O7H被看是RO~R7
0 1 选1区,08H~0FH被看是RO~R7
1 0 选2区,10H~17H被看是RO~R7
1 1 选3区,18H~1FH被看是RO~R7
89C51单片机上电复位后自动选0区,此后可通过修改PSW中的RSI和RSO来选择其它寄存器区。
数据在内部RAM低128字节内传送指令共16条,它们是:
MOV A,Rn
MOV A, direct
MOV A, @Ri
MOV A, #data
MOV Rn, A
MOV Rn, direct
MOV Rn, #data
MOV direct, A
MOV direct, Rn
MOV direct1, direct2
MOV direct, @Ri
MOV direct, #data
MOV Ri, A
MOV Ri, direct
MOV Ri, #data
2、外部RAM的数据传输
89C51单片机采用当前工作寄存器的R0和R1作间接寻址寄存器。可寻址256个单元,8位的地址和数据均由P0口分时输入/输出。采用16位数据指针DPTR间址,最多可寻址片外64K字节的RAM或I/O,低8位地址(DPL)由P0口进行分时使用,P2口输出高8位地址,当P2口输出高8位地址时,P2口专用寄存器保存其原内容不变。
在有些情况下,可混合使用上述寻址方法。可用数据指针通过P2口来寻址大容量外部RAM,也可先由P2口输出高字节地址,R0或R1内容作为8位地址由P0口输出。
对外部RAM仅有6条数据传送指令,它们是:
MOVX A , @R0
MOVX A, @R1
MOVX @R0, A
MOVX A, @DPTR
MOVX @DPTR, A
三、所用仪器、材料(设备名称、型号、规格等或使用软件)
KeilC51 Uvision、89C51单片机
四、实验方法、步骤(或:程序代码或操作过程)
1.程序代码:
mov r4,#16
mov r0,#30h
mov a,#0d0h
s: mov @r0,a
inc a
inc r0
djnz r4,s
mov r4,#16
mov r0,#30h
mov dptr,#1800h
s1: mov a,@r0
movx @dptr,a
inc dptr
inc r0
djnz r4,s1
mov r4,#16
mov dptr,#1800h
mov r0,#40h
s2: mov @r0,a
movx a,@dptr
inc dptr
inc r0
djnz r4, s2
jmp $
end
五、实验过程原始记录( 测试数据、图表、计算等)
六、实验总结
在这次实验中,熟悉了KeilC51 Uvision软件的使用,在编程时要注意各个步骤间的逻辑关系,使用正确的指令,熟悉了MOVX,INC,DJNZ等指令的用法。
七.思考
实验程序最后一条指令HERE:SJMP HERE用意何在?
答:程序在该指令处暂停,起到延时的作用。