找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机P1口空闲的一位怎样控制?

[复制链接]
跳转到指定楼层
楼主
ID:143584 发表于 2020-10-2 22:58 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用P1口驱动数码管,但只用了其中的7位,小数点那一位没用到,想把空闲的那一位(比如说是0位)控制个LED,怎样实现,请高手指点。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2020-10-3 06:13 | 只看该作者
正常段码小数点是最高位,可以另作他用,代码如下。
        P1&=0x80;//清除低7位,保留最高位
        P1|=0x3f;//写低7位段码,最高位不变
如果想把空闲的那一位(比如说是0位)控制个LED,代码如下。
        P1&=0x01;//清除高7位,保留最低位
        P1|=(0x3f<<1);//写高7位段码,最低位不变
回复

使用道具 举报

板凳
ID:748788 发表于 2020-10-3 08:32 | 只看该作者
sbit led=P0^0;
回复

使用道具 举报

地板
ID:748788 发表于 2020-10-3 15:21 | 只看该作者
(早上回完贴就忘了指定的是哪个口,又看不到。)按楼主的意思P1口的小数点应该是:sbit led=P1^7;
回复

使用道具 举报

5#
ID:143584 发表于 2020-10-4 11:32 | 只看该作者
wulin 发表于 2020-10-3 06:13
正常段码小数点是最高位,可以另作他用,代码如下。
        P1&=0x80;//清除低7位,保留最高位
        P1|=0x3f;//写 ...

我的是4位数码管,用的是扫描方式,您提供的这个无法用,有别的方法吗。
回复

使用道具 举报

6#
ID:89515 发表于 2020-10-4 12:03 来自手机 | 只看该作者
lwhmgp 发表于 2020-10-4 11:32
我的是4位数码管,用的是扫描方式,您提供的这个无法用,有别的方法吗。

楼上说的就是方法,总线方式独立控制某个IO口的方法。你要举一反三啊!
回复

使用道具 举报

7#
ID:420836 发表于 2020-10-5 00:26 | 只看该作者
您可以使用位掩码操作过滤掉未使用的位。
回复

使用道具 举报

8#
ID:143584 发表于 2020-10-7 14:39 来自手机 | 只看该作者
wulin 发表于 2020-10-3 06:13
正常段码小数点是最高位,可以另作他用,代码如下。
        P1&=0x80;//清除低7位,保留最高位
        P1|=0x3f;//写 ...

谢谢,弄明白了,原来或上要控制的位就行了,我的基础太差了,再次感谢。
回复

使用道具 举报

9#
ID:143584 发表于 2020-10-7 14:40 来自手机 | 只看该作者
TTQ001 发表于 2020-10-5 00:26
您可以使用位掩码操作过滤掉未使用的位。

您能给个例子吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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