打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】+ 按键控制LED

[复制链接]
588|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jinglixixi 于 2022-11-8 10:30 编辑

AVR64DD32开发板上配置用户键,可供编程来测试,其电路见图1所示。
因此可知,控制按键的引脚是PF6
1按键电路
2实物连接
用它可控制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++);
    }
}

视频:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

464

主题

2788

帖子

38

粉丝