• 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

atmega128를 이용한 FND 9999 업카운터 및 uart통신모듈제어 프로그래밍

atmega128를 이용한 타이머 이용 IC2803 이용한 FND 9999 업카운터 및 uart통신모듈제어


#include<mega128.h>
#include<delay.h>       
#include <stdio.h>  


int i;        
int sw;
int k;  
 int hun,hel;
unsigned char cnt=0;  
unsigned char led=0;    
int fnd[10]={~0xc0,~0xf9,~0xa4,~0xb0,~0x99,~0x92,~0x82,~0xf8,~0x80,~0x90};   
unsigned char BUFFER[4];


void serial0_init(void)

{
        UCSR0A = 0x00;
        UCSR0B = 0x98;
        UCSR0C = 0x86;  
        UBRR0L = 103;   
}     


interrupt [TIM0_OVF] void timer0_ovf(void)
{
     TCNT0=10;
     if (++cnt>=10)
     {       cnt=0;
   if(k==1){i++;}
if(k==2){i--;}
if(k==3){i=i;}                   
     }


interrupt [USART0_RXC] void rev(void)
{
BUFFER[0] = UDR0;
}

 void main()
{        

  serial0_init();
       SREG=0x80;  
       
DDRF = 0xff;
PORTF = 0xff;
DDRA=0xff;
DDRD=0x00;
PORTA=0xff;
PORTD=0xff;   

 TCCR0=0x07;
 TCNT0=50;
 TIMSK=0x01;
 SREG|=0x80;

 


while(1)
{        
     hun=(i%100)/10;
            hel=(i%10); 
sw=~PIND&0x0f;


if(sw==1)
{
k=1;        
printf(" UP MODE ");
}
else if(sw==2)
{
k=2; 
printf(" DOWN MODE ");
}
else if(sw==4)
{
k=3;
printf(" STOP MODE ");
 }   
 else if(sw==8)
{
k=4;
printf(" STOP MODE ");
 }         
if(i>99)i=00; 
if(i<0)i=99;
delay_ms(1);
PORTF=0xfe;
PORTA=fnd[hun]; 
delay_ms(1);  
PORTF=0xfd;
PORTA=fnd[hel];
delay_ms(1);

}
}


곰부리 곰부리
10 Lv. 114516/121000P

자료는 포인트로 구매하세요

문의 공일공-육칠사사-팔이공칠

공유

facebooktwitterpinterestbandkakao story
퍼머링크

댓글 1

1등 유온 2015.12.05. 08:58

한번 적용해볼게요

권한이 없습니다. 로그인

신고

"님의 댓글"

이 댓글을 신고 하시겠습니까?

삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?