Thứ Hai, 30 tháng 6, 2014

[Code_8051] Đếm phút giây 4 led 7 đọan dùng định thời timer0 báo ngắt

#include <REGX52.H>
unsigned char BDN,phut,giay,X,Y,gio,X1,Y1,Z,Z1;
unsigned int dem;
const unsigned char MA7D[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//===================================
void timer0_interrupt()interrupt 1
{
BDN++; TL0=dem; TH0=dem>>8;
}
//===================================
void delay(unsigned int x)
{
unsigned int i ;
for(i=0;i<x;i++)
 {
 }
}
//===================================
void hienthi()
{
P1=MA7D[X] ;P2_7=0; delay(100); P2_7=1;
P1=MA7D[X1] ;P2_6=0; delay(100); P2_6=1;
  P1=MA7D[Y] ;P2_4=0; delay(100); P2_4=1;
P1=MA7D[Y1] ;P2_3=0; delay(100); P2_3=1;
P1=MA7D[Z] ;P2_1=0; delay(100); P2_1=1;
P1=MA7D[Z] ;P2_0=0; delay(100); P2_0=1;
}
//===================================
void giaima()
{
X=giay%10  ; X1=giay/10;
Y=phut%10  ;   Y1=phut/10;
Z=gio%10  ;   Z1=gio/10;
}
//===================================
void main ()
{ TMOD=0x01;
IE=0x82;
TH0=-50000>>8;
TL0=-50000;
TR0=1;
gio=0;
giay=0;
phut=0;
while(1)
{
giaima();hienthi();
if(BDN>20)
{
BDN=0;
giay++;
if(giay==60)
{ giay=0; phut++;
if(phut==60)
{phut=0;gio++;
if(gio==24)gio=0;}
}
}
}
}



Không có nhận xét nào:

Đăng nhận xét