数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1564|回复: 7

[C51] 单片机不同io组合成虚拟Io口

[复制链接]
发表于 2022-9-18 17:11:22 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
受硬件或走线限制,有些IO不连续,操作不便。因此做个程序
注意,通过debug,实际上仍是位操作,比真正的P1 = 0x0f慢得多,不是万不得已,不要用
#include<reg51.h>
sbit port0= P0^0;
sbit port1= P0^1;
sbit port2= P1^0;
sbit port3= P1^1;
sbit port4= P2^0;
sbit port5= P2^1;
sbit port6= P3^0;
sbit port7= P3^1;

void newIo(unsigned char da)
{
        port0 = (bit)(da&0x01);
        port1 = (bit)(da&0x02);
        port2 = (bit)(da&0x04);
        port3 = (bit)(da&0x08);
        port4 = (bit)(da&0x10);
        port5 = (bit)(da&0x20);
        port6 = (bit)(da&0x40);
        port7 = (bit)(da&0x80);
}

void main ()
{
        newIo(0x02) ;
}

 楼主| 发表于 2022-9-18 21:06:58 | 显示全部楼层
kkstun 发表于 2022-9-18 17:35
那可以用595扩展一下。

595是扩展端口,这个是IO口不在一组,组合起来便于操作。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-24 19:43 , Processed in 0.156000 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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