7 – 세그먼트 동작 시키기 (0~9, A, B, C, D, E, F 표시하기) 제 7 장 7 – 세그먼트 동작 시키기 (0~9, A, B, C, D, E, F 표시하기)
7.1 7-세그먼트 구조이해 및 동작 (1) 7-세그먼트는 8개의 LED소자를 배열해 놓은 것이다. 7.1 7-세그먼트 구조이해 및 동작 (1) 7-세그먼트는 8개의 LED소자를 배열해 놓은 것이다. 8개의 LED중 7개를 숫자구성으로 사용함으로 “7-세그먼트”라 한다. 각각의 글자를 구성하는 LED를 점등시켜서 글자를 표현한다. [그림 7-1] 오른쪽의 표를 DB로 만들어 불러와서 글자를 표현한다. 제7장 7-세그먼트 동작 시키기
7.1 7-세그먼트 구조이해 및 동작 (2) [ 그림 7-1 ] 제7장 7-세그먼트 동작 시키기
7.1 7-세그먼트 구조이해 및 동작 (3) 출력포트 – #8000H 번지를 호출하면 선택 8000H 번지 선택 7.1 7-세그먼트 구조이해 및 동작 (3) 출력포트 – #8000H 번지를 호출하면 선택 8000H 번지 선택 제7장 7-세그먼트 동작 시키기
7.1 7-세그먼트 구조이해 및 동작 (4) 7-세그먼트의 선택신호 제7장 7-세그먼트 동작 시키기
7.1 7-세그먼트 구조이해 및 동작 (5) 8255에서 출력되는 전류가 GND로 빠지는 부분에 PNP형 TR을 사용하여 스위칭 한다. 제7장 7-세그먼트 동작 시키기
7.1 7-세그먼트 구조이해 및 동작 (6) 제7장 7-세그먼트 동작 시키기
7.1 7-세그먼트 구조이해 및 동작 (7) TR은 에미터(E), 베이스(B), 컬렉터(C)로 구성된다 7.1 7-세그먼트 구조이해 및 동작 (7) TR은 에미터(E), 베이스(B), 컬렉터(C)로 구성된다 TR은 PNP형과 NPN형이 있으며, 베이스 전압에 P형은 (+), N형은 (-)를 걸어주면 순방향 전압이 되어서 TR이 ON 된다 PNP형 TR은 베이스가 N형이므로, - 또는 LOW (0V)를 인가해야 TR이 ON되어 전류를 보낸다. 제7장 7-세그먼트 동작 시키기
7.1 7-세그먼트 구조이해 및 동작 (8) 8255 포트 B는 각각 세그먼트의 TR에 연결되어있다. 7.1 7-세그먼트 구조이해 및 동작 (8) 8255 포트 B는 각각 세그먼트의 TR에 연결되어있다. 이 포트 에 LOW를 걸어줌으로 세그먼트를ON 시킬 수 있다. 1번 7-세그먼트 2번 7-세그먼트 3번 7-세그먼트 4번 7-세그먼트 제7장 7-세그먼트 동작 시키기
7.2 전광판의 원리 이해 및 여러 개의 7-세그먼트 동작 (1) 7.2 전광판의 원리 이해 및 여러 개의 7-세그먼트 동작 (1) 전광판의 원리 : 눈이 인식하지 못하는 시간 간격으로 순차적으로 LED를 점등시키면 전부 점등이 된 것처럼 보이는 데서 착안 모든 세그먼트는 같은 데이터라인을 가지고 있음으로 세그먼트들은 같은 값을 가진다. 특정한 데이터를 주고 특정한 세그먼트만 ON 위의 실행을 일정간격 딜레이로 반복하면 모든 세그먼트가 동시에 다른 값들을 나타내는 것 처럼 보인다. 제7장 7-세그먼트 동작 시키기
7.2 전광판의 원리 이해 및 여러 개의 7-세그먼트 동작 (2) 7.2 전광판의 원리 이해 및 여러 개의 7-세그먼트 동작 (2) 제7장 7-세그먼트 동작 시키기
7.2 전광판의 원리 이해 및 여러 개의 7-세그먼트 동작 (3) 7.2 전광판의 원리 이해 및 여러 개의 7-세그먼트 동작 (3) 1mS동안 ON 1mS동안 ON 1mS동안 ON 1mS동안 ON 제7장 7-세그먼트 동작 시키기
[실험] 1. 숫자 0~9, A~F 까지 DB로 만들고, 세그먼트에 0, 1, 2, 3 을 표시 (1) 제7장 7-세그먼트 동작 시키기
1. 숫자 0~9, A~F 까지 DB로 만들고, 세그먼트에 0, 1, 2, 3 을 표시 (2) 제7장 7-세그먼트 동작 시키기
숫자 0~9, A~F 까지 DB로 만들고, 세그먼트에 0, 1, 2, 3 을 표시 (3) 시작 ↓ 변수(R0),8255 초기화 LED_DB에서 1번 세그먼트의 값을 가져온다 8255 포트 A로 출력 SEG1 포트 LOW 1ms 딜레이 SEG1 포트 HIGH → 2,3,4번 세그먼트도 위와같은 방법으로 제7장 7-세그먼트 동작 시키기
숫자 0~9, A~F 까지 DB로 만들고, 세그먼트에 0, 1, 2, 3 을 표시 (4) [ 기본 프로그램 설명(1/3) ] ORG 0000H ;시작번지를 0000번지로 한다 START: JMP INITIAL ;8051 초기 데이터(고정) ;; ORG 0035H ;프로그램 시작번지(35번지) INITIAL: MOV SP,#5FH ;스택포인터를 5FH로 잡는다 MOV IE,#00000000B ;인터럽트 모두 DISABLE INIT_8255: MOV DPTR,#8003H ;8255의 컨트롤워드 입력 MOV A,#80H ;포트A,B,C 모두 출력 MOVX @DPTR,A ;8255에 입력한다. 제7장 7-세그먼트 동작 시키기
숫자 0~9, A~F 까지 DB로 만들고, 세그먼트에 0, 1, 2, 3 을 표시 (5) [ 기본 프로그램 설명(2/3) ] MAIN: MOV A,#00H ;첫 번째 값.. MOV DPTR,#LED_DB MOVC A,@A+DPTR ;DB 에서 값을 가져온다. MOV DPTR,#8000H ;8255의 포트A로 출력한다 MOVX @DPTR,A ;7-세그먼트 값 출력… MOV DPTR,#8001H ;8255의 포트 B 선택 MOV A,#11111110B ;SEG 1 선택(변경부분) MOVX @DPTR,A CALL D_1MS ;1mS 타임 딜레이… ;; MOV A,#01H ;두 번째 값.. ;SEG2 선택하여 위의 BOX 의 내용을 반복한다 MOV A,#02H ;세 번째 값.. ;SEG3 선택하여 위의 BOX 의 내용을 반복한다 MOV A,#03H ;네 번째 값.. ;SEG4 선택하여 위의 BOX 의 내용을 반복한다 JMP MAIN 제7장 7-세그먼트 동작 시키기
숫자 0~9, A~F 까지 DB로 만들고, 세그먼트에 0, 1, 2, 3 을 표시 (6) [ 기본 프로그램 설명(3/3) ] LED_DB: ; 레이블 (DB의 위치) DB 11101110B ; 0 DB 00101000B ; 1 DB 11001101B ; 2 DB 01101101B ; 3 DB 00101011B ; 4 DB 01100111B ; 5 DB 11100111B ; 6 DB 00101110B ; 7 DB 11101111B ; 8 DB 00101111B ; 9 DB 10101111B ; A DB 11100011B ; B DB 11000110B ; C DB 11101001B ; D DB 11000111B ; E DB 10000111B ; F ;; $DELAY.INC ;시간지연함수 포함 END ;프로그램 종료 제7장 7-세그먼트 동작 시키기