当前位置: 代码迷 >> 单片机 >> 问个关于单片机基础的有关问题
  详细解决方案

问个关于单片机基础的有关问题

热度:228   发布时间:2016-04-28 16:30:51.0
问个关于单片机基础的问题
最近在改别人写的单片机程序,汇编写的
Assembly code
    mov r0,#00h    clr aclearRam2:    mov @r0,a    djnz r0,clearRam2

上面这段代码,我理解是将00h~ffh的内存单元数据都清0,但是我现在有个疑问,内部存储单元里面不是也包含了工作寄存区以及特殊存储器的部分吗,这样的话所有的单片机里的设置都被清零,这段代码使用的单片机是W77E516A,求高人指点下!
Assembly code
    setb SerialRSVSgn  ;1 接收到1桢数据,0 没有接收到数据    setb c    mov  SerialRSVSgn,c

还有就是这段代码,最后那句是不是有点重复,这个没有必要了吧?

------解决方案--------------------
1. 0x80-0xff首先对应特殊寄存器区,访问特殊寄存器区必须直接寻址,例如

MOV 98h, #52h

是设置SCON寄存器

2. 一般增强型51或8052,内部RAM大于128字节,大于128字节的部分地址仍分配在0x80-0xff
但这个地址区间只能用间接寻址方式访问,就是先把地址放在寄存器中,在用
MOV @r0, #55h的方式访问
------解决方案--------------------
探讨
引用:
我就想知道,间接访问的98H单元和SCON是不是冲突,各自是否有相应的存储单元,只是公用了同一个地址,如果不冲突,地址是公用的
  相关解决方案