[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】+ 按键控制LED

[复制链接]
715|0
 楼主| jinglixixi 发表于 2022-11-7 14:05 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2022-11-8 10:30 编辑

AVR64DD32开发板上配置用户键,可供编程来测试,其电路见图1所示。
因此可知,控制按键的引脚是PF6
1按键电路
2实物连接
用它可控制LED的亮灭,其具体程序如下:
  1. int main(void) {
  2.     int i,j,k;
  3.     LED_init();
  4.     LED0_init();
  5.     LED2_init();
  6.     LED4_init();
  7.     LED6_init();
  8.     LED8_init();
  9.     LED10_init();
  10.     IO_PA6_SetDigitalInput();
  11.     IO_PA6_SetPullUp();
  12.     while (1)
  13.     {
  14.         if (IO_PA6_GetValue()==1)
  15.         {
  16.           LED0_turnOff();
  17.           LED2_turnOff();
  18.           LED4_turnOff();
  19.           LED6_turnOff();
  20.           LED8_turnOff();
  21.           LED10_turnOff();
  22.         }
  23.         else
  24.         {
  25.           LED0_turnOn();
  26.           LED2_turnOn();
  27.           LED4_turnOn();
  28.           LED6_turnOn();
  29.           LED8_turnOn();
  30.           LED10_turnOn();
  31.         }
  32.            for(i=0;i<2000;i++);
  33.     }
  34. }

经程序编译与下载,其效果如图3和图4所示。

3  点亮LED
4  熄灭LED
控制LED灯正方向旋转的程序如下:
  1. int main(void) {
  2.     int i,j;
  3.     char k=11;
  4.     LED_init();
  5.     LED0_init();
  6.     LED1_init();
  7.     LED2_init();
  8.     LED3_init();
  9.     LED4_init();
  10.     LED5_init();
  11.     LED6_init();
  12.     LED7_init();
  13.     LED8_init();
  14.     LED9_init();
  15.     LED10_init();
  16.     LED11_init();
  17.     dark();
  18.     IO_PA6_SetDigitalInput();
  19.     while(1)
  20.     {
  21.        if(k==0) LED0_turnOn();
  22.        if(k==1) LED1_turnOn();
  23.        if(k==2) LED2_turnOn();
  24.        if(k==3) LED3_turnOn();
  25.        if(k==4) LED4_turnOn();
  26.        if(k==5) LED5_turnOn();
  27.        if(k==6) LED6_turnOn();
  28.        if(k==7) LED7_turnOn();
  29.        if(k==8) LED8_turnOn();
  30.        if(k==9) LED9_turnOn();
  31.        if(k==10) LED10_turnOn();
  32.        if(k==11) LED11_turnOn();
  33.        for(i=0;i<1000;i++);
  34.        if(IO_PA6_GetValue()==0)
  35.        {
  36.             for(j=0;j<1000;j++)  for(i=0;i<1000;i++);
  37.             if(k>0)
  38.             {
  39.                 k=k-1;
  40.             }
  41.             else
  42.             {
  43.                 k=11;
  44.                 dark();
  45.             }
  46.        }
  47.        else
  48.        {
  49.            for(j=0;j<1000;j++)  for(i=0;i<1000;i++);
  50.            if(k<11) k=k+1;
  51.            else
  52.            {
  53.                k=0;
  54.                dark();
  55.            }
  56.        }
  57.        for(i=0;i<1000;i++);
  58.     }
  59.     while (1)
  60.     {
  61.         if (IO_PA6_GetValue()==1)
  62.         {
  63.           LED8_turnOff();
  64.           LED0_turnOff();
  65.           LED2_turnOff();
  66.           LED4_turnOff();
  67.           LED6_turnOff();
  68.           LED10_turnOff();
  69.           LED9_turnOff();
  70.           LED1_turnOff();
  71.           LED3_turnOff();
  72.           LED5_turnOff();
  73.           LED7_turnOff();
  74.           LED11_turnOff();
  75.         }
  76.         else
  77.         {
  78.           LED8_turnOn();
  79.           LED0_turnOn();
  80.           LED2_turnOn();
  81.           LED4_turnOn();
  82.           LED6_turnOn();
  83.           LED10_turnOn();
  84.           LED9_turnOn();
  85.           LED1_turnOn();
  86.           LED3_turnOn();
  87.           LED5_turnOn();
  88.           LED7_turnOn();
  89.           LED11_turnOn();
  90.         }
  91.         for(i=0;i<2000;i++);
  92.     }
  93. }

视频:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

521

主题

2949

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部