新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)(二):?jiǎn)纹瑱C(jī)內(nèi)部定時(shí)/計(jì)數(shù)器和中斷系統(tǒng)

        51單片機(jī)(二):?jiǎn)纹瑱C(jī)內(nèi)部定時(shí)/計(jì)數(shù)器和中斷系統(tǒng)

        作者: 時(shí)間:2012-07-27 來(lái)源:網(wǎng)絡(luò) 收藏

        值得注意的是TMOD 寄存器不能位尋址,只能用字節(jié)指令設(shè)置高4 位定義器1 上的工作方式或低4 位定義器0 的工作方式。而且在復(fù)位時(shí),TMOD 所有位均置0。

        表3 TCON寄存器

        表中各位(從左至右為從高位到低位)含義如下。

        (1) TFl :器1 溢出標(biāo)志位。當(dāng)定時(shí)器1 計(jì)滿數(shù)產(chǎn)生溢出時(shí),由硬件自動(dòng)置TF1=1, 向CPU發(fā)出定時(shí)器1 的請(qǐng)求,在允許時(shí)響應(yīng)。進(jìn)入服務(wù)程序后,由硬件自動(dòng)清0。在中斷屏蔽時(shí),TF1 可作查詢測(cè)試用,此時(shí)只能由軟件清0。

        (2) TR1 :定時(shí)器1 運(yùn)行控制位。由軟件置1 或清0 來(lái)啟動(dòng)或關(guān)閉定時(shí)器1。

        當(dāng)GATE=l,且為高電平時(shí),TRI 置1 啟動(dòng)定時(shí)器l ;當(dāng)GATE=0 時(shí),TR1 置1 即可啟動(dòng)定時(shí)器1。

        (3) TF0 :定時(shí)器0 溢出標(biāo)志位。其功能及操作情況同TF1。

        (4) TR0 :定時(shí)器0 運(yùn)行控制位。其功能及操作情況同TR1。

        (5) IE1 :外部中斷1() 請(qǐng)求標(biāo)志位。

        (6) IT1 :外部中斷1 觸發(fā)方式選擇位。

        (7) IE0 :外部中斷0( ) 請(qǐng)求標(biāo)志位。

        (8) IT0 :外部中斷0 觸發(fā)方式選擇位。

        值得注意的是TCON 中的低4 位用于控制外部中斷,與定時(shí)器/ 無(wú)關(guān),在以后的講座中會(huì)提及。當(dāng)復(fù)位時(shí),TCON 的所有位也均清0。

        在上文中提到定時(shí)器溢出和中斷,什么是定時(shí)器溢出呢?我們可以這樣理解:往一個(gè)盆中滴水,水滴持續(xù)落下,盆中的水持續(xù)變滿,最終會(huì)有一滴水使得盆中的水滿了(這相當(dāng)于計(jì)數(shù)到最大值)。這個(gè)時(shí)候如果再有一滴水落下,這時(shí)水就會(huì)漫出來(lái),這就是“溢出”。當(dāng)然,水溢出是流到地上,而定時(shí)器溢出后將使得TF0 變?yōu)?ldquo;1”。一旦TF0 由0 變成1,就會(huì)產(chǎn)生中斷。中斷就是由于某個(gè)事件的發(fā)生,CPU 暫停當(dāng)前正在執(zhí)行的程序,轉(zhuǎn)而執(zhí)行處理該事件的一個(gè)程序。該程序執(zhí)行完成后,CPU 接著執(zhí)行被暫停的程序的這樣一個(gè)過(guò)程。這正如我們本來(lái)在做某事,有人過(guò)來(lái)請(qǐng)求幫忙,我們停下手中的活去幫忙,完事之后回來(lái)接著做原來(lái)的事情。根據(jù)中斷引發(fā)的不同,或者CPU 響應(yīng)中斷的不同條件,也可以把中斷劃分為可屏蔽中斷(也就是說(shuō)我們可以拒絕幫別人忙,繼續(xù)做自己的事情)和不可屏蔽中斷(事情做累了,必須休息)兩種。

        了解了中斷原理之后,我們來(lái)看中斷允許控制寄存器IE(見(jiàn)表4)和中斷優(yōu)先寄存器IP(見(jiàn)表5)。

        塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理


        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 鱼台县| 南阳市| 佛坪县| 南江县| 应城市| 阿合奇县| 克东县| 资阳市| 普陀区| 乌拉特前旗| 屏东市| 彰化县| 阳江市| 多伦县| 琼中| 电白县| 周口市| 尼木县| 禹城市| 岳普湖县| 荣成市| 贵州省| 奇台县| 兴安盟| 丰县| 永福县| 亚东县| 桦川县| 汶川县| 南充市| 石渠县| 修文县| 崇左市| 武宣县| 津市市| 宁波市| 新巴尔虎左旗| 高青县| 托里县| 重庆市| 冀州市|