久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3060|回復(fù): 17
打印 上一主題 下一主題
收起左側(cè)

這個(gè)單片機(jī)程序是怎么完成中斷的?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:424805 發(fā)表于 2018-11-27 08:51 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#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++;
}
}





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

板凳
ID:7485 發(fā)表于 2018-11-27 10:23 | 只看該作者
正常啊。定時(shí)器溢出產(chǎn)生中斷。

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

使用道具 舉報(bào)

地板
ID:255382 發(fā)表于 2018-11-27 10:59 | 只看該作者
STC15F中斷程序是定義16位自動重裝,所以在中斷程序里面就不用在賦初值了.
回復(fù)

使用道具 舉報(bào)

5#
ID:424805 發(fā)表于 2018-11-27 16:30 | 只看該作者
xuyaqi 發(fā)表于 2018-11-27 09:42
這程序里有一個(gè)定時(shí)0中斷處理程序,main里開啟了這個(gè)中斷,定時(shí)器在內(nèi)部是硬件系統(tǒng)工作,到定時(shí)計(jì)數(shù)為0時(shí)會 ...

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

使用道具 舉報(bào)

6#
ID:424805 發(fā)表于 2018-11-27 17:35 | 只看該作者
ahshmj 發(fā)表于 2018-11-27 10:23
正常啊。定時(shí)器溢出產(chǎn)生中斷。

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

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

使用道具 舉報(bào)

7#
ID:424805 發(fā)表于 2018-11-27 17:36 | 只看該作者
dyjsc 發(fā)表于 2018-11-27 10:59
STC15F中斷程序是定義16位自動重裝,所以在中斷程序里面就不用在賦初值了.

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

9#
ID:434663 發(fā)表于 2018-11-28 01:33 | 只看該作者
Timer0Init   這個(gè)是定時(shí)器中斷,,,,,
還有是外部中斷,,得分清楚
回復(fù)

使用道具 舉報(bào)

10#
ID:434676 發(fā)表于 2018-11-28 08:33 | 只看該作者

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

使用道具 舉報(bào)

11#
ID:434374 發(fā)表于 2018-11-28 08:56 | 只看該作者
終端使能,進(jìn)入中斷函數(shù)!
回復(fù)

使用道具 舉報(bào)

12#
ID:424805 發(fā)表于 2018-11-28 09:31 | 只看該作者
zjf0000 發(fā)表于 2018-11-28 08:56
終端使能,進(jìn)入中斷函數(shù)!

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

使用道具 舉報(bào)

13#
ID:24900 發(fā)表于 2018-11-28 09:32 | 只看該作者
使能之后,完成中斷就自動會出來的
回復(fù)

使用道具 舉報(bào)

14#
ID:434736 發(fā)表于 2018-11-28 09:43 | 只看該作者
定時(shí)器
回復(fù)

使用道具 舉報(bào)

15#
ID:432823 發(fā)表于 2018-11-28 09:44 | 只看該作者
zeroL 發(fā)表于 2018-11-27 17:36
當(dāng)執(zhí)行完在main里的中斷初始化后(THTL自加,加滿會進(jìn)入到中斷服務(wù)程序。)進(jìn)入到while中,由于我中斷服 ...

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

使用道具 舉報(bào)

16#
ID:434735 發(fā)表于 2018-11-28 09:51 | 只看該作者
void Timer0_Rountine(void)  interrupt 1  這個(gè)是中斷函數(shù),是一個(gè)定時(shí)器中斷,在“Timer0Init”函數(shù)里有“賦初值”
回復(fù)

使用道具 舉報(bào)

17#
ID:214223 發(fā)表于 2018-11-28 10:51 | 只看該作者
定時(shí)器T0中斷
回復(fù)

使用道具 舉報(bào)

18#
ID:424805 發(fā)表于 2018-11-28 16:15 | 只看該作者
謝謝大家,我的問題已經(jīng)解決了,我沒注意it,麻煩了!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产电影一区二区在线观看 | caoporn国产| 日韩免费视频一区二区 | 国产欧美日韩一区二区三区在线观看 | 天堂在线网| 精品国产乱码久久久久久果冻传媒 | 青春草国产 | 久久久久亚洲精品 | 久久精品在线 | 97视频在线免费 | 欧美日韩综合视频 | 亚洲黄色成人网 | 日韩免费在线视频 | 精品国产一区二区三区性色av | 9久久| 中文字幕一区二区三区在线观看 | 日韩av成人 | 亚洲一区中文 | 久久久久久高清 | 国产二区精品视频 | 日韩黄色小视频 | 亚洲精品一区二区在线观看 | 久久久久久国产 | 成人精品免费 | 日韩欧美一二三区 | 日韩精品免费 | 不卡av电影在线播放 | 国产欧美日韩精品一区二区三区 | 韩日av在线| 精品一区二区三区中文字幕 | 国产九九九| 黄色大片视频 | av手机免费在线观看 | 国产成人精品免高潮在线观看 | 日本黄色激情视频 | 成人h动漫亚洲一区二区 | 91亚洲精品国偷拍自产在线观看 | 免费一级欧美在线观看视频 | 四虎首页| 午夜免费成人 | www.狠狠操 |