C51單片機(jī)運用定時器T0中斷實現(xiàn)電子時鐘
void tiaoz() //調(diào)整子程序
{
if(num==20) //如果20次到了則說明一秒時間到
{
num=0;
number++;
if(number==60) //如果number=60說明滿一分鐘,則向分鐘數(shù)加一
{
number=0;
number0++;
if(number0==60) //如果number0=60說明60分鐘已經(jīng)滿,向時加一
{
number0=0;
number1++;
if(number1==24) //如果number1>24,則從0開始
number1=0;
}
}
}
P0=table[number1/10]; //時的十位
P2=0;
delay();
P0=table[number1%10]; //時的個位
P2=1;
delay();
P0=table[10];
P2=2;
delay();
P0=table[number0/10]; //分的十位
P2=3;
delay();
P0=table[number0%10]; //分的個位
P2=4;
delay();
P0=table[10];
P2=5;
delay();
P0=table[number/10]; //取出秒的十位并且顯示該數(shù)
P2=6;
delay(); //秒的十位
P0=table[number%10]; //送秒的個位給最后一只數(shù)碼管
P2=7; //打開數(shù)碼管8 秒的個位
delay();
}
void main()
{
TMOD=0X01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
//外部中斷啟動
/* EX0=1;
IE1=1;
EX1=1;
IE0=1;
*/
ET0=1;
TR0=1;
while(1)
{
tiaoz0();
tiaoz();
}
}
評論