[마컴 프로젝트] Electronic Piano(전자피아노)
본 자료는 6페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
해당 자료는 6페이지 까지만 미리보기를 제공합니다.
6페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

[마컴 프로젝트] Electronic Piano(전자피아노)에 대한 보고서 자료입니다.

목차

제 Ⅰ 장 개요
1.1 작품개요

제 Ⅱ 장 작 품 설 계
2.1 작 품 설 계
2.1.1 전 원 부
2.1.2 음 향 부
2.1.3 Keyboard 부
2.1.4 LED 부

제 Ⅲ 장 동 작 원 리
3.1 Flow Chart
3.2 음계 발생 원리
3.2.1 CTC Mode를 이용한 음계 발생
3.3 Timer/Counter
3.3.1 CTC Mode
3.3.2 레지스터

제 Ⅳ 장 결 론 및 토 의
4.1 제작실험결과
4.2 제작후기

부 록
회로도
프로그램

참고문헌

본문내용

TCCR3B,AL
; WGM13 = 1, WGM12 = 1, WGM11 = 0, WGM = 0
; CTC 모드, Prescale CS 2:0 =0 : Speaker Off
LDI AL,0b00000000; FOC3 Disable
STS TCCR3C,AL
CLR AL; TCNT3 , T/C3 데이터 초기화
STS TCNT3H,AL
STS TCNT3L,AL
READ_KEY:CALLKEY_IN; OK128SUB.INC 에 키 체크함수 존재
CPIAL,0b11111110; if SW1, 'do' sound
BRNECK_SW2
; SW1이 아닌 경우 SW2인지 확인하는 루틴으로 분기
LDIAH,high(1910); ICR3 = 1910 입력
LDIAL,low(1910); 5옥타브 ‘도(C)' 출력
CALLSET_TIMER3; 출력 주파수 523.286Hz 출력
CALL D200MS
CALL SPEAKER_OFF; 스피커 OFF 하는 루틴으로 CALL 한다.
JMPREAD_KEY
CK_SW2:CPIAL,0b11111101; if SW2, 're' sound
BRNECK_SW3
; SW2이 아닌 경우 SW3인지 확인하는 루틴으로 분기
LDIAH,high(1702); ICR3 = 1702 입력
LDIAL,low(1702); 5옥타브 ‘레(D)' 출력
CALLSET_TIMER3; 출력 주파수 587.199Hz 출력
CALL D200MS
CALL SPEAKER_OFF; 스피커 OFF 하는 루틴으로 CALL 한다.
JMPREAD_KEY
CK_SW3:CPIAL,0b11111011; if SW3, 'mi' sound
BRNECK_SW4
; SW3이 아닌 경우 SW4인지 확인하는 루틴으로 분기
LDIAH,high(1516); ICR3 = 1516 입력
LDIAL,low(1516); 5옥타브 ‘미(E)' 출력
CALLSET_TIMER3; 출력 주파수 659.196Hz 출력
CALL D200MS
CALL SPEAKER_OFF; 스피커 OFF 하는 루틴으로 CALL 한다.
JMPREAD_KEY
CK_SW4:CPIAL,0b11110111; if SW4, 'pa' sound
BRNECK_SW5
; SW4이 아닌 경우 SW5인지 확인하는 루틴으로 분기
LDIAH,high(1431); ICR3 = 1431 입력
LDIAL,low(1431); 5옥타브 ‘파(F)' 출력
CALLSET_TIMER3; 출력 주파수 698.324Hz 출력
CALL D200MS
CALLSPEAKER_OFF; 스피커 OFF 하는 루틴으로 CALL 한다.
JMPREAD_KEY
CK_SW5:CPIAL,0b11101111; if SW5, 'sol' sound
BRNECK_SW6
; SW5이 아닌 경우 SW6인지 확인하는 루틴으로 분기
LDIAH,high(1275); ICR3 = 1275 입력
LDIAL,low(1275); 5옥타브 ‘솔(G)' 출력
CALLSET_TIMER3; 출력 주파수 783.699Hz 출력
CALL D200MS
CALL SPEAKER_OFF; 스피커 OFF 하는 루틴으로 CALL 한다.
JMPREAD_KEY
CK_SW6:CPIAL,0b11011111; if SW6, 'ra' sound
BRNECK_SW7
; SW6이 아닌 경우 SW7인지 확인하는 루틴으로 분기
LDIAH,high(1135); ICR3 = 1135 입력
LDIAL,low(1135); 5옥타브 ‘라(A)' 출력
CALLSET_TIMER3; 출력 주파수 880.282Hz 출력
CALL D200MS
CALL SPEAKER_OFF; 스피커 OFF 하는 루틴으로 CALL 한다.
JMPREAD_KEY
CK_SW7:CPIAL,0b10111111; if SW7, 'si' sound
BRNECK_SW8
; SW7이 아닌 경우 SW8인지 확인하는 루틴으로 분기
LDIAH,high(1011); ICR3 = 1011 입력
LDIAL,low(1011); 5옥타브 ‘시(B)' 출력
CALLSET_TIMER3; 출력 주파수 988.142Hz 출력
CALL D200MS
CALL SPEAKER_OFF; 스피커 OFF 하는 루틴으로 CALL 한다.
JMPREAD_KEY
CK_SW8:CPIAL,0b01111111; if SW8, 'do' sound
BRNEREAD_KEY1
; SW8이 아닌 경우 처음부터 확인하는 루틴으로 분기
LDIAH,high(955); ICR3 = 955 입력
LDIAL,low(955); 6옥타브 ‘도(C)' 출력
CALLSET_TIMER3; 출력 주파수 1046.025Hz 출력
CALL D200MS
CALL SPEAKER_OFF; 스피커 OFF 하는 루틴으로 CALL 한다.
JMPREAD_KEY
READ_KEY1 : JMP READ_KEY
SPEAKER_OFF:
LDIAL,0b00011000 ; Prescale 파트를 CS2:0 = 0 으로 하여
; OC출력 하지 않음
STSTCCR3B,AL
;CALLD200MS; 2ms 딜레이를 걸려고 했으나 빠른 키 ; 입력을 위해 생략 하였습니다.
RET
SET_TIMER3:
STSICR3H,AH
; 키 입력시 지정되는 A레지스터를 ICR3로 입력
STSICR3L,AL
LDIAL,0; TCNT3을 초기화
STSTCNT3H,AL
STSTCNT3L,AL
LDIAL,0b00011010
; CTC 13번 모드, Prescale CS2:0= 2 => 8분주
STSTCCR3B,AL
RET
;====================================================================
;Include User Subroutine File
;====================================================================
.include "OK128SUB.INC"; include OK-128 subroutine file
참고문헌
저자 윤덕용, “AVR ATmega 128 마스터”
저자 이무영, “ATmega128 Microcontroller"
저자 김종부, “ATmega128 이론 및 실험“
Internet, "http://alldatasheet.co.kr"

키워드

  • 가격3,300
  • 페이지수18페이지
  • 등록일2012.05.22
  • 저작시기2011.12
  • 파일형식한글(hwp)
  • 자료번호#748630
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니