我是靠谱客的博主 可靠长颈鹿,最近开发中收集的这篇文章主要介绍定时器中断程序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include <REGX52.H>


typedef unsigned char u8;
typedef unsigned int u16;

sbit LED1=P2^0;

void delay_10us(u16 ten_us)
{
    while(ten_us--);
}

void delay_ms(u16 ms)
{
    u16 i,j;
    for(i=ms;i>0;i--)
        for(j=110;j>0;j--);
}

void time0_init(void)
{
    TMOD|=0X01;//选择为定时器0模式,工作方式为1
    TH0=0XFC;  //给定时器赋初始值,定时1ms
    TL0=0X18;  
    ET0=1;     //打开定时器0中断允许
    EA=1;      //打开总中断
    TR0=1;     //打开定时器
}

void time1_init(void)
{
    TMOD|=0X01;//选择为定时器0模式,工作方式为1
    TH1=0XFC;  //给定时器赋初始值,定时1ms
    TL1=0X18;  
    ET1=1;     //打开定时器0中断允许
    EA=1;      //打开总中断
    TR1=1;     //打开定时器
}

void main()
{
    time0_init();
    while(1)
    {
        
    }
    
}

void time0() interrupt 1
{
    static u16 i=0;
    
    TH0=0XFC;
    TL0=0X18;
    
    i++;
    if(i==1000)
    {
        i=0;
        LED1=!LED1;
    }
}

void time1() interrupt 3
{
    static u16 i=0;
    
    TH1=0XFC;
    TL1=0X18;
    
    i++;
    if(i==1000)
    {
        i=0;
        LED1=!LED1;
    }
}

最后

以上就是可靠长颈鹿为你收集整理的定时器中断程序的全部内容,希望文章能够帮你解决定时器中断程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部