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

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

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

單片機(jī)工作原理詳解

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

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

圖1

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

這里以定時(shí)器中斷T0為例。先看

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

圖2

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

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

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

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

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

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

圖4

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

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

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

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

圖5

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

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

圖6

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

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

是不是都有6根連線?

通過(guò)上述解釋?zhuān)瑘D1就可以這樣簡(jiǎn)單理解:

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

是不是很簡(jiǎn)單?

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

最后以一個(gè)簡(jiǎn)單的定時(shí)器程序來(lái)說(shuō)明:

MOV TMOD,A ; 將工作方式控制字寫(xiě)入TMOD

MOV TL0, #9CH ; 送初值

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

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

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

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

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

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

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

CPL P1.7

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

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

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

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎ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)注

    6039

    文章

    44573

    瀏覽量

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

    關(guān)注

    31

    文章

    5357

    瀏覽量

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

    關(guān)注

    23

    文章

    3251

    瀏覽量

    114991

原文標(biāo)題:?jiǎn)纹瑱C(jī)工作原理,一張圖幾個(gè)步驟理解很清晰

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)工作原理詳解

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

    煤矸石驗(yàn)煤機(jī)工作原理-磚坯大卡化驗(yàn)機(jī)詳解

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

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

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

    51單片機(jī)步進(jìn)電機(jī)工作原理

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

    單片機(jī)工作原理

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

    單片機(jī)工作原理?

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

    CD刻錄機(jī)工作原理

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

    8051單片機(jī)工作原理介紹

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

    氬弧焊機(jī)工作原理

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

    單片機(jī)輸入/輸出端口的工作原理

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

    通俗易懂的單片機(jī)工作原理

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

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

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

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

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

    SMT貼片機(jī)工作原理詳解

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

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

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