10월, 2018의 게시물 표시

PLC_96번_타이머응용

이미지
1. x0버튼 off되고 2초 후에 y0이 점등 2. y0 3초 on-4초 off-1초 on - 4초 off 3. y0 점등 2초 후에 y1 점등되고 3초 점등 후 1초 간격으로 2회 점멸 4. reset버튼 x1 입력되기 전까지 y0,y0 출력은 반복된다.

PLC_95번_타이머응용

이미지
1. X0버튼을 2번 on할 때, Y1점등. 2초 후에 ㅛ0 3초간 점등 2. Y1은 3-3-1-1-1초 on 3. Y1의 3번째 1초 때 Y2 1초 on 4. Reset버튼 X2 입력되기 전까지 Y0,Y1,Y2 출력은 반복된다.

PLC_94번_타이머 응용

이미지
1. x0버튼을 2번 눌렀다 떼면, Y0가 점등되고 1초 후에 y1이 점등 2. y0은 3초 후에 소등되는 동시에 y1도 소등되어 1초 간격으로 2회 점멸 3. y1이 2회 소등되고 1초 후에 y2가 1초동안 점등 4. reset 버튼 x1 입력되기 전까지 y0,y01,y2 출력은 반복된다.

PLC_93번_타이머 응용

이미지
1. X0 입력과 동ㅅ에 Y0 5초간 on후 off 2. y1은 y0점등 4초후 2초간 on하고 1초 간격으로 2회 점멸 3. y1이 2회 점멸하고 소등되는 순간 y2가 1초 동안 점등 4. reset버튼 x1 입력되기 전까지 y0,y1,y2 출력은 반복된다.

PLC_92번_타이머 응용

이미지
1. X0 버튼을 눌러다 떼면, Y0와 Y1이 2초 간격으로 플리커 동작한다. 2. X1을 눌렀다 떼면 Y0,Y1의 플리커 동작을 정지하고 Y2가 점등된다. 3. X0버튼과 X1버튼을 입력하면 동작은 반복된다. (후입력) 4. X2를 ON하면 Y2가 소등된다.

PLC_91_플리커 응용회로

이미지
1. X0 OFF 될 때 Y0 1초 간격으로 플리커 시작 2. Y2 램프는 총 5회 점멸 후 OFF 3. Y0 두 번째 플리커 될 때 Y1 1초간 동작 후 OFF, 5초 후 지속 점등(ON) 4. X1 입력과 동시에 전체 OFF 및 RESET

2개의 Matrix를 이용한 숫자 슬라이드(ATmega128)

이미지
전의 포스트에서 숫자를 슬라이드 하여 오른쪽에서 왼쪽으로 흘러가는 동작을 구현하도록 만들었다 이번의 코드는 하나의 도트 매트릭스가 아닌 2개의 매트릭스를 연결하여 이동하도록 구현하였다. 1) 회로도 2) 코드 #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int num[10][8][2]={ {{0x18,0xfe},{0x24,0xfd},{0x24,0xfb},{0x24,0xf7},{0x24,0xef},{0x24,0xdf},{0x24,0xbf},{0x18,0x7f}}, {{0x10,0xfe},{0x18,0xfd},{0x14,0xfb},{0x10,0xf7},{0x10,0xef},{0x10,0xdf},{0x10,0xbf},{0x3c,0x7f}}, {{0x00,0xfe},{0x18,0xfd},{0x24,0xfb},{0x20,0xf7},{0x10,0xef},{0x08,0xdf},{0x04,0xbf},{0x3c,0x7f}}, {{0x1c,0xfe},{0x22,0xfd},{0x20,0xfb},{0x10,0xf7},{0x10,0xef},{0x20,0xdf},{0x22,0xbf},{0x1c,0x7f}}, {{0x20,0xfe},{0x30,0xfd},{0x28,0xfb},{0x24,0xf7},{0x22,0xef},{0xfe,0xdf},{0x20,0xbf},{0x20,0x7f}}, {{0x3e,0xfe},{0x02,0xfd},{0x02,0xfb},{0x1e,0xf7},{0x20,0xef},{0x20,0xdf},{0x22,0xbf},{0x1c,0x7f}}, {{0x18,0xfe},{0x24,0xfd},{0x04,0xfb},{0x04,0xf7},{0x1c,0xef},{0x24,0xdf},{0x24,0xbf},{0x18,0x7f}}, {{0x3e,0xfe},{0x20,0xfd},

Atmega128로 도트 매트릭스 숫자 표현(slide)

이미지
저번 포스트에서 숫자를 매 일정 시간마다 바꾸는게 아닌 연결되어 흐르도록 설계 1) 회로도 2) 코드 #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int num[10][8][8]={ {{0x18,0xfe},{0x24,0xfd},{0x24,0xfb},{0x24,0xf7},{0x24,0xef},{0x24,0xdf},{0x24,0xbf},{0x18,0x7f}}, {{0x10,0xfe},{0x18,0xfd},{0x14,0xfb},{0x10,0xf7},{0x10,0xef},{0x10,0xdf},{0x10,0xbf},{0x3c,0x7f}}, {{0x00,0xfe},{0x18,0xfd},{0x24,0xfb},{0x20,0xf7},{0x10,0xef},{0x08,0xdf},{0x04,0xbf},{0x3c,0x7f}}, {{0x1c,0xfe},{0x22,0xfd},{0x20,0xfb},{0x10,0xf7},{0x10,0xef},{0x20,0xdf},{0x22,0xbf},{0x1c,0x7f}}, {{0x20,0xfe},{0x30,0xfd},{0x28,0xfb},{0x24,0xf7},{0x22,0xef},{0xfe,0xdf},{0x20,0xbf},{0x20,0x7f}}, {{0x3e,0xfe},{0x02,0xfd},{0x02,0xfb},{0x1e,0xf7},{0x20,0xef},{0x20,0xdf},{0x22,0xbf},{0x1c,0x7f}}, {{0x18,0xfe},{0x24,0xfd},{0x04,0xfb},{0x04,0xf7},{0x1c,0xef},{0x24,0xdf},{0x24,0xbf},{0x18,0x7f}}, {{0x3e,0xfe},{0x20,0xfd},{0x20,0xfb},{0x10,0xf7},{0x08,0xef},{0x08,0xdf},{0x08,0xbf},{0x

AVR과 Proteus로 7segment 작동

이미지
AVR과 Proteus로 코드와 회로를 작성하여 각 버튼을 누룰시 그에 맞는 번호를 7segment에 표시하도록 구성 0~F 까지의 숫자 표현(16진수) 1) 회로도 2) 코드 #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int main(void){ DDRE=0xf0; DDRB=0xff; PORTB=0b011111111; while(1){ PORTE= 1<<PE7 | 1<<PE6 | 1<<PE5;// | 1<<PE4; if(!(PORTE & 1<<PE4) && !(PINE & 1<<PE3)) PORTB=0b01000000;//0 else if(!(PORTE & 1<<PE4) && !(PINE & 1<<PE2)) PORTB=0b01111001;//1 else if(!(PORTE & 1<<PE4) && !(PINE & 1<<PE1)) PORTB=0b00100100;//2 else if(!(PORTE & 1<<PE4) && !(PINE & 1<<PE0)) PORTB=0b00110000;//3 _delay_ms(1); PORTE= 1<<PE7 | 1<<PE6 | 1<<PE4; if(!(PORTE & 1<<PE5) && !(PINE & 1<<PE3)) PORTB=0b00011001;//4 else if(!(PORTE & 1<<PE5) && !(PINE & 1<

Atmega128로 도트 매트릭스 숫자 표현

이미지
1초마다 0~9까지의 숫자를 차례대로 표현 1) 디자인 2) 코드 #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int num0[8][8]={{0x18,0xfe},{0x24,0xfd},{0x24,0xfb},{0x24,0xf7},{0x24,0xef}, {0x24,0xdf},{0x24,0xbf},{0x18,0x7f}}; int num1[8][8]={{0x10,0xfe},{0x18,0xfd},{0x14,0xfb},{0x10,0xf7},{0x10,0xef}, {0x10,0xdf},{0x10,0xbf},{0x3c,0x7f}}; int num2[8][8]={{0x00,0xfe},{0x18,0xfd},{0x24,0xfb},{0x20,0xf7},{0x10,0xef}, {0x08,0xdf},{0x04,0xbf},{0x3c,0x7f}}; int num3[8][8]={{0x1c,0xfe},{0x22,0xfd},{0x20,0xfb},{0x10,0xf7},{0x10,0xef}, {0x20,0xdf},{0x22,0xbf},{0x1c,0x7f}}; int num4[8][8]={{0x20,0xfe},{0x30,0xfd},{0x28,0xfb},{0x24,0xf7},{0x22,0xef}, {0xfe,0xdf},{0x20,0xbf},{0x20,0x7f}}; int num5[8][8]={{0x3e,0xfe},{0x02,0xfd},{0x02,0xfb},{0x1e,0xf7},{0x20,0xef}, {0x20,0xdf},{0x22,0xbf},{0x1c,0x7f}}; int num6[8][8]={{0x18,0xfe},{0x24,0xfd},{0x04,0xfb},{0x04,0xf7},{0x1c,0xef}, {0x2

PLC_89번_카운터 응용

이미지

PLC_90번_카운터와 TP 응용

이미지

PLC_88번_카운터 응용 회로

이미지

PLC_87번_타이머 응용회로

이미지

PLC_86번_타이머 응용 회로

이미지

PLC_85번_버튼 입력시 순차 점등

이미지

PLC_84번_카운터 응용회로

이미지

PLC_83번_응용회로

이미지

PLC_82번_응용회로

이미지

PLC_81번_CTUD

이미지

PLC_80번_가감산 카운터 사용

이미지

PLC_79번_타이머 응용

이미지