목차
없음
본문내용
대신 불편한 점은 매번 지워야 할 때마다 회로에서 꺼내야 합니다. 그리고 프로그램을 부분만이 아닌 전부다 지워야 합니다. 마지막으로 한번 지울때 15에서 20분 정도가 소요가 됩니다. 이렇한 부분을 개선하기 위해 나온 것이 EE-PROM입니다. Electrically Erasable PROM의 약자입니다. 이것도 해석그대로 전기신호를 통하여서 내용을 지우는 것입니다. 빠르게 지울수 있고 또 원하는 부분만 교체할 수도 있습니다. 하지만 뒤에 나올 Flash Memory에 비하여서 가격이 많이 비싸다는 단점이 있습니다. Flash Memory는
-I/O의 장치
I/O는 말 그대로 Input, Output입니다. 저희가 생각할 수 있는 범위에서 입력 장치로는 키보드, 스위치, 등이 있습니다. 출력으로는 저희가 흔히 사용하는 LED, LCD, 스피커, 버져, 7 Segment 등이 있습니다.
Z80을 이용한 LCD 전광판회로
작품 구성 및 동작
○ 작품 구성
전원회로
각각의 소자들은 5V전원이 필요하므로 DC짹을 사용하여 아답타로 전원을 공급하였습니다.
클럭회로
CPU가 돌아가기 위해서는 몇가지 기본적인 환경을 만들어 주어야 한다. 그중에 클럭은 핵심요건으로 CPU의 동작속도를 결정한다. 여기서는 4MHz 오실레이터를 사용하여 클럭회로를 구성하였습니다.
리셋회로
리셋회로 부분은 저항 10kΩ와 콘덴서 10uF를 사용하였습니다. 저항과 콘덴서의 값은 약간의 변동이 가능합니다. 그리고 Z-80은 최소한 3clock동안 low를 유지해야만 reset되게 되어 있습니다. 이 reset 시간을 유지하게 하는 것이 저항콘덴서입니다.
메모리
롬은 32K byte인 27C256을 사용하였고 롬과 램을 구별하기 위하여 게이트를 사용하여 디코드 하였습니다. 롬은 0000H부터 7FFFH까지 디코딩하였고 램은 8000H부터 FFFFH까지 디코딩 하였습니다. 하지만 실제로 사용한 램은 약 2K byte이므로 87FFH까지만 쓰이게 됩니다.
■ 동작 : Two Line LCD에 윗줄에는 ‘ '
문자가 아랫줄에는 ’HAPPY CHRISTMAS & HAPPY NEW YEAR'라고 왼쪽으로 이동 하는 작품입니다.
■ 응용분야
LCD대신에 도트매트릭스와 일부 회로를 첨가해서 실제 상업적으로 쓰이는 LED전광판으로 사용이 가능합니다.
PROGRAM LIST
ORG 0000H ; 0000번지부터 시작한다는 것을 의미
; PPI 8255
PPI_0 EQU 00H ; 지정(초기화)
PPI_1 EQU 01H ; (프로그램 중에 PPI_0으로 써 있으면 그것은 00번
PPI_2 EQU 02H ; 지와 같다는 것을 의미)
PPI_C EQU 03H
; LCD
LCD_C EQU 90H
LCD_D EQU 91H
ST EQU 8700H ; 스택 포인터
LD B,0 ; 0H를 A레지스터에 전송
DJNZ $ ; 반복 점프 명령
JP START ; START번지로 점프하라.
ORG 1000H
START:
LD SP,ST ; STACK POINTER
DI
CALL LCD_INIT ; 점프하라.
CALL DELAYL0
CALL LOGO
MAIN:
LD A,80H ; ALL PORT OUTPUT
OUT (PPI_C),A ; A 레지스터의 내용을 PPL_C에 출력하라.
CALL DELAYL0
LD A,18H ; SHIFT LEFT
OUT (LCD_C),A
CALL DELAYL0
JP MAIN
LOGO:
CALL LCD_0L
LD DE,LOGO_0
CALL LCD_STRING
CALL LCD_1L
LD DE,LOGO_1
CALL LCD_STRING
RET ; 현재 실행중인 서브루틴에서 원래의 프로그램으로 되돌아가라.
LCD_INIT:
PUSH AF ; 레지스터에서 스택으로 전송
CALL DELAY
LD A,30H ; FUNCTION SET ( DATA BIT = 8 )
OUT (LCD_C),A
CALL DELAY
LD A,30H ; FUNCTION SET ( DATA BIT = 8 )
OUT (LCD_C),A
CALL DELAYL1
LD A,30H ; FUNCTION SET ( DATA BIT = 8 )
OUT (LCD_C),A
CALL DELAYL1
LD A,38H ; FUNCTION SET ( 5*7 1/16)
OUT (LCD_C),A
CALL DELAYL1
LD A,0CH ; DISPLAY ON, CURSOR OFF, CURSOR BLINK
OUT (LCD_C),A
CALL DELAYL1
LD A,06H ; ADD + 1, RIGHT, NOT SHIFT
OUT (LCD_C),A
CALL DELAYL1
LD A,01H ; SET LOCATION 0,0
OUT (LCD_C),A
CALL DELAYL1
POP AF ; 스택에서 레지스터에 전송
RET
LCD_CHAR:
OUT (LCD_C),A
CALL DELAYL0
RET
LCD_STRING:
PUSH AF
LCD_STR:
LD A,(DE)
CP 0
JP Z,STR_END
CALL LCD_CHAR
INC DE
JP LCD_STR
STR_END:
POP AF
RET
LCD_0L:
PUSH AF
LD A,80H
OUT (LCD_C),A
CALL DELAY
POP AF
RET
LCD_1L:
PUSH AF
LD A,0C0H
OUT (LCD_C),A
CALL DELAY
POP AF
RET
DELAY:
PUSH AF
PUSH HL
LD HL,08000H
DELAY_1:
DEC HL
LD A,L
CP 0 ; 비교하라.
JP NZ,DELAY_1
LD A,H
CP 0
JP NZ,DELAY_1
POP HL
POP AF
RET
DELAYL0:
PUSH AF
PUSH HL
LD HL,4000H
DELAYL01:
DEC HL
LD A,L
CP 0
JP NZ,DELAYL01
LD A,H
CP 0
JP NZ,DELAYL01
POP HL
POP AF
RET
DELAYL1:
PUSH AF
LD A,0FFH
DELAYL11:
DEC A
JP NZ,DELAYL11
POP AF
RET
LOGO_0:
DB ' '.0
LOGO_1: DB 'HAPPY CHRISHMAS & HAPPY NEW YEAR'.0
END
-I/O의 장치
I/O는 말 그대로 Input, Output입니다. 저희가 생각할 수 있는 범위에서 입력 장치로는 키보드, 스위치, 등이 있습니다. 출력으로는 저희가 흔히 사용하는 LED, LCD, 스피커, 버져, 7 Segment 등이 있습니다.
Z80을 이용한 LCD 전광판회로
작품 구성 및 동작
○ 작품 구성
전원회로
각각의 소자들은 5V전원이 필요하므로 DC짹을 사용하여 아답타로 전원을 공급하였습니다.
클럭회로
CPU가 돌아가기 위해서는 몇가지 기본적인 환경을 만들어 주어야 한다. 그중에 클럭은 핵심요건으로 CPU의 동작속도를 결정한다. 여기서는 4MHz 오실레이터를 사용하여 클럭회로를 구성하였습니다.
리셋회로
리셋회로 부분은 저항 10kΩ와 콘덴서 10uF를 사용하였습니다. 저항과 콘덴서의 값은 약간의 변동이 가능합니다. 그리고 Z-80은 최소한 3clock동안 low를 유지해야만 reset되게 되어 있습니다. 이 reset 시간을 유지하게 하는 것이 저항콘덴서입니다.
메모리
롬은 32K byte인 27C256을 사용하였고 롬과 램을 구별하기 위하여 게이트를 사용하여 디코드 하였습니다. 롬은 0000H부터 7FFFH까지 디코딩하였고 램은 8000H부터 FFFFH까지 디코딩 하였습니다. 하지만 실제로 사용한 램은 약 2K byte이므로 87FFH까지만 쓰이게 됩니다.
■ 동작 : Two Line LCD에 윗줄에는 ‘ '
문자가 아랫줄에는 ’HAPPY CHRISTMAS & HAPPY NEW YEAR'라고 왼쪽으로 이동 하는 작품입니다.
■ 응용분야
LCD대신에 도트매트릭스와 일부 회로를 첨가해서 실제 상업적으로 쓰이는 LED전광판으로 사용이 가능합니다.
PROGRAM LIST
ORG 0000H ; 0000번지부터 시작한다는 것을 의미
; PPI 8255
PPI_0 EQU 00H ; 지정(초기화)
PPI_1 EQU 01H ; (프로그램 중에 PPI_0으로 써 있으면 그것은 00번
PPI_2 EQU 02H ; 지와 같다는 것을 의미)
PPI_C EQU 03H
; LCD
LCD_C EQU 90H
LCD_D EQU 91H
ST EQU 8700H ; 스택 포인터
LD B,0 ; 0H를 A레지스터에 전송
DJNZ $ ; 반복 점프 명령
JP START ; START번지로 점프하라.
ORG 1000H
START:
LD SP,ST ; STACK POINTER
DI
CALL LCD_INIT ; 점프하라.
CALL DELAYL0
CALL LOGO
MAIN:
LD A,80H ; ALL PORT OUTPUT
OUT (PPI_C),A ; A 레지스터의 내용을 PPL_C에 출력하라.
CALL DELAYL0
LD A,18H ; SHIFT LEFT
OUT (LCD_C),A
CALL DELAYL0
JP MAIN
LOGO:
CALL LCD_0L
LD DE,LOGO_0
CALL LCD_STRING
CALL LCD_1L
LD DE,LOGO_1
CALL LCD_STRING
RET ; 현재 실행중인 서브루틴에서 원래의 프로그램으로 되돌아가라.
LCD_INIT:
PUSH AF ; 레지스터에서 스택으로 전송
CALL DELAY
LD A,30H ; FUNCTION SET ( DATA BIT = 8 )
OUT (LCD_C),A
CALL DELAY
LD A,30H ; FUNCTION SET ( DATA BIT = 8 )
OUT (LCD_C),A
CALL DELAYL1
LD A,30H ; FUNCTION SET ( DATA BIT = 8 )
OUT (LCD_C),A
CALL DELAYL1
LD A,38H ; FUNCTION SET ( 5*7 1/16)
OUT (LCD_C),A
CALL DELAYL1
LD A,0CH ; DISPLAY ON, CURSOR OFF, CURSOR BLINK
OUT (LCD_C),A
CALL DELAYL1
LD A,06H ; ADD + 1, RIGHT, NOT SHIFT
OUT (LCD_C),A
CALL DELAYL1
LD A,01H ; SET LOCATION 0,0
OUT (LCD_C),A
CALL DELAYL1
POP AF ; 스택에서 레지스터에 전송
RET
LCD_CHAR:
OUT (LCD_C),A
CALL DELAYL0
RET
LCD_STRING:
PUSH AF
LCD_STR:
LD A,(DE)
CP 0
JP Z,STR_END
CALL LCD_CHAR
INC DE
JP LCD_STR
STR_END:
POP AF
RET
LCD_0L:
PUSH AF
LD A,80H
OUT (LCD_C),A
CALL DELAY
POP AF
RET
LCD_1L:
PUSH AF
LD A,0C0H
OUT (LCD_C),A
CALL DELAY
POP AF
RET
DELAY:
PUSH AF
PUSH HL
LD HL,08000H
DELAY_1:
DEC HL
LD A,L
CP 0 ; 비교하라.
JP NZ,DELAY_1
LD A,H
CP 0
JP NZ,DELAY_1
POP HL
POP AF
RET
DELAYL0:
PUSH AF
PUSH HL
LD HL,4000H
DELAYL01:
DEC HL
LD A,L
CP 0
JP NZ,DELAYL01
LD A,H
CP 0
JP NZ,DELAYL01
POP HL
POP AF
RET
DELAYL1:
PUSH AF
LD A,0FFH
DELAYL11:
DEC A
JP NZ,DELAYL11
POP AF
RET
LOGO_0:
DB ' '.0
LOGO_1: DB 'HAPPY CHRISHMAS & HAPPY NEW YEAR'.0
END
키워드
추천자료
- `직렬 회로 실험` 실험보고서
- [생물학실험]발효(생물학실험보고서)
- 고체의 열팽창 실험 실험보고서
- 녹는점 측정 실험보고서 (일반화학 실험)
- 카페인의 추출과 분리 실험보고서 (대학화학 실험)
- 전자공학실험 LC발진기(하틀리,콜피츠) 실험보고서
- [생물학 실험보고서] 수용성세포 (Competent cell) 준비실험
- 실험2-3_자기력 측정(전류천칭)실험보고서
- [일반물리실험 2 실험보고서] 등전위선 측정
- 물리실험 - 구면의 곡률반지름 측정 실험보고서 ( 곡률반지름, 구면계 )
- [기초회로실험] floyd-옴의 법칙 실험보고서
- [정역학 실험] 포사체 운동 실험보고서
- [화학실험] 비중측정 실험보고서 (specific gravity test)
- 영양학실험_GOT, GPT (간독성) 측정 실험보고서