91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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)不再提示

08_51入門(mén)_定時(shí)器中斷

天才小貍花 ? 來(lái)源:Sigle_chip ? 作者:Sigle_chip ? 2022-09-13 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

在程序運(yùn)行中,我們有著去定時(shí)運(yùn)行某一功能的需求,或許1s、或許0.5s。如果使用delay函數(shù),必然導(dǎo)致會(huì)使得其他任務(wù)阻塞。使用定時(shí)器對(duì)于程序的精準(zhǔn)計(jì)時(shí)有著很大作用,獲取去達(dá)到計(jì)時(shí)的目的,也可以使用定時(shí)器,如超聲波的測(cè)距方式。

我們生活中采用秒等單位作為生活中的基本單位,而秒的詳細(xì)定義為

銫-133原子位于海平面處于非擾動(dòng)基態(tài)時(shí)兩個(gè)超精細(xì)能級(jí)間躍遷對(duì)應(yīng)的輻射頻率ΔνCs以Hz(即等于s-1)為單位表達(dá)時(shí)選取固定數(shù)值9192631770倍來(lái)定義秒

其銫-133原子的輻射頻率的9192631770為1s

時(shí)鐘

單片機(jī)內(nèi)部當(dāng)然不可能使用銫原子作為計(jì)時(shí)的時(shí)鐘源,通常是采用石英晶振制成的一種諧振器件,其時(shí)鐘頻率為其固有屬性,只受到自身影響。

通過(guò)與51單片機(jī)的XTL1和XTL2引腳構(gòu)成一個(gè)皮爾斯振蕩器,通過(guò)內(nèi)部時(shí)鐘電路的整形調(diào)整,向單片機(jī)提供穩(wěn)定的時(shí)鐘頻率。若為有員晶振直接將時(shí)鐘引腳接到XTL1引腳。

常用于單片機(jī)的晶振頻率有11.0592MHz,12MHz等,為什么會(huì)有11.0592這么特殊的晶振頻率呢,這涉及到通信的問(wèn)題,這里暫不引入。

12MHz表示以Hz(即等于s-1)為單位表達(dá)時(shí)選取固定數(shù)值12000000倍為1s。

當(dāng)然,如果我們使用計(jì)數(shù)器模式,時(shí)鐘源便為外部引腳的電平變化,分別是連接51單片機(jī)的 P3.4 P3.5兩個(gè)口。

周期

時(shí)鐘周期

其時(shí)鐘周期是指振蕩源的周期,定義為時(shí)鐘脈沖的倒數(shù)。

外部晶振12M
則時(shí)鐘周期為 1s/12M= 1S/12 000 000 = 1/12us

外部晶振11.0592M
則時(shí)鐘周期為 1s/11.0592M = 1S/11 059 200 = 1/11.0592us

外部晶振24M
則時(shí)鐘周期為 1s/24M= 1S/24 000 000 = 1/24us

機(jī)器周期

機(jī)器周期,是指執(zhí)行一單位指令所需要的時(shí)鐘周期個(gè)數(shù)。

機(jī)器周期也稱(chēng)為CPU周期。
在計(jì)算機(jī)中,為了便于管理,常把一條指令的執(zhí)行過(guò)程劃分為若干個(gè)階段(如取指、譯碼、執(zhí)行等),每一階段完成一個(gè)基本操作。完成一個(gè)基本操作所需要的時(shí)間稱(chēng)為機(jī)器周期。
一般情況下,一個(gè)機(jī)器周期由若干個(gè)時(shí)鐘周期組成。如 1T,就表示,需要 1個(gè)時(shí)鐘周期; 12T即為 12個(gè)時(shí)鐘周期。這些都只是
一單位指令的時(shí)間(如自增、自減等),多單位指令時(shí)間進(jìn)行倍乘(如賦值語(yǔ)句需要2個(gè)機(jī)械周期,即乘以2倍),
傳統(tǒng)的8051單片機(jī)就是12T的,即完成1個(gè)單位指令所需時(shí)間為12個(gè)時(shí)鐘周期。 1T的完成1個(gè)單位指令所需時(shí)間則為1個(gè)機(jī)器周期。

傳統(tǒng)的8051使用12Mhz晶振的機(jī)器周期是,1T的要比12T的速度更快,而STC89C51RC系列支持6T模式,相當(dāng)于速度翻倍。

1T 12Mhz的機(jī)器周期為1/12us
12T 12Mhz的機(jī)器周期為1us

指令周期

CPU完成一條指令的時(shí)間叫指令周期

一般一條完整的指令包括:取指周期、間址周期、執(zhí)行周期、中斷周期。

寄存器

在使用定時(shí)器時(shí),我們需要對(duì)定時(shí)器/計(jì)數(shù)器的初始化。

第一步,開(kāi)中斷,對(duì)IP和IE賦值。

第二步,配置模式,對(duì)TMOD賦值。

先確定定時(shí)器還是計(jì)數(shù)器,TMOD中有相應(yīng)的控制位 [ C/T ]來(lái)選擇T0或T1為定時(shí)器還是計(jì)數(shù)器.

在將控制位GATE打開(kāi),最后配置模式位M0,M1,兩位可配置4種模式。

  1. 定時(shí)器/計(jì)數(shù)器0模式選擇 13位定時(shí)器/計(jì)數(shù)器,兼容8048定時(shí)模式,TL0只用低5位參與分頻,TH0整個(gè)8位全用。
  2. 16位定時(shí)器/計(jì)數(shù)器,TL0、TH0全用
  3. 8位自動(dòng)重裝載定時(shí)器,當(dāng)溢出時(shí)將TH0存放的值自動(dòng)重裝入TL0定時(shí)器0此時(shí)作為雙8位定時(shí)器/計(jì)數(shù)器。
  4. TL0作為一個(gè)8位定時(shí)器/計(jì)數(shù)器,通過(guò)標(biāo)準(zhǔn)定時(shí)器0的控制位控制。TH0僅作為一個(gè) 8位定時(shí)器,由定時(shí)器1的控制位控制。

定時(shí)器/計(jì)數(shù)器的核心部件是一個(gè)加法(也有減法)的計(jì)數(shù)器,其本質(zhì)是對(duì)脈沖進(jìn)行計(jì)數(shù)。只是計(jì)數(shù)脈沖來(lái)源不同:
如果計(jì)數(shù)脈沖來(lái)自系統(tǒng)時(shí)鐘,則為定時(shí)方式,此時(shí)定時(shí)器/計(jì)數(shù)器每12個(gè)時(shí)鐘得到一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)值加1;
如果計(jì)數(shù)脈沖來(lái)自單片機(jī)外部引腳(T0為P3.4,T1為P3.5),則為計(jì)數(shù)方式,每來(lái)一個(gè)脈沖加1。

由于8051單片機(jī)為8位單片機(jī),寄存器最多為8位,計(jì)數(shù)周期太小。

通過(guò)兩個(gè)寄存器組成16位寄存器(實(shí)際還是倆),其16位最多可計(jì)時(shí) 216個(gè)機(jī)器周期,12T,12Mhz下為 65,535us。

當(dāng)開(kāi)啟定時(shí)器后,16位計(jì)時(shí)器每個(gè)機(jī)器周期值自加,全為1時(shí)觸發(fā)中斷,執(zhí)行中斷程序,根據(jù)是否在使用定時(shí)器再將值寫(xiě)入16位寄存器,學(xué)習(xí)單片機(jī)嵌入式,元器件有需求可以去唯樣商城看看,學(xué)生還有優(yōu)惠哦。

初值計(jì)算

TL表示低8位。TH表示高八位。

其值為

0XFFFF -(初值(單位:s)/1s)*(晶振頻率/12)

其初值計(jì)算可用相應(yīng)的工具,如STCISP就自帶計(jì)算,但我們要理解其相應(yīng)的工作方式。

審核編輯 黃昊宇

聲明:本文內(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)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6077

    文章

    45522

    瀏覽量

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

    關(guān)注

    23

    文章

    3369

    瀏覽量

    124117
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CW32定時(shí)器及其中斷介紹

    載計(jì)數(shù)并由一個(gè)可編程預(yù)分頻驅(qū)動(dòng)。BTIM 支持定時(shí)器模式、計(jì)數(shù)模式、觸發(fā)啟動(dòng)模式和門(mén)控模式 4 種工作模式,支持溢出事件觸發(fā)中斷請(qǐng)求
    發(fā)表于 01-14 06:42

    LAT1173高精度定時(shí)器的同步功能應(yīng)用筆記

    STM32G474 所含的高精度定時(shí)器(HRTIMER)其實(shí)包含了多個(gè)定時(shí)器,多個(gè)定時(shí)器之間可以單獨(dú)工作,也可以進(jìn)行同步,且高精度定時(shí)器還能與片上的其他
    發(fā)表于 01-11 17:32 ?0次下載

    CW32L083的基本定時(shí)器

    CW32L083 內(nèi)部集成 3 個(gè)基本定時(shí)器 (BTIM),每個(gè) BTIM 完全獨(dú)立且功能完全相同,各包含一個(gè) 16bit 自動(dòng)重裝 載計(jì)數(shù)并由一個(gè)可編程預(yù)分頻驅(qū)動(dòng)。BTIM 支持定時(shí)器
    發(fā)表于 12-15 06:23

    什么是自動(dòng)喚醒定時(shí)器

    CW32F030 內(nèi)部集成 1 個(gè)自動(dòng)喚醒定時(shí)器 (AWT),AWT 包含一個(gè) 16bit 向下計(jì)數(shù),并由一個(gè)可編程預(yù)分頻驅(qū)動(dòng)。AWT 可選 5 種計(jì)數(shù)時(shí)鐘源,可工作于定時(shí)模式或計(jì)
    發(fā)表于 12-11 07:24

    CW32通用定時(shí)器—輸出比較

    計(jì)數(shù)溢出,這個(gè)事情會(huì)觸發(fā)一個(gè)中斷,被叫做定時(shí)器溢出中斷,也就是說(shuō),定時(shí)器依靠對(duì)穩(wěn)定的時(shí)鐘源定次數(shù)計(jì)數(shù)來(lái)實(shí)現(xiàn)定時(shí),并且每一個(gè)
    發(fā)表于 12-11 06:45

    【乾芯QXS320F開(kāi)發(fā)板試用】定時(shí)器中斷

    CPUTimer_enableInterrupt(CPUTIMER0_BASE);// 設(shè)置定時(shí)器中斷 CPUTimer_startTimer(CPUTIMER0_BASE); // 開(kāi)啟定時(shí)器
    發(fā)表于 12-09 16:56

    CW32定時(shí)器中斷介紹

    載計(jì)數(shù)并由一個(gè)可編程預(yù)分頻驅(qū)動(dòng)。BTIM 支持定時(shí)器模式、計(jì)數(shù)模式、觸發(fā)啟動(dòng)模式和門(mén)控模式 4 種工作模式,支持溢出事件觸發(fā)中斷請(qǐng)求
    發(fā)表于 12-01 07:08

    單片機(jī)定時(shí)器中斷

    51單片機(jī)內(nèi)部共有兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù),即定時(shí)器T0和定時(shí)器T1。它們既有定時(shí)功能又
    發(fā)表于 11-24 06:22

    PWM、定時(shí)器、SysTick 區(qū)別及應(yīng)用場(chǎng)景

    。下面我們來(lái)梳理清楚。一、基本概念定時(shí)器(Timer)MCU內(nèi)最基礎(chǔ)的計(jì)數(shù)外設(shè),通過(guò)計(jì)數(shù)時(shí)鐘周期實(shí)現(xiàn)定時(shí)、計(jì)數(shù)功能。多數(shù)MCU內(nèi)部有多個(gè)通用定時(shí)器,可配置為定時(shí)中斷
    的頭像 發(fā)表于 11-17 10:53 ?578次閱讀
    PWM、<b class='flag-5'>定時(shí)器</b>、SysTick 區(qū)別及應(yīng)用場(chǎng)景

    cs32a010定時(shí)器的問(wèn)題

    按照例程寫(xiě)了定時(shí)器的初始化,還是無(wú)法進(jìn)入中斷 比較奇怪我使用定時(shí)器為什么要用輸入捕獲? 還有周期是否該設(shè)為x-1?
    發(fā)表于 11-06 10:49

    SysTick系統(tǒng)滴答定時(shí)器簡(jiǎn)介

    SysTick—系統(tǒng)定時(shí)器是屬于CM33內(nèi)核中的一個(gè)外設(shè),內(nèi)嵌在NVIC中。系統(tǒng)定時(shí)器是一個(gè)24bit的向下遞減的計(jì)數(shù),計(jì)數(shù)每計(jì)數(shù)一次的時(shí)間為 1/SYSCLK,一般我們?cè)O(shè)置系統(tǒng)時(shí)
    的頭像 發(fā)表于 09-23 09:50 ?1677次閱讀
    SysTick系統(tǒng)滴答<b class='flag-5'>定時(shí)器</b>簡(jiǎn)介

    大彩講堂:VisualHMI-LUA教程-定時(shí)器的使用指南

    定時(shí)器的使用
    的頭像 發(fā)表于 08-31 16:59 ?1239次閱讀
    大彩講堂:VisualHMI-LUA教程-<b class='flag-5'>定時(shí)器</b>的使用指南

    stm32H743定時(shí)器溢出的原因?怎么解決?

    我利用定時(shí)器更新中斷實(shí)現(xiàn)軟件計(jì)時(shí),定時(shí)時(shí)間是固定的按照{(diào)10ms, 20ms,650ms, 50ms,50ms}周期性進(jìn)行的。由于下一次的計(jì)時(shí)時(shí)間是需要在定時(shí)器
    發(fā)表于 06-23 08:26

    第十二章 SysTick——系統(tǒng)定時(shí)器

    本章介紹了W55MH32的SysTick系統(tǒng)定時(shí)器,它是24位遞減計(jì)數(shù),含4個(gè)寄存,可配置定時(shí)、中斷,用于產(chǎn)生時(shí)基 等。
    的頭像 發(fā)表于 05-22 17:16 ?1138次閱讀
    第十二章 SysTick——系統(tǒng)<b class='flag-5'>定時(shí)器</b>

    MCU定時(shí)器/計(jì)數(shù)

    RISC-V核低功耗MCU通過(guò)靈活的定時(shí)器架構(gòu)、低功耗模式適配及硬件級(jí)中斷優(yōu)化,在工業(yè)控制、智能家居等場(chǎng)景中實(shí)現(xiàn)高精度計(jì)時(shí)與能耗控制的協(xié)同設(shè)計(jì),滿(mǎn)足復(fù)雜任務(wù)調(diào)度與實(shí)時(shí)響應(yīng)的雙重需求?。 一、?硬件
    的頭像 發(fā)表于 04-27 13:54 ?828次閱讀