找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于C语言&运算的问题

查看数: 2850 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-5-14 14:34

正文摘要:

我的代码如下: sbit COW_1641 = P0^0; unsigned char temp=0x7E; printf("  temp  = 0x%X \n",  temp); COW_1641=temp&0x80; printf(" COW_1641 = 0x%X \n ...

回复

ID:919834 发表于 2021-5-15 17:30
&运算就是这样。11为1 01 为0  
ID:908996 发表于 2021-5-15 16:07
KongQuan 发表于 2021-5-15 15:16
因为C51有些特殊,格式化要用%b来修饰char类型
printf("col = %u  temp 1 = 0x%bX \n", col, temp);

加了%b参数后,输出的值就是正常的值了,谢谢!

我设计的效果是一行中间6个led亮,两边的两个led不亮,程序运行起来如前面截图所示,那么各位能否帮我看看代码哪里有问题,要怎么改?  谢谢!!
ID:822755 发表于 2021-5-15 15:16
因为C51有些特殊,格式化要用%b来修饰char类型
printf("col = %u  temp 1 = 0x%bX \n", col, temp);
ID:917199 发表于 2021-5-15 14:58
如附图
ID:230742 发表于 2021-5-15 00:11
不明白你是想做什么。
sbit COW_1641 = P0^0;    是定义单片机的一个引脚。
就算是用这个引脚去计算,也要先读一下这个引脚的状态啊,是高,还是底啊。
比如 NEW=COW_1641;
在用NEW去计算啊。
不明白你是研究C语言编程,还是研究单片机编程的。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:332214 发表于 2021-5-14 17:44
不知道你那边啥问题 0x80是P0的指针地址,你声明的COW_1641其实地址是0x81,你后面的操作 是想给这个引脚置高 还是 置低?或者你想对P0所有管脚移位操作?

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

Powered by 单片机教程网

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