打印

请教51单片机寻址问题的

[复制链接]
2271|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuyulk|  楼主 | 2010-1-9 18:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ejack| | 2010-1-9 18:53 | 只看该作者
指令

使用特权

评论回复
板凳
三块石头| | 2010-1-9 19:41 | 只看该作者
在位指令中的地址就是位地址,在字节操作指令中的地址就是字节地址。例如:
SETB  01H            ; 这里的01H就是位地址
MOV  01H, #00H  ; 这里的01H就是字节地址
不在指令中,单独说一个xx数,没法看出来是字节还是位地址

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
cecwxf + 1
地板
lovelyegle| | 2010-1-9 23:51 | 只看该作者
还是懵懂

使用特权

评论回复
5
原野之狼| | 2010-1-10 00:17 | 只看该作者
3L已经说得很清楚了

使用特权

评论回复
6
ejack| | 2010-1-10 06:55 | 只看该作者
用筷子夹一粒饭
用饭勺盛一勺饭

使用特权

评论回复
7
szshawn2010| | 2010-1-10 12:52 | 只看该作者
是一粒饭还是一勺饭取决于是筷子还是饭勺,不取决于是什么米有多少米

使用特权

评论回复
8
szshawn2010| | 2010-1-10 12:54 | 只看该作者
01H 是位还是字节,取决于 01h前面的 字符.

就像我骂人 X死
   到底是 你死,还是他死,不取于死,而取决于 你 或他

使用特权

评论回复
9
zhaogongzuo| | 2010-1-10 19:30 | 只看该作者
:L。。。。。。晕,我的理解怎么跟其他人咋不一样呢,完蛋了我,说出来给大家拍砖!

哈哈哈,写着写着我都想笑:lol。。。为什么要把问题复杂化呢?我的回答是:20H表示字节地址,而20H.2则表示位地址(20H呢,有8个位地址)。够简单,够容易区分了吧!字节操作是:MOV 20H,#55H(你不会来个SETB 20H,#55吧,那也太搞笑了),而位操作是:SETB 20H.2(你要来个MOV 20H.2,#55,那你就去撞墙吧)。另外,你不能单单的SETB 20H这样写,你要写就写得严谨一点SETB 20H.5这样。

注意:你不能来个SETB 30H.7,这样编译就错误了。为什么?因为可位寻址区域只在20~2F!30H~7FH是通用RAM区,是字节寻址!还有一个,你可以SETB P0.4,但是你不能来个SETB TH0.1,因为P0.1是已经定义好的,书上有个表就专门写有。

认认真真的看书吧,或者说看手册,当然最好看原版手册。看书——把书看得简单化,就是高手!看书——把书看得复杂化,就是转牛角尖!看书要思考,不然就不是你看书,而是书看你了!思考要实践,不然就是嘴尖皮厚腹中空!嘿嘿~~~~~~

使用特权

评论回复
10
szshawn2010| | 2010-1-10 20:27 | 只看该作者
不同厂家的MCU,其指令系统不同.
因此,LS说的,20H,2表示位地址,我在一款MCU中,就是这样用的,他就需要这样表达.

因此,不同的东西要视情况而定

使用特权

评论回复
11
szshawn2010| | 2010-1-10 20:28 | 只看该作者
看MCU的DATASHEET很重要.就是MCU的说明书

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

65

帖子

1

粉丝