MG82F6D16 GPIO MODE
1. 프로그램 개요
P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다.
부팅 시 LED가 모두 ON 되어 있다가 1초가 지난 뒤에 모두 OFF 된다. 그 뒤 G0èG1èRèG0…의 순으로 200ms마다 순차적으로 LED가 켜진다.
2. 회로도
/* LED 부분 회로도 추가 */
3. Code
⑴ main routine
void main() | Main routine 시작 |
{ | |
InitSystem(); | 시스템 초기화루틴 |
LED_G_0=0;LED_G_1=0;LED_R=0; | LED를 모두 ON 시킴 |
DelayXms(1000); | 1초 딜레이 |
LED_G_0=1;LED_G_1=1;LED_R=1; | LED를 모두 OFF 시킴 |
while(1) | 무한루프, 시스템 동작 |
{ | |
LED_G_0=0; | Green 0 LED ON |
DelayXms(200); | 200ms 딜레이 |
LED_G_0=1; | Green 0 LED OFF |
LED_G_1=0; | Green 1 LED ON |
DelayXms(200); | 200ms 딜레이 |
LED_G_1=1; | Green 1 LED OFF |
LED_R=0; | Red LED ON |
DelayXms(200); | 200ms 딜레이 |
LED_R=1; | Red LED OFF |
} | |
} | |
⑵ 시스템 초기화 루틴
void InitSystem(void) { InitPort(); } |
시스템 초기화 루틴 포트 초기화루틴 |
⑶ 포트 초기화 루틴 회로도를 보면서 각 입출력 핀의 속성을 지정한다.
"(EN)MG82F6D16_Datasheet_V051.PDF의 “제 13절 Configurable I/O Ports”를 참조한다.
P10, P11 : 아날로그 입력으로 설정한다.
P15는 Open Drain type으로 설정하고 Pull-Up을 설정해 준다.
P16은 Open Drain type으로 설정한다.
P17은 Push-Pull type으로 설정한다.
P22, P24, P26은 Push-Pull type으로 설정한다.(LED연결)
P20, P31, P33, P34, P35는 Quasi-Bidirectional type으로 설정한다.
P61은 Open-Drain typ으로 설정한다.
*** 아래 함수에 사용된 매크로함수는 “API_Macro_MG82FG6D16.H”에서 찾아볼 수 있다.
\Megawin 8051\(EN)MG82F6D16_SampleCode_v1.20\MG82F6D16_GPIO_Mode\code\include
void InitPort(void)
{
PORT_SetP1AInputOnly(BIT0|BIT1); // Set P10,P11 as Analog-Input-Only
==>P10, P11을 아날로그 입력으로설정
PORT_SetP1OpenDrainPu(BIT5); // Set P15 as Open-Drain with Pull-High
==> P15를 Pull-Up이 연결된 Open-Drain 핀으로 설정
PORT_SetP1OpenDrain(BIT6); // Set P16 as Open-Drain
==>P16은 Open-Drain 핀으로 설정
PORT_SetP1PushPull(BIT7); // Set P17 as Push-Pull,
==> P17은 Push-Pull type으로 설정
PORT_SetP2PushPull(BIT2|BIT4|BIT6); // Set P22,P24,P26 as Push-Pull,
==>P22, 24, 26은 Push-Pull type으로 설정
PORT_SetP3QuasiBi(BIT0|BIT1|BIT3|BIT4|BIT5); // Set P30,P31,P33,P34,P35 as Quasi-Bidirectional
==>P30, 31, 33, 34, 35는 양방향 핀으로 설정
PORT_SetP6OpenDrain(BIT0|BIT1); // Set P60,P61 as Open-Drain
==>P61은 Open-Drain 핀으로 설정
}
4. 프로그램 실행
*** Keil compiler가 인스톨되어 있어야함 ***
해당 Example 폴더를 찾아가 KeilPrj폴더를 Open 한다.
\Megawin 8051\(EN)MG82F6D16_SampleCode_v1.20\MG82F6D16_GPIO_Mode\KeilPrj
해당 폴더의 Keil project 파일을 더블클릭하여 실행시킨다.(MG82F6D16_DEMO.uvproj)
Rebuild 아이콘을 클릭하여 프로젝트를 컴파일 한다.
Demo Board에 USB Connector를 연결하여 전원을 인가하고, 전원 스위치를 ON시키고, OCD ICE를 연결한 상태에서 위 이미지의 Start/Stop Debug Session(Ctrl+F5) 버튼을 눌러 컴파일된 프로젝트의 디버그 데이터를 다운로드 시킨다.(컴파일 시 에러가 발생하지 않아야함)
다운로드 후 Run(F5) 버튼을 클릭하면 프로그램이 동작한다.
5. 동작 영상