一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

搜索
楼主: pf2051

初学单片机c语言编程,有个问题请教下。

[复制链接]
发表于 2015-4-17 22:58 来自手机 | 显示全部楼层
pf2051 发表于 2015-4-17 22:39
地址变量指向(80H-FFH)是可以,但是会直接指向特殊功能寄存器,c语言不知道怎么间接寻址。。。。[/backco ...

c51用指针指向内存地址不知道行不
ucharidata *p;  //*p指向idata
回复

使用道具 举报

 楼主| 发表于 2015-4-17 23:13 | 显示全部楼层
benli 发表于 2015-4-17 22:42
看不懂汇编。
PCON没法位寻址

PCON没法位寻址,所以要先放到累加器A里,再判断ACC.4是否为1,为1的话跳转到MainFirst
           MOV A,PCON
           JB ACC.4,MainFirst             ;PCON.4=1则为上电复位
回复

使用道具 举报

发表于 2015-4-17 23:22 | 显示全部楼层
if(PCON&0x10>0)
{
    上电复位程序;
}
else
....
回复

使用道具 举报

 楼主| 发表于 2015-4-17 23:23 | 显示全部楼层
benli 发表于 2015-4-17 22:58
c51用指针指向内存地址不知道行不
ucharidata *p;  //*p指向idata

好像不行,会出错误
error C141: syntax error near '0x9a'
回复

使用道具 举报

发表于 2015-4-17 23:29 | 显示全部楼层
benli 发表于 2015-4-17 17:45
刚看了下,STC的PCON寄存器里有上电复位标志POF可供查询

你这是偷梁换柱,楼主想学习用C实现这个功能,你却给指定了一个牌子的单片机用,难道想让楼主今后在遇到有相同的要求就只能使用STC的单片机了?
回复

使用道具 举报

发表于 2015-4-18 06:51 | 显示全部楼层
本帖最后由 benli 于 2015-4-18 07:21 编辑
pf2051 发表于 2015-4-17 23:23
好像不行,会出错误
error C141: syntax error near '0x9a'

可以通过编译,没有进行硬件实验
uchar abc _at_ 0x30;     //abc保存在30H
uchar idata *p;    //指向idata

        p=0x90;   //指针地址90
        if(*p==255)   //比较90h单元数据
        abc=1;
尽量用最后面的内存地址免得冲突

至于c初始化是是否将所有内存清零就不清楚了
回复

使用道具 举报

发表于 2015-4-18 06:51 | 显示全部楼层
灰灰的丝丁鱼 发表于 2015-4-17 23:29
你这是偷梁换柱,楼主想学习用C实现这个功能,你却给指定了一个牌子的单片机用,难道想让楼主今后在遇到 ...

业余51基本上就是STC的了
回复

使用道具 举报

发表于 2015-4-18 16:34 | 显示全部楼层
uint8_t x = *((uint8_t *)0x30);  // 读取地址0x30
*((uint8_t *)0x31) = x;  // 将x复值给地址0x31

另外
“现在用c 语言编这个程序不能定义指定00-7FH地址的寄存器”
这是个啥玩意?
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-19 06:08 , Processed in 0.034923 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表