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

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

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

單片機工作原理詳解

我快閉嘴 ? 來源:電子技術(shù)控 ? 作者:電子技術(shù)控 ? 2022-08-29 09:37 ? 次閱讀

8f464374-26f8-11ed-ba43-dac502259ad0.png

圖1

這張圖第一眼看過去,可能會讓人覺得頭皮發(fā)麻,但稍微想一下,其實并不復(fù)雜。

這里以定時器中斷T0為例。先看

8f6bcbee-26f8-11ed-ba43-dac502259ad0.png

圖2

定時器(也就是計數(shù)器)T0到達(dá)PT0H之前,先要經(jīng)過TF0,開關(guān)ET0和開關(guān)EA。事實上,TF0也是一個開關(guān),那么,為了讓定時器T0的中斷順利到達(dá)PT0H,這三個開關(guān)就必須都閉合。

為什么說TF0也是一個開關(guān)呢?注意到TF0所在的那一列,一共有8位,這8位剛好可以用一個寄存器來保存和控制,這個寄存器就叫做定時器控制寄存器:

8f789bf8-26f8-11ed-ba43-dac502259ad0.png

圖3圖3和TF0所在的那一列不是完全相同,我們暫且不管。這個TF0其實是定時器0的溢出中斷標(biāo)志位 ,當(dāng)T0從初值開始加1計數(shù)到產(chǎn)生溢出時,由硬件使TF0置1,也就是說,TF0等于1的時候(相當(dāng)于這個開關(guān)接通),表示T0(一個8位寄存器)這個定時器(計數(shù)器)已經(jīng)由8個0通過加1計數(shù)變成了8個1,再加1將產(chǎn)生溢出。這個時候就會引起CPU硬件復(fù)位,讓T0重新變成8個0。那么,TF0等于1的作用其實相當(dāng)于把T0這個寄存器重新置0,當(dāng)然,重新置0之后這個開關(guān)又重新斷開。

再看ET0所在的那一列。這一列同樣由一個寄存器來控制,叫做中斷允許控制寄存器IE:

8f9092f8-26f8-11ed-ba43-dac502259ad0.png

圖4

那么,將ET0這個開關(guān)閉合,就只要將寄存器IE中的那一位置1就可以了。ET0置1以后,就相當(dāng)于定時器T0所引起的操作已經(jīng)被CPU允許了。

再看圖1中EA所在的那一列。這一列的所有開關(guān)要么全斷開,要么全閉合。全斷開的時候,CPU不響應(yīng)任何中斷;全閉合的時候,CPU響應(yīng)全部中斷。所以,EA叫做中斷允許控制位。至此,圖1中左邊的三個開關(guān)已經(jīng)解釋清楚了,那么右邊的呢?

右邊的更簡單了。我們注意到,圖1中一共有六個不同的中斷源:定時器T0,T1和T2,外中斷0和外中斷1,還有一個串口中斷。這六個不同的中斷源要是同時產(chǎn)生中斷請求怎么辦呢?這個時候就有一個優(yōu)先級的問題,那么

8f9ffacc-26f8-11ed-ba43-dac502259ad0.png

圖5

優(yōu)先級就由PT0H和PT0這兩位來設(shè)置:

8fbb5920-26f8-11ed-ba43-dac502259ad0.png

圖6

也就是說,六個不同的中斷源中的任何一個,都可以通過這兩位設(shè)置成0到3中的任何一個優(yōu)先級。再看圖1中任何一個優(yōu)先級的左邊

8fcfe372-26f8-11ed-ba43-dac502259ad0.png 圖7

是不是都有6根連線?

通過上述解釋,圖1就可以這樣簡單理解:

一個中斷源如果想得到CPU的響應(yīng),就必須先閉合左邊的三個開關(guān),再按照被設(shè)定的優(yōu)先級順序進行響應(yīng)。

是不是很簡單?

當(dāng)定時器T0中斷經(jīng)過左邊三個開關(guān)以及優(yōu)先級設(shè)定后,到達(dá)圖7的位置以后,這個時候就要把定時器T0的中斷服務(wù)程序的入口地址放到CPU的PC寄存器里邊以便執(zhí)行這個中斷程序。

最后以一個簡單的定時器程序來說明:

MOV TMOD,A ; 將工作方式控制字寫入TMOD

MOV TL0, #9CH ; 送初值

MOV TH0, #9CH ; 送重裝初值,這個程序的前三句是設(shè)定定時器T0的初值,可以不管

SETB ET0 ; 圖1中的ET0開關(guān)閉合,允許定時器T0中斷

SETB EA ; 圖1中EA開關(guān)閉合,CPU允許全部中斷

SETB TR0 ; 啟動定時器T0,這一句和圖1中的TF0開關(guān)閉合不同,可以這樣理解:TF0開關(guān) 閉合是讓計數(shù)器T0重新變成0,這個過程是自動進行的;而計數(shù)器T0重新變成0 以后,要重新開始計數(shù),TR0置1就是啟動這個過程。

HERE: SJMP HERE ; 循環(huán)等待,當(dāng)計數(shù)器T0沒有變成全1的時候重復(fù)執(zhí)行這個指令,就是 空轉(zhuǎn)

; 定時器T0的中斷服務(wù)程序

CTC0: 當(dāng)計數(shù)器T0變成全1的時候 ,將 CTC0這個中斷程序的入口地址送人PC寄存 器

CPL P1.7

這個程序的作用是在P1.7引腳輸出周期為200 μs的方波,所以中斷程序只有一句,就是對P1.7引腳的電壓不斷進行取反操作。

上面程序的編寫思路是這樣的:主程序中設(shè)置好中斷發(fā)生的所有條件,即把該閉合的開關(guān)閉合,然后啟動定時器,等待定時器計數(shù),當(dāng)定時器計數(shù)未滿時,主程序空轉(zhuǎn);當(dāng)計數(shù)器滿了以后,相當(dāng)于圖1中最左邊的那個開關(guān)TF0閉合,從而將中斷程序的入口地址CTC0送入PC讓CPU執(zhí)行,并同時將計數(shù)器清0。

當(dāng)中斷程序執(zhí)行完成以后(執(zhí)行了一遍CPL P1.7指令),CPU又回到主程序的空轉(zhuǎn)指令

HERE: SJMP HERE ;繼續(xù)等待,這個時候因為計數(shù)器已經(jīng)重新清0并已經(jīng)開始重新計數(shù)(定時器只要啟動一次),并且TFo這個開關(guān)已經(jīng)重新斷開,所以主程序就在那里等待計數(shù)器下一次計滿溢出,如此周而復(fù)始。

審核編輯:湯梓紅

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

    關(guān)注

    6030

    文章

    44491

    瀏覽量

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

    關(guān)注

    31

    文章

    5295

    瀏覽量

    119839
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3232

    瀏覽量

    114337

原文標(biāo)題:單片機工作原理,一張圖幾個步驟理解很清晰

文章出處:【微信號:電子技術(shù)控,微信公眾號:電子技術(shù)控】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    單片機工作原理詳解

      單片機是將中央處理單元(CPU)、儲存器、輸入輸出集成在一片芯片上,可以說單片機就是一臺微型計算機,只是和我們平常使用的計算機相比它的功能有所不同,也沒有我們用的計算機那樣強大。
    發(fā)表于 11-22 16:49 ?4450次閱讀
    <b class='flag-5'>單片機工作原理</b><b class='flag-5'>詳解</b>

    煤矸石驗煤機工作原理-磚坯大卡化驗機詳解

    煤矸石驗煤機工作原理-磚坯大卡化驗機詳解,煤矸石驗煤機工作原理-磚坯大卡化驗機詳解由【鶴壁生物質(zhì)燃料大卡測定儀】提供的顆粒熱值分析儀大卡機:186.3920.3323煤矸石卡數(shù)化驗機,
    發(fā)表于 08-30 18:34

    有刷直流電機工作原理詳解 相關(guān)資料分享

    有刷直流電機工作原理詳解來源有刷直流電機被廣泛用于從玩具到按鈕調(diào)節(jié)式汽車坐椅的應(yīng)用中。有刷直流 (Brushed DC,BDC)電機價格便宜、易于驅(qū)動并且易于制造成各種尺寸和形狀。本應(yīng)用筆記將討論BDC電機的工作原理、驅(qū)動BDC
    發(fā)表于 06-30 06:08

    51單片機步進電機工作原理

    51單片機步進電機工作原理,51單片機步進電機控制程序,本來接觸單片機挺久了的,但是一直只是停留在非常初級的認(rèn)識階段,本科的時候上過幾門課,但是從來沒有自己搗鼓過
    發(fā)表于 07-08 09:02

    單片機工作原理

    單片機工作原理:1、主要器件cpu(負(fù)責(zé)運算與控制)、存儲器(程序存儲在ROM存儲器中,臨時變量存放在RAM存儲器中)、IO(輸入、輸出),三者相互配合實現(xiàn)單片機的運行。2、同步:多個獨立的部分按照
    發(fā)表于 11-23 07:25

    單片機工作原理?

    單片機工作原理?
    發(fā)表于 02-21 20:16

    CD刻錄機工作原理

    CD刻錄機工作原理 CD刻錄機工作原理 C
    發(fā)表于 07-24 09:16 ?9427次閱讀

    8051單片機工作原理介紹

    8051單片機工作原理 8051單片機工作原理
    發(fā)表于 10-28 11:19 ?43次下載

    氬弧焊機工作原理

    氬弧焊基礎(chǔ)知識--------氬弧焊機工作原理
    發(fā)表于 11-30 15:58 ?31次下載

    單片機輸入/輸出端口的工作原理

    單片機的功能主要是通過向特殊寄存器輸送0 或1 二進制數(shù)來實現(xiàn)的,所以,了解0和1 的作用對理解單片機工作的基本原理非常重要,下面就以一個程序?qū)嵗齺碚f明輸入/輸出端口的工作原理。
    發(fā)表于 07-21 10:36 ?1w次閱讀
    <b class='flag-5'>單片機</b>輸入/輸出端口的<b class='flag-5'>工作原理</b>

    通俗易懂的單片機工作原理

    單片機工作原理: 1、主要器件cpu(負(fù)責(zé)運算與控制)、存儲器(程序存儲在ROM存儲器中,臨時變量存放在RAM存儲器中)、IO(輸入、輸出),三者相互配合實現(xiàn)單片機的運行。 2、同步:多個獨立的部分
    的頭像 發(fā)表于 10-21 15:03 ?3.1w次閱讀

    串口 單片機 文件_通俗易懂的單片機工作原理

    單片機工作原理: 1、主要器件cpu(負(fù)責(zé)運算與控制)、存儲器(程序存儲在ROM存儲器中,臨時變量存放在RAM存儲器中)、IO(輸入、輸出),三者相互配合實現(xiàn)單片機的運行。 2、同步:多個獨立的部分
    發(fā)表于 11-15 11:36 ?18次下載
    串口 <b class='flag-5'>單片機</b>  文件_通俗易懂的<b class='flag-5'>單片機工作原理</b>

    哈默納科Harmonic精密行星齒輪箱減速機工作原理

    哈默納科Harmonic精密行星齒輪箱減速機工作原理詳解
    的頭像 發(fā)表于 01-13 17:21 ?2023次閱讀
    哈默納科Harmonic精密行星齒輪箱減速<b class='flag-5'>機工作原理</b>

    SMT貼片機工作原理詳解

    SMT貼片機工作原理詳解
    的頭像 發(fā)表于 09-04 11:08 ?2675次閱讀

    單片機時鐘電路的概念/工作原理/基本結(jié)構(gòu)/作用

    單片機時鐘電路是指用于控制單片機工作頻率的電路,其主要作用是為單片機提供穩(wěn)定的時鐘信號,保證單片機正常工作。
    發(fā)表于 09-08 17:08 ?6086次閱讀