本帖最后由 jinglixixi 于 2022-11-8 10:30 编辑
在AVR64DD32开发板上配置用户键,可供编程来测试,其电路见图1所示。 因此可知,控制按键的引脚是PF6。 图1按键电路 用它可控制LED的亮灭,其具体程序如下: int main(void) {
int i,j,k;
LED_init();
LED0_init();
LED2_init();
LED4_init();
LED6_init();
LED8_init();
LED10_init();
IO_PA6_SetDigitalInput();
IO_PA6_SetPullUp();
while (1)
{
if (IO_PA6_GetValue()==1)
{
LED0_turnOff();
LED2_turnOff();
LED4_turnOff();
LED6_turnOff();
LED8_turnOff();
LED10_turnOff();
}
else
{
LED0_turnOn();
LED2_turnOn();
LED4_turnOn();
LED6_turnOn();
LED8_turnOn();
LED10_turnOn();
}
for(i=0;i<2000;i++);
}
}
经程序编译与下载,其效果如图3和图4所示。
图3 点亮LED 图4 熄灭LED 控制LED灯正方向旋转的程序如下: int main(void) {
int i,j;
char k=11;
LED_init();
LED0_init();
LED1_init();
LED2_init();
LED3_init();
LED4_init();
LED5_init();
LED6_init();
LED7_init();
LED8_init();
LED9_init();
LED10_init();
LED11_init();
dark();
IO_PA6_SetDigitalInput();
while(1)
{
if(k==0) LED0_turnOn();
if(k==1) LED1_turnOn();
if(k==2) LED2_turnOn();
if(k==3) LED3_turnOn();
if(k==4) LED4_turnOn();
if(k==5) LED5_turnOn();
if(k==6) LED6_turnOn();
if(k==7) LED7_turnOn();
if(k==8) LED8_turnOn();
if(k==9) LED9_turnOn();
if(k==10) LED10_turnOn();
if(k==11) LED11_turnOn();
for(i=0;i<1000;i++);
if(IO_PA6_GetValue()==0)
{
for(j=0;j<1000;j++) for(i=0;i<1000;i++);
if(k>0)
{
k=k-1;
}
else
{
k=11;
dark();
}
}
else
{
for(j=0;j<1000;j++) for(i=0;i<1000;i++);
if(k<11) k=k+1;
else
{
k=0;
dark();
}
}
for(i=0;i<1000;i++);
}
while (1)
{
if (IO_PA6_GetValue()==1)
{
LED8_turnOff();
LED0_turnOff();
LED2_turnOff();
LED4_turnOff();
LED6_turnOff();
LED10_turnOff();
LED9_turnOff();
LED1_turnOff();
LED3_turnOff();
LED5_turnOff();
LED7_turnOff();
LED11_turnOff();
}
else
{
LED8_turnOn();
LED0_turnOn();
LED2_turnOn();
LED4_turnOn();
LED6_turnOn();
LED10_turnOn();
LED9_turnOn();
LED1_turnOn();
LED3_turnOn();
LED5_turnOn();
LED7_turnOn();
LED11_turnOn();
}
for(i=0;i<2000;i++);
}
}
视频:
|