책 이미지
책 정보
· 분류 : 국내도서 > 대학교재/전문서적 > 공학계열 > 컴퓨터공학 > 운영체제/소프트웨어 공학
· ISBN : 9788992595452
· 쪽수 : 518쪽
· 출판일 : 2010-01-05
목차
1장. ATmega128 개요
1.1 AVR의 개요
1.2 AVR 마이크로컨트롤러의 종류
1.3 ATmega128의 구조와 PIN기능
2장. 포트 제어
2.1 I/O 포트의 구조 및 기능
2.2 I/O 포트 관련 레지스터
2.2.1 DDR 레지스터(Data Direction Register)
2.2.2 PORT 레지스터
2.3 입출력 포트의 활용
? LED(Light Emitted Device) 빛을 깜박이는 실습
2.4 포트제어 실습
? LED8개를 연결하고 순차적으로 이동하기
? LED8개를 연결하고 순차적으로 왔다갔다를 반복하기 [active high 방식]
? LED 8개를 역방향으로 연결하고 순차적으로 왔다갔다를 반복하기[active low 방식]
? LED8개를 연결하고 순차적으로 쌓여가면서 왔다갔다 이동하기 [active high 방식]
? 포트에 스위치를 연결하고 이를 통해 LED를 On/Off 제어하기
? LED 16개를 연결하고 순차적으로 왔다갔다를 반복하기
? LED 32개를 연결하고 순차적으로 왔다갔다를 반복하기
? 스위치 8개로 키패드를 만들고 해당되는 위치의 LED에 출력하기 [포트입력기능]
? 매트릭스 방식으로 키패드와 LED를 연결하기
? 매트릭스 구조의 LED 제어
? 매트릭스 구조의 키패드 제어
3장. FND 제어
3.1 FND를 사용하여 숫자 출력하기
3.2 FND 제어 실습
? FND 4개를 사용하여 숫자 출력하기
4장. LCD 제어
4.1 LCD 모듈의 개요
4.2 LCD 모듈의 핀 배치
4.3 LCD 모듈의 제어기능
4.4 LCD 모듈의 회로 연결 실습
? 8비트 버스로 LCD를 동작시키기
? LCD를 동작시키는데 필요한 기능구현하기
? 4비트 버스로 LCD를 동작시키기
5장. 외부 인터럽트
5.1 외부 인터럽트(External Interrupt)
5.2 관련 레지스터
? SREG Register : Status Register
? EIMSK Register : External Interrupt Mask Register
? EIFR Register : External Interrupt Flag Register
? EICRA Register : External Interrupt Control Register A
? EICRB Register : External Interrupt Control Register B
5.3 인터럽트 인식방법
5.4 외부 인터럽트 구현 실습
? 스위치를 연결하여 폴링에지 (Falling Edge) 인터럽트 방식으로 인식하기
? 스위치를 연결하여 인터럽트4~7에 4가지 인터럽트 방식으로 인식하기
? 인터럽트 플래그를 체크하여 인터럽트를 인식하기
6장. EEPROM 제어
6.1 내부 EEPROM의 개요
? EEARH and EEARL : EEPROM Address Register
? EEDR Register : EEPROM Data Register
? EECR Register : EEPROM Control Register
6.2 EEPROM read/write 기능 구현하기
6.3 EEPROM 프로그램 실습
? EEPROM 사용하여 데이터 쓰고 읽기
? EEPROM 인터럽트를 사용하여 데이터 쓰고 읽기
7장. 타이머/카운터 0
7.1 타이머/카운터의 개념
7.2 타이머/카운터 0 개요
7.3 타이머/카운터 0 관련 레지스터
? TCCR0 레지스터(Timer/Counter Control Register 0)
? TCNT0(Timer/Counter Register) 레지스터
? OCR0 (T/C Output Compare Register0) 레지스터
? ASSR(Asynchoronous Status Register) 레지스터
? SFIOR(Special Function I/O Register) 레지스터
? TIMSK (T/C Interrupt Mask Register) 레지스터
? TIFR (T/C Interrupt Flag Register) 레지스터
7.4 동작 모드 실습
7.4.1 타이머/카운터 0 오버플로 인터럽트[normal mode]
? 타이머/카운터0 오버플로 인터럽트를 이용하여 LED8개를 연결하고 빛을 이동하기
? 타이머/카운터0 오버플로 인터럽트를 이용하여 LED32개를 연결하고 빛을 이동하기
7.4.2 CTC 모드(Clear Timer on Compare match mode)
? CTC 모드를 이용하여 OC0 포트에 펄스를 출력하기
? CTC모드에서 출력비교인터럽트를 이용하여 OC0 포트에 펄스를 출력하기
7.4.3 Fast PWM 모드(Fast Pulse Width Modulation)
? fast PWM 모드로 OC0 포트에 펄스를 출력하기
? fast PWM 모드에서 출력비교 인터럽트와 오버플로 인터럽트를 이용하여 OC0 포트에 펄스를 출력하기
7.4.4 위상교정 PWM 모드(Phase Correct PWM Mode)
? 위상교정 PWM 모드로 OC0 포트에 펄스를 출력하기
? 위상교정 PWM 모드에서 출력비교 인터럽트와 오버플로 인터럽트를 이용하여 OC0 포 트에 펄스를 출력하기
8장. 타이머/카운터 1,3
8.1 타이머/카운터 1,3 개요
8.2 타이머/카운터 1,3 관련 레지스터
? TCCR1A, 3A 제어 레지스터
? TCCR1B, 3B 제어 레지스터
? TCCR1C, TCCR3C 제어 레지스터
? TCNT1H/L, TCNT3H/L 레지스터
? ICR1H/L 및 ICR3H/L 레지스터
? OCR1H/L 및 ICR3H/L 레지스터
? TIMSK Register(T/C Interrupt Mask Register)
? ETIMSK 레지스터
? TIFR(T/C Interrupt Flag Register) 레지스터
? ETIFR 레지스터
? SFIOR (Special Function I/O Register) 레지스터
8.3 동작모드 실습
8.3.1 타이머/카운터1 오버플로 인터럽트 (일반모드)
? 타이머/카운터1 오버플로 인터럽트를 사용하여 LED불빛을 점등하기
8.3.2 CTC 모드(Clear Timer on Compare Match Mode)
? 타이머/카운터1의 CTC 모드 프로그램 실습(인터럽트 미사용)
? 타이머/카운터1의 CTC 모드에서 CTC 인터럽트를 사용한 프로그램 실습
? 타이머/카운터1의 CTC 모드에서 CTC 인터럽트를 사용한 프로그램 실습
8.3.3 고속 PWM 모드(fast PWM mode)
? 고속 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기
(WGM:15 모드, COM1A1:A0:01 토글모드)
? 고속 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기
(WGM:15 모드, COM1A1:A0:10 clear OCnX)
? 고속 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기
(WGM:14 모드, COM1A1:A0:10 Clear OC1A)
? 고속 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기
(WGM:14 모드, COM1A1:A0:10 Clear OC1ABC)
? 고속 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기
(WGM:7 모드, COM1A1:A0:01 Clear OC1A)
? 고속 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기
(WGM:7 모드, COM1A1:A0:11 set OCnX )
? 고속 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기
(WGM:6 모드, COM1A1:A0:10 Clear OC1A)
? 고속 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기
(WGM:6 모드, COM1A1:A0:11 set OC1X)
? 고속 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기
(WGM:5 모드, COM1A1:A0:10 Clear OC1A)
? 고속 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기
(WGM:5 모드, COM1A1:A0:11 set OC1X)
8.3.4 위상교정 PWM 모드
? 위상교정 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기 (WGM:1 모드, COM1A1:A0:10 clear OC1A)
? 위상교정 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기 (WGM:1 모드, COM1A1:A0:11 set OC1A)
? 위상교정 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기 (WGM:1 모드, COM1A1:A0:11 set OC1X)
? 위상교정 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기 (WGM:2 모드, COM1A1:A0:10 set OC1A)
? 위상교정 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기 (WGM:3 모드, COM1A1:A0:10 set OC1A)
? 위상교정 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기 (WGM:10 모드, COM1A1:A0:10 set OC1A)
? 위상교정 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력하기 (WGM:11 모드, COM1A1:A0:10 set OC1A)
8.3.5 위상 및 주파수 교정 PWM 모드
? 위상및 주파수 교정 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력 하기 (WGM:8 모드, COM1A1:A0:10 set OC1A)
? 위상및 주파수 교정 PWM 모드에서 인터럽트를 사용하지 않고 OC1A 핀에 PWM 파형 출력 하기 (WGM:9 모드, COM1A1:A0:01 OC1A 토글모드)
9장. 타이머/카운터 2
9.1 타이머/카운터 2 개요
9.2 타이머/카운터 2 관련 레지스터
? TCCR2 레지스터
? TCNT2 레지스터
? OCR2 (T/C Output Compare Register 2) 레지스터
? SFIOR : Special Function I/O Register
? TIMSK (T/C Interrupt Mask Register) 레지스터
? TIFR : T/C Interrupt Flag Register
9.3 동작모드 실습
9.3.1 타이머/카운터2 오버플로 인터럽트 (노말모드)
? 타이머/카운터2 오버플로 인터럽트를 이용한 LED 이동프로그램
9.3.2 CTC 모드
? CTC 모드를 이용하여 OC2 포트에 펄스를 출력하는 프로그램
? CTC 모드에서 출력비교인터럽트와 오버플로 인터럽트를 이용하여 OC2 포트에 펄스를 출력 하고 연결된 LED에 불을 이동시키는 프로그램
9.3.3 고속 PWM 모드(Fast Pulse Width Modulation)
? 고속 PWM 모드로 OC2 포트에 펄스를 출력하는 프로그램
? 고속 PWM 모드에서 출력비교 인터럽트와 오버플로 인터럽트를 이용하여 OC2 포트에 펄스 를 출력하는 프로그램
9.3.4 위상교정 PWM 모드(Phase Correct PWM Mode)
? 위상교정 PWM 모드로 OC2 포트에 펄스를 출력하는 프로그램
? 위상교정 PWM 모드에서 출력비교 인터럽트와 오버플로 인터럽트를 이용하여 OC0 포 트에 펄스를 출력하는 프로그램
10장. ADC 제어
10.1 ADC(Analog to Digital Converter) 개요
10.1.1 AD 변환기는 무엇인가?
10.1.2 ATmega128 A/D 변환기의 특징
10.1.3 A/D 변환기 사용시 잡음 제거 방법
10.2 A/D 변환기 관련 레지스터
? ADMUX(ADC Multiplexer Selection Register) 레지스터
? ADCSRA(ADC Control and Status Register A) 레지스터
? ADCH/L (ADC Data Register)
10.3 ADC 실습
? 단극성 입력, free running conversion 모드에서 채널 0을 통해 가변저항의 전압 측정하 기
? 단극성 입력, single conversion 모드에서 채널 4를 통해 가변저항의 전압 측정하기
? 단극성 입력, free running 모드, 인터럽트 플래그 인식 방법으로 채널 7을 통 해 가변저 항의 전압 측정하기
? 단극성 입력, single conversion 모드에서, 인터럽트 서비스 루틴 사용 방법으로 채널 0 를 통해 가변저항의 전압 측정하기
? 양극성 입력, single conversion 모드, 인터럽트 서비스 루틴 사용 방법을 사용하고, 10배 확대모드를 사용하여, 채널 1을 통해 가변저항의 전압 측정하기 [01001 모드]
? 양극성 입력, single conversion 모드, 인터럽트 서비스 루틴 사용 방법을 사용하고, 200 배 확대모드를 사용하여, 채널 1을 통해 가변저항의 전압 측정하기 [01011 모드]
? 양극성 입력 , single conversion 모드, 인터럽트 서비스 루틴 사용 방법을 사용하고, 200 배 확대모드(측정범위 ±0.025v)를 사용하여, 채널 3을 통해 가변저항의 전압 측정하기 [01111 모드]
11장. 아날로그 비교기
11.1 아날로그 비교기 개요
11.2 관련 레지스터
? SFIOR(Special Function IO register) 레지스터
? ACSR(Analog Comparator Control and Status Register) 레지스터
11.3 아날로그 비교기 실습
? AIN0에 2.5v, AIN1에 가변저항을 연결하고 나타난 전압의 크기를 비교해보자.
? AIN0에 내부전압 1.23v, AIN1에 ADC3 입력을 연결하고 나타난 전압의 크기를 비교해 보자.
? AIN0에 내부전압 1.23v, AIN1에 ADC3 입력을 연결하고 인터럽트 방식을 이용하여 전 압의 크기를 비교해보자.
12장. 직렬 통신
12.1 직렬통신(USART) 개요
12.2 직렬통신 관련 레지스터
? UDRn 레지스터(USART Data Register) - USARTn 입출력 데이터 레지스터
? UCSRnA 레지스터(USART Control and Status Register A)
? UBRRnL, UBRRnH - USART 보레이트 설정 레지스터
12.3 동작모드 실습
? 직렬통신으로 데이터 보내고 받기 (polling 방식)
? 직렬통신으로 데이터 보내고 받기(인터럽트 방식)
13장. SPI 직렬통신
13.1 SPI 직렬통신(Serial Peripheral Interfacd) 개요
13.2 관련 레지스터
? SPCR 레지스터 : SPI Control Register
? SPSR 레지스터 : SPI Status Register
? SPDR 레지스터 : SPI Data Register
13.3 SPI 통신 실습
? 프로세서(ATmega128)끼리 SPI로 통신하기
14장. TWI 직렬통신
14.1 TWI 직렬통신 개요
14.1.1 TWI 버스(BUS) 연결
14.1.2 TWI의 비트 전달규약
14.1.3 START와 STOP 상태
14.1.4 주소 패킷 형식
14.1.5 데이터 패킷 형식
14.1.6 주소와 데이터 패킷의 결합
14.2 TWI 모듈의 개요
14.3 관련 레지스터
? TWBR(TWI Bit Rate Register)
? TWCR(TWI Control Register)
? TWSR(TWI Status Register)
? TWDR(TWI Data Register)
? TWAR (TWI Address Register)
14.4 TWI 동작 설명
14.5 TWI 통신기능 구현
14.5.1 마스터 송신모드(Master Transmitter Mode)
14.5.2 마스터 수신모드(Master Receiver Mode)
14.5.3 슬레이브 송신모드(Slave Transmitter Mode)
14.5.4 슬레이브 수신모드(Slave Receiver Mode)
14.6 TWI 실습
? 두 개의 ATmega128을 TWI방식으로 통신하기
15장. 그래픽 LCD 제어하기
15.1 그래픽 LCD 개요
15.1.1 그래픽 LCD(128x64)의 핀 구성과 명령어
15.1.2 동작 타이밍
15.2 그래픽 LCD 제어기능 구현하기
15.2.1 그래픽 LCD의 핀 배치
15.2.2 그래픽 LCD에 하나의 점을 표시하기
15.2.3 그래픽 LCD화면에 영문자를 표시하기
16장. DC모터 제어하기
16.1 DC모터 개요
16.2 DC모터 on/off 제어로 정/역회전 제어하기
16.3 DC모터를 PWM 제어로 속도 제어하기
부록 ASCII code 표



















