基于51单片机定时器中断方式控制发光二极管闪烁源代码

2019年11月6日22:11:44 评论

STC单片机内部设有两个16位的可编程定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。

16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。

延时阅读:

基于51单片机定时器中断方式控制发光二极管闪烁源代码
51单片机中断源_优先级_入口地址
基于51单片机定时器中断方式控制发光二极管闪烁源代码
51单片机中断允许寄存器IE
基于51单片机定时器中断方式控制发光二极管闪烁源代码
51单片机中断优先级寄存器
基于51单片机定时器中断方式控制发光二极管闪烁源代码
51单片机定时器/计数器工作方式寄存器TMOD
基于51单片机定时器中断方式控制发光二极管闪烁源代码
51单片机定时器/计数器控制寄存器TCON
基于51单片机定时器中断方式控制发光二极管闪烁源代码
51单片机C语言编程中断函数格式

案例:编程基于51单片机定时器中断方式控制LED闪烁

本程序基于51单片机开发板<传送门>
本程序开发板原理图<传送门>,提取码: 2bkj

#include"reg52.h"
#define uint unsigned int
#define uchar unsigned char
sbit led=P2^7;
uchar num=0;
void main()
{
  uchar i;
  led=0;
  TCON=0;
  TMOD=0x01;
  IE=0x82;
  TH0=0x3C;
  TL0=0x0B0;
  TR0=1;
  while(1)
  {
     if(num==19)
     {
        led=~led;
        num=0;
      }
   }
}
void T0_()interrupt 1
{
   TH0=0x3C;
   TL0=0x0B0;
    num++;
}

发表评论

您必须才能发表评论!