找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 173|回复: 2
打印 上一主题 下一主题
收起左侧

关于结构体问题的求解

[复制链接]
跳转到指定楼层
楼主
ID:611626 发表于 2025-8-6 12:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
union BUTE

    {
    unsigned char BYTE;
        
    struct
    {               
        unsigned char p54:1;
        unsigned char p55:1;  //变量名p54、p55、p32等通常对应单
        unsigned char p32:1;
        unsigned char p33:1;
        unsigned char p34:1;
        unsigned char p35:1; //bit5
       unsigned char p36:1;
        unsigned char p37:1; //bit7
            
        } BIT;
} zhdat;
void showNumber(unsigned char n)
        {
    if(n > 9) return;  // 仅处理0~9
    zhdat.BYTE = digitCode[n];  // 整体赋值段码,控制所有段
        }
********
zhdat.BYTE = digitCode[n];  这里KELL调试zhdat.BYTE=0X6d  bit=unino{ P54=0X01 P55=0X00 P32=0X0133=01 34=00 35=01 36=01 37=00}可是反应到端口没有变化
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1109793 发表于 2025-8-6 13:56 | 只看该作者
你的意思是把BYTE的内容直接映射到引脚上?感觉这样操作能行?
回复

使用道具 举报

板凳
ID:611626 发表于 2025-8-7 09:38 | 只看该作者
问题以解决,结帖:解决办法 // 将位域值写入实际端口寄存器
    P5 = (P5 & ~0x30) | ((zhdat.BIT.p55 << 5) | (zhdat.BIT.p54 << 4)); // 操作P5.4和P5.5
    P3 = (P3 & ~0xFC) | ((zhdat.BIT.p37 << 7) | (zhdat.BIT.p36 << 6) |
                        (zhdat.BIT.p35 << 5) | (zhdat.BIT.p34 << 4) |
                        (zhdat.BIT.p33 << 3) | (zhdat.BIT.p32 << 2)); // 操作P3.2-P3.7
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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