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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3384|回復(fù): 17
收起左側(cè)

這個單片機程序是怎么完成中斷的?

  [復(fù)制鏈接]
ID:424805 發(fā)表于 2018-11-27 08:51 | 顯示全部樓層 |閱讀模式
#include <STC15F2K60S2.H>
#define u8  unsigned char
#define u16  unsigned int
#define u32  unsigned long
u16 i;
u32 ss;
u8 code table_d[10]= {0x3f,0x06,0x5b,0x4f,0x66,\
                      0x6d,0x7d,0x07,0x7f,0x6f};
u8 code table_w[8] = {0X01,0X02,0X04,0X08,\
                      0X10,0X20,0X40,0X80};
void Timer0Init(void)  //5???@11.0592MHz
{
AUXR |= 0x80;  //????????1T??
TMOD &= 0xF0;  //??????????
TL0 = 0xcd;    //?????????
TH0 = 0xd4;    //?????????
TF0 = 0;    //???TF0???
TR0 = 1;     //?????0??????
IE=0X82;
}
void main(void)
{
      u8 k;
  u8 num[8] = {0};
     P0=0X00;
     P27=0;
  Timer0Init();
  while(1)
  {
  for(k=0;k<8;k++)
  {
      num[0] = table_d[ss%10];
   num[1] = table_d[ss%100/10];
   num[2] = table_d[ss%1000/100];
   num[3] = table_d[ss%10000/1000];
   num[4] = table_d[ss%100000/10000];
   num[5] = table_d[ss%1000000/100000];
   num[6] = table_d[ss%10000000/1000000];
   num[7] = table_d[ss%100000000/10000000];
   P26=0;
      P25=1;
   P0 =num[k];
   P26 = 1;         
   P25 = 0;
   P0 = ~table_w[k];
   }
  }
  }
void Timer0_Rountine(void)  interrupt 1
{
i++;
if(i==1000)
{
i=0;
ss++;
}
}





回復(fù)

使用道具 舉報

ID:94031 發(fā)表于 2018-11-27 09:42 | 顯示全部樓層
這程序里有一個定時0中斷處理程序,main里開啟了這個中斷,定時器在內(nèi)部是硬件系統(tǒng)工作,到定時計數(shù)為0時會停止主程序,觸發(fā)定時0中斷處理程序,中斷處理完后又回到主程序循環(huán)。
回復(fù)

使用道具 舉報

ID:7485 發(fā)表于 2018-11-27 10:23 | 顯示全部樓層
正常啊。定時器溢出產(chǎn)生中斷。

在“Timer0Init”函數(shù)里有“賦初值”,但是中斷里面沒有再賦初值,那么就是從“0”開始了。估計這一點和編寫程序的初衷不一致。
回復(fù)

使用道具 舉報

ID:255382 發(fā)表于 2018-11-27 10:59 | 顯示全部樓層
STC15F中斷程序是定義16位自動重裝,所以在中斷程序里面就不用在賦初值了.
回復(fù)

使用道具 舉報

5#
無效樓層,該帖已經(jīng)被刪除
ID:424805 發(fā)表于 2018-11-27 16:30 | 顯示全部樓層
xuyaqi 發(fā)表于 2018-11-27 09:42
這程序里有一個定時0中斷處理程序,main里開啟了這個中斷,定時器在內(nèi)部是硬件系統(tǒng)工作,到定時計數(shù)為0時會 ...

是這樣的,在main里讀取到中斷初始化完后(THTL在自加,溢出時進入中斷函數(shù))進入到whil循環(huán)中,當(dāng)我的中斷函數(shù)i加到1000時,執(zhí)行整個中斷函數(shù),然后中斷返回main中的while循環(huán)里。    是不是?
回復(fù)

使用道具 舉報

7#
無效樓層,該帖已經(jīng)被刪除
ID:424805 發(fā)表于 2018-11-27 17:35 | 顯示全部樓層
ahshmj 發(fā)表于 2018-11-27 10:23
正常啊。定時器溢出產(chǎn)生中斷。

在“Timer0Init”函數(shù)里有“賦初值”,但是中斷里面沒有再賦初值,那么就 ...

當(dāng)執(zhí)行完在main里的中斷初始化后(THTL自加,加滿會進入到中斷服務(wù)程序。)進入到while中,由于我中斷服務(wù)程序中I=1000才能執(zhí)行完所有的中斷服務(wù)程序;沒有執(zhí)行完的話,會中斷返回在主程序while中。但是我的數(shù)碼管為什么會造成中斷呢?應(yīng)該對數(shù)碼管沒有中斷啊!
回復(fù)

使用道具 舉報

ID:424805 發(fā)表于 2018-11-27 17:36 | 顯示全部樓層
dyjsc 發(fā)表于 2018-11-27 10:59
STC15F中斷程序是定義16位自動重裝,所以在中斷程序里面就不用在賦初值了.

當(dāng)執(zhí)行完在main里的中斷初始化后(THTL自加,加滿會進入到中斷服務(wù)程序。)進入到while中,由于我中斷服務(wù)程序中I=1000才能執(zhí)行完所有的中斷服務(wù)程序;沒有執(zhí)行完的話,會中斷返回在主程序while中。但是我的數(shù)碼管為什么會造成中斷呢?應(yīng)該對數(shù)碼管沒有中斷啊!
回復(fù)

使用道具 舉報

ID:91101 發(fā)表于 2018-11-27 23:43 | 顯示全部樓層
這個中斷是由定時器0(Timer0)產(chǎn)生的,也就是定時器0溢出后,CPU會進入中斷處理函數(shù)執(zhí)行(進入的過程中會打斷當(dāng)前的程序執(zhí)行),中斷函數(shù)執(zhí)行完畢后回回到之前的程序斷電。
回復(fù)

使用道具 舉報

ID:434663 發(fā)表于 2018-11-28 01:33 | 顯示全部樓層
Timer0Init   這個是定時器中斷,,,,,
還有是外部中斷,,得分清楚
回復(fù)

使用道具 舉報

ID:434676 發(fā)表于 2018-11-28 08:33 | 顯示全部樓層

Timer0Init   這個是定時器中斷,還有是外部中斷,,得分清楚
回復(fù)

使用道具 舉報

ID:434374 發(fā)表于 2018-11-28 08:56 | 顯示全部樓層
終端使能,進入中斷函數(shù)!
回復(fù)

使用道具 舉報

ID:424805 發(fā)表于 2018-11-28 09:31 | 顯示全部樓層
zjf0000 發(fā)表于 2018-11-28 08:56
終端使能,進入中斷函數(shù)!

當(dāng)執(zhí)行完在main里的中斷初始化后(THTL自加,加滿會進入到中斷服務(wù)程序。)進入到while中,由于我中斷服務(wù)程序中I=1000為定時器1s中斷才能去執(zhí)行完所有的中斷服務(wù)程序;沒有執(zhí)行完的話,會中斷返回在主程序while中。但是我的數(shù)碼管為什么會造成1s的中斷!
回復(fù)

使用道具 舉報

ID:24900 發(fā)表于 2018-11-28 09:32 | 顯示全部樓層
使能之后,完成中斷就自動會出來的
回復(fù)

使用道具 舉報

ID:434736 發(fā)表于 2018-11-28 09:43 | 顯示全部樓層
定時器
回復(fù)

使用道具 舉報

ID:432823 發(fā)表于 2018-11-28 09:44 | 顯示全部樓層
zeroL 發(fā)表于 2018-11-27 17:36
當(dāng)執(zhí)行完在main里的中斷初始化后(THTL自加,加滿會進入到中斷服務(wù)程序。)進入到while中,由于我中斷服 ...

先分清是要定時中斷,還是外部中斷,中斷號要選擇正確。若是定時中斷,按程序發(fā)生了嵌套中斷,51是不能進行的,程序進入死機狀態(tài)。
回復(fù)

使用道具 舉報

ID:434735 發(fā)表于 2018-11-28 09:51 | 顯示全部樓層
void Timer0_Rountine(void)  interrupt 1  這個是中斷函數(shù),是一個定時器中斷,在“Timer0Init”函數(shù)里有“賦初值”
回復(fù)

使用道具 舉報

ID:214223 發(fā)表于 2018-11-28 10:51 | 顯示全部樓層
定時器T0中斷
回復(fù)

使用道具 舉報

ID:424805 發(fā)表于 2018-11-28 16:15 | 顯示全部樓層
謝謝大家,我的問題已經(jīng)解決了,我沒注意it,麻煩了!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表