欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機中斷程序 有些地方不太理解 [打印本頁]

作者: 可愛萌萌噠    時間: 2020-4-30 11:08
標題: 單片機中斷程序 有些地方不太理解
#include<reg52.h>
#define uchar unsigned char
uchar i=0,j=0;
bit b=0;
void main()
{
  uchar sum[]={0xc0,0xf9,0xa4,
  0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  EX0=1;
  IT0=1;
  EX1=1;
  IT1=1;
  EA=1;
  ET0=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
         TR0=1;
        while(1)
        {
           P0=sum[j/10];
           P1=sum[j%10];
        }
}
void time() interrupt 1
{
  i++;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  if(i==20)
  {
  i=0;
  j++;
  }
          if(j==60)
          {
             j=0;

          }
}
void time2()  interrupt 0
{
   if(b==0)
   {
   TR0=0;
   b=1;
   }
else
{
    b=0;
        TR0=1;
}
}
void time3() interrupt 2
{
     j=0;
         i=0;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  TR0=1;
   }
有些地方不太理解
如果定時時間到了,跳到中斷,什么時候返回主函數
如果正在計時器中斷中運行,外部中斷啟動,會不會跳到外部中斷?
EX0=1;
  IT0=1;
  EX1=1;
  IT1=1;
  EA=1;
  ET0=1;這幾個有沒有順序?
作者: xxpp2011    時間: 2020-4-30 14:47
中斷優先級外部中斷0-定時器0-外部中斷1-定時器1-串口
作者: lzw1997    時間: 2020-4-30 16:34
發現你們這些人等級挺高的,但是知識量不夠啊,第一個問題:當然是處理完中斷就返回啊,如果有新的中斷產生根據優先級判斷是否繼續處理新產生的中斷。下面那我寫了優先級我就不說了,51是優先級數越低優先級越高,interrupt 0是外部中斷0,后面1 2 3 4分別定時器0 外部中斷 1定時器1 串口中斷,所以你的第二個問題是看定時器假如是定時器0的話,外部中斷是外部中斷0就會跳,外部中斷1就不跳,等處理完了會去處理外部中斷1然后在返回main。
作者: 飲酒作樂    時間: 2020-4-30 16:44
中斷都必須有中斷服務函數的。不同的中斷在同一優先級也有天然的優先順序
作者: 權威人物    時間: 2020-4-30 17:53
哪里不理解?不說出來全給你分析么?
作者: 可愛萌萌噠    時間: 2020-4-30 21:18
lzw1997 發表于 2020-4-30 16:34
發現你們這些人等級挺高的,但是知識量不夠啊,第一個問題:當然是處理完中斷就返回啊,如果有新的中斷產生 ...

第一學期開課,好多東西不懂,謝謝您了
作者: 可愛萌萌噠    時間: 2020-4-30 21:21
權威人物 發表于 2020-4-30 17:53
哪里不理解?不說出來全給你分析么?

剛開始學,就是覺得不理解,如果進入中斷函數,在中斷函數中改變的值,他是直接影響到主函數,還是等中斷函數全部執行完,返回主函數時才會影響主函數的值
作者: 灼羊    時間: 2020-4-30 22:12
中斷是有優先級的




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1