stm8s003程序跑飞_单片机程序

本文介绍了51单片机中计数器T0的不同模式应用,包括统计脉冲数、测量脉冲宽度、生成矩形波以及流水灯控制等实例,通过这些实例详细解析了定时器T0和外中断0的工作原理和编程技巧。
摘要由CSDN通过智能技术生成

87ccfdb4aa3cd044d0608c8b4259cd90.gif

实例50-2:计数器T0统计外部脉冲数

#include   //包含51单片机寄存器定义的头文件

/*******************************************

函数功能:主函数

******************************************/

void main(void)

  {

   TMOD=0x06;    // TMOD=0000 0110B,使用计数器T0的模式2

     EA=1;         //开总中断

  ET0=0;        //不使用定时器T0的中断     

  TR0=1;        //启动T0

  TH0=0;       //计数器T0高8位赋初值

  TL0=0;       //计数器T0低8位赋初值

  while(1)  //无限循环,不停地将TL0计数结果送P1口

     P1=TL0;  

}

//实例51-2:定时器T0的模式2测量正脉冲宽度

#include   //包含51单片机寄存器定义的头文件

sbit ui=P3^2;  //将ui位定义为P3.0(INT0)引脚,表示输入电压

/*******************************************

函数功能:主函数

******************************************/

void main(void)

  {

    TMOD=0x0a;   // TMOD=0000 1010B,使用定时器T0的模式2,GATE置1

    EA=1;         //开总中断

 ET0=0;        //不使用定时器T0的中断     

 TR0=1;        //启动T0

 TH0=0;        //计数器T0高8位赋初值

 TL0=0;        //计数器T0低8位赋初值

 while(1)       //无限循环,不停地将TL0计数结果送P1口

     {

    while(ui==0)  //INT0为低电平,T0不能启动

   ;

 TL0=0;       //INT0为高电平,启动T0计时,所以将TL0清0

 while(ui==1) //在INT0高电平期间,等待,计时

    ;

P1=TL0;    //将计时结果送P1口显示

}

 }

//实例52:用定时器T0控制输出高低宽度不同的矩形波

#include   //包含51单片机寄存器定义的头文件

sbit u=P3^0;      //将u位定义为P3.0,从该引脚输出矩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值