3297|2

65

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

困惑:C51中结构体的使用 [复制链接]

在写ds18b20驱动程序时,由于读设备64位rom代码,因此想用下结构体。
自定义的结构体为:
struct RomCode
{
    uchar FamilyCode;
    uchar SerialCode[6];
    uchar Crc;
};
测试主函数:
void main()
{
    uchar i;
    struct RomCode ds;       //定义结构体变量

    ds.FamilyCode = 0xee;    //结构体赋值
    for(i=0;i<6;i++)
        ds.SerialCode = i;
    ds.Crc = 0xff;

    LEDPORT = ds.FamilyCode;    //用8个LED灯显示ds.FamilyCode的值
}
困惑:观察到LEDPORT显示的并不是0xee,而且不管给ds.FamilyCode赋什么值,最终运行结果显示的都是0x05;
尝试解决的过程:
    试着把    for(i=0;i<6;i++)
                ds.SerialCode = i;
             ds.Crc = 0xff;
屏蔽掉后,发现LEDPORT显示0xee,正确了!~
疑问:为什么会出现这种情况?我在VC6.0中试了下,结构体按上述方法可正常赋值,不会出现前面已赋值的数据被更改的情况。难道在C51中不能对结构体赋值?希望各位大侠能帮我解决下

最新回复

解决,结帖....  详情 回复 发表于 2008-7-23 05:52
点赞 关注

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
补充下:我所用的单片机是NXP的P89V51RD2FN
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
解决,结帖....
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表