5440|6

64

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

430的位操作有什么简单方法? [复制链接]

我刚接触430单片机,总觉得位操作太麻烦,我要置位或清零,需要两种不同的头文件,且占用的程序空间比较大,在判断位时,也很麻烦,总要先读到CPU寄存器中,才能判断,否则就改变了该位所在的RAM的值。
其它单片机,如51,PIC都有专门的位操作,很方便。
是否我对430理解不对,有没有简单的方法?请各位指教。
谢谢了!

最新回复

位运算确实不如51,但是速度还是蛮快的  详情 回复 发表于 2009-12-2 15:52
 
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
供参考!

#define P2_0_RS 0x01
#define P2_1_RW 0x02
#define P2_2_EN 0x04
#define P2_3_CS1 0x08
#define P2_3_CS2 0x40
#define P2_3_RST 0x80


P2DIR = 0xFF;
P2OUT = P2_3_CS1 | P2_3_CS2 | P2_3_RST;
P2OUT &=~P2_3_RST;
_NOP();
_NOP();
P2OUT |= P2_2_EN;

if(CS1) P2OUT |= P2_3_CS1;
else P2OUT &=~P2_3_CS1;

if(CS2) P2OUT |= P2_3_CS2;
else P2OUT &=~P2_3_CS2;
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
供参考!
#define CLK_OUT P1OUT
#define CLK BIT0
#define MEM_OUT P1OUT
#define MEM BIT1
。。。。。

CLK_OUT &=~ CLK;
CLK_OUT |= CLK;
MEM_OUT |= MEM ;
MEM_OUT &=~ MEM ;
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

4
 

谢了

其实我也不是说它麻烦,只是说置一个位,清一个位,以及判断一个位占用了太多的程序量。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(初级)

6
 
不知道像GCC一样用宏位移效率如何
PORTA=(1<<4)|(1<<6);



#define Set_Bit(val,bit) val|=(1<<bit)


Set_bit(PORTA,3);
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 
位运算确实不如51,但是速度还是蛮快的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表