只对一半IO口进行扫描的方法

[复制链接]
2121|8
 楼主| run_mo 发表于 2009-1-8 19:58 | 显示全部楼层 |阅读模式
   请问怎样能实现只对IO口一半进行扫描,而不对令一半造成影响?

例如只对P0口的P04----P07扫描,而不造成P00---P03的影响!
ayb_ice 发表于 2009-1-8 20:39 | 显示全部楼层

位操作,与,或,异或...

 楼主| run_mo 发表于 2009-1-8 20:44 | 显示全部楼层

位操作,与,或,异或...

  位操作一个一个赋值太麻烦了,想问一下有没有更好的方法?
红心j 发表于 2009-1-8 22:47 | 显示全部楼层

扫描的含义就是一个一个的进行

zq1987731 发表于 2009-1-9 08:15 | 显示全部楼层

一般51中当然是按位操作的

当然也可以借鉴下ARM中常用的编程思路:

X = P0 & 0xF0;    // 读P04~P07,结果在X中

//此处对X的值进行相关操作

P0 &= 0x0F;       // 清除P04~P07
P0 |= X & 0xF0;   // 将修改完的P04~P07"或"进P0中

细节方面就不管了,总之全程中P00~P03的值没变过吧
 楼主| run_mo 发表于 2009-1-9 19:35 | 显示全部楼层

5楼

谢谢,有启发
ayb_ice 发表于 2009-1-9 20:08 | 显示全部楼层

LZ编程还没有入门

 楼主| run_mo 发表于 2009-1-9 20:29 | 显示全部楼层

LZ编程还没有入门

对,刚刚开始学。
hotpower 发表于 2009-1-9 20:34 | 显示全部楼层

P0要上拉,orl p0,#0F0H;mov a,P0;swap a;

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

本版积分规则

20

主题

44

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部