[疑难问答] 请教个小问题

[复制链接]
3088|10
 楼主| huamunv 发表于 2010-2-17 08:59 | 显示全部楼层 |阅读模式
TMOD|=0x20;      //初始化T1为定时功能,模式2
PCON|=0x80;      //设置SMOD=1


这个程序是C语言写的。能不能改成如下的:
TMOD=TMOD|0x20;      //初始化T1为定时功能,模式2
PCON=PCON|0x80;      //设置SMOD=1


如果是,怎么解释就向注解中的那样会出现??
杨工 发表于 2010-2-17 09:21 | 显示全部楼层
2种写法是等价的,前一种是标准的C语言。优点是简练,字少,一目了然,不易出错。不提倡第二种。
最后一句问题没看懂。
 楼主| huamunv 发表于 2010-2-17 10:12 | 显示全部楼层
2# 杨工
就是PCON=PCON|0x80具体如何解释?
为啥是设置SMOD=1?
ljhtj 发表于 2010-2-17 22:14 | 显示全部楼层
看PCON最高位(SMOD)的功能
David_ming 发表于 2010-2-18 00:06 | 显示全部楼层
等效的,第一种比较精简容易理解,第二种字太多了,所以不提倡,而且就编译器来讲编译效率(不一定是代码效率)比较高,楼主问的  PCON = PCON | 0x80 的意思就是PCON这个寄存器与 0x80 这个数字相或运算,在或运算里边一个bit里边只要有1 ,那么这一位结果就是1,楼主好好看看书哦~

评分

参与人数 1威望 +1 收起 理由
Karlshen + 1

查看全部评分

Karlshen 发表于 2010-2-20 21:32 | 显示全部楼层
五楼解释得好详细啊
tiger2010 发表于 2010-2-20 21:56 | 显示全部楼层
新手进来学习
laslison 发表于 2010-2-21 15:35 | 显示全部楼层
或运算就不用解释了吧:L
linhai1986 发表于 2010-2-21 18:43 | 显示全部楼层
呵呵:)
wangwo 发表于 2010-2-23 12:13 | 显示全部楼层
讲得透彻
 楼主| huamunv 发表于 2010-3-12 21:34 | 显示全部楼层
理解了,谢谢各位!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

88

主题

730

帖子

1

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