外部中断和定时器中断在一起的程序怎么写
在外部中断时,另外设定5mS定时器中断。5mS定时器中断程序完成时对计数器Xn加1,外部中断程序完成时读Xn-同时清零Xn-...
在外部中断时,另外设定5mS定时器中断。5mS定时器中断程序完成时对计数器Xn加1,外部中断程序完成时读Xn- 同时清零Xn-
展开
展开全部
#include "reg51.h"
sbit a1=P3^2;
int Xn,SUM;
void time0_initial() //定时
{
TMOD=0x01;
TH0=(65535-5000)/256; //定时器0定时5ms
TL0=(65535-5000)%256;
EA=1;
}
void interrupt_0_initial()
{
IT0=0;
EX0=1;
EA=1;
}
void main(void)
{
interrupt_0_initial();
time0_initial() ;
while(1);
}
void time0() interrupt 1
{
TH0=(65535-5000)/256; //定时器0定时5ms
TL0=(65535-5000)%256;
Xn++;
}
void interrupt_0() interrupt 0
{
do
{
ET0=1;
TR0=1;
}while(a1==0)
ET0=0;
TR0=0;
SUM=Xn;
Xn=0;
}
sbit a1=P3^2;
int Xn,SUM;
void time0_initial() //定时
{
TMOD=0x01;
TH0=(65535-5000)/256; //定时器0定时5ms
TL0=(65535-5000)%256;
EA=1;
}
void interrupt_0_initial()
{
IT0=0;
EX0=1;
EA=1;
}
void main(void)
{
interrupt_0_initial();
time0_initial() ;
while(1);
}
void time0() interrupt 1
{
TH0=(65535-5000)/256; //定时器0定时5ms
TL0=(65535-5000)%256;
Xn++;
}
void interrupt_0() interrupt 0
{
do
{
ET0=1;
TR0=1;
}while(a1==0)
ET0=0;
TR0=0;
SUM=Xn;
Xn=0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询