lesson5.c
来自「AVR mega16单片机的示例程序」· C语言 代码 · 共 72 行
C
72 行
#include <avr/io.h>
int main(void)
{
DDRD &= ~(1 << 6);
PORTD |= (1 << 6);
DDRD &= ~(1 << 7);
PORTD |= (1 << 7);
DDRD &= ~(1 << 2);
PORTD |= (1 << 2);
DDRD &= ~(1 << 3);
PORTD |= (1 << 3);
DDRA |= (1 << 3);
PORTA &= ~(1 << 3);//关蜂鸣器
DDRB = 0xff;
while(1)
{
switch(PIND & 0b11001100)
{
case 0b11001100://K1被按下
{
PORTB |= (1 << 0);//LED0发光
break;
}
case 0b11000000://K2被按下
{
PORTB |= (1 << 1);//LED1发光
break;
}
case 0b10001000://K3被按下
{
PORTB |= (1 << 2);//LED2发光
break;
}
case 0b01001000://K4被按下
{
PORTB |= (1 << 3);//LED3发光
break;
}
default://0b11001000
{
PORTA &= ~(1 << 3);//关蜂鸣器
PORTB = 0;
break;
}
}
/*if(!(PIND & (1 << 6)))//K3按键被按下
{
PORTA |= (1 << 3);//蜂鸣器鸣响
}
else if(!(PIND & (1 << 7)))//K4按下
{
PORTB |= (1 << 0);//第1个LED发光
}
else if(PIND & (1 << 2))//K1按下
{
PORTB |= (1 << 1);//第2个LED发光
}
else if(!(PIND & (1 << 3)))//K2按下
{
PORTB |= (1 << 2);//第3个LED发光
}
else//按键没被按下
{
PORTA &= ~(1 << 3);//关蜂鸣器
PORTB = 0;
}*/
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?