[8/16-bit MCU] 刺眼的LED和小不舒服的按键

[复制链接]
780|4
 楼主| quray1985 发表于 2015-12-24 20:31 | 显示全部楼层 |阅读模式
不过别的部分写的还是挺好的。。由于本人以前没怎么接触过LPC系列的单片机所以只能先看各位大神的**咯

           好了言归正传说说我的劳动成果吧主要程序实现的功能就是用ISP的按钮来依次点亮3个LED灯。先来几张效果图吧。
           晚上加上屋子有点暗效果不咋滴大家将就看吧
           
           顺道说一下板子得LED太刺眼了真心有点扛不住,然后就是吐槽一下按键。个人感觉可能因为太小的缘故吧按着很不舒服。
           然后再来点代码分析咯。
 楼主| quray1985 发表于 2015-12-24 20:32 | 显示全部楼层
  1. int main()
  2. {

  3.    int i = 0;

  4.          Chip_GPIO_Init(LPC_GPIO);                    //初始化IO
  5.          Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 31);              //设定PIO0的第31个脚为输出
  6.          Chip_GPIO_SetPinState(LPC_GPIO, 0, 31, 1);                 //设定PIO0的第31个脚为输出高电平
  7.          
  8.          Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 30);
  9.          Chip_GPIO_SetPinState(LPC_GPIO, 0, 30, 1);
  10.          
  11.          Chip_GPIO_SetPinDIROutput(LPC_GPIO, 0, 29);
  12.          Chip_GPIO_SetPinState(LPC_GPIO, 0, 29, 1);
  13.          
  14.          Chip_GPIO_SetPinDIRInput(LPC_GPIO, 0, 24);              //设定PIO0的第24个脚为输入

  15.         while (1) {
 楼主| quray1985 发表于 2015-12-24 20:32 | 显示全部楼层
  1. if(Chip_GPIO_ReadPortBit(LPC_GPIO, 0, 24))          //读按键是否按下
  2.              i = i;
  3.                 else
  4.                         {
  5.                         if(i == 2)
  6.                                  i = 0 ;
  7.                         else
  8.                            i = i+1;
  9.             while(Chip_GPIO_ReadPortBit(LPC_GPIO, 0, 24)==0);           //按键释放检测
  10.                   }      
  11.                 switch(i)                                                                             //依次点亮3个LED
  12.                 {
  13.                   case 0 :
  14.                   Chip_GPIO_SetPinState(LPC_GPIO, 0, 31, 0);
  15.                   Chip_GPIO_SetPinState(LPC_GPIO, 0, 30, 1);
  16.                         Chip_GPIO_SetPinState(LPC_GPIO, 0, 29, 1);
  17.                         break;
  18.                        
  19.                         case 1 :
  20.                   Chip_GPIO_SetPinState(LPC_GPIO, 0, 30, 0);
  21.                         Chip_GPIO_SetPinState(LPC_GPIO, 0, 31, 1);
  22.                         Chip_GPIO_SetPinState(LPC_GPIO, 0, 29, 1);
  23.                         break;
 楼主| quray1985 发表于 2015-12-24 20:34 | 显示全部楼层
  1. case 2 :
  2.                   Chip_GPIO_SetPinState(LPC_GPIO, 0, 29, 0);
  3.                         Chip_GPIO_SetPinState(LPC_GPIO, 0, 31, 1);
  4.                           Chip_GPIO_SetPinState(LPC_GPIO, 0, 30, 1);
  5.                         break;
  6.                 }

  7.         }
  8.          
  9. }
 楼主| quray1985 发表于 2015-12-24 20:34 | 显示全部楼层
  代码只做简单分析。
         然后简略介绍一下lib_chip_lpc5410x的工程
         
        主要为芯片的各种驱动其中最重要的为chip.h类比于stm32f10x.h有兴趣的网友可以参照芯片手册的寄存器定义看一下这个文件
        
        然后需要操作那些外设在看相关外设的驱动文件。驱动文件目录如下
           
        这个实验主要用到的函数都在GPIO那个驱动文件中,有兴趣的网友可以自己看一下。时间不早了就写到这吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

1488

帖子

5

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