找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机如何检测多个IO状态 求思路

[复制链接]
跳转到指定楼层
楼主
ID:101869 发表于 2022-4-7 19:50 来自触屏版 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何用简练的代码反映多个非同一组IO口的变化,最好是组合到一起&0xff的办法求个思路
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:161164 发表于 2022-4-8 07:56 | 只看该作者
unsigned char IO_In()
{
  unsigned char dat = 0;
  dat |= (char)P34 << 0;
  dat |= (char)P30 << 1;
  dat |= (char)P12 << 2;
  dat |= (char)P10 << 3;
  dat |= (char)P32 << 4;
  dat |= (char)P33 << 5;
  dat |= (char)P13 << 6;
  dat |= (char)P11 << 7;
  return dat;
}
回复

使用道具 举报

板凳
ID:587810 发表于 2022-4-8 08:06 来自触屏版 | 只看该作者
可以直接用串口扩展io
回复

使用道具 举报

地板
ID:887371 发表于 2022-4-8 09:59 | 只看该作者
  1. #define KB0 P34
  2. #define KB1 P30
  3. #define KB2 P12
  4. #define KB3 P10
  5. #define KB4 P32
  6. #define KB5 P33
  7. #define KB6 P13
  8. #define KB7 P11
  9. //#define KB7 0//如不需某位,要把某位定义为数值
  10. #define KPORT_GET_L4() (KB0?1<<0:0)|(KB1?1<<1:0)|(KB2?1<<2:0)|(KB3?1<<3:0)
  11. #define KPORT_GET_H4() (KB4?1<<4:0)|(KB5?1<<5:0)|(KB6?1<<6:0)|(KB7?1<<7:0)
  12. #define KPORT_GET() (KPORT_GET_L4()|KPORT_GET_H4())
复制代码


这个和沙发方法几乎一样,只是这段代码是放在头文件。
回复

使用道具 举报

5#
ID:121859 发表于 2022-4-8 10:08 | 只看该作者
用一个串转并芯片接入到单片机,可以实现。
回复

使用道具 举报

6#
ID:101869 发表于 2022-4-8 12:23 来自触屏版 | 只看该作者
lkc8210 发表于 2022-4-8 07:56
unsigned char IO_In()
{
  unsigned char dat = 0;

谢谢解答
回复

使用道具 举报

7#
ID:101869 发表于 2022-4-8 12:23 来自触屏版 | 只看该作者
datouyuan 发表于 2022-4-8 09:59
这个和沙发方法几乎一样,只是这段代码是放在头文件。

谢谢您的解答
回复

使用道具 举报

8#
ID:123289 发表于 2022-4-8 13:49 | 只看该作者
学习汇编,就知道了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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