打印

菜鸟跪求两个最基本的单片机问题

[复制链接]
1545|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
豆豆杨豆豆|  楼主 | 2008-10-19 09:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ejack| | 2008-10-19 09:32 | 只看该作者

随便找个51片子看他的datasheet

使用特权

评论回复
板凳
teddeng| | 2008-10-19 11:17 | 只看该作者

说一点

4组寄存器主要是为了子程序(特别是中断程序)调用的时候编程方便,
如果只一组工作寄存器,则调用时可能需要 PUSH R0,PUSHR1,,,,,,,PUSHR7
返回时要同样要POP8下,比较啰嗦。
有4组的话,则只要修改一下PSW寄存器的相应两位就可以了,比较省事。
事实上嵌套深度超过4层的话还是要你自己保护R0~R7寄存器的。
初学不要纠缠于此,就当只一组寄存器好了。

其他问题看书吧,刚入门是有点容易被细节绕进去,最好身边有个人指点,那样最快。

使用特权

评论回复
地板
NE5532| | 2008-10-19 11:28 | 只看该作者

1.这个问题不关你的事,吃饭的时候你研究过怎么给水稻施肥吗?
2.RAM的分配由你的程序自己定,如果写C语言,就不要你管了。4组工作寄存器可以用于在多个任务间快速切换,例如中断响应,在主程序里用一组,在中断服务程序里用一组,位寻址地址:RAM空间20-2F+端口对着的那一竖列(如果没记错的话)

使用特权

评论回复
5
hgjinwei| | 2008-10-19 13:26 | 只看该作者

楼主应该先好好看下书

四组工作积存器通过PSW的RS0,RS1(b4,b3位)控制,具体为
rs1 rs0 = 00 => 第一工作区,地址为00H -> 07H
rs1 rs0 = 01 => 第二工作区,地址为08H -> 0FH
rs1 rs0 = 10 => 第三工作区,地址为10H -> 17H
rs1 rs0 = 11 => 第四工作区,地址为18H -> 1FH

RAM区分为三个部分,低128字节区,高128字节区(假如存在的话)和特殊功能寄存区,其中高128字节区与特殊功能寄存区公用地址,高128字节区采用间接寻址,特殊功能寄存器采用直接寻址(千万别说不止什么是寻址).
位寻址域范围为00H -> 0FFH,其中00H -> 7FH为普通内存位寻址区,对应内存地址为20H -> 2FH, 其余为特殊功能寄存器位寻址区,比如P0.0对应80H
以上只是对于普通51处理器,51增强型处理器.

使用特权

评论回复
6
豆豆杨豆豆|  楼主 | 2008-10-20 17:03 | 只看该作者

知道了

谢谢大家啊!

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝