Microsoft PowerPoint - 제3장 GPIO 입출력 제어 (HBE-MCU-Multi AVR)

Similar documents
목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

슬라이드 1

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

lecture4(6.범용IO).hwp

ATmega128

HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR 편 ) 마이크로컨트롤러기능 제 6 장타이머와카운터

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

CAN-fly Quick Manual

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

Microsoft Word - logic2005.doc

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR

가. 도트매트릭스제어하기 단일 LED와는다르게도트매트릭스를구동시는구동전류가프로세서에서출력되는전류보다사용량을더많이필요하기때문에 TTL 계열의 IC로구동시키기에는무리가따른다. 이러한문제를해결하기위해서사용전압, 전류정격이높은달링턴트랜지스터가어레이형태로들어있는 ULN2803을

Microsoft Word - PLC제어응용-2차시.doc

JMOD : ATmega128 기본모듈 사용자설명서 제이씨넷

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

2009년2학기 임베디드시스템 응용

PowerPoint 프레젠테이션

정보보안 개론과 실습:네트워크

BY-FDP-4-70.hwp

PowerPoint 프레젠테이션

100_ATmega128_보드제작.hwp

<4A4B49542D D312DBBE7BFEBC0DABCB3B8EDBCAD2E646F63>

CHAPTER 2 마이크로컨트롤러구조이해하기 가. ATmega128 기능 나. CRX10 구조

I/O (GPIO) 제어 I/0 제어 ATmega128의 I/O 구성및특징 I/O PORT 구성 8비트 / 양방향 / 범용 / 병렬 I/O포트 (PORT A ~PORT F) 6개 5비트 / 양방향 / 범용 / 병렬 I/O포트 (PORT G) 1개 I/O PORT 특징

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2

PowerPoint 프레젠테이션

목차 1. A/D 컨버터개요 2. ATMega128 의 A/D 컨버터기능 3. A/D 컨버터로광센서읽기

PowerPoint 프레젠테이션

KEY 디바이스 드라이버

UART Controller 구현

PowerPoint 프레젠테이션

Microsoft Word - PEB08_USER_GUIDE.doc

[8051] 강의자료.PDF

T100MD+

목차 1. ATMega128의외부메모리인터페이스 2. TEXT LCD 3. TEXT LCD에글자쓰기 4. SRAM 5. 외부메모리인터페이스에 SRAM붙이기

API 매뉴얼

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

API 매뉴얼

<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074>

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

2주차: 입출력 제어 복습

<BDC7C7E83120B0E1B0FABAB8B0EDBCAD202832C1D6C2F7292E687770>

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

목차 1. UART와 RS232 개요 2. ATMega128의 USART 포트 3. UART로 Hello 보내기 4. UART로 PC와데이터주고받기

Microsoft PowerPoint - [2009] 02.pptx

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

Microsoft Word doc

SAT8-10.hwp

Section 03 트랜지스터를이용한스위칭동작 16/45 트랜지스터의직류특성 활성 직류상황에서전류 I C 는전류 I B 보다 h FE 배만큼더많은전류가흐름» 베이스와이미터가순방향으로바이어스» 컬렉터와베이스가역방향으로바이어스 차단 만일 I B 가 0[A] 이면컬렉터전류

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

Status S/N TITLE: Education Rev V0.1 Date 2012 /04/18 Doc LK임베디드 AVR-ATmega2560 확장형개발보드매뉴얼 LK Development Team AVR ATmega2560 확장형개발보드매뉴얼 (P/N: LK-AVR2

11 강 AVR board & download cable 2009 년도 1 학기 센서개론 Mechatronics Lab 센서개론

// 변수선언 unsigned char i; unsigned char FONT[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xD8, 0x80, 0x98}; //PORTA 를출력으로설정하고초기값은모두 0 PORTA = 0x00; DD

1. 제품소개 1.1 제품소개 < 그림 1.1> 도트매트릭스모듈 하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 16x16 도트매트릭스모듈입니다. 또한당사 AVR, PIC, ARM(STM32F) 개발보드와 1P 점퍼클립케이블을이용하여연동이가능하

Microsoft PowerPoint - Chapter 8_USART Serial Communication

PowerPoint Presentation

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - RPino-GOGO_datasheet.pptx

M16_32KIT_Manual.hwp

Microsoft PowerPoint - AVR100%(1).ppt

Microsoft PowerPoint - 제7장 타이머와 PWM (HBE-MCU-Multi AVR).ppt [호환 모드]

<BDC7C7E83520BFB9BAF1BAB8B0EDBCAD2E687770>

1. 제품사진및보드설명 그림. LK ATmega128 A2 트레이닝보드사진 제품소개 ATMEL사의 8비트프로세서인 AVR-ATmega128 MCU를이용하여학습및제품개발을핛수있는 AVR 트레이닝보드입니다. 초보자를세심하게배려하기위하여모든부품의부품이름및부품정보가트레이닝보드

슬라이드 1

AVR Atmega128

<4D F736F F F696E74202D2037C0E55FC0CCC0C0C7F55FBFCFBCBA205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Microsoft PowerPoint - polling.pptx

윈도우즈프로그래밍(1)

ez-md+_manual01

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

뉴티씨 (NEWTC) ATmega8 교육용모듈 (Model : AM-8PL ) 메뉴얼 ( 주 ) 뉴티씨 ( NEWTC ) 1. ATmega8 모듈 (AM-8PL) 소개 ATmega8 칩을

슬라이드 1

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

SRC PLUS 제어기 MANUAL

MR-3000A-MAN.hwp

Microsoft PowerPoint - ccs33_bios_PRD.ppt [호환 모드]

°ø±â¾Ð±â±â

WATAVR128_manual.hwp

CANTUS Evaluation Board Ap. Note

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 소속 : 원광대학교전기 정보통신공학부

KEY01 PIN_J3 KEY02 PIN_M6 KEY03 PIN_M4 KEY04 PIN_M3 KEY05 PIN_M2 KEY06 PIN_M5 KEY07 PIN_L7 KEY08 PIN_H1 KEY09 PIN_J2 KEY10 PIN_J1 KEY11 PIN_L6 KEY12 P

<4D F736F F F696E74202D203131C1D6C2F7202D E6FB8A620C0CCBFEBC7D120C4B3B8AFC5CD204C43442C C1A6BEEEC7CFB1E2205

1. 구성품 - TMS320F280x 소켓모듈 - 몰렉스 2 핀전원케이블 mm 간격의 2x20 핀해더 - PCB 지지대 2. 주의사항 - 입력전압 : 5V 전류눈금이나와있는파워서플라이를권장 모듈의전원이공급상태에서, 소켓이열리지않도록주의해주시고 모든정전기를배제

Microsoft PowerPoint - ch07 - 포인터 pm0415

ez-shv manual

Frama-C/JESSIS 사용법 소개

Microsoft Word - AM-2560PRO_V01 메뉴얼.doc

Transcription:

한백전자기술연구소 HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR편) 마이크로컨트롤러기능 제 3 장 GPIO 입출력제어

GPIO 입출력제어 1. HBE-MCU-Multi 구동 2. 마이크로컨트롤러와 GPIO 3. AVR 마이크로컨트롤러의입출력포트 4. GPIO 를이용하여 LED 켜기 5. GPIO를이용한스위치눌러 LED 불켜기 6. GPIO 를이용하여 FND LED 켜기

HBE-MUC-Multi Multi 구동 HBE-MCU-Multi

HBE-MUC-Multi Multi 구동 HBE-MCU-Multi 장비의모듈구성 MCU Module Zone MCU 및 CPLD Module 장착 56mm*45mm Module Zone LED, FND, Array FND, Text LCD, Sensor, Memory, Relay, DAC, Audio, UART Module 장착 56mm*60mm Module Zone OLED, Step Motor, Switch, Key Pad, Freq Measure, Interrupt Analysis Module 장착 Option Module Interface 추가로제공되는옵션모듈의연결을위한인터페이스 케이블수납함 제품에사용되는각종케이블수납

HBE-MUC-Multi Multi 구동 HBE-MCU-Multi 전원케이블연결

HBE-MUC-Multi Multi 구동 HBE-MCU-Multi 전원스위치

HBE-MUC-Multi Multi 구동 HBE-MCU-Multi ISP 프로그램케이블연결

HBE-MUC-Multi Multi 구동 AVR MCU 모듈구성 ATmega128 MCU Port 커넥터 Port 커넥터 JATG 디버거커넥터 ISP 커넥터

HBE-MUC-Multi Multi 구동 HBE-MCU-Multi 신호선연결

HBE-MUC-Multi Multi 구동 HBE-MCU-Multi 기능모듈 (LED 모듈 ) 구성 Signal 커넥터

마이크로컨트롤러와 GPIO GPIO(General Purpose Input Output) 범용으로사용되는입출력포트 : 설계자가마음대로변형하면서제어할수있도록제공해주는 I/O( 입출력 ) 포트 입력과출력을마음대로선택할수있고, 0과1의출력신호를임의로만들어줄수있는구조를가짐 입력으로사용할때는외부인터럽트를처리할수있도록하는경우가많음. 입출력방향전환용레지스터와출력용 / 입력용데이터레지스터등이필요 마이크로컨트롤러에서는대부분의핀들을 GPIO로설정하는경우가많음.

AVR 마이크로컨트롤러의입출력포트 AVR 마이크로컨트롤러입출력포트 6 개의 8 비트 I/O 포트와 1 개의 5 비트 I/O 포트로구성. 출력포트의버퍼는많은유입전류와유출전류를사용 ( 최대 40 ma) 할수있음. 모든포트핀은개별적으로내부풀업저항을사용할수있음. 모든 I/O핀은 VCC와 GND사이에다이오드를접속하여포트를보호. Read-Modify-Write기능을가지고있어, 비트단위의포트설정이가능. 각포트에대한데이터출력용레지스터 (PORTx) 와데이터입출력방향지정용레지스터 (Data Direction Register: DDRx), 그리고데이터입력용레지스터 (PINx) 를보유.

AVR 마이크로컨트롤러의입출력포트 입출력포트제어용레지스터 DDRx 레지스터 입출력의방향설정을하기위한레지스터. DDRA~DDRG레지스터의해당비트에 1을쓰면출력, 0 을쓰면입력으로설정. PORTx 레지스터 데이터를출력하기위한레지스터이다 출력을원하는데이터값을 PORTx 레지스터에넣어주면된다 PINx 레지스터 데이터입력용레지스터이다 PINx 레지스터에해당하는값을읽으면해당핀의값이읽어진다. SFIOR 레지스터 Special Function IO Register. AVR 입출력포트의특수기능을제어하기위한레지스터 SFIOR의비트2(PUD: Pull-Up Disable) 를 1 로세트하면풀업저항을비활성화시킨다

AVR 마이크로컨트롤러의입출력포트 ATMega128 의범용입출력포트 : A 포트 (PA7~PA0: 핀 44-51) 내부풀업저항이있는 8 비트양방향입출력단자 외부메모리를둘경우에는주소버스 (A7-A0) A0) 와데이터버스 (D7-D0) D0) 로사용 포트핀 부가기능 PA7 AD7( 외부메모리인터페이스주소와데이터비트 7) PA6 AD6( 외부메모리인터페이스주소와데이터비트 6) PA5 AD5( 외부메모리인터페이스주소와데이터비트 5) PA4 AD4( 외부메모리인터페이스주소와데이터비트 4) PA3 AD3( 외부메모리인터페이스주소와데이터비트 3) PA2 AD2( 외부메모리인터페이스주소와데이트비트 2) PA1 AD1( 외부메모리인터페이스주소와데이터비트 1) PA0 AD0( 외부메모리인터페이스주소와데이터비트 0)

AVR 마이크로컨트롤러의입출력포트 ATMega128 의범용입출력포트 : B 포트 (PB7~PB0: 핀 10-17) 내부풀업저항이있는 8비트양방향입출력단자타이머 / 카운터나 SPI 용단자혹은 PWM 단자로도사용 포트핀 PB7 부가기능 OC2/OC1C( 출력비교또는타이머 / 카운터2의 PWM 출력, 또는출력비교와타이머 / 카운터2의 PWM출력 C) PB6 OC1B( 출력비교또는타이머 / 카운터 1 의 PWM 출력 B) PB5 OC1A( 출력비교또는타이머 / 카운터 1 의 PWM 출력 A) PB4 OC0( 출력비교또는타이머 / 카운터 0 의 PWM 출력 ) PB3 MISO(SPI 버스마스터입력 / 종속출력 ) PB2 MOSI(SPI 버스마스터출력 / 종속입력 ) PB1 SCK(SPI 버스직렬클럭 ) PB0 /SS(SPI 종속선택입력 )

AVR 마이크로컨트롤러의입출력포트 ATMega128 의범용입출력포트 : C 포트 (PC7~PC0: 핀 35-42) 내부풀업저항이있는 8비트양방향입출력단자외부메모리를둘경우에는주소버스 (A15-A8) A8) 로사용 포트핀 부가기능 PC7 AD7( 외부메모리인터페이스주소비트 15) PC6 AD6( 외부메모리인터페이스주소비트 14) PC5 AD5( 외부메모리인터페이스주소비트 13) PC4 AD4( 외부메모리인터페이스주소비트 12) PC3 AD3( 외부메모리인터페이스주소비트 11) PC2 AD2( 외부메모리인터페이스주소비트 10) PC1 AD1( 외부메모리인터페이스주소비트 9) PC0 AD0( 외부메모리인터페이스주소비트 8)

AVR 마이크로컨트롤러의입출력포트 ATMega128 의범용입출력포트 : D 포트 (PD7~PD0: 핀 25-32) 내부풀업저항이있는 8 비트양방향입출력단자 타이머용단자혹은외부인터럽트용단자로도사용. 포트핀 부가기능 PD7 T2( 타이머 / 카운터 2 클럭입력 ) PD6 T1( 타이머 / 카운터 1 클럭입력 ) PD5 XCK1(USART1 외부클럭입 / 출력 ) PD4 IC1( 타이머 / 카운터 1 입력캡쳐트리거 ) PD3 INT3/TXD1( 외부인터럽트 3 입력또는 USART1 전송핀 ) PD2 INT2/RXD1( 외부인터럽트 2 입력또는 USART1 수신핀 ) PD1 INTI/SDA( 외부인터럽트 1 입력또는 TWI 직렬데이터 ) PD0 INT0/SCL( 외부인터럽트 0 입력또는 TWI 직렬클럭 )

AVR 마이크로컨트롤러의입출력포트 ATMega128 의범용입출력포트 : E 포트 (PE7~PE0: 핀 2-9) 내부풀업저항이있는 8 비트양방향입출력단자 타이머용단자, 외부인터럽트, 아날로그비교기, USART 용단자로도사용. 포트핀 부가기능 PE7 INT7/IC3( 외부인터럽트 7 입력또는타이머 / 카운터 3 입력캡쳐트리거 ) PE6 INT6/T3( 외부인터럽트 6 입력또는타이머 / 카운터3 클럭입력 ) PE5 INT5/OC3C( 외부인터럽트 5 입력또는타이머 / 카운터 3 의출력캡쳐와 PWM 출력 C) PE4 INT4/OC3B( 외부인터럽트 4 입력또는타이머 / 카운터3의출력캡쳐와 PWM 출력 B) PE3 AIN1/OC3A( 아날로그비교반대입력또는타이머 / 카운터3의출력비교와 PWM 출력A) PE2 AIN0/XCK0( 아날로그비교입력또는 USART0 외부클럭입 / 출력 ) PE1 PDO/TXD0( 프로그램데이터출력또는 UART0 전송핀 ) PE0 PDI/RXD0( 프로그램데이터입력또는 UART0 수신핀 )

AVR 마이크로컨트롤러의입출력포트 ATMega128 의범용입출력포트 : F 포트 (PF7~PF0: 핀 54-61) 내부풀업저항이있는 8 비트양방향입출력단자 AD 변환기혹은 JTAG 인터페이스용단자로도사용. 포트핀 PF7 PF6 PF5 PF4 부가기능 ADC7/TDI(ADC 입력채널 7 또는 JTAG Test Data Input) ADC6/TDO(ADC 입력채널 6 또는 JTAG Test Data Output) ADC5/TMS(ADC 입력채널 5 또는 JTAG Test Mode Select) ADC4/TCK(ADC 입력채널 4 또는 JTAG Test Clock) PF3 ADC3 (ADC 입력채널 3) PF2 ADC2 (ADC 입력채널 2) PF1 ADC1 (ADC 입력채널 1) PF0 ADC0 (ADC 입력채널 0)

AVR 마이크로컨트롤러의입출력포트 ATMega128의범용입출력포트 : G 포트 (PG4~PE0: 핀19, 18, 43, 34, 33) 내부풀업저항이있는 8 비트양방향입출력단자 외부메모리접속을위한스트로브신호용, RTC(Real Time Counter) 타이머용발진기단자로도사용. 포트핀 부가기능 PG4 TOSC1(RTC 오실레이터타이머 / 카운터 0) PG3 TOSC2(RTC 오실레이터타이머 / 카운터 0) PG2 ALE( 외부메모리에주소래치인에이블 ) PG1 RD( 외부메모리에스트로브읽기 ) PG0 WR( 외부메모리에스트로브쓰기 )

실습 1 GPIO 로 LED 켜기

실습 1:GPIO 로 LED 켜기 실습개요 ATmega128 마이크로컨트롤러의 GPIO를이용하여 LED를켜는가장단순한실습 입출력포트를출력으로설정하고, 그포트를이용하여 LED 에신호를보내점등 프로그램이시작하면 1초마다 LED 에불이점등. 실습목표 GPIO 입출력포트의방향제어및출력제어방법습득 LED 동작원리습득 프로그램에서시간지연방법습득

실습 1:GPIO 로 LED 켜기 LED 구조 LED(Light-emitting diode) : 빛을발산하는반도체소자 ( 발광다이오드 ) 순방향에전류를흘리는것에따라전자와정공이재결합하여발광다리가긴부분이양극 (Anode), 짧은쪽이음극 (Cathode) 심볼 패키지형상

실습 1:GPIO 로 LED 켜기 LED 구동방법 정적구동방식 : 각각의 LED 를독립해서구동 동적구동방식 : 여러개의 LED 를매트릭스구조로엮어서함께구동. 정적구동 동적구동

실습 1:GPIO 로 LED 켜기 사용모듈 MCU 모듈, LED 모듈 MCU 모듈포트 E MCU 모듈 LED 모듈 LED 모듈 Signal

실습 1:GPIO 로 LED 켜기 사용모듈의회로 (MCU 모듈 )

실습 1:GPIO 로 LED 켜기 사용모듈의회로 (LED 모듈 )

실습 1:GPIO 로 LED 켜기 모듈결선방법 AVR 모듈포트 E 의 PE0 ~PE7 <-> LED 모듈의 LED 0 ~ 7

실습 1:GPIO 로 LED 켜기 구동프로그램 : 사전지식 LED 를점등하기위해서는 LED 신호에 1 을인가해야함. 즉, MCU E포트에서 1 을출력하도록해야함. MCU E 포트에 1 을출력하려면 입출력포트 E 의 GPIO 방향을출력으로만들어야함. 입출력포트를출력으로선언하려면 DDRx 레지스터 ( 여기서는 E 포트를사용하므로 DDRE 레지스터 ) 에 1 을적어주어야함. PORTx 레지스터 ( 여기서는 PORTE 레지스터 ) 에 1 을적어주어야함.

실습 1:GPIO 로 LED 켜기 구동프로그램 : 소스분석 Led.c #include<avr/io.h> #include<util/delay.h> 1) int main(){ char i; unsigned char LED_Data = 0x00; 2) DDRE = 0xFF; // 포트 E 를 (0~7 비트까지모두 ) 출력포트로사용 3) } while(1){ PORTE = LED_Data; // 포트E를 LED_Data로두고, LED_Data를하나씩늘인다. LED_Data Data++; for(i=0;i<100;i++) _delay_ms(10); // ms단위의딜레이함수 } return 0;

실습 1:GPIO 로 LED 켜기 AVR 시스템헤더파일 헤더파일명 <avr/interrupt.h> <avr/signal.h> <avr/pgmspace.h> <avr/eeprom.h> <avr/wdt.h> 설명 ATmega128의인터럽트에관련된내용을정의 ATmega128에서발생되는신호에관련된내용을정의 ATmega128의프로그램공간에관련된내용을정의 ATmega128의 EEPROM에관련된내용을정의 ATmega128의워치독타이머에관련된내용을정의

실습 1:GPIO 로 LED 켜기 마이크로컨트롤러구동시시간지연방법 반복문에의한시간지연 for-loop 나 while-loop l 를사용하여시간을지연. void delay(unsigned char i){ while(i--); } 혹은 void oddeay(u delay(unsigned sg edchar i){ int k; for(k=0;k<=i;k++) ; } 매우부정확한방법임 (MCU상태, 클럭속도에따라달라짐 ) 그러나가장손쉬운방법.

실습 1:GPIO 로 LED 켜기 마이크로컨트롤러구동시시간지연방법 시스템제공함수를이용하는시간지연 시스템에서소프트웨어적으로제공하는라이브러리함수를이용하여시간지연을하는방법. AVR 개발환경에서제공하는시간지연용함수들은 delay.h라는헤더화일에정의되어있음. _delay_ms(unsigned int i), _delay_us(unsigned int i) 비교적정확한시간지연을얻을수있음. 인터럽트등에의해지연발생이가능함. 하드웨어에의한시간지연 마이크로컨트롤러에서하드웨어로제공하는내부타이머 / 카운터를사용하는방법. 가장정확한방법.

실습 1:GPIO 로 LED 켜기 실행결과

실습 2 스위치눌러 LED 불켜기

실습 2: 스위치눌러 LED 불켜기 실습개요 단순출력이아니고, GPIO 포트를통해신호를입력하여그신호에따라LED의불을켜는실습 스위치모듈의스위치를누르면해당되는 LED 모듈의 LED 가점등되도록함. 입출력포트를스위치쪽은입력으로 LED쪽은출력으로설정하도록함. 실습목표 GPIO 입출력포트의방향제어및입력제어방법습득 스위치동작원리습득

실습 2: 스위치눌러 LED 불켜기 사용모듈 : MCU 모듈, 스위치모듈, LED 모듈사용 MCU 모듈포트 E MCU 모듈포트 B MCU 모듈 LED 모듈 LED 모듈 Signal 스위치모듈 Switch 모듈버튼스위치 Signal

실습 2: 스위치눌러 LED 불켜기 스위치모듈의버튼스위치부회로도

실습 2: 스위치눌러 LED 불켜기 모듈결선방법 포트 E 의 PE0 ~PE7 을 LED 모듈의 LED 0 ~ 7 까지연결 (MCU-LED) 포트 B 의 PB0~PB7PB7 을 Switch 모듈의 BT0~BT7BT7 까지연결 (MCU-Switch)

실습 2: 스위치눌러 LED 불켜기 구동프로그램 : 사전지식 스위치를누르면 1 신호가나오고놓으면 0 신호가나옴. 이신호를입력받기위해서는 MCU의입출력포트를입력으로선언해야함. 즉, 입력으로사용하기로한 MCU B 포트를입력으로선언해야함. 입출력포트를입력으로선언하려면 DDRx 레지스터 ( 여기서는 B 포트를사용하므로 DDRB 레지스터 ) 에 0 을적어주어야함. 스위치모듈의버튼을누른다면 PINx 레지스터 ( 여기서는 B 포트를사용하므로 PINB 레지스터 ) 에 1 이라는값이입력되어들어옴. LED 출력방법은앞의예제와동일

실습 2: 스위치눌러 LED 불켜기 구동프로그램 : 소스분석 Switch.c 1) #include<avr/io.h> int main(){ 2) DDRE = 0xFF; // 포트E를출력포트로사용 (0~7비트까지모두사용 ) DDRB = 0x00; // 포트B를입력포트로사용 (0~7비트까지모두사용 ) 3) while(1){ PORTE = PINB; } /* 포트 E 를포트 B 의핀으로둠 (PORT 는 R/W 모두가능하지만, PIN 은 R 만가능 ) */ } return 0;

실습 2: 스위치눌러 LED 불켜기 실행결과 Switch 모듈의눌러진버튼과같은 LED 의불이점등한다.

실습 3 GPIO 로 FND LED 켜기

실습 3:GPIO 로 FND LED 켜기 실습개요 단순 LED가아닌 FND(Flexible Numeric Display: 7-Segment L ED) 를이용하여숫자를표시하는실습 마이크로컨트롤러의포트를출력으로선언하고, 이포트를 FND 모듈의 7-Segment LED에연결함. 일정시간마다클럭에의해 FND(7-Segment) 에숫자와문자가디스플레이되도록함. 실습목표 GPIO 입출력포트의방향제어및출력제어방법습득 FND LED 동작원리습득

실습 3:GPIO 로 FND LED 켜기 FND(7-Segment LED) 구조 7- 세그먼트는 LED 8 개를그림과같이배열 숫자나간단한기호표현에많이사용됨. 공통 (Common) 단자에인가되는전원에따라서 Common Anode(+ 공통 ) 과 Common Cathode(- 공통 ) 으로분류

실습 3:GPIO 로 FND LED 켜기 FND(7-Segment LED) 구동방법 Common-Cathode 방식 : 각단자에 1 이입력되면해당 LED 가켜짐 7-Segment 에서 16진수표시방법 16 진수 7- 세그먼트의비트값데이터값 H G F E D C B A ( HEX ) 0 0 0 1 1 1 1 1 1 0X3F 1 0 0 0 0 0 1 1 0 0X06 2 0 1 0 1 1 0 1 1 0X5B 3 0 1 0 0 1 1 1 1 0X4F 4 0 1 1 0 0 1 1 0 0X66 5 0 1 1 0 1 1 0 1 0X6D 6 0 1 1 1 1 1 0 1 0X7D 7 0 0 1 0 0 1 1 1 0X27 8 0 1 1 1 1 1 1 1 0X7F 9 0 1 1 0 1 1 1 1 0X6F A 0 1 1 1 0 1 1 1 0X77 B 0 1 1 1 1 1 0 0 0X7C C 0 0 1 1 1 0 0 1 0X39 D 0 1 0 1 1 1 1 0 0X5E E 0 1 1 1 1 0 0 1 0X79 F 0 1 1 1 0 0 0 1 0X71

실습 3:GPIO 로 FND LED 켜기 사용모듈 : MCU 모듈, FND 모듈 MCU 모듈포트 D MCU 모듈 FND 모듈 FND 모듈 Signal

실습 3:GPIO 로 FND LED 켜기 FND 모듈회로 Common-Cathode : (-) 공통

실습 3:GPIO 로 FND LED 켜기 모듈결선방법 MCU 모듈포트 D 의 PD0 ~PD7 을 FND 모듈의 SA_A~SA_H 로연결

실습 3:GPIO 로 FND LED 켜기 구동프로그램 : 사전지식 MCU 모듈의 D 포트를 FND 의불을켜기위한출력포트로설정. DDRx 레지스터 ( 여기서는 DDRD 레지스터 ) 에 1 을적어줌. 표를참조하여 PORTx( 여기서는 PORTD 레지스터 ) 에 1 을출력. 16 진수 7-세그먼트의비트값데이터값 H G F E D C B A ( HEX ) 0 0 0 1 1 1 1 1 1 0X3F 1 0 0 0 0 0 1 1 0 0X06 2 0 1 0 1 1 0 1 1 0X5B 3 0 1 0 0 1 1 1 1 0X4F 4 0 1 1 0 0 1 1 0 0X66 5 0 1 1 0 1 1 0 1 0X6D 6 0 1 1 1 1 1 0 1 0X7D 7 0 0 1 0 0 1 1 1 0X27 8 0 1 1 1 1 1 1 1 0X7F 9 0 1 1 0 1 1 1 1 0X6F A 0 1 1 1 0 1 1 1 0X77 B 0 1 1 1 1 1 0 0 0X7C C 0 0 1 1 1 0 0 1 0X39 D 0 1 0 1 1 1 1 0 0X5E E 0 1 1 1 1 0 0 1 0X79 F 0 1 1 1 0 0 0 1 0X71

실습 3:GPIO 로 FND LED 켜기 1) 구동프로그램 : 소스분석 FND.c #include<avr/io.h> #include<util/delay.h> AVR 입출력에대한헤더파일과 delay 함수사용을위한헤더파일을선언한다 int main(){ unsigned char FND_DATA_TBL[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07, 2) 0x7F,0x67,0x77,0x7C,0x39,0x5E,0x79,0x71,0x08,0x80}; unsigned char cnt=0, i ; 3) DDRD = 0xFF; // 포트 D를출력포트로사용 (0~7비트까지모두사용 ) 4) } while(1){ } FND_DATA_TBL [] : 7-Segment 에표시할글자의입력데이터를저장 PORTD = FND_DATA_TBL[cnt]; cnt++; if(cnt>17) cnt=0; // 테이블크기를초과하는경우방지. for(i=0;i<50;i++) _delay_ms(10); return 0; 출력되는데이터는 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, _,.}

실습 3:GPIO 로 FND LED 켜기 실행결과 프로그램이시작하면 500ms 마다 FND 에 0부터 9, A ~ F 그리고 _,. 을순차적으로출력한다.