标题: 单片机如何检测多个IO状态 求思路 [打印本页]

作者: 非凡科技    时间: 2022-4-7 19:50
标题: 单片机如何检测多个IO状态 求思路
如何用简练的代码反映多个非同一组IO口的变化,最好是组合到一起&0xff的办法求个思路
作者: lkc8210    时间: 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;
}
作者: ankangyu    时间: 2022-4-8 08:06
可以直接用串口扩展io
作者: datouyuan    时间: 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())
复制代码


这个和沙发方法几乎一样,只是这段代码是放在头文件。
作者: zhxiufan    时间: 2022-4-8 10:08
用一个串转并芯片接入到单片机,可以实现。
作者: 非凡科技    时间: 2022-4-8 12:23
lkc8210 发表于 2022-4-8 07:56
unsigned char IO_In()
{
  unsigned char dat = 0;

谢谢解答
作者: 非凡科技    时间: 2022-4-8 12:23
datouyuan 发表于 2022-4-8 09:59
这个和沙发方法几乎一样,只是这段代码是放在头文件。

谢谢您的解答
作者: yzwzfyz    时间: 2022-4-8 13:49
学习汇编,就知道了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1