이진수를 입력하면 십진수로 나온다..
A0~A3 아트메가와 연결
a~g segment 와 연결. 7핀이라 .까지 있는 segment와는 연결안된다
입력 | 출력 |
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
더보기
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRE = 0xFF;
while (1)
{
PORTE |= 0b00000001;//1
_delay_ms(500);
PORTE |= 0b00000010;//2
_delay_ms(500);
PORTE |= 0b00000011;//3
_delay_ms(500);
PORTE |= 0b00000100;//4
_delay_ms(500);
PORTE |= 0b00000101;//5
_delay_ms(500);
PORTE |= 0b00000110;//6
_delay_ms(500);
PORTE |= 0b00000111;//7
_delay_ms(500);
PORTE |= 0b00001000;//8
_delay_ms(500);
PORTE |= 0b00001001;//9
_delay_ms(500);
}
}
1,3,7 만 뜨고 안뜬다 왜냐면 | 를 써서 .. 하나씩 추가되는 거라서
첫줄에 00000001
둘째줄 지나면 00000011
셋째줄 지나면 00000011
넷째줄 지나면 00000111
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRE = 0xFF;
while (1)
{
PORTE = 0b00000000;//0
_delay_ms(500);
PORTE = 0b00000001;//1
_delay_ms(500);
PORTE = 0b00000010;//2
_delay_ms(500);
PORTE = 0b00000011;//3
_delay_ms(500);
PORTE = 0b00000100;//4
_delay_ms(500);
PORTE = 0b00000101;//5
_delay_ms(500);
PORTE = 0b00000110;//6
_delay_ms(500);
PORTE = 0b00000111;//7
_delay_ms(500);
PORTE = 0b00001000;//8
_delay_ms(500);
PORTE = 0b00001001;//9
_delay_ms(500);
}
}
7447,7448 동일코드 적용.
74LS47은 공통 anode(common-anode) 타입에만 사용할 수 있습니다.
74LS48(7448) 은 공통 cathode(common-cathode) 타입.
'임베디드 > Atmega128' 카테고리의 다른 글
도트매트릭스 8x8 차례대로 켜기 / ㄹ 모양으로 흐르게 하기 (0) | 2020.12.09 |
---|---|
프로테우스 7.0 설정 (아트멜 스튜디오에서 코드 올릴 때) (0) | 2020.12.09 |
LED8개 차례대로 켜기 시프트 (0) | 2020.12.07 |
FND (7 segment) (0) | 2020.12.07 |
201203 프로테우스회로 / 코드리뷰 (0) | 2020.12.03 |