51单片机protues仿真学习:[20]定时器中断

2025-10-10 12:12:27

主要思路还是上面最关键的三句话

1.用哪个中断 ------定时器T0中断  中断号1

2.触发条件是什么------- 开总中断EA=1,此中断源的中断允许位为ET0=1,开启此中断TR0=1;

3.中断之后干什么-------开始计时(多少时间中断一次)并按照要求显示数码管

原理图跟上面一样

51单片机protues仿真学习:[20]定时器中断

程序如下:

#include<reg52.h> //头文件

#include<intrins.h>

#define uint unsigned int

#define uchar unsigned char

uchar code smg_dm[]={   //共阴数码管显示编码

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

uchar num;

uchar i;

void main()

{   

    TMOD=0X01;

    TH0=(65536-50000)/256;

    TL0=(65536-50000)%256;

    EA=1;

    ET0=1;

    TR0=1;

    P0=0X00;

    P2=0XFE;

    while(1)

    {

        if(num==20)

          {

              num=0;

              P0=smg_dm[i];

              i++;

              if(i==10)

              {

                  i=0;

              }

          }

    }

}

void time0() interrupt 1

{

      TH0=(65536-50000)/256;

      TL0=(65536-50000)%256; 

      num++;

}

(共篇)上一篇:中断概念|下一篇:
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢