AVR ATmega 128 기본 프로그래밍 [마컴 예비레포트]
본 자료는 6페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
해당 자료는 6페이지 까지만 미리보기를 제공합니다.
6페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1. 실험 목적

2. 실험 도구

⑴ JST-MEGA128-DEV5 키트

⑵ 기기와 호환 되는 PC

3. 실험 과정

4. 실험 소스 코드 분석

⑴ Exp01.1.asm [LED를 점등하는 예제]

⑵ Exp01.1a.asm [LED를 점등하는 예제]

⑶ Exp01.2.asm [텍스트형 LCD 모듈에 메시지를 출력하는 예제]

⑷ Exp01.2a.asm [텍스트형 LCD 모듈에 메시지를 출력하는 예제]

5. 실험 예상

⑴ Exp01.1.asm

⑵ Exp01.1a.asm

⑶ Exp01.2.asm

⑷ Exp01.2a.asm

본문내용

a.asm : Basic Assembly Program (2) []
;[] []
;[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
;
;Designed and programmed by Duck-Yong Yoon in 2005.
;
;------------------------------------------------
;Include Header File
;------------------------------------------------
.include "MEGA128.INC"; include ATmega128 definition file
.include "OK128DEF.INC"; include OK-128 I/O definition file
// "OK128DEF.INC" 헤더 파일을 추가
;====================================================================
;Main Program
;====================================================================
.cseg
.org0x0000
LDIAH,high(RAMEND); initialize SP
LDIAL,low(RAMEND)
OUTSPH,AH
OUTSPL,AL
CALLINIT_OK128; initialize ATmega128 CPU & OK-128 kit
CALLD50MS; wait for system stabilization
CALLINIT_LCD; initialize text LCD
;------------------------------------------------
;Display LCD
;------------------------------------------------
CALLLCD_HOME1; display logo
CALLLCD_STRING
.db" OK-128 V2.2 ",0,0
LOOP:CALLLCD_HOME2; display message 1
CALLLCD_STRING
.db" ATmega128-16AI ",0,0
CALLD1SEC
CALLLCD_HOME2; display message 2
CALLLCD_STRING
.db" 2005/03/01 ",0,0
CALLD1SEC
JMPLOOP
;====================================================================
;Include User Subroutine File
;====================================================================
.include "OK128SUB.INC"; include OK-128 subroutine file
//서브루틴 파일을 추가 하여 1.2a와는 다르게 간략화가 되었다.
이 예제 파일은 1.2와 디스플레이 정보는 같지만 그 외의 부분들은 OK128DEF.INC 파일로 정의하여 놓고 사용자 프로그램에서 이를 인클루드 하였다.
또 하나의 추가 부분은 서브루틴들이다. LCD 모듈을 동작시키려면 먼저 이 LCD 모듈을 초기화하는 과정이 필요하며, 여기에 명령이나 데이터를 출력하는 루틴 또는 문자열을 출력하는 루틴들은 상당히 복잡하므로 서브루틴으로 만들어 두고 사용하는 것이 일반적이다.
그 밖에도 LCD 모듈의 구동에는 몇 가지의 시간지연 루틴들이 필요하다. 그리하여 기본 서브루틴들을 인클루드 파일 OK128SUB.INC 파일을 만들어 놓으면 편리하게 생략할 수가 있다.
5. 실험 예상
⑴ Exp01.1.asm
;------------------------------------------------
;Blink LED1/3 and LED2/4
;------------------------------------------------
LDIR16,0xFF; initialize PORTB = output
OUTDDRB,R16
LOOP:LDIR16,0b01010000; LED1,3 on
OUTPORTB,R16
CALLD500MS
LDIR16,0b10100000; LED2,4 on
OUTPORTB,R16
CALLD500MS
JMPLOOP
의 명령어를 보아 LED 1, 3 과 LED 2, 4 이 0.5초 간격으로 on/off를 하며 깜빡일 것이다.
⑵ Exp01.1a.asm
“Blink LED1/3 and LED2/4“의 소스 내용이 동일하므로 위와 마찬가지로 작동할 것이다.
물론 동작 시간 또한 동일하게 나타날 것이다.
⑶ Exp01.2.asm
;------------------------------------------------
;Display LCD
;------------------------------------------------
CALLLCD_HOME1; display logo
CALLLCD_STRING
.db" OK-128 V2.2 ",0,0
LOOP:CALLLCD_HOME2; display message 1
CALLLCD_STRING
.db" ATmega128-16AI ",0,0
CALLD1SEC
CALLLCD_HOME2; display message 2
CALLLCD_STRING
.db" 2005/03/01 ",0,0
CALLD1SEC
JMPLOOP
메인 소스를 보면 text 디스플레이 첫 줄에 .db 뒤에 있는 string을 디스플레이 하고 2째 줄에는 1초 동안 ATmega128-16AI를 표시한다. 그리고 나서 또다시 1초 동안 2005/03/01을 표시하는 것을 반복할 것이다.
⑷ Exp01.2a.asm
이 소스코드 또한 Display LCD 의 명령어가 동일함으로서 위의 예제 파일과 동일하게 작동할 것이다.
이로서 01.*a.asm 파일은 OK128DEF.inc와 OK128SUB.inc 헤더 파일을 추가하여 명령어를 간단하게 나타내되 작동은 동일하게 나타냄을 알 수가 있을 것이다.
5. 설계도
exp1.1에서 사용하는 LED 부분은 ATmega128에서 사용된다.
1.2 에서 사용하는 텍스트 LCD 의 설계도.

키워드

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