목차
1. 실험목표
2. 관련이론
3. 데이터시트
4. 실험
5. 실험결과
6. 오차 및 분석
2. 관련이론
3. 데이터시트
4. 실험
5. 실험결과
6. 오차 및 분석
본문내용
식이다.
⑤ 이식성 및 호환성이 높고 디버깅이 쉽다.
⑥ 간결하고 일관된 데이터처리를 한다.
- C언어의 기본 구조
- 함수란 특정기능을 수행하는 소규모 단위 프로그램 모듈을 의미한다.
- 프로그램을 모듈화하면 프로그램 관리가 쉽고, 유지보수가 매우 용이해진다.
- 프로그램은 main()함수에 기술된 명령들이 순차적으로 수행한다.
- 소스프로그램의 선두에는 선언문 및 초기화 명령들로 이루어져 있으며 몸체는 main() 함수와 필요에 따라 사용자가 만든 사용자 정의함수들로 구성된다.
※ 비트 연산자
| : OR(+) 연산자
& : AND(*) 연산자
<<,>> : Shift 연산자
^ : XOR 연산자
~ : NOT 연산자
- 제어문이란?
- 조건을 따져서 프로그램의 흐름을 제어하는 것을 말한다.
- 컴퓨터 프로그램은 제어문에 의해 바로 처리되어 출력되므로 거의 대다수의 작업이 제어문으로 이루어진다고 할 수 있다.
- 제어문의 종류
반복 제어문
- for문 : 지정한 횟수만큼 반복
- while문 : 조건이 참일 동안 반복
- do-while문 : 조건이 참일 동안 반복
조건에 따른 흐름 제어문
- if문 : 조건이 참일 때 처리
- if-else문 : 참일 때와 거짓일 때 각기 다른 처리
- switch-case문 : 여러 개의 조건 중 맞는 것만 수행
비 조건 흐름 제어문
- break문 : 반복 루프의 강제 종료
- continue문 : 루프를 다시 실행한다.
- return문 : 호출한 함수로 제어를 넘겨준다.
- goto문 : 라벨이 표시된 곳으로 무조건 분기
코드비전 C 컴파일러
- CodeVisionAVR의 특징
① Atmel AVR용 통합 환경 C 컴파일러. 통합 환경 내에 여러 가지 ISP 기능 포함.
② 통합 환경 내에 비동기 통신 터미널 기능 내장.
③ 표준 라이브러리 외에 여러 가지 주변 소자 라이브러리 포함
④ 생성된 COFF 파일은 AVR Studio를 사용하여 소스 레벨 디버깅 가능.
⑤ 자동 소스 생성 기능 내장
3. LED 점등 제어
※ ATmega128에는 6개의 양방향성 병렬 I/0 포트(PORTA, PORTB, PORTC, PORTD, PORTE, PORTF)와 1개의 5비트 양방향성 병렬 I/O 포트로 구성되어 있다.
PORTn : 포트 출력에 사용. 포트가 출력으로 설정되어 있으면 이 레지스터에 write하면 포트 PIN으로 출력된다.
DDRn : 포트 입출력 방향 설정. 해당 비트에 “1”은 출력으로, “0”은 입력으로 설정된다.
PINn : 포트 입력에 사용. 포트가 입력으로 설정되면 포트 PIN에 걸린 논리값을 읽는다.
소스프로그램 예시
① DDRA = 0xff;
② PORTA = 0x00;
③ Unsigned char var;
④ var = 0x95;
⑤ PORTA = var;
- ①행에 의해 포트A가 8비트 모두 출력으로 설정된다.
- ②행에 의해 초기 출력값이 논리 “0”를 출력한다.
- ③행에 의해 8비트 변수 “var\"이 만들어진다.
단순한 8비트 코드를 다룰 때는 주로 “unsigned char\" 형으로 선언한다.
- ④행에 의해 상수 0x95가 변수 var에 저장된다.
- ⑤행에 의해 포트A로 변수 var에 저장된 값이 출력된다.
즉 0x95는 2진수로 “10010101” 이 포트로 출력되어 회로에서 논리 “1” 은 5V가 인가되므로 LED로 전류가 흘러 켜지게 된다.
4. I/0 PORT
I/O PORT in ATmega128
- 6개의 8비트 양방향 병렬 I/O 포트 (PORT A ~ F)
- 1개의 5비트 양방향 병렬 I/O 포트 (PORT G)
- 총 53개의 I/O PORT
- 최대 구동전류 모두 40mA로 동일
I/O PORT Equivalent Circuit : Clamp 회로
- 입력전압이 vcc +0.7V 보다 높으면 위에 있는 다이오드를 통해 VCC로 전류가 흐르게 되고 -0.7V 보다 낮은 전압이 입력되면 아래에 있는 다이오드로 전류가 흐르게 되어 결과적으로 -0.7V ~ VCC +0.7V 사이로 전압이 제한되는 것이다.
5. 실습
6. 실습 결과
실습예제#1 LED Toggle 점등 코드
실습예제#1 LED Toggle 점등 결과 (캡쳐)
실습예제#2 LED Shift 점등 코드
실습예제#2 LED Toggle 점등 결과 (캡쳐)
실습예제#3 임의 코드 만들기 ( LED 2개씩 점등 )
실습예제#3 LED Toggle 점등 결과 (동영상, 캡쳐)
⑤ 이식성 및 호환성이 높고 디버깅이 쉽다.
⑥ 간결하고 일관된 데이터처리를 한다.
- C언어의 기본 구조
- 함수란 특정기능을 수행하는 소규모 단위 프로그램 모듈을 의미한다.
- 프로그램을 모듈화하면 프로그램 관리가 쉽고, 유지보수가 매우 용이해진다.
- 프로그램은 main()함수에 기술된 명령들이 순차적으로 수행한다.
- 소스프로그램의 선두에는 선언문 및 초기화 명령들로 이루어져 있으며 몸체는 main() 함수와 필요에 따라 사용자가 만든 사용자 정의함수들로 구성된다.
※ 비트 연산자
| : OR(+) 연산자
& : AND(*) 연산자
<<,>> : Shift 연산자
^ : XOR 연산자
~ : NOT 연산자
- 제어문이란?
- 조건을 따져서 프로그램의 흐름을 제어하는 것을 말한다.
- 컴퓨터 프로그램은 제어문에 의해 바로 처리되어 출력되므로 거의 대다수의 작업이 제어문으로 이루어진다고 할 수 있다.
- 제어문의 종류
반복 제어문
- for문 : 지정한 횟수만큼 반복
- while문 : 조건이 참일 동안 반복
- do-while문 : 조건이 참일 동안 반복
조건에 따른 흐름 제어문
- if문 : 조건이 참일 때 처리
- if-else문 : 참일 때와 거짓일 때 각기 다른 처리
- switch-case문 : 여러 개의 조건 중 맞는 것만 수행
비 조건 흐름 제어문
- break문 : 반복 루프의 강제 종료
- continue문 : 루프를 다시 실행한다.
- return문 : 호출한 함수로 제어를 넘겨준다.
- goto문 : 라벨이 표시된 곳으로 무조건 분기
코드비전 C 컴파일러
- CodeVisionAVR의 특징
① Atmel AVR용 통합 환경 C 컴파일러. 통합 환경 내에 여러 가지 ISP 기능 포함.
② 통합 환경 내에 비동기 통신 터미널 기능 내장.
③ 표준 라이브러리 외에 여러 가지 주변 소자 라이브러리 포함
④ 생성된 COFF 파일은 AVR Studio를 사용하여 소스 레벨 디버깅 가능.
⑤ 자동 소스 생성 기능 내장
3. LED 점등 제어
※ ATmega128에는 6개의 양방향성 병렬 I/0 포트(PORTA, PORTB, PORTC, PORTD, PORTE, PORTF)와 1개의 5비트 양방향성 병렬 I/O 포트로 구성되어 있다.
PORTn : 포트 출력에 사용. 포트가 출력으로 설정되어 있으면 이 레지스터에 write하면 포트 PIN으로 출력된다.
DDRn : 포트 입출력 방향 설정. 해당 비트에 “1”은 출력으로, “0”은 입력으로 설정된다.
PINn : 포트 입력에 사용. 포트가 입력으로 설정되면 포트 PIN에 걸린 논리값을 읽는다.
소스프로그램 예시
① DDRA = 0xff;
② PORTA = 0x00;
③ Unsigned char var;
④ var = 0x95;
⑤ PORTA = var;
- ①행에 의해 포트A가 8비트 모두 출력으로 설정된다.
- ②행에 의해 초기 출력값이 논리 “0”를 출력한다.
- ③행에 의해 8비트 변수 “var\"이 만들어진다.
단순한 8비트 코드를 다룰 때는 주로 “unsigned char\" 형으로 선언한다.
- ④행에 의해 상수 0x95가 변수 var에 저장된다.
- ⑤행에 의해 포트A로 변수 var에 저장된 값이 출력된다.
즉 0x95는 2진수로 “10010101” 이 포트로 출력되어 회로에서 논리 “1” 은 5V가 인가되므로 LED로 전류가 흘러 켜지게 된다.
4. I/0 PORT
I/O PORT in ATmega128
- 6개의 8비트 양방향 병렬 I/O 포트 (PORT A ~ F)
- 1개의 5비트 양방향 병렬 I/O 포트 (PORT G)
- 총 53개의 I/O PORT
- 최대 구동전류 모두 40mA로 동일
I/O PORT Equivalent Circuit : Clamp 회로
- 입력전압이 vcc +0.7V 보다 높으면 위에 있는 다이오드를 통해 VCC로 전류가 흐르게 되고 -0.7V 보다 낮은 전압이 입력되면 아래에 있는 다이오드로 전류가 흐르게 되어 결과적으로 -0.7V ~ VCC +0.7V 사이로 전압이 제한되는 것이다.
5. 실습
6. 실습 결과
실습예제#1 LED Toggle 점등 코드
실습예제#1 LED Toggle 점등 결과 (캡쳐)
실습예제#2 LED Shift 점등 코드
실습예제#2 LED Toggle 점등 결과 (캡쳐)
실습예제#3 임의 코드 만들기 ( LED 2개씩 점등 )
실습예제#3 LED Toggle 점등 결과 (동영상, 캡쳐)
소개글