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

 

 

  1. /* 

  1.  * seven_segment.c 
  2.  * 
  3.  * Created: 2015-03-02 오전 12:41:25 
  4.  *  Author: webnautes 
  5.  */   
  6.     
  7. #ifndef F_CPU  
  8. #define F_CPU 16000000UL  
  9. #endif  
  10.     
  11. #include <avr/io.h>  
  12. #include <util/delay.h>  
  13.     
  14.     
  15. int main(void)  
  16. {  
  17.     //PORTD에서 0,1,2,3,4,5,6 출력으로 설정  
  18.     DDRD = 0b01111111;  
  19.         
  20.         
  21.     while(1)  
  22.     {  
  23.         PORTD = 0b01000000; //0  
  24.         _delay_ms(1000); //1 딜레이   
  25.             
  26.         PORTD = 0b01111001; //1  
  27.         _delay_ms(1000); //1 딜레이  
  28.              
  29.         PORTD = 0b00100100; //2  
  30.         _delay_ms(1000); //1 딜레이  
  31.             
  32.         PORTD = 0b00110000; //3  
  33.         _delay_ms(1000); //1 딜레이  
  34.             
  35.         PORTD = 0b00011001; //4  
  36.         _delay_ms(1000); //1 딜레이  
  37.             
  38.         PORTD = 0b00010010; //5  
  39.         _delay_ms(1000); //1 딜레이  
  40.             
  41.         PORTD = 0b00000010; //6  
  42.         _delay_ms(1000); //1 딜레이  
  43.             
  44.         PORTD = 0b01011000; //7  
  45.         _delay_ms(1000); //1 딜레이  
  46.             
  47.         PORTD = 0b00000000; //8  
  48.         _delay_ms(1000); //1 딜레이  
  49.             
  50.         PORTD = 0b00010000; //9  
  51.         _delay_ms(1000); //1 딜레이         
  52.     
  53.     }  
  54. }  


반응형