프로그램/마이컴

포트 제어 (LED 켜기/끄기) 방법

더월드 2020. 3. 12.

마이컴에서 포트을 제어하는 방법은 여러가지가 있지만,

본인이 사용하기 편하고 알아보기 쉬운 방법을 사용하면됩니다.

 

예전에는 최대한 딜레이가 적게 발생하는 방법을 써왔지만(ex. PORTB|=0x08),

지금은 MPU의 속도가 빠르기 때문에 어떠한 방법을 사용해도 됩니다.

1. 포트 제어 방법(1)

 : 제가 주로 사용하는 방법으로 PORTA에 속한 3번핀을 ON/OFF하는 코드입니다.

※ 물론 사용하는 마이컴의 해더파일에 포트 핀별 정의가 되어 있어야 합니다.

 

ex).

 ○ 8051 계열에서는 아래 처럼 헤더 파일(reg51.h) 또는 소스에 정의 되어 있어야 합니다.

   sfr P1 = 0x90; // PORT 1 SFR

   sbit P1_1 = 0x91; // Port 1.1 SFR bit

 

 ○ AVR 계열

  sfrb PORTB=0x18;

 

※ PORTB/PORTB.3  는 사용하는 마이컴, 컴파일러에 따라 P1/P1_3 등으로 변경될 수 있음.

 

#define LED PORTB.3

LED =1;    //PORTB.3=1

LED =0;    //PORTB.3=0

 

2. 포트 제어 방법(2)

PORTB =  0b00001000;

PORTB =  0b00000000;

 

3. 포트 제어 방법(3)

#define LED_PIN PB3

//PORTA.3=1

PORTB |= (1 << LED_PIN);

//PORTA.3=0

PORTB &= ~(1 << LED_PIN);

 

4. 포트 제어 방법(4)

//PORTB.3 = 1;

PORTB |= 0x08; // DATA high

//PORTB.3 = 0;

PORTB &= ~0x08; // DATA low

 

5. 포트 제어 방법(5)

//PORTB.3 = 1;

PORTB |= (1 << PB3);

//PORTB.3 = 0;

PORTB &= ~(1 << PB3);

 

6. 포트 제어 방법(6)

LED_ON()

{

    PORTB = PORTB & ~(0x08); // PORTB.3을 '0'로 clear

}

 

LED_OFF()

{

    PORTB = PORTB | 0x08;   //  PORTB.3을 '1'로 set

}

 

LED_ON();

LED_OFF();

 

7. 포트 제어 방법(7)

void digitalWrite(char pin, char value)

{

    pin = value;

}

 

digitalWrite(PB3, HIGH);

digitalWrite(PB3, LOW);

 

'프로그램 > 마이컴' 카테고리의 다른 글

AVR 퓨즈비트 (Fuse bits) 설정  (0) 2022.03.11
코드비젼 AVR (Codevision AVR) 자료형  (0) 2021.10.03
PIC18F4520 EEPROM  (0) 2020.03.04
PIC18F4520 Timer.  (0) 2020.03.04
8051 모든 인터럽트  (0) 2020.03.04

댓글

💲 추천 글