2个回答
展开全部
追问
这样不是一样把控制位置1了吗ADC_CONTR=0x08
追答
如果是可位寻址的寄存器就很好办,如定时器控制,直接TR0=1或TR0=0
但该寄存器不可位寻址,想单独操作其某一位,只能用这种方法
如果直接用ADC_CONTR=0x08是把启动控制位置1了,但你考虑其它位了吗?你凭什么都给它置0?你这一操作,以前的设置不就废了吗?用上述"或"操作就可以避免这个问题,只对你感兴趣或用得着的位进行单独操作,而其它位我们不随便去置1或清0,保持原样
常见的还有单独对某一位清0 如 P1&=~0X80,只清P1的最高位,其余位不变(只因P1是可位寻址的,所以我们可以直接写P1^7=0,而不必用这样的"与""反"操作)
还有单独对某一位取反用"异或"操作
还有TMOD寄存器,也不可位寻址,,也可以统一设置,如定时器1工作在16位计数模式,定时器0工作在16位定时模式,我们可以设TMOD=0X51
我们也可以单独对其设置,TMOD|=0X50 TMOD|=0X01,好象第二种方法还复杂一些
但寄存器位数很多时,单独操作的优越性显而易见,我们不必纠结其它位该怎么设置,只对感兴趣的位进行操作
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询