«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ITGenerations

[avr]세븐세그먼트, 트랜지스터 사용 x 본문

Univ/AVR atmega128

[avr]세븐세그먼트, 트랜지스터 사용 x

ITGenerations 2017. 12. 9. 16:29

// source 23

// 세븐세그먼트, 트랜지스터 사용 x

/*

#include <avr/io.h>

#include <util/delay.h>


static unsigned char SegTable[17] = 

{0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,

0x7F, 0x6F, 0x77, 0x7C, 0x58, 0x5E, 0x79, 0x71,

0x00};


int main()

{

unsigned char cnumber[2] = {4,3}; // 34 출력, 원래 코드

//unsigned char cnumber[2] = {3,4}; // 변경코드 -> 34가 아니라 43이나온다. 

int j=0;


DDRA  = 0xFF; // 포트 A를 출력으로 설정

DDRD |= 0xF0; // 포트 D의 상위니블을 출력으로 설정

//DDRD |= 0xFF; // FF로 해도 똑같은 결과 

while(1)

{

for(j=0; j<2; j++)

{

// PORTD =~( 0x10<<j); //  ~()를 하면 34가 아니라 43이 출력 된다. 

// 34가 아니라 43이 출력된다.

// portd 6,8핀 위치를 서로 바꿔도 34가 아니라 43이 출력 된다.

//portd 4->8 , portd 5->6

PORTD = 0x10<<j; // j-번째 세그먼트를 켠다.



PORTA = ~SegTable[cnumber[j]];

_delay_ms(5); // 5msec 시간지연

}

}

}


*/