楼上用的是查询法,我来个中断函数的 呵呵
#include<reg52.h>
sbit a0=P1^1;//端口定义
int count=0;//计时变量初始化
/*******************************T1中断服务函数*****************/
void T0Int() interrupt 3 using 0 //
{
count++;//200us 加一次
if(count==100)//一百次之后,取反输出端口
{
count=0;//清零计数值
a0=~a0;//端口取反
}
}
void main()
{
TMOD=0X02; //设置T0工作方式与为方式2
TH0=256-200; //设置高位重装的初值
TL0=256-200; //设置低位计数值
TR1=1; //启动定时器0
ET1=1;
EA=1; //开总中断
while(1);//等待中断
}
追问TMOD难道不等于0X08么?
追答你这是计时,不是计数,所以不用0x80 。看看下面这个寄存器定义就知道了
步行者===电子单片机碳
qq:1320249827
本回答被网友采纳