问一个io口的问题

[复制链接]
2624|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的强项就是位操作
mugenwon 发表于 2011-8-22 16:50 | 显示全部楼层
51本来就能位操作IO口的,其他芯片有些不能,不过用与或操作肯定可以。
lisijun100 发表于 2011-8-22 17:02 | 显示全部楼层
问的是P1口, 是51系列的! 仿照 AVR 的“位”操作, 与 0b1111 xxxx  或0b0000 xxxx
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
rclong 发表于 2011-8-22 18:57 | 显示全部楼层
分别位这2组IO设置一个虚拟机 然后修改虚拟机
 楼主| lzacking 发表于 2011-8-23 10:11 | 显示全部楼层
非常感谢各位dx的帮助 :victory:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

6

帖子

0

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