|

楼主 |
发表于 2010-12-13 19:26:17
|
显示全部楼层
原帖由 zxf6641 于 2010-12-13 17:07 发表 
再读一遍 ,重点看 10101010低 4位输出 0011 ,而不影响高 4位 . 先后用了逻辑乘 (与运算 )清零 ,逻辑加 (或运算 ) . 这是看了相关内容才搞懂的 .不过版主讲的例子的应用在什么方 ?什么用途 ?
再次感谢版主的精 ...
这种用法用的地方非常多.一般单片机的I/O口是8位的(有的型号口线不够也有5位的6位的等等).而我们有时用不了这么多位,其他的口线还想作另外的用途(毕竟很多情况下I/O口是比较紧张的),这时就要把I/O分成几部分,分别操作,这种操作就用了.比如我们要驱动一个4位LED数码管作动态显示,段输出8位刚好用一个口,位输出只要4位就够了,剩下4位就可以作4个按键.当51的I/O口输入时相应寄存器要写1,这样那个I/O口就分成两部分,一半是用于LED的位控制不断的输出数据扫描,另一半要一直持为1,这样就需要这样控制.或许你会说每次那4位置1就成了,这个例子是可以,但如果另外4位是其他控制线呢?比如指示灯,继电器等等等等,就不能影响当前的状态,这就需要这么操作了. |
|