티스토리 뷰

0~15를 카운팅하여 LED로 표시하는 프로그램을 테스트 해보자

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <io.h>
#include <mega128.h>
#include <delay.h>
 
void main(void)
{
    unsigned char led = 0x00;
    DDRB = 0xff;
    PORTB = 0x00;
    
    while(1)
    {
        delay_ms(1000);
        led++;
        PORTB = ~led;
        if(led==15) led=0x00;
    }
}
 
cs

 

0에서 15, 15에서 0으로 반복하여 led로 표시

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <io.h>
#include <mega128.h>
#include <delay.h>
 
void main(void)
{
    unsigned char led = 0x00;
    DDRB = 0xff;
    PORTB = 0x00;
    
    while(1)
    {
        delay_ms(1000);
        led++;
        PORTB = ~led;
        if(led==15) led=0x00;
    }
}
 
cs

 

1, 2, 4 ,8 ... 2의 제곱에서만 점등

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <io.h>
#include <mega128.h>
#include <delay.h>
 
void main(void)
{
    unsigned char led = 0x00;
    DDRB = 0xff;
    PORTB = 0x00;
    
    while(1)
    {
        delay_ms(1000);
        led++;
        PORTB = ~led;
        if(led==15) led=0x00;
    }
}
 
cs

 

 

연습문제 5

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <io.h>
#include <mega128.h>
#include <delay.h>
 
void main(void)
{
    DDRB = 0xff;
    PORTB = 0b11111110;
 
    
    while(1)
    {   
        delay_ms(1000);
        PORTB = ~(~PORTB<<1);
        if(PORTB == 0b01111111) PORTB = 0b11111110;
        
                
 
 
    }
}
 
 
cs

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/02   »
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
글 보관함