标题: 关于板子附带光盘中“流水灯_键控_asm”例子的一个问题 [打印本页]

作者: xiaoyusi1982    时间: 2012-7-27 17:16
标题: 关于板子附带光盘中“流水灯_键控_asm”例子的一个问题

51hei板子的光盘程序中有以下这个子程序:其中第四句:"SETB    00H  "   为什么是20H.0位置1,明明语句中是“00H”,求教,谢谢!

 

CLEAR:  clr     P2.7
        clr     P1.4       ;打开led总开关
        MOV     20H,#00H    ;20H单元内存清0(闪烁标志清0)
        SETB    00H         ;20H.0位置1(上电时自动执行闪烁功能1)
        RET                 ;子程序返回


作者: admin    时间: 2012-7-28 02:27

 setb 后面的 00h 应该是在位寻址区的. 而位寻址区是从20H-2FH,共16字节,是位寻址区,共有128个“位”,位地址:00~7FH。所以才有上面的注释

 

 

SETB  00H            ; 这里的01H就是位地址
MOV  00H, #00H  ; 这里的01H就是字节地址

 

 

 


 


作者: admin    时间: 2012-7-28 02:29
MCS-51 单片机的存储器地址空间,讲起来,要用几页。
简单介绍如下:
MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间。
片内RAM:
地址范围是00H到7FH (52系列延伸到FFH)。
其中00H到1FH,共32字节,分成四个工作寄存器区,每区有寄存器 R0~R7。
对此区域,可以使用 R0~R7 来操作,但是,当前只有一个区是可以这样读写的。
对此区域,也可以使用字节地址,来读写。
20H-2FH,共16字节,是位寻址区,共有128个“位”,位地址:00~7FH。
此区域,也可按照字节寻址,来读写。
30H-7FH,没有什么特色,只进行字节寻址。
80H-FFH,共有128个地址号码,其中离散的分布着21个特殊功能寄存器,必须直接寻址才能读写。
(52系列,在此范围,还有128字节的 RAM,必须间接寻址才能读写)。
对上述空间读写,需用MOV指令。
----
片外RAM:
片外RAM的地址范围是0000H到FFFFH,容量即为64KB。
对片外RAM读写,需用MOVX指令。
----
ROM:
ROM的地址范围是0000H到FFFFH,容量即为64KB。
其中0000~0FFFH,即4K,在片内,其它在片外。
(对于8031,这64K的ROM,都在片外。)
对ROM读出,需用MOVC指令。

作者: xiaoyusi1982    时间: 2012-7-28 09:53
管理员,等待的就是你,你这么一说,我大致清楚了。非常感谢您的耐心指导~!
作者: xiaoyusi1982    时间: 2012-7-28 10:05

无意中发现管理员回帖的时间是夜间两点多,可想:

1。管理员白天要忙自己的事,只能晚上挤出时间打理我们这些菜鸟们重复、繁琐的问题和求助。这是很不容易的。当今在论坛上游荡的菜鸟居多,一旦炼就一身本领,也会远离初学者论坛,毕竟总是回答初学者的问题是很烦的;

2。管理员回复了我2次,可见对于求助,是很有耐心的,也很认真;晚上2点多了,也没有马虎。

 

所以,非常感谢!


作者: admin    时间: 2012-7-29 01:01
呵呵 不用谢  应该的   习惯了晚上做事而已 好像搞技术的都喜欢这样




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1