더보기
2. 도트 매트릭스에 대해서 행과 열 개념을 이해하셔야 도트 매트릭스를 켤 수 있습니다. 이부분에 대해서 레포트 작성해주세요.
3. 도트매트릭스의 불빛 하나를 켜서 ㄹ 모양으로 불빛이 움직이게 프로그램을 작성해주세요.
4. 도트매트릭스에 0~9까지 숫자를 찍어서 나타나게 해주세요.
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
int main (void)
{
DDRE = DDRF = 0xFF;
int i, j = 0;
while(1)
{
PORTF = 0b11111110;//~0b00000001; Gnd/행
PORTE = 0x00000001; //전원/열
}
}
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
int i,j = 0;
int main (void)
{
DDRF= DDRE = 0xFF;
while(1)
{
for (i = 0; i < 8; i++)
{
PORTF = ~0b00000001 << i; // 접지 / 행
for (j = 0; j < 8; j++)
{
PORTE = 0b00000001 << j; //전원 / 열
_delay_ms(500);
}
}
}
}
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
int i,j = 0;
int main (void)
{
DDRF= DDRE = 0xFF;
while(1)
{
for (i = 0; i < 8; i++)
{
PORTF = ~(0b00000001 << i); // 접지 / 행
for (j = 0; j < 8; j++)
{
PORTE = 0b00000001 << j; //전원 / 열
_delay_ms(150);
}
}
}
}
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
int i,j = 0;
int main (void)
{
DDRF= DDRE = 0xFF;
while(1)
{
for (i = 0; i < 8; i++)
{
PORTF = ~(0b00000001 << i); // 접지 / 행
if (i%2==0){
for (j=0; j<8; j++){
PORTE = 0b00000001 << j; //전원 / 열
_delay_ms(150); // 없으면 가운데 매번 칸 씩 불이 안들어옴
}
}
else {
for (j=0; j<8; j++){
PORTE = 0b10000000 >> j; //전원 / 열
_delay_ms(100); // 없으면 가운데 매번 칸 씩 불이 안들어옴
}
}
_delay_ms(100); // 없어도 동작하는데 문제 없다. 있으면 다음 행으로 넘어갈 때 딜레이 추가됨.
}
}
}
'임베디드 > Atmega128' 카테고리의 다른 글
반도체 다이오드 트랜지스터 (0) | 2020.12.14 |
---|---|
HBE - MCU - Multi 2 base 로 배우는 마이크로 컨트롤러(AVR) (0) | 2020.12.13 |
프로테우스 7.0 설정 (아트멜 스튜디오에서 코드 올릴 때) (0) | 2020.12.09 |
74LS47IC (0) | 2020.12.08 |
LED8개 차례대로 켜기 시프트 (0) | 2020.12.07 |