/*******************************************************************************/
//ATmega88简单输出;
//pd0和pb1输入 pd1输出
//当pb0为低电平的时候,pd1输出高电平
//当pb1为低电平的时候,pd1输出高低交换电平
/*******************************************************************************/
#include <iom88v.h>
#include <macros.h>
void delay(int x)
{
int a,b;
for(a = x;a >0;a--)
{
for(b = 114;b>0;b--)
{
}
}
}
void main()
{
DDRB = 0x00; //pb input
PORTB = 0x00;
DDRD |= 0x02; //pd1 output
PORTD = 0x00;
while(1)
{
if((PINB & 0x04) != 0x04) //pb2weidi
{
PORTD = 0x00;
delay(538);
PORTD = 0x02;
delay(538);
}
else if((PINB & 0x01) != 0x01) // pd0weidi
{
PORTD = 0x02;
}
else
{
PORTD = 0x00;
}
}
}
问题:在判断引脚为高低电平的时候,之前是以下的判断方法:
1、if(PINB & (1 << 2) == 1) //是不是在意思是说 pb2 ==