我想使用按键来触发2个外部中断,然后用定时器来计算按键按的时间,定时50ms然后每中断一次灯亮一次,来提示时间通过人眼给反应。
程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^2;
sbit k2=P3^3;
//int num1;
//int num2;
//sbit k3=P1^1;
//sbit k4=P1^2;
sbit light=P1^0;
int num;
void delayms(unsigned int xms)//延时ms
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
EA=1;
TMOD=0X01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
TCON=0x01;
TCON=0x04;
EX0=1;IT0=1;
EX1=1;IT1=1;
while(1)
{
if (k1==0)
{
delayms(50);
if (k1==0)
{
light=0;
//k1=0;
EX0=0;
IT0=0;
}
}
if (k2==0)
{
delayms(50);
if (k2==0)
{
light=0;
//k2=0;
EX1=0;
IT1=0;
}
}
}
}
void waibuzhongduan0() interrupt 0
{
TCON=0x01;
EX0=1;
IT0=1;
}
void waibuzhongduan1() interrupt 2
{
TCON=0x04;
EX1=1;
IT1=1;
}
void dingshiqi0() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
light=1;
}
void dingshiqi1() interrupt 3
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
light=1;
}
我用实际板子和按键测试,灯不亮,也没有其他现象,我的程序有问题还是什么,怎么改
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>