為什么我輕輕一碰電源第一個計分會變化啊,是我電源的問題還是中斷的問題?
單片機源程序如下:
#include <reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit K1 = P3^4;
uint point1 = 0,point2 = 0;
uchar code duan[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar disp[8] = {0,0,0,0x40,0x40,0,0,0};
void delay(uint z) {
uint y;
for (;z>0;z--)
for (y = 0; y < 110; y++);
}
void Display() {
uchar i = 0;
disp[0] = duan[point1 / 100];
disp[1] = duan[point1 % 100 / 10];
disp[2] = duan[point1 % 10];
disp[5] = duan[point2 / 100];
disp[6] = duan[point2 % 100 / 10];
disp[7] = duan[point2 % 10];
for (i = 0; i < 8; i++) {
P0 = 0x00;
P1 &= 0xf8;
P1 |= i;
P0 = disp[ i];
delay(1);
}
}
void main() { //觸碰電源時第一個計分會變動,這是為什么?
IT1 = 1;
IT0 = 1;
PX0 = 1;
IE = 0x85;
while (1) {
if (!K1) point1 = 0,point2 = 0;
Display();
}
}
void EX_INT0() interrupt 0 {
//EA = 0;
delay(10);
point1++;
//EA = 1;
}
void EX_INT1() interrupt 2 {
//EA = 0;
delay(10);
point2++;
//EA = 1;
}
|