8051 > keil 8051을 이용한 FND 6자리 시계구현

TODAY135 TOTAL52,088
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌


BASIC4MCU | 8051 | keil 8051을 이용한 FND 6자리 시계구현

페이지 정보

작성자 키트 작성일2017-09-12 10:39 조회192회 댓글0건

본문

	

//
#include 
<REG51.H>
//
char seg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//FND segment
char com[]={0x20,0x10,0x08,0x04,0x02,0x01};                    
// FND common
//
int  i=0;
char cnt=0;
char time[]={0,0,0};                 
//sec,min,hour;
//
void Timer0_int(void) interrupt 1{   
// 200us
  if(i++>=5000){ i=0;                  // 200us*5000=1초
    if(++time[0]>=60){ time[0]=0;    
// sec
      if(++time[1]>=60){ time[1]=0;  
// min
        if(++time[2]>=24)time[2]=0;  
// hour
      }
    }
  }
}
//
void Timer1_int(void) interrupt 3
// 1.024ms

  TH1=0xfc
  if(!(cnt&1))P2=seg[time[cnt>>1]%10];// 짝수 0,2,4
  else        P2=seg[time[cnt>>1]/10];// 홀수 1,3,5

  P0=com[cnt];
  if(++cnt>=6)cnt=0;
}
//
void main(void){
  TMOD=12;
  TH0=56;   ET0=1; TR0=1;
  TH1=0xfc; ET1=1; TR1=1;
  EA=1;
  while(1){}
}
//
8051-12MHz x-tal
12000000Hz/12=1000000Hz

timer0:
  256-56=200
  1000000Hz/200=5000Hz=200us

timer1:
  0x10000-0xfc00=0x400=1024
  1000000Hz/1024=976.5625Hz=1.024ms
//

댓글 0

조회수 192

등록된 댓글이 없습니다.

8051HOME > 8051/PIC > 8051 목록

게시물 검색

                   MCU BASIC ⓒ 2017 모바일버전으로보기