久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>職場>單片機最基本原理(一張圖基本搞清楚單片機的工作原理)

單片機最基本原理(一張圖基本搞清楚單片機的工作原理)

發布時間:2024-01-24閱讀(15)

導讀圖1這張圖第一眼看過去,可能會讓人覺得頭皮發麻,但稍微想一下,其實并不復雜。這里以定時器中斷T0為例。先看圖2定時器(也就是計數器)T0到達PT0H之前,先....

單片機最基本原理(一張圖基本搞清楚單片機的工作原理)(1)

圖1

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

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

單片機最基本原理(一張圖基本搞清楚單片機的工作原理)(2)

圖2

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

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

單片機最基本原理(一張圖基本搞清楚單片機的工作原理)(3)

圖3

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

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

單片機最基本原理(一張圖基本搞清楚單片機的工作原理)(4)

圖4

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

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

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

單片機最基本原理(一張圖基本搞清楚單片機的工作原理)(5)

圖5

優先級就由PT0H和PT0這兩位來設置:

單片機最基本原理(一張圖基本搞清楚單片機的工作原理)(6)

圖6

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

單片機最基本原理(一張圖基本搞清楚單片機的工作原理)(7)

圖7

是不是都有6根連線?

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

一個中斷源如果想得到CPU的響應,就必須先閉合左邊的三個開關,再按照被設定的優先級順序進行響應。

是不是很簡單?

當定時器T0中斷經過左邊三個開關以及優先級設定后,到達圖7的位置以后,這個時候就要把定時器T0的中斷服務程序的入口地址放到CPU的PC寄存器里邊以便執行這個中斷程序。

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

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

MOV TL0, #9CH ; 送初值

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

SETB ET0 ; 圖1中的ET0開關閉合,允許定時器T0中斷

SETB EA ; 圖1中EA開關閉合,CPU允許全部中斷

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

HERE: SJMP HERE ; 循環等待,當計數器T0沒有變成全1的時候重復執行這個指令,就是 空轉

; 定時器T0的中斷服務程序

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

CPL P1.7

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

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

當中斷程序執行完成以后(執行了一遍CPL P1.7指令),CPU又回到主程序的空轉指令

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

歡迎分享轉載→http://www.avcorse.com/read-220344.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖