led.c

来自「8051试验程序 基础教材」· C语言 代码 · 共 71 行

C
71
字号

#define DEBUG_METHOD_BLINK

#include "ioP89LPC935.h"
#include "led.h"

/* setup port for leds */
void led_init()
{
  P1M1_bit._P1M16_ = 0;
  P1M2_bit._P1M26_ = 1;

  P2M1_bit._P2M11_ = 0;
  P2M2_bit._P2M21_ = 1;

  P2M1_bit._P2M16_ = 0;
  P2M2_bit._P2M26_ = 1;

  P2M1_bit._P2M17_ = 0;
  P2M2_bit._P2M27_ = 1;
}

void delay( unsigned char x )
{
  for( int i=0; i<(x*1000); ++i );
}

void led_blink( unsigned char led, unsigned char times, unsigned char freq )
{
  while( times-- )
  {
    led_on( led );

    delay( freq );

    led_off( led );

    delay( freq );
  }
}

void led_on ( unsigned char led )
{
  if( led == 1 )
    P1 &= 0xBF;

  if( led == 2 )
    P2 &= 0xFD;

  if( led == 3 )
    P2 &= 0xBF;

  if( led == 4 )
    P2 &= 0x7F;
}

void led_off( unsigned char led )
{
  if( led == 1 )
    P1 |= 0x40;

  if( led == 2 )
    P2 |= 0x02;

  if( led == 3 )
    P2 |= 0x40;

  if( led == 4 )
    P2 |= 0x80;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?