마이컴에서 포트을 제어하는 방법은 여러가지가 있지만,
본인이 사용하기 편하고 알아보기 쉬운 방법을 사용하면됩니다.
예전에는 최대한 딜레이가 적게 발생하는 방법을 써왔지만(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 |
댓글