我用的数码管静态显示与外部中断和蜂鸣器结合起来的
也就是说当没有中断时 数码管正常显示数字 当中断启动时数码管暂停数字显示(这里值得注意的是暂停显示并不是将数码管熄灭只是暂停在那个位置^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
|