ʯӢ?ӵ?·ͼ

核心提示其实不用定时中断也能实现功能:#include<reg51.h> 主函数unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};定义0-9数组uns

其实不用定时中断也能实现功能:

#include<reg51.h> 主函数

unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};定义0-9数组

unsigned int tmp;定义变量

void delay(unsigned int xms)定义延时函数

{unsigned int j,i;

for(i=0;i<xms;i++)

for(j=0;j<100;j++);

}

void disp()定义子函数

{

P1=tmp;

delay(1);

P2=0xff;

tmp=tmp<<1;

}

void main( )

{

unsigned char z,s=00,m=00,h=00;给时钟初始值

while(1)

{

for(z=0;z<100;z++)

{

tmp=0x01;

P2=tab[h/10];小时显示

disp();

P2=tab[h%10];

disp();

P2=tab[m/10];分钟显示

disp();

P2=tab[m%10];

disp();

P2=tab[s/10];秒显示

disp();

P2=tab[s%10];

disp();

}

s++;

while(s==60)秒进一位,到60清0

{

m++;

s=00;

}

while(m==60)分钟进一位,到60清0

{

h++;

m=00;

}

while(h==24)小时进一位,到24清0

{

h=00;

}

}

}

最简便的办法是:直接使用电子钟做信号源,在其(驱动输出)上外接一个9018晶体管,晶体管不需要任何外围元件,有信号时导通电量LED,没信号时截止LED熄灭。晶体管可使用独立的电源,与石英钟分别供电,也可以分压后使用一组电源供电。更换掉石英钟的“震荡电容”,何以随意调节闪光频率。石英钟的“震荡电容”就露在外边,很好找。

555时基电路的应用十分广泛,你可以把它接成周期为0.5秒至1秒的“多谐震荡器”或者“间歇震荡器”,但是,他的输出电流有限,达不到300MA的要求,必须外加一级功放。另外,你可以使用两只9014、两个电阻,两个小电解电容,接成一个多谐震荡器,后边追加一级功放。

 
友情链接
鄂ICP备19019357号-22