各位大神!!懂指针的进

2020-02-04 09:13发布

    首先在51中P1的物理地址是90H,如果我不通过用《reg51.h》或者sfr之类的直接用指针,应该
也是可以对P1口进行操作的。
代码如下
void main()
{   
   unsigned char*p;
   p=( volatile unsigned char *)(0x90);
   *p=0xf0;
   while(1);
}
如果上面的代码正确的话,那么8个led是一半亮一半不亮啊,纳闷的是这个程序运行的时候没一点反应,望各位大侠多多指教!!十分感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
34条回答
Garbage614
1楼-- · 2020-02-05 19:01
 精彩回答 2  元偷偷看……
墨非
2楼-- · 2020-02-06 00:55
rookieli 发表于 2012-4-13 14:13
首先谢谢大家了,你说得对,那么怎么指向SFR区呢?谢谢了

SFR指令是C51为了访问特殊功能寄存器而做的扩展,你现在想跳过它,貌似很难哦!
catvevs
3楼-- · 2020-02-06 01:11
本帖最后由 catvevs 于 2012-4-13 22:24 编辑

avr是冯诺依曼结构的 51才是哈佛结构  间接寻址不能访问特殊功能寄存器
unsigned char*p;只能访问内部RAM
NemoGu
4楼-- · 2020-02-06 06:22
rookieli 发表于 2012-4-13 14:14
呵呵 那是多少,望大虾解答一下,谢谢了

不同的单片机不一样啊
例如 CC1111的内部8051把SFR映射到0xDF80~0xDFFF
rookieli
5楼-- · 2020-02-06 10:04
NemoGu 发表于 2012-4-13 15:37
不同的单片机不一样啊
例如 CC1111的内部8051把SFR映射到0xDF80~0xDFFF

那stc89c52呢
NemoGu
6楼-- · 2020-02-06 12:45
 精彩回答 2  元偷偷看……

一周热门 更多>