#include <mega128.h> // 머크로티에서 Mega128을 위한 헤더 파일을 가져옵니다.
#define LED_CON *((unsigned char *)0x8000) // LED_CONTROL을 위한 메모리 주소를 정의합니다.
void main(void) { // 메인 함수 시작
DDRB = 0x00; // PORTB를 입력으로 설정 (0x00은 모든 핀을 입력으로 설정합니다).
MCUCR = 0X80; // 외부 메모리 및 I/O 제어를 활성화합니다.
// 외부 I/O 디바이스 초기화
LED_CON = 0X00; // LED GLCD 제어 버스를 초기화합니다.
while(1) { // 무한 루프 시작
static unsigned char Switch_Button = 0; // 스위치 버튼 값을 저장하기 위한 변수를 정의합니다.
Switch_Button = PINB; // B 포트에서 읽어온 값을 Switch_Button에 저장합니다.
switch(Switch_Button) { // Switch_Button 값에 따라 분기합니다.
case 0xfe: LED_CON = 0x01; break; // 스위치 값이 0xFE이면 LED_CON을 0x01로 설정합니다.
case 0xfd: LED_CON = 0x02; break; // 스위치 값이 0xFD이면 LED_CON을 0x02로 설정합니다.
case 0xfb: LED_CON = 0x04; break; // 스위치 값이 0xFB이면 LED_CON을 0x04로 설정합니다.
case 0xf7: LED_CON = 0x08; break; // 스위치 값이 0xF7이면 LED_CON을 0x08로 설정합니다.
case 0xef: LED_CON = 0x10; break; // 스위치 값이 0xEF이면 LED_CON을 0x10로 설정합니다.
case 0xdf: LED_CON = 0x20; break; // 스위치 값이 0xDF이면 LED_CON을 0x20로 설정합니다.
case 0xbf: LED_CON = 0x40; break; // 스위치 값이 0xBF이면 LED_CON을 0x40로 설정합니다.
case 0x7f: LED_CON = 0x80; break; // 스위치 값이 0x7F이면 LED_CON을 0x80로 설정합니다.
default: LED_CON = 0X00; break; // 그 외의 경우, LED_CON을 0x00으로 설정합니다.
}
}
}
728x90
'C, C++ > 임베디드 시스템' 카테고리의 다른 글
임베디드시스템 포토센서를 활용한 외부 인터럽트 제어 (0) | 2023.11.18 |
---|---|
임베디드시스템 스위치 버튼을 통한 LED 응용 (2) | 2023.11.09 |
임베디드시스템 간단한 택시미터기 (0) | 2023.11.08 |
임베디드시스템 FND 숫자 증가 제어 (1) | 2023.11.08 |
임베디드 시스템 LED 쉬프트 출력 (0) | 2023.11.08 |