实验原理
ARM的P0.1口接按钮,再通过P0.0控制LED的亮、灭。本实验的电路图以及实验均在上一个实验基础之上修改。其中电路图只多了一个开关。
Proteus仿真电路图
image.png
C语言源程序
/******************************************************************************/
  • /*                                                                            */
  • /*           led.c:  用ARM实现开关控制led并亮灭,还是有点浪费……                */
  • /*                                                                            */
  • /******************************************************************************/
  • #include <LPC21xx.H>
  • #define P0_1 0x02;                                                                     /*P0.1*/                        
  • /*******************************************************************************
  • **函数名: delay()
  • **描述: 软件延时
  • ********************************************************************************/
  • void delay (void)  {                        
  •   unsigned volatile long i;
  •   for(i=0;i<10000;i++)
  •   ;
  • }
  • int main(void) {
  •   int p01State;
  •   PINSEL0 = 0;              /*设置引脚为GPIO */
  •   IO0DIR = 0x000001;              /*将P0.0设置为输出 */
  •   IO0SET = 0x000001;              /*将P0.0置1,也就是让led灭 */
  •   while (1)  {
  •     p01State = IO0PIN&P0_1;              /*读取开关状态*/
  •               if(p01State == 0){
  •                             IO0CLR = 0x000001;
  •                             delay();
  •               }
  •                 else{
  •                             IO0SET = 0x000001;
  •                             delay();
  •               }               
  •   }
  • }
  • 复制代码