2个回答
展开全部
报到先,明天弄。
请楼主使用实物,不要仿真,否则被气死不管。
如有问题,再联系。
//fosc=12.000MHz
#include "regx52.h"
#define PIN_LED P2_1
unsigned int uiResu;
void Init()
{
IE0=IE1=1;//负跳变触发外部中断
EX0=EX1=1;//外部中断允许
TMOD=0x02;//T0自动重装
TH0=0x9c;//定时0.1ms
TL0=0x9c;//定时0.1ms
ET0=1;//定时器0中断允许
EA=1;//所有中断允许
}
main()
{
Init();
while(1)
{
}
}
IntExt0() interrupt IE0_VECTOR
{
TR0=1;//启动定时器
uiResu=0;//重置计数器
PIN_LED=1;//关LED
}
IntExt1() interrupt IE1_VECTOR
{
TR0=0;//停止定时器
if(uiResu>=40){PIN_LED=0;}//如果超过4毫秒,开LED,
}
IntT0() interrupt TF0_VECTOR
{
uiResu++;//加0.1ms
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询