我用的數碼管靜態顯示與外部中斷和蜂鳴器結合起來的
也就是說當沒有中斷時 數碼管正常顯示數字 當中斷啟動時數碼管暫停數字顯示(這里值得注意的是暫停顯示并不是將數碼管熄滅只是暫停在那個位置^v^)
>>>>一旦中斷啟動單片機會暫停數碼管顯示>然后讓蜂鳴器以間隔100鳴叫
提示:(這里 我選擇的是電平觸發方式 低電平接口我用的P3^6口 )
#include<reg51.h>
#define xx unsigned int
#define qq unsigned char
xx code ww[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
0x7c,0x39,0x5e,0x79,0x71};
qq code ee[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
#define dd P2
#define ff P0
sbit d37=P3^7;
sbit d10=P3^6;
void time(xx);
void main()
{
EX0=1;
IT0=0;
EA=1;
P2=0;
P0=1;
d10=0;
while(1)
{
qq o;
for(o=0;o<8;o++)
{
P2=ww[o];
P0=ee[o];
time(100);
}
}
}
void time(xx l)
{
xx x,y;
for(x=100;x>0;x--)
for(y=l;y>0;y--);
}
void wbzd0() interrupt 0
{
d37=1;
time(100);
d37=0;
time(100);
}
設計者:薛yh
|