TI中文支持网
TI专业的中文技术问题搜集分享网站

430怎么像51那样对I/O口自由的进行位操作 比如 sbit LCD_RW=P2^0; //LCD读写控制 可以直接LCD_RW=1 msp430 怎么能达到这个效果

430怎么像51那样对I/O口自由的进行位操作  比如 sbit LCD_RW=P2^0;          //LCD读写控制     可以直接LCD_RW=1  msp430 怎么能达到这个效果

gaoyang9992006:

你可以利用宏完成类似的操作,因为430的IO跟51不同,驱动能力更强,但是操作上需要配置输入,输出,以及上拉电阻都可以配置,所以你可以通过宏,将若干操作作为一组。你去下载个G2xx系列的例子看看吧。很容易懂。

gaoyang9992006:

回复 user1866843:

我知道,我的意思是你使用逻辑组合操作,然后用宏替换,表面上看着就是一条指令。当然了,你想完全这么做,肯定是无法实现的。目前只有51有这个功能。

user5213158:

回复 gaoyang9992006:

怎么组合 能举个例吗

user5213158:

回复 gaoyang9992006:

能举个例吗

user1866843:

回复 gaoyang9992006:

从题主的问题可以看出,其应该是对msp430这种蹩脚的端口赋值方式产生疑问,为什么不能像51直接赋值0或者1这种直观的方式来实现控制。是编译器的问题吗,或者是IAR封装不够人性化?其实这个时候需要直接为他指明背后的原因:位操作的问题。
就像有人问,为什么不能将电脑产生的热量变成电能,再给电脑用,这样能量也守恒啊。这个时候应该直接告诉背后的原因:根据热力学第二定律,造不出第二类永动机。

jiujun sun:

先读I/O对应的寄存器,在对该寄存器进行相应的位进行操作,将结果写入所对应的/O寄存器

Hao Mengzhen:

回复 user5213158:

用逻辑运算符号,比如按位与,按位或,异或,同或等,其本质不是位操作,但最终运算结果只影响某一位或某几位。
例如P1OUT |= BIT0; //把P1.0引脚置1

灰小子:

从51转到msp430,总会有些 不习惯。但随着深入学习,这个过程很快就会过去的。

不知道楼主用的哪个型号?有些系列官方有提供库函数,推荐使用库函数,上手可能更快一些

赞(0)
未经允许不得转载:TI中文支持网 » 430怎么像51那样对I/O口自由的进行位操作 比如 sbit LCD_RW=P2^0; //LCD读写控制 可以直接LCD_RW=1 msp430 怎么能达到这个效果
分享到: 更多 (0)