|
沒有實(shí)現(xiàn)清0的功能
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit k3 = P3^4;
sbit k4 = P3^5;
uint i;
uint Count_A=0;
void InitTimer0() //定時(shí)器0,方式1,10微妙 10*100=1s
{
TMOD = 0x01;
TH0 = 0xFF;
TL0 = 0xF6;
EA = 1; //總中斷
ET0 = 1; //定時(shí)器中斷
TR0=1; //開定時(shí)器
}
void Show_Counts()
{
if(Count_A==0)
{
P2=0xff;
}
else if(Count_A>0&&Count_A<2)
{
P2=0xfc;
}
else if(Count_A>2&&Count_A<4)
{
P2=0xfe;
}
}
void Timer0Interrupt() interrupt 1 // interrupt 1是定時(shí)器中斷
{
TH0 = 0xFF;
TL0 = 0xF6;
i++;
if(i==10)
{
i=0;
P1=0XF8;
}
}
void main()
{
InitTimer0();
IT0 = 1; //IT0=0 是低電平觸發(fā) 1是下降沿 TCON
IT1 = 1; //IT1=0 是低電平觸發(fā) 1是下降沿
PX0 = 1; //允許外部中斷
EX0 = 1; //INT0的中斷允許位
TR0=1;
while(1)
{
if(k3 == 0) Count_A = 0;
if (Count_A==5) Count_A = 0;
Show_Counts();
}
}
void EX_INT0() interrupt 0
{
Count_A++;
TR0=1;
i=0;
} |
|