(定時器/計數器)中斷系統(詳解與使用)

講解

簡介

定時器/計數器

定時器實際上也是計數器,只是計數的是固定周期的脈沖

定時和計數只是觸發來源不同(時鐘信號和外部脈沖)其他方面是一樣的。

 定時器在單片機內部就像一個小鬧鐘一樣,根據時鐘的輸出信號,每隔“一秒”,計數單元的數值就增加一,當計數單元數值增加到“設定的鬧鐘提醒時間”時,計數單元就會向中斷系統發出中斷申請,產生“響鈴提醒”,使程序跳轉到中斷服務函數中執行。

中斷

中斷是指計算機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程序并轉入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續運行。

假設一個人在家看電視,這時候突然門鈴響了,這個人此時就要停止看電視去開門,然后關上門后繼續回來看電視,這個例子當中看電視這個動作就是常規的計算機運行過程,門鈴響就相當于一個中斷信號(中斷請求),用戶這時停止看電視(中斷當前程序)起來開門(中斷響應),關上門后(中斷處理結束)繼續看電視(繼續執行當前程序)。這一整個過程就是中斷發生時,CPU的處理方式。

  還是上面的例子,現在假設門鈴響的時候水燒開了,此時用戶可以選擇先開門后關水,也可以選擇先關水后開門,這個先后關系就是中斷優先級,假設門鈴的中斷優先級比燒水的優先級高,那就會先開門,后關水,反之,則會先關水,后開門,這就是針對兩個及兩個以上中斷同時發生的時候CPU根據中斷優先級執行中斷的過程。

51單片機

定時器/計數器

?

16位寄存器T0、T1分別由TH0、TL0和TH1、TL1四個8位計數器組成

定時器的區別

        T0可分為2個獨立的8位定時器,而定時器1不能;

        T1可作為串口的波特率發生器,而定時器0不能。

工作原理

        用途:定時器和計數器

        核心:加1計數器

        原理:每來一個脈沖則加1計數器加1,當加到寄存器要溢出時再來一個脈沖使加1計數器歸零(溢出)同時使TCON寄存器中的TF0(或TF1)置1,向CPU發出中斷請求。

脈沖來源

        定時器:由系統的時鐘晶振輸出脈沖源提供

        計數器:脈沖來源是由T0或T1引腳輸入的外部脈沖源提供

注意: T0或T1都不能同時既做定時器也做計數器  

TCON控制寄存器

啟動和停止定時/計數器的計數,并控制定時器的工作狀態,支持按位尋址。單片機復位后清0。

注意:TCON寄存器中的低四位和定時計數器無關,和外部中斷相關

位序D7D6D5D4D3D2D1D0
名稱TF1TR1TF0

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712374.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712374.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712374.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++:String類的使用

創作不易,感謝三連!! 在C語言中,我們想要存儲字符串的話必須要用字符數組 char str[]"hello world"這其實是將在常量區的常量字符串拷貝到數組中,我們會在數組的結尾多開一個空間存儲\0,這樣我…

前端構建之CERT_HAS_EXPIRED和certificate has expired解決方案

問題 2024年 1 月 22 日,淘寶原鏡像域名(registry.npm.taobao.org)的 HTTPS 證書正式到期。如果想要繼續使用,需要將 npm 源切換到新的源(registry.npmmirror.com),否則會報錯。 報錯信息為&a…

Consul服務注冊與發現 Consul配置步驟

Consul服務注冊與發現 Consul配置步驟 consul下載地址 Install | Consul | HashiCorp Developer 啟動需要在 下載好的文件夾里 用cmd 運行consul agent -dev啟動consul Consul配置 配置pom <!--SpringCloud consul config--> <dependency><groupId>org…

【leetcode】回文子串 動態規劃

/*** param {string} s* return {number}*/ var countSubstrings function(s) {let dpnew Array(s.length).fill().map(()>new Array(s.length).fill(false));let num0;for(let i0;i<s.length;i){for(let j0;j<i;j){//在首尾相等時&#xff0c;如果長度時1或者2&…

C++筆記(三)--- 函數重載

目錄 子類繼承父類重載 類成員函數重載 繼承和組合的三種方式請看我上一篇文章 C筆記&#xff08;二&#xff09;--- 繼承和組合-CSDN博客 子類繼承父類重載 當子類繼承父類之后&#xff0c;子類重新定義了一個和父類完全相同函數名稱的函數時&#xff0c;會將父類所有相同…

Pegasus智能家居套件樣例開發--軟定時器

樣例簡介 此樣例將演示如何在Pegasus Wi-Fi IoT智能家居套件上使用cmsis 2.0 接口進行定時器開發。 工程版本 系統版本/API版本&#xff1a;OpenHarmony 3.0 releaseIDE版本&#xff1a;DevEco Device Tool Release 3.0.0.401 快速上手 準備硬件環境 預裝windows系統的PC…

『大模型筆記』RAG應用的12種調優策略指南

RAG應用的12種調優策略指南 文章目錄 一. 概要二. 數據索引2.1. 數據清洗2.2. 分塊2.3. 嵌入模型2.4. 元數據(或未向量化的數據)2.5. 多索引2.6. 索引算法三. 推理階段(檢索和生成)3.1. 檢索參數3.2. 高級檢索策略3.3. 重新排序模型3.5. 大語言模型(LLM)

26、Qt調用.py文件中的函數

一、開發環境 Qt5.12.0 Python3.7.8 64bit 二、使用 新建一個Qt項目&#xff0c;右擊項目名稱&#xff0c;選擇“添加庫” 選擇“外部庫”&#xff0c;點擊“下一步” 點擊“瀏覽”&#xff0c;選擇Python安裝目錄下的libs文件夾中的“python37.lib”文件&#xff0c;點擊“下…

退休開便利店真的靠譜嗎?2024比較賺錢的創業項目排行

近日多個退休后開便利店賺錢的新聞登上熱搜&#xff0c;但是&#xff0c;小編對此有疑問&#xff0c;退休的老年人開便利店真的是一個好選擇嗎&#xff1f; 第一、便利店最基本的轉讓費&#xff0c;裝修費&#xff0c;進貨等等&#xff0c;這筆開支非常大&#xff0c;足以掏空老…

H5下拉刷新分頁

對于分頁需求&#xff0c;分頁數據的請求觸發十分重要&#xff0c;監聽滑動到底的觸發也有很多種。 1.IntersectionObserver監聽 IntersectionObserver 接口&#xff08;從屬于 Intersection Observer API&#xff09;提供了一種異步觀察目標元素與其祖先元素或頂級文檔視口&a…

終結數據混亂!開發者必學的GraphQL秘籍,高效API只需一步

在數字世界中&#xff0c;API就如同城市中的道路&#xff0c;連接著各種服務和數據。然而&#xff0c;傳統的API&#xff08;如RESTful&#xff09;雖然功不可沒&#xff0c;但隨著技術復雜性和需求多樣性不斷攀升&#xff0c;它們顯露出的局限性也呼喚著新的可能出現。此時&am…

Unity中,activeInHierarchy 和 activeSelf

activeInHierarchy&#xff1a; activeInHierarchy 屬性表示游戲對象是否在場景中處于激活狀態&#xff0c;并且是否在層次結構中的激活狀態。它考慮了游戲對象以及其所有父對象的激活狀態。如果 activeInHierarchy 為 true&#xff0c;表示該對象在場景中處于激活狀態且其所有…

LaMa Image Inpainting 圖像修復 Onnx Demo

目錄 介紹 效果 模型信息 項目 代碼 下載 LaMa Image Inpainting 圖像修復 Onnx Demo 介紹 gihub地址&#xff1a;https://github.com/advimman/lama &#x1f999; LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WAC…

《PyTorch深度學習實踐》第十三講RNN進階

一、 雙向循環神經網絡&#xff08;Bidirectional Recurrent Neural Network&#xff0c;BiRNN&#xff09;是一種常見的循環神經網絡結構。與傳統的循環神經網絡只考慮歷史時刻的信息不同&#xff0c;雙向循環神經網絡不僅考慮歷史時刻的信息&#xff0c;還考慮未來時刻的信息…

wireshark過濾和tcpdump抓包指令

Wireshark 過濾器的表達式&#xff0c;用于過濾源 IP 地址為 10.184.148.247 并且目標 TCP 端口為 1883 的數據包。啟用抓包后過濾 ip.addr 10.184.148.247 && tcp.port 1883 主機位10.184.148.19和目標端口為 8080 的操作目標 抓包前過濾 host 10.184.148.19 &…

軟件說明書怎么寫?終于有人一次性說清楚了!

每次寫軟件說明書&#xff0c;你是不是總是毫無頭緒&#xff0c;不知道從何下手&#xff1f;到各網站找資料&#xff0c;不僅格式不規范&#xff0c;甚至可能遺漏關鍵內容&#xff01;挨一頓批不說&#xff0c;還浪費大把時間。別著急&#xff0c;編寫軟件說明書&#xff0c;關…

PostgreSQL開發與實戰(2)常用命令

作者&#xff1a;太陽 1、連庫相關 #連庫 $ psql -h <hostname or ip> -p <端口> [數據庫名稱] [用戶名稱] #連庫并執行命令 $ psql -h <hostname or ip> -p <端口> -d [數據庫名稱] -U <用戶名> -c "運行一個命令;"備注&#xff1…

從理論到落地,大模型評測體系綜合指南

1956年夏&#xff0c;“人工智能” 這一概念被提出。距今已有近70年的發展歷史。中國科學院將其劃分為六個階段&#xff1a;起步發展期&#xff08;1956年—1960s&#xff09;&#xff0c;反思發展期&#xff08;1960s-1970s&#xff09;,應用發展期&#xff08;1970s-1980s),低…

SpringBoot集成Activiti案例

前言 Activiti項目是一項新的基于Apache許可的開源BPM平臺&#xff0c;從基礎開始構建&#xff0c;旨在提供支持新的BPMN 2.0標準&#xff0c;包括支持對象管理組&#xff08;OMG&#xff09;&#xff0c;面對新技術的機遇&#xff0c;諸如互操作性和云架構&#xff0c;提供技…

3.1log | 62.不同路徑,63. 不同路徑 II,343. 整數拆分,96.不同的二叉搜索樹

62.不同路徑 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m,vector<int>(n,0));for(int i0;i<n;i) dp[0][i]1;for(int i0;i<m;i) dp[i][0]1;for(int i1;i<m;i){for(int j1;j<n;j){dp[i][j]dp[i][j-1]dp[i-…