실험4) GPIO 입출력 제어 실습 1, 2
- 최초 등록일
- 2015.11.12
- 최종 저작일
- 2015.05
- 7페이지/ 한컴오피스
- 가격 1,500원
목차
1. GPIO로 LED켜기
1) 실습개요
2) 실습 목표
3) LED
4) 사전지식
5) 소스코드 분석
6) 시간지연 방법
2. 스위치 눌러 LED 불켜기
1) 실습개요
2) 실습 목표
3) 사전지식
4) 소스코드 분석
5) 사용모듈
3. GPIO로 FND LED켜기
1) 실습개요
2) 실습 목표
3) FND구조
4) 사전지식
5) 소스코드 분석
6) 사용모듈
참고문헌
본문내용
1) 실습개요
- ATMega128 마이크로컨트롤러의 GPIO를 이용하여 LED를 켜는 가장 단순한 실습
- 입출력 포트를 출력으로 설정하고, 그 포트를 이용하여 LED에 신호를 보내 점등
- 프로그램이 시작하면 1초마다 LED에 불이 점등
2) 실습 목표
- GPIO 입출력 포트의 방향 제어 및 출력 제어 방법 습득
- LED 동작 원리 습득
<중 략>
ATmega128의 I/O에 연관된 내용 정의한다.
여러 함수들을 모아둔 헤더파일을 불러온다.
정수형으로 값을 반환하는 main 함수 호출
I라는 문자를 선언
부호가 없는 정수로서 LED_Data 선언
포트 E를 출력 포트로 사용
계속 반복하기 위한 무한루프 생성
포트E를 LED_Data로 둠
LED_Data를 하나씩 늘림
I가 0부터 99까지 올라가는 동안 동작
<중 략>
1) 실습개요
- 단순 출력이 아니고, GPIO 포트를 통해 신호를 입력하여 그 신호에 따라 LED의 불을 켜는 실습
- 스위치 모듈의 스위치를 누르면 해당되는 LED 모듈의 LED가 점등되도록 함
- 입출력 포트를 스위치 쪽은 입력으로 LED 쪽은 출력으로 설점하도록 함
2) 실습 목표
- GPIO 입출력 포트의 방향 제어 및 입력 제어 방법 습득
- 스위치 동작원리 습득
<중 략>
#include<avr/io.h>
#include<util/delay.h>
int main(){
unsigned char FND_DATA_TBL [] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C,
0x07, 0x7F, 0x67, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x08, 0x80};
unsigned char cnt=0, i;
DDRD = 0xFF;
while(1){
PORTD = FND_DATA_TBL[cnt];
cnt++;
if (cnt>17) cnt=0;
for(i=0; i<50; i++)
_delay_ms(10);
참고 자료
홍익대학교 편, 『마이크로 컨트롤러』, pp45-69.
네이버 블로그, 검색어|발광다이오드,
http://blog.naver.com/kkhpys/130096159816
네이버 지식iN, 검색어|마이크로프로세서와 마이크로컨트롤러의 차이점,
http://kin.naver.com/qna/detail.nhn?d1id=11&dirId=1118&docId=205809319&qb=66eI7J207YGs66GcIO2UhOuhnOyEuOyEnOyZgCDrp4jsnbTtgazroZwg7Luo7Yq466Gk65+s&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=StSmU35Y7uVsscFLcPNssssssu4-421951&sid=VBVgn3JvLCkAADERJWk
네이버 지식백과, 검색어|마이크로프로세서,
http://terms.naver.com/entry.nhn?docId=1090888&cid=40942&categoryId=32834