单片机学习小组
直播中

李辉

7年用户 1341经验值
私信 关注

定时器中断的威廉希尔官方网站 原理是什么

定时器中断的威廉希尔官方网站 原理是什么?
如何去实现定时器中断的程序代码呢?

回帖(1)

王帅

2022-1-21 09:20:47
单片机开发 — 定时器中断

一、威廉希尔官方网站 图


二、威廉希尔官方网站 原理

使用定时器0中断,在定时器中断的事件处理中使P20引脚取反,控制D1的LED灯开关。
三、代码


#include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器


typedef unsigned int u16;          //对数据类型进行声明定义
typedef unsigned char u8;


***it led=P2^0;         //定义P20口是led




/*******************************************************************************
* 函 数 名         : Timer0Init
* 函数功能                   : 定时器0初始化
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void Timer0Init()
{
        TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。


        TH0=0XFC;        //给定时器赋初值,定时1ms
        TL0=0X18;       
        ET0=1;//打开定时器0中断允许
        EA=1;//打开总中断
        TR0=1;//打开定时器                       
}


/*******************************************************************************
* 函 数 名       : main
* 函数功能                 : 主函数
* 输    入       : 无
* 输    出             : 无
*******************************************************************************/
void main()
{       
        Timer0Init();  //定时器0初始化
        while(1);               
}


/*******************************************************************************
* 函 数 名         : void Timer0() interrupt 1
* 函数功能                   : 定时器0中断函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void Timer0() interrupt 1
{
        static u16 i;
        TH0=0XFC;        //给定时器赋初值,定时1ms
        TL0=0X18;
        i++;
        if(i==1000)
        {
                i=0;
                led=~led;       
        }       
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分