找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 580|回复: 1
打印 上一主题 下一主题

51单片机的P2口为啥不能位操作?

[复制链接]

56

主题

989

帖子

9320

积分

六级会员(60)

Rank: 6Rank: 6

积分
9320
跳转到指定楼层
1#
发表于 2014-4-3 14:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
大家好,用单片机发现一个奇怪的现象,P2口不能位操作,但Proteus仿真P2口是正常的,Keil C51仿真P2口也是正常的。程序改成其他端口就正常,可以位操作。型号是ATmel的AT89S52还有AT89C51RC2都出现这种现象,不知道为什么?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
sss

33

主题

4949

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
12225
2#
发表于 2014-4-7 09:12 | 只看该作者
本帖最后由 超級狗 于 2014-4-8 11:17 编辑
  B1 a5 f% B7 K5 I8 @, r
$ g- a3 ~! A: T& u0 F  G$ b: b$ W敘述不夠清楚,不曉得是什麼問題?
1 J+ H& }6 T1 ^& Q) m# a
4 L1 |# G; E$ `% {9 O9 u, [: K, i) G芯片資料是寫 Port 2 要當 Input 時,要 Enable Internal Pull-Up Resistor,所以 SFR 暫存器 0x0AH 的位址對應的接腳位元(bit)要寫 "1"。" r+ q$ v* s6 `4 h4 D) T

: K( x! k7 H3 W  y0 b+ n+ K
另外一點,讀寫 Port 2 要用直接定址的方式(Direct Addressing)" @8 s, ?2 P/ I; M# X& n# D

  s: D% k# b5 _  rmove 0a0ah, #data (這是寫到 Port 2
; m$ L7 s  k; {' E0 j8 Z$ u+ E; o, B! L! Y& G
move @R0, #data(R0 = 0x0A0H,這是寫到 Internal RAM
2 o( o" ~- d9 U" g+ [2 F2 @6 ~& T
1 I& l$ j1 a* `) J 5 h+ }2 S/ z5 I
/ ^* D* c7 I, [4 a3 b

* `4 f: [3 e! @. l  \8 r1 h! X9 T$ n6 g4 [7 y; |
8 A- q1 `: R7 T) J

AT89S52 Section 6.2 Data Memory.jpg (219.87 KB, 下载次数: 0)

AT89S52 Section 6.2 Data Memory.jpg

AT89S52 Section 4.5 Port 2.jpg (168.13 KB, 下载次数: 0)

AT89S52 Section 4.5 Port 2.jpg
哈士奇是一種連主人都咬的爛狗!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-22 23:48 , Processed in 0.058302 second(s), 34 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表