병렬포트를 이용한 LED 및

Download Report

Transcript 병렬포트를 이용한 LED 및

병렬포트(Parallel Port)를 이용한 LED
및
7-SEGMENT, SWITCH 제어
공주대학교 전자공학
전공
이승용
목
차
1. 회로부품(LED, 저항, SW)
2. 병렬포트(Parallel Port)의 구성
3. 제작 KIT 회로
4. 윈도우 화면 구성 및 기능
회로부품(LED, 저항)
회로부품(LED, 저항)
회로부품(LED, 저항)
병렬 포트(Parallel Port)의 구성
- 총 25개 PIN 으로 구성
- INPUT PIN 5개
( 10, 11, 12, 13, 15 )
- OUTPUT PIN 8개
( 2, 3, 4, 5, 6, 7, 8, 9 )
- I/O PIN(입출력 모두가능)
( 1, 14, 16, 17 )
- GROUND(접지) PIN
( 18 ~ 25 )
제작 KIT 회로
제작 KIT 회로도
2
3
4
5
LED 1
4
LED 2
9
LED 3
10
LED 4
15
PB1
8
PB2
7
LED 5
6
LED 6
13
11
PB4
c
d
e
6
5
g
8
9
b
f
7
LED 7
PB3
a
3
LED 8
19
Vcc
SWITCH Part
19
LED Part
7-SEGMENT Part
LED 8개, SWITCH 4개, 7-SEGMENT(+ COMMON) 및
25PIN Parallel port Connector(male)로 구성
윈도우 화면 구성 및 기능
윈도우 Block Diagram
윈도우 시작
CPrPortLEDSW() 생성자 호출
· 원의 위치를 나타내는 멤버변수 초기화
WM_PAINT MESSAGE 발생
· 윈도우에 원을 그림
· 병렬포트 초기화
윈도우 종료
프로그램 종료(button)
· OnClose() 함수 호출로 종료
WM_CLOSE MESSAGE 발생
· CPU 점유 반환(리소스 반환)
· 병렬포트 초기화
· Cdialog::OnClose() 호출로 종료
윈도우 화면 구성 및 기능
CHECK 상태에
LED가 점등(멸)된
다.
버튼을 누르면 기능에
따라 LED가 점등(멸)
점등(멸)순에 따라 CHECK
BOX도 CHECK
윈도우 Block Diagram
LED 점등
OnLed1() ~ OnLed8()(Check Box)
· Check Box Click 시 OnLedX()
멤버함수 호출
OnLshift () ~ OnAllon ()(Button)
· Button Click 시 기능에 맞는 OnXXXX
() 멤버함수 호출
· LEDCheckProc() 으로 값 전달
· LEDMessageProc()으로 값을 전달
LEDMessageProc ()
· 값을 전달 받아서 점멸되는 LED 번호
및 상태를 메시지 박스로 출력
· 병렬포트로 값 출력
· 병렬포트로 값 출력
LEDCheckProc ()
· 병렬포트로 출력되는 값을 이용해서
Check Box의 Check상태를 변경
윈도우 화면 구성 및 기능
Button Click 하면
버튼의 기능에 따라
원이 움직임
실시간 감시 Button을
Click하면 기판 상에
PB 1, 2, 3, 4를
눌러서 원을 움직임
윈도우 Block Diagram
원 이동하기
실시간 감시(Button)
· While Loop를 통해 계속 병렬포트
(0x379)를 읽어 들인 후 변화(PB1
~PB4를 눌렀을 경우)가 있으면
각 이동버튼들의 멤버함수들을 호출
OnUp () ~ Down ()(Button)
· Button Click 시 기능에 맞는 OnXXXX
() 멤버함수 호출
· 위치 값을 갖고 있는 변수에 위치값 변
경 후 재저장
· Invalidate () 함수 호출
If 조건문
TextOut ()
· 병렬포트(0x379)의 값을 화면에 출력.
- 강제적으로 WM_PAINT 발생
윈도우 화면 구성 및 기능
기판에 있는 7-Segment가
0~9까지 카운트
7-Segment 각 Led를
나타냄(기능 없음)
윈도우 Block Diagram
7-Segment 0~9 Count
On7SegCnt () (Button)
· Unsigned Char형의 10개 배열공간 생성
· 병렬 포트에 출력되어야 할 값들을 배열에 저장
· For loop를 통해서 병렬포트에 계속 출력
· 출력시 for loop가 빨리 돌기 때문에 Sleep (xxx) 함수로 Delay