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