打印

问一个io口的问题

[复制链接]
1793|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lzacking|  楼主 | 2011-8-21 19:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如说P1口,低4位做数码管循环扫描用,高4位作iic接口,要怎样处理才可以使数码管扫描不会影响高4位,也就是说把P1口分成独立的两部分,互不干扰。我弄好久了还是不得啊,所以请教dx们了。先谢谢了!:D

相关帖子

沙发
原野之狼| | 2011-8-21 19:58 | 只看该作者
位操作知道不?
PORTx |= 0x01 << n
PORTx &= ~(0x01 << n)

使用特权

评论回复
板凳
lzacking|  楼主 | 2011-8-21 22:22 | 只看该作者
嗯  可以实现了,谢谢! 看来要找一本好的书了。

使用特权

评论回复
地板
ayb_ice| | 2011-8-22 08:41 | 只看该作者
51的强项就是位操作

使用特权

评论回复
5
mugenwon| | 2011-8-22 16:50 | 只看该作者
51本来就能位操作IO口的,其他芯片有些不能,不过用与或操作肯定可以。

使用特权

评论回复
6
lisijun100| | 2011-8-22 17:02 | 只看该作者
问的是P1口, 是51系列的! 仿照 AVR 的“位”操作, 与 0b1111 xxxx  或0b0000 xxxx

使用特权

评论回复
7
dengm| | 2011-8-22 18:02 | 只看该作者
“位”操作 or 备份高4位:

“位”操作:
     Scan data 30h
     inc scan
     mov a, SCAN
     MOV C, ACC.0
     MOV P1.0, C
     MOV C, ACC.1
     MOV P1.1, C
     MOV C, ACC.2
     MOV P1.2, C
     MOV C, ACC.3
     MOV P1.3, C

备份高4位:
   P1H_BAK DATA 20H
    P1_7B Bit p1h_bak.7
    P1_6B Bit p1h_bak.6
    P1_5B Bit p1h_bak.5
    P1_4B Bit p1h_bak.4

    mov a,  P1H_BAK
    inc a
    anl a, #0fh
    xch a, p1h_bak
    anl a, #0f0h
    orl a, p1h_bak
    MOV P1H_BAK, A
    MOV P1, A

使用特权

评论回复
8
rclong| | 2011-8-22 18:57 | 只看该作者
分别位这2组IO设置一个虚拟机 然后修改虚拟机

使用特权

评论回复
9
lzacking|  楼主 | 2011-8-23 10:11 | 只看该作者
非常感谢各位dx的帮助 :victory:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

6

帖子

0

粉丝