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

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

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

寄存器中的逐位定義和功能

MCU開發(fā)加油站 ? 來源:MCU開發(fā)加油站 ? 作者:MCU開發(fā)加油站 ? 2022-04-10 16:19 ? 次閱讀

目前常用的單片機(jī)中往往都配備了定時器/計數(shù)器。在AT89S52芯片內(nèi)包含有三個16位的定時器/計數(shù)器:T0、T1和T2,其核心是加1計數(shù)器。我們主要要求掌握T0和T1的結(jié)構(gòu)和功能。學(xué)習(xí)中要注意從電路結(jié)構(gòu)上來理解功能的實現(xiàn)。定時器/計數(shù)器方式寄存器TMOD和定時器/計數(shù)器控制寄存器TCON是用以設(shè)定定時器/計數(shù)器的工作方式、定時或計數(shù)功能,控制啟動或停止以及產(chǎn)生溢出中斷的重要模塊,應(yīng)該對這兩個寄存器中的逐位的定義和功能進(jìn)行學(xué)習(xí)和掌握。

3073b8d4-b75b-11ec-aa7f-dac502259ad0.jpg

30874be2-b75b-11ec-aa7f-dac502259ad0.jpg

圖1:T0和T1的基本構(gòu)成

一、定時器/計數(shù)器的功能

AT89S52單片機(jī)定時器/計數(shù)器的基本部件是兩個8位的計數(shù)器(T1計數(shù)器分為高8位TH1和低8位TL1,T0計數(shù)器的高8位是TH0,低8位是TL0)。如圖1所示。

定時器/計數(shù)器的核心是一個加1計數(shù)器,在作定時器使用時,它對機(jī)器周期進(jìn)行計數(shù),每過一個機(jī)器周期計數(shù)器加1,直到計數(shù)器計滿溢出。

當(dāng)它用作對外部事件計數(shù)時,計數(shù)器接相應(yīng)的外部輸入引腳T0(P3.4)或T1(P3.5)并在每個機(jī)器周期的S5P2時采樣,當(dāng)采樣到1—0的負(fù)跳變時,計數(shù)器加1。二、定時器/計數(shù)器的結(jié)構(gòu)

AT89S52單片機(jī)內(nèi)部的定時/計數(shù)器的結(jié)構(gòu)如圖2所示。定時器T0由特殊功能寄存器TL0(低8位)和TH0(高8位)構(gòu)成,定時器T1由特殊功能寄存器TL1(低8位)和TH1(高8位)構(gòu)成。每個寄存器均可單獨訪問。

3098cd5e-b75b-11ec-aa7f-dac502259ad0.jpg

圖2 定時器/計數(shù)器的內(nèi)部結(jié)構(gòu)1、定時/計數(shù)的基本概念定時和計數(shù)是日常生活和生產(chǎn)中最常見和最普遍的問題。

定時器和計數(shù)器功能基本上都是使用相同的邏輯實現(xiàn)的,而且這兩個功能都包含輸入的計數(shù)信號,本質(zhì)上都是對脈沖計數(shù)。計數(shù)器用來計數(shù)并指示在任意間隔內(nèi)輸入信號(事件)的個數(shù),而定時器則對規(guī)定間隔內(nèi)輸入的信號個數(shù)進(jìn)行計數(shù),用來指示經(jīng)歷的時間。

在單片機(jī)中,定時/計數(shù)器作定時功能用時,對機(jī)器周期計數(shù)(由單片機(jī)的晶體振蕩器經(jīng)過12分頻后得到),因每次計數(shù)的周期是固定的,所以根據(jù)它計數(shù)的多少就可以很方便的計算出它計數(shù)的時間。如圖3所示。

30adab02-b75b-11ec-aa7f-dac502259ad0.png

圖3 計數(shù)與定時

2、溢出的基本概念從一個生活中的例程看起:一個水盆在水龍頭下,水龍頭沒關(guān)緊,水一滴滴地滴入盆中。盆的容量是有限的,水滴持續(xù)落下,盆中的水持續(xù)變滿,最終有一滴水使得盆中的水滿了,這就是“溢出”。如果一個空的盆要1萬滴水滴進(jìn)去才會滿,開始滴水之前可以先放入一部分水,叫做計數(shù)初值。如果現(xiàn)在要計數(shù)9000,那么可以先放入1000滴水,也就是計數(shù)初值為1000,再計數(shù)9000就可以溢出產(chǎn)生中斷。

單片機(jī)中通常采用計數(shù)初值的辦法,如果每個脈沖是1微秒,則計滿256個脈沖需時256微秒,如果現(xiàn)在要定時100微妙,只要在計數(shù)器里面先放進(jìn)156,然后計數(shù)100就可以就可以溢出產(chǎn)生中斷了。如圖4所示。

30ce6eb4-b75b-11ec-aa7f-dac502259ad0.png

圖4 定時器/計數(shù)器的溢出

3、定時/計數(shù)的主要方法

實現(xiàn)定時或計數(shù),主要有三種方法。

(1)軟件延時

軟件延時利用微處理器執(zhí)行一個延時程序段實現(xiàn)。因為微處理器執(zhí)行每條指令都需要一定時間,通過指令的循環(huán)實現(xiàn)軟件延時。軟件定時具有不使用硬件的特點,但卻占用了大量CPU時間。另外,軟件定時精度不高,在不同系統(tǒng)時鐘頻率下,執(zhí)行一條指令的時間不同,同一個軟件延時程序的定時時間也會不同。

(2)硬件定時

硬件定時采用數(shù)字電路中的分頻器將系統(tǒng)時鐘進(jìn)行適當(dāng)分頻產(chǎn)生需要的定時信號,也可以采用單穩(wěn)電路或簡易定時電路(如常用的555定時器)由外接RC(電阻電容)電路控制定時時間。這樣的定時電路較簡單,利用不同分頻倍數(shù)或改變電阻阻值、電容容值使定時時間在一定范圍內(nèi)改變。

(3)可編程的硬件定時

可編程定時器/計數(shù)器最大特點是可以通過軟件編程來實現(xiàn)定時時間的改變,通過中斷或查詢方法來完成定時功能或計數(shù)功能。這種電路不僅定時值和定時范圍可用程序改變,而且具有多種工作方式,可以輸出多種控制信號,具備較強(qiáng)的功能。

原文標(biāo)題:單片機(jī)定時器/計數(shù)器基本原理

文章出處:【微信公眾號:MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628345
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5250

    瀏覽量

    119200
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2241

    瀏覽量

    93970

原文標(biāo)題:單片機(jī)定時器/計數(shù)器基本原理

文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    解析CPU寄存器

    8寄存器在16寄存器,而16寄存器在32
    發(fā)表于 09-19 10:10 ?3639次閱讀

    如何根據(jù)自己設(shè)計寄存器配置總線定義來生成一套寄存器配置模版

    無論是FPGA還是ASIC,系統(tǒng)設(shè)計總會存在配置寄存器總線的使用,我們會將各種功能、調(diào)試寄存器掛載在寄存器總線上使用。
    的頭像 發(fā)表于 03-04 13:56 ?771次閱讀
    如何根據(jù)自己設(shè)計<b class='flag-5'>中</b>的<b class='flag-5'>寄存器</b>配置總線<b class='flag-5'>定義</b>來生成一套<b class='flag-5'>寄存器</b>配置模版

    xsdk的64寄存器有什么功能

    你好,我想讀取和寫入xsdk的64寄存器。我發(fā)現(xiàn)Xil_Out32和Xil_In32用于32寄存器。 64
    發(fā)表于 04-23 10:09

    寄存器與移位寄存器

    寄存器與移位寄存器 寄存器是用來寄存數(shù)碼的邏輯部件,所以必須具備接收和寄存數(shù)碼的功能。任何一種
    發(fā)表于 03-12 15:19 ?59次下載

    第二十六講 寄存器和移位寄存器

    第二十六講 寄存器和移位寄存器7.4.1 寄存器1.定義2.電路舉例 3.邏輯功能分析7.4.2 移位
    發(fā)表于 03-30 16:30 ?9370次閱讀
    第二十六講 <b class='flag-5'>寄存器</b>和移位<b class='flag-5'>寄存器</b>

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內(nèi)的組成部分。
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    寄存器培訓(xùn)教程

    寄存器培訓(xùn)教程 7.4.1 寄存器1.定義2.電路舉例 3.邏輯功能分析7.4.2 移位寄存器一、單向移位
    發(fā)表于 03-08 14:52 ?1220次閱讀

    32寄存器,32寄存器是什么意思

    32寄存器,32寄存器是什么意思  從X8086開始學(xué)了一年,第一個ASM的程序就是變32換16進(jìn)制的程序,不過現(xiàn)在叫我從新開始寫ASM程
    發(fā)表于 03-08 17:26 ?1.7w次閱讀

    CAN寄存器功能

    fesscale的8單片機(jī)can寄存器對應(yīng)的功能。
    發(fā)表于 03-29 14:44 ?4次下載

    寄存器的使用技巧及定義

    寄存器是中央處理內(nèi)的組成部分。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和地址。在中央處理的控制部件,包含的
    發(fā)表于 09-12 16:16 ?2次下載
    <b class='flag-5'>寄存器</b>的使用技巧及<b class='flag-5'>定義</b>

    HELLODSPF2812寄存器速查

    周期寄存器,選用定時 1 的周期寄存器。這一在 T1CON 是保留。在 EVB
    發(fā)表于 04-12 14:33 ?12次下載
    HELLODSP<b class='flag-5'>中</b>F2812<b class='flag-5'>寄存器</b>速查

    51單片機(jī)特殊功能寄存器在C51程序定義詳細(xì)說明

    MCS - 51單片機(jī),除了程序計數(shù)PC和4組工作寄存器組外,其它所有的寄存器均為特殊功能寄存器
    發(fā)表于 07-22 17:37 ?1次下載
    51單片機(jī)特殊<b class='flag-5'>功能</b><b class='flag-5'>寄存器</b>在C51程序<b class='flag-5'>中</b>的<b class='flag-5'>定義</b>詳細(xì)說明

    16和32寄存器的區(qū)別 16寄存器有哪些

    16寄存器可以存儲2個字節(jié)(16)的數(shù)據(jù),數(shù)據(jù)范圍為0~65535。在單片機(jī),16寄存器
    發(fā)表于 03-31 18:14 ?1.4w次閱讀

    單片機(jī)工作寄存器作用 單片機(jī)常用專用寄存器

    除了通用寄存器(如累加、通用寄存器等),單片機(jī)還會有特定功能寄存器,如定時
    的頭像 發(fā)表于 04-08 14:46 ?6894次閱讀

    寄存器定義功能 寄存器的分類和工作原理

    在計算機(jī)系統(tǒng)寄存器作為一種特殊的存儲設(shè)備,扮演著至關(guān)重要的角色。它是中央處理(CPU)內(nèi)部的重要組成部分,用于暫時存儲數(shù)據(jù)和指令,以便于CPU進(jìn)行高速的運算和控制。本文將對寄存器
    的頭像 發(fā)表于 05-12 17:07 ?3936次閱讀