微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 不知道单片机中断程序分析

不知道单片机中断程序分析

时间:10-02 整理:3721RD 点击:

下面这个程序是怎样进行的?中断是在什么时候开始的,有点不太懂

#include<reg52.h>
   #include<intrins.h>
   #define uint unsigned int
   sbit dula=P2^1;
   sbit wela=P2^0;
   uint code chart []=
   {
    0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d,
    0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c,
    0x39, 0x5e, 0x79, 0x71, 0x00,
   };
   uint tt,temp,num;
   void delay(uint);
   void main()
   {
    num=0;
    temp=0xfe;
   P1=temp;
     TMOD=1;
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   EA=1;
   ET0=1;
   TR0=1;
   wela=1;
   P0=0x00;
   wela=0;
   dula=1;
   P0=0x3f;
   dula=0;
   while(1)
   {  
    delay(100);
    temp=_crol_(temp,1);
    P1=temp;
   }
   }
   void delay(uint z)
   {
    uint x,y;
    for(x=448;x>0;x--)
    for(y=z;y>0;y--);
   }
   void timer0() interrupt 1
   {
    TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   tt++;
   if(tt==20)
   {
    num++;
    if(num>16)
     num=0;
    dula=1;
    P0=chart [num];
    dula=0;
    tt=0;
   }
   }   

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top