목차
1. 실험 목적
2. 실험도구
3. 실험 소스 코드 분석
⑴ Exp02.1.asm
⑵ Exp02.2.asm
⑶ Exp02.3.asm
⑷ Exp02.4.asm
4. 실험 예상
⑴ Exp02.1.asm
⑵ Exp02.2.asm
⑶ Exp02.3.asm
⑷ Exp02.4.asm
5. 설계도
2. 실험도구
3. 실험 소스 코드 분석
⑴ Exp02.1.asm
⑵ Exp02.2.asm
⑶ Exp02.3.asm
⑷ Exp02.4.asm
4. 실험 예상
⑴ Exp02.1.asm
⑵ Exp02.2.asm
⑶ Exp02.3.asm
⑷ Exp02.4.asm
5. 설계도
본문내용
---------------------------------
;Key Input and Display
;------------------------------------------------
CALLLCD_HOME1; display title
CALLLCD_STRING
.db" KEY INPUT ",0,0
CALLLCD_HOME2
CALLLCD_STRING
.db"PORTF = 11110000",0,0
CALLBEEP
READ_KEY:CALLKEY_IN; input key
CPIAL,0b11100000; if SW1, display SW1 bit
BRNECK_SW2// 여기까지는 2.2와 동일하다.
DSP_KEY// 위에서 키핑한 매크로를 실행한다. 즉, 레지스터 번호 출력
JMPREAD_KEY
CK_SW2:CPIAL,0b11010000; if SW2, display SW2 bit
BRNECK_SW3
DSP_KEY; call macro
JMPREAD_KEY
// 마찬가지로 동일하게 수행 된다.
CK_SW3:CPIAL,0b10110000; if SW3, display SW3 bit
BRNECK_SW4
DSP_KEY; call macro
JMPREAD_KEY
CK_SW4:CPIAL,0b01110000; if SW4, display SW4 bit
BRNEREAD_KEY
DSP_KEY; call macro
JMPREAD_KEY
;====================================================================
;Include User Subroutine File
;====================================================================
.include "OK128SUB.INC"; include OK-128 subroutine file
⑷ Exp02.4.asm
;[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
;[] []
;[]Exp02_4.asm : Bit Access []
;[] []
;[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
;
;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
;------------------------------------------------
;Initialize MCU // 마이크로 컨트롤러 유닛 초기화
;------------------------------------------------
.cseg
.org0x0000
LDIAH,high(RAMEND); initialize SP
LDIAL,low(RAMEND)
OUTSPH,AH
OUTSPL,AL
;------------------------------------------------
;Blink LED1/3 and LED2/4// LED 1/3과 LED 2/4을 교대로 깜빡이기
;------------------------------------------------
LDIAL,0xFF; initialize PORTB = output
OUTDDRB,AL
LOOP:CBIPORTB,PB7// PB7 = 0b01000000 CBI는 Clear Bit I/O로서 해당 비트(PB7)를 0으로 초기화를 시킨다.
CBIPORTB,PB5// PB5 = 0b00010000, 비트초기화.
SBIPORTB,PB6 // PB6 = 0b01000000 => LED 1번, SBI는 Set Bit I/O로서 PB6를 PORTB에 셋팅한다.
SBIPORTB,PB4 // PB4 = 0b00010000 => LED 3번
// CBI나 SBI는 비트 단위 제어를 하기 위해 사용되어 진다.
CALLD500MS
LDIAL,(1<
즉, 0b00000000에서 1을 왼쪽부터 7번 쉬프트하여 0b10000000이 되어 LED 2번이 된다.
1<
OUTPORTB,AL
CALLD500MS
JMPLOOP
;------------------------------------------------
;Include User Subroutine File
;------------------------------------------------
.include "OK128SUB.INC"; include OK-128 subroutine file
4. 실험 예상
⑴ Exp02.1.asm
단순히 텍스트 LCD 두 줄에 입력된 문자열을 나타낼 것이다.
KEY INPUT
Press SW1-SW4 ! 이렇게 말이다.
⑵ Exp02.2.asm
아래에 있는 4개의 스위치를 누르면 각 스위치마다의 레지스터 주소가 텍스트 LCD의 두 번째 줄에 나타날 것이다.
⑶ Exp02.3.asm
⑵번과 같은 결과물을 나타내지만 내용 소스는 메크로를 이용하여 더 간략화가 되어 있다.
⑷ Exp02.4.asm
지난 주 수업과 비슷하게 LED 1/3 과 LED 2/4의 블링블링한 효과를 나타내는 것은 똑같지만 오히려 소스코드를 비트단위를 이용하여 제어함으로서 또다른 LED 접근법이 있음을 알 수가 있다.
5. 설계도
exp1.1에서 사용하는 LED 부분은 ATmega128에서 사용된다.
1.2 에서 사용하는 텍스트 LCD 의 설계도.
;Key Input and Display
;------------------------------------------------
CALLLCD_HOME1; display title
CALLLCD_STRING
.db" KEY INPUT ",0,0
CALLLCD_HOME2
CALLLCD_STRING
.db"PORTF = 11110000",0,0
CALLBEEP
READ_KEY:CALLKEY_IN; input key
CPIAL,0b11100000; if SW1, display SW1 bit
BRNECK_SW2// 여기까지는 2.2와 동일하다.
DSP_KEY// 위에서 키핑한 매크로를 실행한다. 즉, 레지스터 번호 출력
JMPREAD_KEY
CK_SW2:CPIAL,0b11010000; if SW2, display SW2 bit
BRNECK_SW3
DSP_KEY; call macro
JMPREAD_KEY
// 마찬가지로 동일하게 수행 된다.
CK_SW3:CPIAL,0b10110000; if SW3, display SW3 bit
BRNECK_SW4
DSP_KEY; call macro
JMPREAD_KEY
CK_SW4:CPIAL,0b01110000; if SW4, display SW4 bit
BRNEREAD_KEY
DSP_KEY; call macro
JMPREAD_KEY
;====================================================================
;Include User Subroutine File
;====================================================================
.include "OK128SUB.INC"; include OK-128 subroutine file
⑷ Exp02.4.asm
;[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
;[] []
;[]Exp02_4.asm : Bit Access []
;[] []
;[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
;
;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
;------------------------------------------------
;Initialize MCU // 마이크로 컨트롤러 유닛 초기화
;------------------------------------------------
.cseg
.org0x0000
LDIAH,high(RAMEND); initialize SP
LDIAL,low(RAMEND)
OUTSPH,AH
OUTSPL,AL
;------------------------------------------------
;Blink LED1/3 and LED2/4// LED 1/3과 LED 2/4을 교대로 깜빡이기
;------------------------------------------------
LDIAL,0xFF; initialize PORTB = output
OUTDDRB,AL
LOOP:CBIPORTB,PB7// PB7 = 0b01000000 CBI는 Clear Bit I/O로서 해당 비트(PB7)를 0으로 초기화를 시킨다.
CBIPORTB,PB5// PB5 = 0b00010000, 비트초기화.
SBIPORTB,PB6 // PB6 = 0b01000000 => LED 1번, SBI는 Set Bit I/O로서 PB6를 PORTB에 셋팅한다.
SBIPORTB,PB4 // PB4 = 0b00010000 => LED 3번
// CBI나 SBI는 비트 단위 제어를 하기 위해 사용되어 진다.
CALLD500MS
LDIAL,(1<
1<
CALLD500MS
JMPLOOP
;------------------------------------------------
;Include User Subroutine File
;------------------------------------------------
.include "OK128SUB.INC"; include OK-128 subroutine file
4. 실험 예상
⑴ Exp02.1.asm
단순히 텍스트 LCD 두 줄에 입력된 문자열을 나타낼 것이다.
KEY INPUT
Press SW1-SW4 ! 이렇게 말이다.
⑵ Exp02.2.asm
아래에 있는 4개의 스위치를 누르면 각 스위치마다의 레지스터 주소가 텍스트 LCD의 두 번째 줄에 나타날 것이다.
⑶ Exp02.3.asm
⑵번과 같은 결과물을 나타내지만 내용 소스는 메크로를 이용하여 더 간략화가 되어 있다.
⑷ Exp02.4.asm
지난 주 수업과 비슷하게 LED 1/3 과 LED 2/4의 블링블링한 효과를 나타내는 것은 똑같지만 오히려 소스코드를 비트단위를 이용하여 제어함으로서 또다른 LED 접근법이 있음을 알 수가 있다.
5. 설계도
exp1.1에서 사용하는 LED 부분은 ATmega128에서 사용된다.
1.2 에서 사용하는 텍스트 LCD 의 설계도.
추천자료
컴퓨터의 내부장치와 구조
컴퓨터를 통한 수학 학습과 수학적 오류의 진단·처방 문장제 학습에의 적용
컴퓨터 활용능력 요약
빌게이츠 기업가 사례보고서
병렬처리 컴퓨터
제 2.3.4세대 컴퓨터
컴퓨터의 이해 문제풀이 레포트
20세기에 영향을 끼친 인물 - 빌게이츠
MS사의 독점 (마이크로 소프트)
[레지스트리의 의미][레지스트리의 구조][레지스트리의 백업][레지스트리의 복구][레지스트리...
컴퓨터 공학과의 진보적 입장
전공 컴퓨터와 기초 - 7~80만우너 조립컴퓨터 구성, 인터넷 사기
[Bill-Gates부터Steven-Ballmer까지]Microsoft의 성장과 Leadership의 변화
마이크로소프트 (MS : Microsoft) - 마이크로소프트 기업분석, 마이크로-소프트 창업, MS 운...