AVR/Atmega128 강좌
AVR 예제2– 세븐 세그먼트
webnautes
2015. 3. 2. 01:10
반응형
잘그리지 못하지만 그려봤습니다..
Cathode 타입
Anode 타입
아래 표는 Anode의 경우를 나타낸 것입니다. 회로도에 연결시 반대로 했으면 보기 편할뻔 했네요
a | b | c | d | e | f | g | 2진수 | |
0 | LOW | LOW | LOW | LOW | LOW | LOW | HIGH | 0b01000000 |
1 | HIGH | LOW | LOW | HIGH | HIGH | HIGH | HIGH | 0b01111001 |
2 | LOW | LOW | HIGH | LOW | LOW | HIGH | LOW | 0b00100100 |
3 | LOW | LOW | LOW | LOW | HIGH | HIGH | LOW | 0b00110000 |
4 | HIGH | LOW | LOW | HIGH | HIGH | LOW | LOW | 0b00011001 |
5 | LOW | HIGH | LOW | LOW | HIGH | LOW | LOW | 0b00010010 |
6 | LOW | HIGH | LOW | LOW | LOW | LOW | LOW | 0b00000010 |
7 | LOW | LOW | LOW | HIGH | HIGH | LOW | HIGH | 0b01011000 |
8 | LOW | LOW | LOW | LOW | LOW | LOW | LOW | 0b00000000 |
9 | LOW | LOW | LOW | LOW | HIGH | LOW | LOW | 0b00010000 |
- /*
- * seven_segment.c
- *
- * Created: 2015-03-02 오전 12:41:25
- * Author: webnautes
- */
- #ifndef F_CPU
- #define F_CPU 16000000UL
- #endif
- #include <avr/io.h>
- #include <util/delay.h>
- int main(void)
- {
- //PORTD에서 0,1,2,3,4,5,6을 출력으로 설정
- DDRD = 0b01111111;
- while(1)
- {
- PORTD = 0b01000000; //0
- _delay_ms(1000); //1초 딜레이
- PORTD = 0b01111001; //1
- _delay_ms(1000); //1초 딜레이
- PORTD = 0b00100100; //2
- _delay_ms(1000); //1초 딜레이
- PORTD = 0b00110000; //3
- _delay_ms(1000); //1초 딜레이
- PORTD = 0b00011001; //4
- _delay_ms(1000); //1초 딜레이
- PORTD = 0b00010010; //5
- _delay_ms(1000); //1초 딜레이
- PORTD = 0b00000010; //6
- _delay_ms(1000); //1초 딜레이
- PORTD = 0b01011000; //7
- _delay_ms(1000); //1초 딜레이
- PORTD = 0b00000000; //8
- _delay_ms(1000); //1초 딜레이
- PORTD = 0b00010000; //9
- _delay_ms(1000); //1초 딜레이
- }
- }
반응형