Transcript 마이크로프로세서2.
컴퓨터프로그래밍응용
LED 제어
신호 및 시스템 연구실
목차
LOGO
프로그램 소개 및 프로그램 다운
프로그램 세팅
LED 제어
예제
2/27
Atmel Studio 6
LOGO
Atmel Studio 6
ATMEL사에서 제공하는 무료 통합개발환경
프로세서를 작동하기 위한 소스 작성 및 컴파일, 디버
그 기능을 가진 프로그램
• 컴파일
– 고급언어로 작성된 프로그램을 기계어로 번역하는 작업
• 디버그
– 프로그램의 오류를 찾아 수정하는 작업
3/27
프로그램 다운1
LOGO
Atmel Studio 6
http://atmel.com 에서 다운 가능
Click
4/27
프로그램 다운2
LOGO
Atmel Studio 6
http://atmel.com 에서 다운 가능
Click
5/27
프로그램 사용 순서
LOGO
1. 프로젝트 생성
통합 개발 환경을 위한 프로젝트 생성
2. 코드 입력
프로그램 코딩
3. 컴파일
작성한 코드를 hex파일로 생성
4. 디버깅
컴파일된 hex파일을 프로세서에 다운로드
6/27
LOGO
프로젝트 생성1
Click
7/27
LOGO
프로젝트 생성2
Click
8/27
LOGO
프로젝트 생성3
컨
Click
9/27
프로젝트 생성4
LOGO
10/27
컴파일
LOGO
11/27
디바이스 셋팅1
LOGO
12/27
디바이스 셋팅2
LOGO
13/27
디바이스 셋팅3
LOGO
14/27
디버깅
LOGO
15/27
입출력관련 레지스터
LOGO
DDRx
데이터 방향 설정 레지스터
예
• DDRA, DDRB, DDRC …
• DDRA = 0xf0; 또는 0b11110000; // 포트 A의 상위 비트는 출
력, 하위비트는 입력으로 설정
PORTx
데이터 출력
예
• PORTA, PORTB, PORTC ….
• PORTA = 0xf0; // PORTA에 0xf0(0b11110000)을 출력
16/27
LOGO
회로도
330
-
+
DDRD = 0xff;
PORTD=0x01;
GND
PD0 = 1(5V)
PD1 = 0
PD2 = 0
PD3 = 0
PD4 = 0
PD5 = 0
PD6 = 0
PD7 = 0
17/27
LOGO
LED 제어
18
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
Hex 값
0
0
0
0
0
0
0
1
0x01
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
Hex 값
0
0
1
0
0
0
0
0
0x20
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
Hex 값
0
0
1
0
1
0
0
0
0x28
18/27
LOGO
LED 제어
…
19
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
Hex 값
1
1
1
1
1
1
1
0
0xfe
1
1
1
1
1
1
0
1
0xfd
…
…
…
…
…
…
…
…
…
0
1
1
1
1
1
1
1
0x7f
19/27
LOGO
LED 제어
쉬프트 연산자
8비트 혹은 그 이상의 군을 좌/우로 이동시키는 연산자
기호로 “<<“ 또는 “>>”를 사용하고 빈 곳은 0으로 채
워 진다.
20
상태
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
Hex 값
1
0
0
0
0
0
0
0
1
0x01
2
0
0
0
0
0
0
1
0
0x02
…
…
…
…
…
…
…
…
…
…
8
1
0
0
0
0
0
0
0
0x80
9
0
0
0
0
0
0
0
0
0x00
10
0
0
0
0
0
0
0
0
0x00
20/27
LOGO
LED 제어 방법
LED의 점멸 프로그램
0.5초
0.5초
21/27
LED 제어 방법
LOGO
LED의 점멸 프로그램
22/27
LED 제어 방법
LOGO
LED의 점멸 프로그램
• avr/io.h : 프로세서를 제어하기 위한
기본 헤더파일
• util/delay.h : 시간 지연을 위한 함수가
내장
• define F_CPU : 시간 지연을 위한
클럭 설정
• _delay_ms(x) : x(숫자)만큼 ms가
지연
23/27
LOGO
LED 제어 예제1
과제- 다음그림과 같이 LED를 점등하는 프로그
램을 제작하시오
0.5초
0.5초
0.5초
0.5초
24
24/27
LED 제어 예제2
LOGO
과제- 다음그림과 같이 LED를 점등하는 프로그
램을 제작하시오
…
…
25
25/27
LOGO
LED 밝기 제어
LED 밝기 제어
5V
0V
15ms
15ms
LED에 전압을 5V 15ms, 0V 15ms를 걸어주면, 평균적
으로 2.5V가 걸리게 됨.
26/27
LOGO
LED 밝기 제어2
LED 밝기 제어
5V
0V
5ms
25ms
LED에 전압을 5V 5ms, 0V 25ms를 걸어주면, 평균적
으로 0.83V가 걸리게 됨.
LED는 전압이 평균 2.5V가 걸렸을 때 보다 0.83V가 걸
렸을 때 밝기는 약해짐.
27/27
LED 제어 예제3
LOGO
LED가 가장 밝은 밝기에서 점점 어두워 지는 프
로그램을 작성하시오. 단, 꺼질때 까지의 시간은
1초이고 그 작업을 무한히 반복한다.
28/27