原创 几种单片机的IO位寻址的方法

2009-11-1 02:09 3341 6 6 分类: MCU/ 嵌入式

众所周知,51单片机可以进行位寻址,例如P1^2=0;


在430单片机的IO不可进行位寻址,则常用


#define   DIN0    P4OUT&=~BIT5;   输出低电平
#define   DIN1    P4OUT|= BIT5;       输出高电平
#define   DOUT    P4IN&BIT6;          定义为输入端口


来定义,由于头文件#include  <msp430x16x.h> 中已经包含了定义


#define BIT0                (0x0001),因此常用上述定义来位寻址。


当然,也可以不用BIT符号来定义例如,


#define LCD_CS0               P4OUT&=~(1<<2)
#define LCD_CS1               P4OUT|=(1<<2)
#define LCD_DATA0         P4OUT&=~(1<<1)
#define LCD_DATA1         P4OUT|=(1<<1)


与430单片机类似,AVR单片机的IO也不具备位寻址的能力,常用


#define   DIN0    P4OUT&=~BIT(5);   输出低电平
#define   DIN1    P4OUT|= BIT(5);        输出高电平


来定义,这是由于其头文件  #include <macros.h>   中已定义


#define     BIT(x)           (1 << (x)),当然我们也可以不用这个定义,就如同430中提到的直接定义


#define LCD_DATA0         P4OUT&=~(1<<1)
#define LCD_DATA1         P4OUT|=(1<<1)


以上就是这三种单片机一般IO操作时定义的基本方法和区别。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条