控制led闪烁次数_用定时器T0的中断控制1位LED闪烁

本文介绍如何使用51单片机,通过设置定时器T0的中断来控制1位LED的闪烁。在主函数中开启总中断和定时器T0中断,设置TMOD为模式2,并初始化定时器的初值。在定时器T0的中断服务程序中,对D1进行取反操作,改变LED的输出状态,然后重新加载定时器初值,实现连续闪烁。
摘要由CSDN通过智能技术生成

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

sbit D1=P2^0;  //将D1位定义为P2.0引脚

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

函数功能:主函数

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

void main(void)

{

   EA=1;                  //开总中断

ET0=1;                 //定时器T0中断允许         

TMOD=0x01;             //使用定时器T0的模式2

TH0=(65536-46083)/256; //定时器T0的高8位赋初值

TL0=(65536-46083)%256; //定时器T0的高8位赋初值

TR0=1;                 //启动定时器T0

while(1)//无限循环等待中断

       ;

 }

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

函数功能:定时器T0的中断服务程序

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

void Time0(void) interrupt 1 using 0 //“interrupt”声明函数为中断服务函数

                 //其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器

 {

   D1=~D1;  //按位取反操作,将P2.0引脚输出电平取反

  TH0=(65536-46083)/256; //定时器T0的高8位重新赋初值

TL0=(65536-46083)%256; //定时器T0的高8位重新赋初值

 }

bd886793a7450fdd9eccbe8e6e1c5180.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值