가. 도트매트릭스제어하기 단일 LED와는다르게도트매트릭스를구동시는구동전류가프로세서에서출력되는전류보다사용량을더많이필요하기때문에 TTL 계열의 IC로구동시키기에는무리가따른다. 이러한문제를해결하기위해서사용전압, 전류정격이높은달링턴트랜지스터가어레이형태로들어있는 ULN2803을

Similar documents
인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

lecture4(6.범용IO).hwp

슬라이드 1

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

59

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

ATmega128

PowerPoint 프레젠테이션

[8051] 강의자료.PDF

2007백서-001-특집

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

00목차

(291)본문7

01....b

PowerPoint 프레젠테이션

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

Microsoft Word doc

목차 1. 키패드 (KeyPAD) 2. KeyPAD 를이용한비밀번호입력기

PowerPoint 프레젠테이션

시프트 레지스터 Shift Resistor 자, 이제 LED MATRIX 8x8 Board를 마이크로컨트롤러에 연결된 3개의 선으 로 제어해 보자. 이는 마이크로컨트롤러의 포트를 확장함과 동시에 프로그램 으로 제어를 더 쉽게 한다는 장점이 있다. 물론 포트를 절약하게

1. 제품소개 1.1 제품소개 < 그림 1.1> 도트매트릭스모듈 하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 16x16 도트매트릭스모듈입니다. 또한당사 AVR, PIC, ARM(STM32F) 개발보드와 1P 점퍼클립케이블을이용하여연동이가능하

Microsoft PowerPoint - es-arduino-lecture-03

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

K&R2 Reference Manual 번역본

Formatvorlage für Arbeitsanweisungen

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

<4D F736F F F696E74202D20322EB3EDB8AEC7A5C7F6B0FA20B3EDB8AEBCF6C7D02E >

Microsoft PowerPoint - lab14.pptx

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]

Formatvorlage für Arbeitsanweisungen

UART.h #ifndef _UART_H_ #define _UART_H_ #define DIR_TXD #define DIR_RXD sbi(portd,4) cbi(portd,4) #define CPU_CLOCK_HZ UL UART PORT1 void UAR

Microsoft PowerPoint - 제3장 GPIO 입출력 제어 (HBE-MCU-Multi AVR)

Microsoft PowerPoint - lab15.pptx

Section 03 트랜지스터를이용한스위칭동작 16/45 트랜지스터의직류특성 활성 직류상황에서전류 I C 는전류 I B 보다 h FE 배만큼더많은전류가흐름» 베이스와이미터가순방향으로바이어스» 컬렉터와베이스가역방향으로바이어스 차단 만일 I B 가 0[A] 이면컬렉터전류

2009년2학기 임베디드시스템 응용

히스토그램구하기 사전준비 : 히스토그램을저장할메모리가필요함 필요한메모리개수 à 전체영상의픽셀은그값이 0 ~ 255이므로 256 개의메모리필요함 영상을구성하는픽셀의개수는매우크므로메모리형식은 unsigned long으로해야함 ( unsigned 란 +/- 를고려하지않는다는

Java

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

인터럽트 * 인터럽트처리메커니즘 ATmega128 인터럽트 2

Microsoft Word - AVR을 이용한 DotMatrix

DTS-L300-V2 Specification Page 1 of 14 비접촉온도측정 원거리온도측정 High Accuracy Digital Interface : SPI Arduino UNO 예제코드제공 제품설명 DTS-L300-V2는접촉을하지않고원하는물체표면에온도를 50

Microsoft Word - logic2005.doc

, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float

Microsoft PowerPoint - lab16.pptx

// 변수선언 unsigned char i; unsigned char FONT[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xD8, 0x80, 0x98}; //PORTA 를출력으로설정하고초기값은모두 0 PORTA = 0x00; DD

1. 제품소개 그림. 1.1 이란? DC 모터구동시하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 입니다. 또한당사 DEV 보드와 1P 점퍼클립케이블을이용하여연동이가능하며, 산업용 DC 모터의정회전, 역회전구동및속도제어시유용하게사용되는 입니다.


<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074>

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Microsoft PowerPoint - [2009] 02.pptx

Infinity(∞) Strategy

슬라이드 1

Chapter #01 Subject

untitled

Microsoft PowerPoint - 08-MP-4-interrupt

PowerPoint 프레젠테이션

Page 2 of 21 Absolute Maximum Ratings Absolute Maximum Rating 값을초과하는조건에서 DTPML을동작시킬경우치명적인손상을 가할수있습니다. Parameter Symbol Conditions min Typ Max Unit Sup

PowerPoint 프레젠테이션

01_피부과Part-01

Page 2 of 18 Absolute Maximum Ratings Absolute Maximum Rating 값을초과하는조건에서 DTPM을동작시킬경우치명적인손상을 가할수있습니다. Parameter Symbol Conditions min Typ Max Unit Supp

02.Create a shellcode that executes "/bin/sh" Excuse the ads! We need some help to keep our site up. List Create a shellcode that executes "/bin/sh" C

Microsoft Word - readme.doc

chap7.key

중간고사

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>

PowerPoint 프레젠테이션

Microsoft Word - KPMC-400,401 SW 사용 설명서

Microsoft PowerPoint - 08-MP-8-ADC

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Row 0x0: UniKS-US-H 0

歯superimp.PDF

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

untitled

Page 2 of 20 Absolute Maximum Ratings - Supply voltage : 3.5V - Operating Temperature Range : -20 ~ 70 - Storage Temperature Range : -40 ~ 85 위조건을넘어서게

PowerPoint 프레젠테이션

Microsoft PowerPoint - 7장 배열 pptx

API 매뉴얼

1229_¶È¶ÈÇÑÀÎÁöÇൿġ·áº»¹®.PDF

Microsoft Word - AM-2560PRO_V01 메뉴얼.doc

UI TASK & KEY EVENT

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

<4D F736F F F696E74202D2037C0E55FC0CCC0C0C7F55FBFCFBCBA205BC8A3C8AF20B8F0B5E55D>

H3250_Wi-Fi_E.book


정보보안 개론과 실습:네트워크

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

Mango-E-Toi Board Developer Manual

PowerPoint Presentation

Page 2 of 27 Absolute Maximum Ratings - Supply voltage : 3.5V - Operating Temperature Range : -20 ~ 70 - Storage Temperature Range : -40 ~ 85 위조건을넘어서게

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

AN_0005B_UART

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Transcription:

CHAPTER 5 도트매트릭스제어하기 가. 도트매트릭스제어하기

가. 도트매트릭스제어하기 단일 LED와는다르게도트매트릭스를구동시는구동전류가프로세서에서출력되는전류보다사용량을더많이필요하기때문에 TTL 계열의 IC로구동시키기에는무리가따른다. 이러한문제를해결하기위해서사용전압, 전류정격이높은달링턴트랜지스터가어레이형태로들어있는 ULN2803을이용한다. 이 IC에는 8개의 NPN형의달링턴회로가들어있고인터페이스레벨은 TTL, CMOS 등의모든장치와연결가능하다. 달링턴회로란하나의트랜지스터의이미터전류가또다른트랜지스터의베이스전류가되도록접속하고두개의트랜지스터의 collector를같은부하에접속하도록구현한것으로특징은전류증폭으로전류증폭률이각개의값에거의곱이된다. 그림 4.23에서전류허용량을늘리기위해사용하며, 1번핀에 HIGH를주면아래그림처럼전류가이동하는것이다. High 1 12VDC [ 그림 4.23] ULN2803 Pin 구조 간단히설명하자면 ULN2803은 High-Current Darlington Arrays으로 sink driver이다. 입력을받는라인을통해전류를공통부로빼주는역할을하며주로사용하는곳은 LED의 + -극을동시에컨트롤해야하는경우에많이쓰인다. 회로에연결을하는경우출력방향에 LED의 -극에연결을한다. 그림 4.24와같이 A2982SLW의경우 ULN2803과사용용도는동일하며, 동작원리는반대로사용된다. GND 12VDC [ 그림 4.24] ULN2803 Pin 구조

2단원의구성중 CRX10의구조에서회로를참고하여보면이해가더욱쉽다. 아래실습을통하여도트매트릭스의사용방법과원리를이해하고넘어가도록한다. CRX10의도트매트릭스는 PORTA와 PORTC에연결되어있으며, 두개의포트에 High를입력하면좌표에따른 LED가켜지게된다. 1) 활용실습 Q : 4.8_ 도트매트릭스전체켜기실습 PORTA=0xFF; Q : 4.9_ 도트매트릭스전체끄기실습

PORTA=0xFF; PORTC=0x00; 참고 : 본과정의초반은학생들에게도트매트릭스의주소와 16진수의개념을돕기위해도트매트릭스의주소별 ON/OFF에대한반복학습을진행합니다. Q : 4.10_ 도트매트릭스 1번세로라인만켜기 PORTA=0x01; Q : 4.11_ 도트매트릭스 2 번세로라인만켜기

PORTA=0x02; Q : 4.12_ 도트매트릭스 3 번세로라인만켜기 PORTA=0x04;

Q : 4.13_ 도트매트릭스 4 번세로라인만켜기 PORTA=0x08; Q : 4.14_ 도트매트릭스 5 번세로라인만켜기 PORTA=0x10;

Q : 4.15_ 도트매트릭스 6 번세로라인만켜기 PORTA=0x20; Q : 4.16_ 도트매트릭스 7 번세로라인만켜기 PORTA=0x40;

Q : 4.17_ 도트매트릭스 8 번세로라인만켜기 PORTA=0x80; Q : 4.18_ 도트매트릭스 1 번가로라인만켜기

PORTA=0xFF; PORTC=0x01; Q : 4.19_ 도트매트릭스 2 번가로라인만켜기 PORTA=0xFF; PORTC=0x02; Q : 4.20_ 도트매트릭스 3 번가로라인만켜기

PORTA=0xFF; PORTC=0x04; Q : 4.21_ 도트매트릭스 4 번가로라인만켜기 PORTA=0xFF; PORTC=0x08; Q : 4.22_ 도트매트릭스 5 번가로라인만켜기

PORTA=0xFF; PORTC=0x10; Q : 4.23_ 도트매트릭스 6 번가로라인만켜기 PORTA=0xFF; PORTC=0x20;

Q : 4.24_ 도트매트릭스 7 번가로라인만켜기 PORTA=0xFF; PORTC=0x40; Q : 4.25_ 도트매트릭스 8 번가로라인만켜기 PORTA=0xFF; PORTC=0x80;

Q : 4.26_ 도트매트릭스세로방향으로 0x00 부터 0xff 라인까지깜박이며순차적 으로이동하기 void m_delay(unsigned int k) unsigned int i, j; for(i=0; i<2560; i++) for(j=0; j<k; j++); unsigned int cnt; for(cnt=0; cnt<8; cnt++) PORTA=0x01<<cnt; m_delay(50);

Q : 4.27_ 도트매트릭스의중심을기준으로영문 X 를만들어오른쪽으로회전시 키기 void m_delay(unsigned int k) unsigned int i, j; for(i=0; i<500; i++) for(j=0; j<k; j++); PORTA=0x81; PORTC=0x01; PORTA=0x42; PORTC=0x02; PORTA=0x24; PORTC=0x04; PORTA=0x18; PORTC=0x08; PORTA=0x18; PORTC=0x10; PORTA=0x24; PORTC=0x20;

PORTA=0x42; PORTC=0x40; PORTA=0x81; PORTC=0x80; m_delay(100); PORTA=0x10; PORTC=0x01; PORTA=0x10; PORTC=0x02; PORTA=0x10; PORTC=0x04; PORTA=0x10; PORTC=0x08; PORTA=0xFF; PORTC=0x10; PORTA=0x10; PORTC=0x20; PORTA=0x10; PORTC=0x40; PORTA=0x10; PORTC=0x80; m_delay(100);

Q : 4.28_ 도트매트릭스에 A 출력하기 void m_delay(unsigned int k) unsigned int i, j; for(i=0; i<500; i++) for(j=0; j<k; j++); PORTA=0x02; PORTC=0xFE; PORTA=0x04; PORTA=0x08; PORTC=0x1B; PORTA=0x10; PORTC=0x1B; PORTA=0x20; PORTA=0x40; PORTC=0xFE;

Q : 4.29_ 도트매트릭스에 A 출력하고한번씩깜박이게하기 void m_delay(unsigned int k) unsigned int i, j; for(i=0; i<500; i++) for(j=0; j<k; j++); PORTA=0x02; PORTC=0xFE; PORTA=0x04; PORTA=0x08; PORTC=0x1B; PORTA=0x10; PORTC=0x1B;

PORTA=0x20; PORTA=0x40; PORTC=0xFE; PORTA=0xFF; PORTC=0x00; m_delay(500); Q : 4.30_ 도트매트릭스에본인영문이니셜을한자씩출력하여아래에서위쪽 으로지나가게하기 #include<util/delay.h> #define dot_j 0 #define dot_h 1 #define dot_y 2 unsigned char ccc[8] = 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 ; unsigned char row[3][8] = 0x00, 0x70, 0xF0, 0xC0, 0xC0, 0xFF, 0x7E, 0x00, 0x00, 0xFF, 0xFE, 0x18, 0x18, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0x1E, 0xF8, 0xF8, 0x1F, 0x0E, 0x00; void shift(int n,int time) int w,v,l,i; unsigned char buf[8];

for(v=7;v>=1;v--) for(w=0;w<8;w++) buf[w]=row[n][w]<<v; for(l=0;l<time;l++) for(i=0;i<8;i++) PORTA=ccc[i]; PORTC=buf[i]; _delay_ms(2); for(v=0;v<8;v++) for(w=0;w<8;w++) buf[w]=row[n][w]>>v; for(l=0;l<time;l++) for(i=0;i<8;i++) PORTA=ccc[i]; PORTC=buf[i]; _delay_ms(2); shift(dot_j,50); shift(dot_h,50); shift(dot_y,50);

4.31_ 도트매트릭스에본인영문이니셜을한자씩출력하여아래에서위쪽 Q : 으로지나가게하면서 1 번에서 3 번까지의 LED 가오른쪽으로순차적으로 깜박이게하기 #include<util/delay.h> #define dot_j 0 #define dot_h 1 #define dot_y 2 unsigned char ccc[8] = 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 ; unsigned char row[3][8] = 0x00, 0x70, 0xF0, 0xC0, 0xC0, 0xFF, 0x7E, 0x00, 0x00, 0xFF, 0xFE, 0x18, 0x18, 0xFF, 0xFE, 0x00, 0x00, 0x0F, 0x1E, 0xF8, 0xF8, 0x1F, 0x0E, 0x00; void m_delay(unsigned int k) unsigned int i, j; for(i=0; i<2560; i++) for(j=0; j<k; j++); void shift(int n,int time) int w,v,l,i; unsigned char buf[8]; for(v=7;v>=1;v--) for(w=0;w<8;w++) buf[w]=row[n][w]<<v;

for(l=0;l<time;l++) for(i=0;i<8;i++) PORTA=ccc[i]; PORTC=buf[i]; _delay_ms(2); for(v=0;v<8;v++) for(w=0;w<8;w++) buf[w]=row[n][w]>>v; for(l=0;l<time;l++) for(i=0;i<8;i++) PORTA=ccc[i]; PORTC=buf[i]; _delay_ms(2); DDRE=0xFF; DDRB=0xFF; shift(dot_j,50); shift(dot_h,50); shift(dot_y,50); PORTB=0x80; PORTE=0x20; m_delay(100);

PORTB=0x90; PORTE=0xC0; m_delay(100); PORTB=0x10; PORTE=0x20; m_delay(100); Q : 4.32_ 도트매트릭스의첫째열만을이용하여자기이름 ( 영문 ) 쓰기 void m_delay(unsigned int k) unsigned int i, j; for(i=0; i<6000; i++) for(j=0; j<k; j++); PORTA=0x01; PORTC=0x00; PORTC=0x70; PORTC=0xF0;

PORTC=0xC0; PORTC=0x7E; PORTC=0x00; PORTC=0x00; PORTC=0xFE; PORTC=0x18; PORTC=0x18; PORTC=0xFE; PORTC=0x00; PORTC=0x00; PORTC=0x0F; PORTC=0x1E; PORTC=0xF8; PORTC=0xF8; PORTC=0x1F;

PORTC=0x0E; PORTC=0x00; 2) 응용문제 1 0 ~ 9 까지의숫자를순차적으로 Display 하는프로그램을구현하기