|
单片机C语言实例-320-输出负脉宽为200微秒的方波
//实例54-2:测量负脉冲宽度
#include<reg51.h> //包含51单片机寄存器定义的头文件
sbit u=P3^2; //将u位定义为P3.2
/*******************************************
函数功能:主函数
******************************************/
void main(void)
{
TMOD=0x02; //TMOD=0000 0010B,使用定时器T0的模式2
EA=1; //开放总中断
EX0=1; //允许使用外中断
IT0=1; //选择负跳变来触发外中断
ET0=1; //允许定时器T0中断
TH0=0; //定时器T0赋初值0
TL0=0; //定时器T0赋初值0
TR0=0; //先关闭T0
while(1)
; //无限循环, 不停检测输入负脉冲宽度
}
/**************************************************************
函数功能:外中断0的中断服务程序
**************************************************************/
void int0(void) interrupt 0 using 0 //外中断0的中断编号为0
{
TR0=1; //外中断一到来,即启动T0计时
TL0=0; //从0开始计时
while(u==0) //低电平时,等待T0计时
;
P1=TL0; //将结果送P1口显示
TR0=0; //关闭T0
}
更多详情参考附件文档
|
|