在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳細(xì)介紹定時(shí)器和定時(shí)器中斷

GReq_mcu168 ? 2018-02-09 14:00 ? 次閱讀

后來(lái)學(xué)著學(xué)著就了解到中斷的意義了,不過(guò)對(duì)于第一次接觸單片機(jī)的人來(lái)說(shuō),還是很難解說(shuō)的清楚的。

所以這里我做個(gè)比喻吧。假設(shè)你客廳的電話(huà)來(lái)電時(shí),有鈴聲和閃光提示,而你在房間看書(shū),那么有電話(huà)來(lái)的時(shí)候,你聽(tīng)到鈴聲,然后放下手上的書(shū),并用書(shū)簽記錄你的頁(yè)數(shù),再出去聽(tīng)電話(huà)。聽(tīng)完后,回到房間,從書(shū)簽標(biāo)記的位置繼續(xù)看你的書(shū)。

OK,分析上面的幾個(gè)動(dòng)作,電話(huà)響并被你聽(tīng)到,那是中斷來(lái)了;你用書(shū)簽標(biāo)記位置,那是現(xiàn)場(chǎng)保護(hù);聽(tīng)電話(huà),就是執(zhí)行中斷咯;聽(tīng)完電話(huà),你要從你剛才標(biāo)記的地方繼續(xù)看書(shū),那就是中斷執(zhí)行完畢后回到原中斷處繼續(xù)執(zhí)行程序。這個(gè)就是中斷的過(guò)程了。

假設(shè)沒(méi)有了中斷的話(huà),你會(huì)如何?你會(huì)用掃描法:電話(huà)不會(huì)響鈴了,只有閃光,但你必須在房間看書(shū),那你只能每看幾段,就跑出去看看是否有電話(huà)到,如果沒(méi)有,就跑回去看書(shū),如果有了,那你就聽(tīng)電話(huà)吧。很明顯,掃描法效率非常低,因?yàn)槟忝靠匆粫?huì)書(shū)就得花時(shí)間看看電話(huà)的閃光以判斷是否有電話(huà)的到來(lái),這樣你看書(shū)的效率就大大減低了。而且掃描法還有個(gè)最大的缺點(diǎn),就是中斷丟失,試想如果你掃描的間隔過(guò)大(就是看很久書(shū)才去看一下電話(huà)),那你極有可能丟了幾個(gè)重要的來(lái)電。

其實(shí)上面的比喻,正能很好地表現(xiàn)中斷的作用——其實(shí)中斷就是為了處理突發(fā)事件。

對(duì)于單片機(jī)來(lái)說(shuō),突發(fā)的事情實(shí)在太多了,例如用戶(hù)對(duì)單片機(jī)輸入數(shù)據(jù),按鍵,那都是單片機(jī)本身無(wú)法估計(jì)的事情。外來(lái)數(shù)據(jù)的突然進(jìn)入,也屬于突發(fā)事件。這些外部來(lái)的突發(fā)信號(hào),一般就由單片機(jī)的外部中斷來(lái)處理。外部中斷其實(shí)就是一個(gè)管腳的狀態(tài)改變引起的中斷,在之后會(huì)說(shuō)。

這里先介紹定時(shí)器和定時(shí)器中斷:

在測(cè)量控制系統(tǒng)中,常常需要實(shí)時(shí)時(shí)鐘,以實(shí)現(xiàn)定時(shí)控制、定時(shí)測(cè)量或定時(shí)中斷等。也常需要計(jì)數(shù)器以實(shí)現(xiàn)對(duì)外部事件的計(jì)數(shù)。MCS-51單片機(jī)中有兩個(gè)(增強(qiáng)型有三個(gè))十六位的定時(shí)計(jì)數(shù)器T0,T1,簡(jiǎn)稱(chēng)定時(shí)器0和定時(shí)器1,兩者均為可編程定時(shí)計(jì)數(shù)器。

——以上P話(huà)抄自《單片微型計(jì)算機(jī)與接口技術(shù)》94頁(yè)第一段-_-#!!!!!

其實(shí)你問(wèn)清楚什么叫定時(shí)器,我真的不知道用什么言語(yǔ)來(lái)說(shuō)。剛學(xué)的時(shí)候,聽(tīng)過(guò)這樣一句話(huà)“定時(shí)器是單片機(jī)上的寶貴資源”,當(dāng)時(shí)不了解,為什么這個(gè)資源是寶貴的呢??后來(lái)才慢慢知道定時(shí)器的偉大所在。當(dāng)然這個(gè)是需要一定的時(shí)間來(lái)領(lǐng)悟的咯,在這里你還是踏踏實(shí)實(shí)地往下看吧:)

一開(kāi)始我就說(shuō)了,看本教材的時(shí)候你手上需要至少一本單片機(jī)的基礎(chǔ)書(shū),什么書(shū)隨便買(mǎi)本就是了,反正現(xiàn)在的單片機(jī)書(shū)啊,都是你抄我我抄你的了,都一個(gè)樣,最重要的還是例子吧。拿起你的書(shū)看看單片機(jī)的中斷寄存器和定時(shí)器寄存器吧,咱們要開(kāi)始寫(xiě)程序咯,時(shí)間是不等人D~~~~

單片機(jī)方式0是13位的,從來(lái)就沒(méi)用過(guò),有16位不用你用13位?真浪費(fèi)也~~~

然后是計(jì)算裝入值,16位啊,就是16位2進(jìn)制,2的16次方,就是65536了。16位定時(shí)器就是從某個(gè)所謂的裝入值開(kāi)始自加,加到65536就計(jì)滿(mǎn),如果你允許定時(shí)器中斷,那就有中斷來(lái)臨。所以16位方式裝入值的計(jì)算很簡(jiǎn)單:

65536-你要計(jì)算的脈沖數(shù)=裝入值

但我們一般是要定時(shí)時(shí)間的,而不是單單計(jì)多少個(gè)脈沖,所以你要計(jì)算的脈沖數(shù)要轉(zhuǎn)化為時(shí)間,跟你說(shuō),一個(gè)脈沖的時(shí)間就是一個(gè)機(jī)器周期,51的機(jī)器周期就是12/晶振值。如果你的晶振是12M那么這樣一除就是1US咯。1US整數(shù),算什么都好算,所以你現(xiàn)在知道為什么這么多12M,24M的晶振買(mǎi)了吧,都是為51準(zhǔn)備的咯。

#i nclude "reg51.h"

void initTimer(void)

{

TMOD=0x1;

TH0=0xd8;

TL0=0xf0;

}

void timer0(void) interrupt 1

{

TH0=0xd8;

TL0=0xf0;

//add your code here.

}

void main(void)

{

initTimer();

TR0=1;

ET0=1;

EA=1;

while(1);

}

上面的代碼是12M晶振下定時(shí)10000US的程序,也就是10MS發(fā)生一次中斷。initTimer()是初始化函數(shù),設(shè)置定時(shí)值和中斷的。

10000US在12M晶振下就是100000個(gè)機(jī)器周期了,65536-100000=55536=D8F0(十六進(jìn)制),所以上面就是TH0=0xd8;TL0=0xf0;

void timer0(void) interrupt 1就是定時(shí)器0中斷函數(shù),我們不需要理會(huì)匯編的中斷先,只需要知道當(dāng)中斷來(lái)臨的時(shí)候,程序就自動(dòng)跳到timer0(void)這個(gè)函數(shù)運(yùn)行了,運(yùn)行完后就會(huì)回到原來(lái)中斷處繼續(xù)執(zhí)行原先的程序。

interrupt是C51中的關(guān)鍵字,后面跟有interrupt的函數(shù)都是中斷函數(shù),那么對(duì)應(yīng)哪個(gè)中斷呢?請(qǐng)大家參考:一開(kāi)始為大家介紹的 Keil Software –Cx51 編譯器用戶(hù)手冊(cè) 中文完整版,(名字太長(zhǎng)了,以后叫KEIL手冊(cè))的第125頁(yè)。

中斷號(hào) 中斷地址

0 0003H

1 000BH

2 0013H

3 001BH

4 0023H

5 002BH

6 0033H

7 003BH

8 0043H

9 004BH

10 0053H

11 005BH

12 0063H

13 006BH

14 0073H

15 007BH

16 0083H

17 008BH

18 0093H

19 009BH

20 00A3H

21 00ABH

22 00B3H

23 00BBH

24 00C3H

25 00CBH

26 00D3H

27 00DBH

28 00E3H

29 00EBH

30 00F3H

31 00FBH

看到了吧,中斷號(hào)就是對(duì)應(yīng)中斷進(jìn)入地址的,至于什么是中斷進(jìn)入地址?那就是發(fā)生某個(gè)中斷的時(shí)候單片機(jī)自動(dòng)跳進(jìn)的一個(gè)地址段了.

對(duì)于定時(shí)器0來(lái)說(shuō),就是000BH,所以對(duì)應(yīng)中斷號(hào)1。其他中斷地址看看書(shū)就知道了。由上面的表可以看出,KEILC支持32個(gè)中斷,不過(guò)到現(xiàn)在為止,我還沒(méi)看到過(guò)有51單片機(jī)有32個(gè)中斷的:)

好了,進(jìn)入調(diào)試實(shí)踐中了,把上面的代碼敲進(jìn)去吧,又或者直接下載我這個(gè)編譯好的工程:

timer0

進(jìn)入工程后,你需要設(shè)置點(diǎn)東西:

Debug Information是調(diào)試信息,你選擇這個(gè)東西,才可以在C語(yǔ)言上進(jìn)行仿真(不管是軟還是硬仿真),否則你的仿真環(huán)境是匯編的!

軟仿真設(shè)置:

Go till main()就是在仿真的時(shí)候直接跳到MAIN函數(shù)上。如果沒(méi)有選,那就由0地址開(kāi)始運(yùn)行。這里說(shuō)個(gè)概念,在C51中,mian()函數(shù)并不代表0地址的,要知道,keilc在一開(kāi)始的時(shí)候是需要經(jīng)過(guò)比較多的初始化,例如清空RAM內(nèi)容,設(shè)置堆棧等東西,這些都是不需要你做的,你的用戶(hù)程序也不包括這些,做完這些初始化后,KEIL才自動(dòng)跳到你的mian進(jìn)行處理.

軟件仿真是可以選晶振的,我們選的12M。下面的這些東西你就按圖中的來(lái)選吧,具體內(nèi)容以后再說(shuō)。

如果編譯成功的話(huà),那么我們就開(kāi)始第一次的軟件仿真咯:

上面的是已經(jīng)進(jìn)入仿真狀態(tài)的了,因?yàn)槲覀冞x擇了Debug Information所以可以在C下面調(diào)試,也因?yàn)檫x擇了Go till main()我們可以看到一開(kāi)始就有個(gè)箭頭指著main()的第一句話(huà)。而程序旁深色的東東,也就是我圈著的東西,就是有效代碼段,程序只會(huì)在那里跑,也就是那個(gè)黃色箭頭只會(huì)在那個(gè)區(qū)域跑。現(xiàn)在你已經(jīng)可以仿真的了,可以選單步,全速來(lái)運(yùn)行了。關(guān)于KEIL的具體仿真,將在下一章為大家解說(shuō)。

詳細(xì)介紹定時(shí)器和定時(shí)器中斷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4128

    瀏覽量

    134064
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    900

    瀏覽量

    41792
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3256

    瀏覽量

    115444

原文標(biāo)題:從定時(shí)器開(kāi)始說(shuō)中斷

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32定時(shí)器(二)定時(shí)器中斷

    常規(guī)定時(shí)器:基本定時(shí)器TIM6&TIM7)、通用定時(shí)器(TIM2~TIM5,TIM9~TIM14)、高級(jí)定時(shí)器(TIM1&TIM8)
    的頭像 發(fā)表于 07-21 14:54 ?4505次閱讀
    STM32<b class='flag-5'>定時(shí)器</b>(二)<b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>

    定時(shí)器中斷跑馬燈

    定時(shí)器中斷跑馬燈 這里我們用定時(shí)器方式再次實(shí)現(xiàn),定時(shí)器方式有效率高,定時(shí)準(zhǔn)確等優(yōu)點(diǎn)。一個(gè)編程經(jīng)驗(yàn)是,所有的
    發(fā)表于 08-09 22:58 ?6036次閱讀

    定時(shí)器中斷應(yīng)用

    定時(shí)器中斷應(yīng)用。
    發(fā)表于 03-15 14:56 ?3次下載

    stm32定時(shí)器中斷程序

    STM32的定時(shí)器是個(gè)強(qiáng)大的模塊,定時(shí)器使用的頻率也是很高的,定時(shí)器可以做一些基本的定時(shí),還可以做PWM輸出或者輸入捕獲功能。 以下是進(jìn)行stm32
    發(fā)表于 10-12 16:59 ?1.3w次閱讀

    介紹中斷定時(shí)器特點(diǎn)及應(yīng)用

    中斷定時(shí)器
    的頭像 發(fā)表于 07-10 03:51 ?5480次閱讀
    <b class='flag-5'>介紹</b><b class='flag-5'>中斷</b>與<b class='flag-5'>定時(shí)器</b>特點(diǎn)及應(yīng)用

    定時(shí)器中斷程序資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是定時(shí)器中斷程序資料合集免費(fèi)下載。
    發(fā)表于 05-16 08:00 ?1次下載
    <b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>程序資料合集免費(fèi)下載

    51單片機(jī)定時(shí)器中斷詳細(xì)理解

    char uint i,j; main(){i=0;j=0;EA=1; //中斷總開(kāi)關(guān)開(kāi) ET0=1;//定時(shí)器T0中斷允許 ET1=1;//定時(shí)器T1
    發(fā)表于 11-22 12:36 ?10次下載
    51單片機(jī)<b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>的<b class='flag-5'>詳細(xì)</b>理解

    STC51定時(shí)器定時(shí)器中斷

    1.定義定時(shí)器介紹: 51單片機(jī)的定時(shí)器屬于單片機(jī)的內(nèi)部資源,其電路的連接和運(yùn)轉(zhuǎn)均在單片機(jī)內(nèi)部完成。2.作用定時(shí)器作用:1.用于計(jì)數(shù)系統(tǒng),可實(shí)現(xiàn)軟件計(jì)時(shí),或者使程序每隔一固
    發(fā)表于 11-22 14:51 ?5次下載
    STC51<b class='flag-5'>定時(shí)器</b>與<b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>

    51單片機(jī)中斷主要關(guān)于計(jì)時(shí)--定時(shí)--計(jì)算定時(shí)器初值--的簡(jiǎn)介 ~~~看到的關(guān)于中斷? 計(jì)時(shí)/定時(shí)器介紹,覺(jué)得

    看到的關(guān)于中斷 計(jì)時(shí)定時(shí)器介紹,個(gè)人看明白了。目錄:1、單片機(jī)中斷簡(jiǎn)介2、中斷允許寄存
    發(fā)表于 11-23 18:06 ?13次下載
    51單片機(jī)<b class='flag-5'>中斷</b>主要關(guān)于計(jì)時(shí)--<b class='flag-5'>定時(shí)</b>--計(jì)算<b class='flag-5'>定時(shí)器</b>初值--的簡(jiǎn)介  ~~~看到的關(guān)于<b class='flag-5'>中斷</b>? 計(jì)時(shí)<b class='flag-5'>器</b>/<b class='flag-5'>定時(shí)器</b>的<b class='flag-5'>介紹</b>,覺(jué)得

    定時(shí)器中斷實(shí)現(xiàn)步驟及實(shí)例筆記

    定時(shí)器中斷實(shí)現(xiàn)步驟使能定時(shí)器時(shí)鐘。 RCC_APB1PeriphClockCmd();初始化定時(shí)器,配置ARR,PSC。 TIM_TimeBaseInit()
    發(fā)表于 11-23 18:06 ?13次下載
    <b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>實(shí)現(xiàn)步驟及實(shí)例筆記

    STM32定時(shí)器-基本定時(shí)器

    目錄定時(shí)器分類(lèi)基本定時(shí)器功能框圖講解基本定時(shí)器功能時(shí)鐘源計(jì)數(shù)時(shí)鐘計(jì)數(shù)自動(dòng)重裝載寄存
    發(fā)表于 11-23 18:21 ?31次下載
    STM32<b class='flag-5'>定時(shí)器</b>-基本<b class='flag-5'>定時(shí)器</b>

    STM32-通用定時(shí)器-定時(shí)器中斷

    1STM32的定時(shí)器STM32F103ZET6一共有8個(gè)定時(shí)器,其中分別為:高級(jí)定時(shí)器(TIM1、TIM8);通用定時(shí)器(TIM2、TIM3、TIM4、TIM5);基本
    發(fā)表于 11-26 15:36 ?16次下載
    STM32-通用<b class='flag-5'>定時(shí)器</b>-<b class='flag-5'>定時(shí)器</b><b class='flag-5'>中斷</b>

    STM32定時(shí)器的分類(lèi)及中斷原理

    本文主要介紹常規(guī)定時(shí)器中的TIM3,實(shí)現(xiàn)定時(shí)器中斷的功能。STM32定時(shí)器的分類(lèi)在其中一篇文章中已經(jīng)介紹
    的頭像 發(fā)表于 01-12 17:29 ?7544次閱讀
    STM32<b class='flag-5'>定時(shí)器</b>的分類(lèi)及<b class='flag-5'>中斷</b>原理

    定時(shí)器中斷是什么意思,定時(shí)器中斷的工作原理

    定時(shí)器中斷是由單片機(jī)中的定時(shí)器溢出而申請(qǐng)的中斷。51單片機(jī)中有兩個(gè)定時(shí)器T0和T1。STM32中共有11個(gè)
    的頭像 發(fā)表于 07-23 09:45 ?6362次閱讀

    定時(shí)器中斷程序怎么寫(xiě)

    達(dá)到預(yù)定的定時(shí)時(shí)間時(shí),它會(huì)產(chǎn)生一個(gè)中斷信號(hào),稱(chēng)為定時(shí)器中斷。在本文中,我們將詳細(xì)了解如何編寫(xiě)定時(shí)器
    的頭像 發(fā)表于 09-01 10:17 ?2041次閱讀
    主站蜘蛛池模板: 色吧五月天 | 午夜视频福利在线观看 | 免费大片黄国产在线观看 | 2021最新国产成人精品视频 | 亚洲欧美婷婷 | 一级毛片免费全部播放 | 五月香婷婷 | 国产成人精品高清免费 | 欧美午夜性刺激在线观看免费 | 久久亚洲一级毛片 | 日本欧美一区二区免费视 | 一区二区三区四区无限乱码在线观看 | 黄视频网站观看 | 黄色网 在线播放 | 一级做a爱过程免费视 | 免费视频国产 | 日韩欧美高清一区 | 美女黄网站人色视频免费国产 | 男人午夜视频在线观看 | 国产精品成人观看视频国产奇米 | 欧美xxx69| 欧美乱论视频 | 97色资源 | 亚洲第一免费网站 | 色欧美色图| 天天操夜夜噜 | 一区二区三区中文 | tube69日本| 日本黄色大片免费看 | 精品国产三级在线观看 | a级毛片免费观看网站 | 日本aaaa级 | 激情丁香网 | 国产午夜不卡在线观看视频666 | 久久久免费网站 | 26uuu影院亚洲欧美综合 | 米奇777色狠狠8888影视 | 永久福利盒子日韩日韩免费看 | 日韩一卡2卡三卡4卡无卡网站 | 久久99精品久久久久久久野外 | 欧美成人午夜影院 |