(中職)單片機原理及應用第三章教學課件_第1頁
(中職)單片機原理及應用第三章教學課件_第2頁
(中職)單片機原理及應用第三章教學課件_第3頁
(中職)單片機原理及應用第三章教學課件_第4頁
(中職)單片機原理及應用第三章教學課件_第5頁
已閱讀5頁,還剩212頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、YCF正版可修改PPT(中職)單片機原理及應用第三章教學課件第三章單片機翅味實臉的編寫設計模塊概述單片機SCM(Single Chip Microcomputer),即MicroController,是把微型計算機主要部分都集成在一個芯片上的單芯片微型計算機。主要包括了微處理器(CPU )、存儲器(ROM,RAM ) ,輸入/輸出口(I/O口)和定時器/計數(shù)器、中斷系統(tǒng)等功能部件。單片機自20世紀70年代出現(xiàn)以來,已經有了很大的發(fā)展,被廣泛應用于機械、測量控制、工業(yè)自動化、智能接口和智能儀表等許多領域。例如:單片機與傳統(tǒng)的機械產品相結合后簡化產品結構,實現(xiàn)控制智能化,成為新一代的機、電一體化產

2、品;利用單片機來構成各種工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)等;在大型工業(yè)測控系統(tǒng)中,單片機進行接口的控制與管理,與計算機主機并行工作,可以大大提高系統(tǒng)運行速度。為了使單片機初學者更好地了解單片機的簡單應用,本章介紹六個簡單實驗電路的設計。下一頁第三章單片機翅味實臉的編寫設計教學目標1.掌握對單片機的I/O端口控制、各中斷的具體應用設計方法。2.掌握單片機產生音樂的設計方法、發(fā)光二極管和多位七段數(shù)碼管顯示的控制方法。3.了解鍵盤輸入的控制設計方法以及模擬信號到數(shù)字信號的簡單轉換控制設計方法等。下一頁第三章單片機翅味實臉的編寫設計3.1單片機聲控LED燈控制器3.2可控制的LED閃爍燈3.3LED流水燈效

3、果的控制3.4LED復雜顯示效果的實驗3.5單片機輸出音頻信號的方法3.6單片機LED數(shù)碼顯示器3.7練習3.1單片機聲控LED燈控制器單片機聲控LED燈控制器也是利用計算機中斷口來進行信號輸入的。學生通過本節(jié)的學習,可以進一步理解中斷過程及其原理。一、實驗組織要求1.實驗目的.進一步了解計算機中斷產生的機理;.了解中斷接口電路在實際中的應用。2.實驗器材下一頁返回3.1單片機聲控LED燈控制器下一頁上一頁返回3.1單片機聲控LED燈控制器3.教學節(jié)奏與方式下一頁上一頁返回3.1單片機聲控LED燈控制器二、實驗內容1.聲控前置放大電路與聲控原理本聲控LED燈閃亮控制器是利用單片機的中斷系統(tǒng)實現(xiàn)

4、控制的,為了使較小的聲響觸發(fā)脈沖也能觸發(fā)單片機的中斷系統(tǒng),必須有一個合適的音頻放大器,以便于將微弱的聲音信號得到放大,其放大電路如圖3一1所示。這里采用的是駐極體話筒,三極管幾乎可以使用任何一個NPN型三極管。其工作原理是:話筒MIC拾取了外界的聲音之后,將音頻信號變?yōu)殡姎庑盘枺涍^C4傳送給VT2進行放大處理,并由VT2的集電極輸出。在話筒剛剛拾取聲音的一瞬間,由于三極管的放大作用,使得VT2導通,C極的電位下降,從而觸發(fā)了單片機的中斷請求。電路中C5的作用是為了穩(wěn)定P3. 5端線的電壓不發(fā)生瞬間的跳變,以保證中斷請求所需要的時間。在實下一頁上一頁返回3.1單片機聲控LED燈控制器際的實驗中

5、可根據(jù)單片機的設置,適當n調整C5和R34的參數(shù)值。2.工作原理與電路制作 由圖可知,音頻放大的輸出端與89C51單片機的P3. 5接口連接,P3口是一個具有第二功能的接口,P3. 5端的第二功能為定時器/計數(shù)器1( T1)的外部脈沖信號輸入端。如果單片機內部相關設置被許可,當外部有脈沖信號輸入到該腳時,定時器/計數(shù)器的計數(shù)值將逐一累加,當累加后的數(shù)值大于計數(shù)器的最大值時,定時器/計數(shù)器便向CPU發(fā)出中斷請求,進而去執(zhí)行中斷程序。在這里以交通路口的紅綠燈為例進行說明:當有汽車駛入路口時,該路口為紅燈,而另外的路口又沒有車輛,此時紅燈路口汽車的駛進而發(fā)出聲響,此聲響由單片機控制器接收到,并控制路

6、口交通燈切換。單片機聲控LED燈控制器元器件列表如表3一1所示。下一頁上一頁返回3.1單片機聲控LED燈控制器本制作也可以選用萬用電路板。這里使用了本教材配套的成品印制電路板(PCB板),裝配好的電路板如圖3一2所示,圖中線框內的電路即為聲控電路元件。用一條連接線將PCB板上的“A,點與“B”點(見圖3 -2中白圈處)連接起來,將聲控放大電路的輸出端與單片機的T1端連接,即完成本電路的全部制作過程。下一頁上一頁返回3.1單片機聲控LED燈控制器3.單片機聲音控制程序本程序可以在交通燈程序的基礎上加以改制。由于使用了定時器/計數(shù)器的中斷資源,因此中斷入口地址為001 BH。但目前有一個新的問題,

7、定時器/計數(shù)器要通過計數(shù)脈沖來工作的,怎樣才能使其變?yōu)橥獠恐袛喽丝谑褂媚?其實只要將定時器/計數(shù)器的預置初值設置為FFH,那么,只要再增力口一個脈沖,就可使定時器/計數(shù)器因記滿數(shù)字而發(fā)生溢出現(xiàn)象,進而向CPU發(fā)出中斷請求。因此,本實驗的中心內容是綜合訓練中斷系統(tǒng)與定時器/計數(shù)器的參數(shù)設置及編程技巧,具體程序如表3一2所示。下一頁上一頁返回3.1單片機聲控LED燈控制器4.單片機聲控LED燈的調試電路的供電電壓為5V,電阻器和電容器除了阻值和容量有要求外,其他參數(shù)隨意,在以上條件下本實驗的制作和調試過程如下:.接通5V電源,可以看到交通燈在按照正常的流程進行。將萬用表撥至lOV直流電壓檔,黑表筆

8、接地,紅表筆與89C51單片機的15腳連接,目的是測量該腳的電壓值;.進行測量,此時表指針應大于3V,對于單片機來說,此電壓值為高電平,說明一切準備就緒; .對著話筒,兩手猛然合擊,此時萬用表的指針會隨之快速擺動,說明前級放大電路工作正常,如果程序編寫正確,那么可以看到路口上的實物交通燈會發(fā)生翻轉,則本訓練順利完成。上一頁返回3.2可控制的LED閃爍燈通常情況下,單片機根據(jù)程序流程自動運行,還可根據(jù)傳感器接收到的外界信息進行自動控制,但有時也需要人工輸入一些參數(shù)甚至強行加以控制,這時單片機就需要有人機對話功能。單片機人機對話功能即根據(jù)單片機的輸入/輸出等功能引腳,將控制指令或數(shù)據(jù)輸入到單片機內

9、部,從而對系統(tǒng)運行進行控制等。本節(jié)將就上述情況的實現(xiàn)進行講解。一、實驗組織要求1.實驗目的.學會利用查詢方式進行輸入控制信息的方法;.了解中斷過程及其簡單指令的使用;.掌握中斷子程序的編寫方法。下一頁返回3.2可控制的LED閃爍燈下一頁上一頁返回3.2可控制的LED閃爍燈二、實驗內容可控LED流水燈是通過外接開關與單片機的輸入/輸出接口相連,利用開關通、斷的變化,來改變程序的運行狀態(tài),一般來說,有兩種控制方式:查詢方式和中斷方式。下面將結合實際,介紹單片機信息的輸入與控制原理。1.按鍵的查詢方式顧名思義,查詢方式就是通過主動檢查和詢問的方式來獲取端口信息的方式,是一個事先安排好了的計劃和步驟的

10、行為。因此,單片機的程序運行時,中央處理器CPU的注意力將定時在既定的窗口上出現(xiàn),并檢查端口狀態(tài)。當查詢窗口時間內,如果該引腳出現(xiàn)電平的變化,將被CPU發(fā)現(xiàn),進而執(zhí)行相應的開關程序,單片機端口作為輸入端口使用時的結構示意圖如圖3 -3所示。當開關管VT截止時,端口因電阻R的存下一頁上一頁返回3.2可控制的LED閃爍燈在而顯現(xiàn)出高電平;當開關S閉合時,端口的電位被強行下拉至0V,端口變?yōu)榈碗娖剑藭r若有指令查詢端口狀態(tài),那么開關被按下的信息將被CPU獲取,進而可依據(jù)預期安排執(zhí)行相應程序。(1)單片機按鍵查詢方式的控制電路原理在本節(jié)中,單片機按鍵實驗的輸入電路如圖3-4所示。89C51單片機的12

11、腳和14腳分別是屬于P3. 2端口和P3. 4端口,通過開關S1和S2與地相連接。如果12腳和14腳原來為高電平,當開關S1或S2被按下時,相應的引腳因與地相連而變成低電平,這里就有一個量的變化;反過來說,如果該引腳出現(xiàn)量的變化,就說明該引腳上的開關被按下,根據(jù)程序的預先設置要求,CPU將作出相應的程序處理,進而完成了開關的預置使命。下一頁上一頁返回3.2可控制的LED閃爍燈(2)單片機按鍵查詢方式的程序流程以12腳開關S1為例,當按鍵按下時,12腳的電平應由高電平變?yōu)榈碗娖?,這就要求在按鍵S1被按下來之前,12腳必須為高電平,因此在使用查詢方式作為開關輸入量的輸入時,要通過軟件將該腳置為高電

12、平。查詢方式的按鍵流程圖如圖3 -5所示,顯然,程序將根據(jù)S1的狀態(tài)來選擇不同的執(zhí)行路線,最終也就有了不同的運行結果。下面以LED流水燈為例,通過修改程序,加入相應的查詢指令,通過軟件的判斷,使原本固定的程序流程方向發(fā)生轉向。修改后的程序如表3一3所示。下一頁上一頁返回3.2可控制的LED閃爍燈將程序編譯完成和燒錄到芯片中之后,就等待接插電路實驗了。(3)按鍵控制電路的制作本節(jié)中所使用的開關沒有什么特殊要求,可以選用任何一種常開開關。這里使用了微型按鍵式開關,如圖3一6所示,它有兩組開關,在使用時一定要使用萬用表的電阻擋測量,分清楚常開開關點和常閉開關點。由于此微型開關是由塑料殼體組成,不宜過

13、長時間地焊接,以免出現(xiàn)開關接觸不良的現(xiàn)象。焊接完畢的萬用板正、反面情況焊接完畢之后,利用萬用表的電阻擋,在單片機電路板斷電的情況下,對電路進行檢查。開關電路S1和S2的檢查流程如表3一4(1)所示。如圖3一7所示。下一頁上一頁返回3.2可控制的LED閃爍燈經過電路的制作和程序的修改,使本節(jié)中的流水燈具有可人工控制LED點亮效果,其操作過程與演示效果如下: .接通單片機電源之后,LED燈開始流動閃爍; .按下S1開關,LED開始反向流動閃爍; .按下S1開關,停止流動閃爍; .再按S1開關,程序又返回初始狀態(tài)。(4)程序去除按鍵抖動的工作原理將寫好程序的單片機芯片插入集成電路插座上之后,程序運行

14、正常。但按下開關之后,有時LED流水燈能反向點亮,而有時會出現(xiàn)跳躍式的控制結果,給使用帶來不便,其原因是:盡管開關結構一切正常,但在開關接通的一瞬間,在開關觸電的兩端會出現(xiàn)火花現(xiàn)象,如圖3一8所示,其結果好似開關接觸和斷開多次,CPU會認為連續(xù)按下幾次開關。這主要是因為按鍵是一個機械器件,下一頁上一頁返回3.2可控制的LED閃爍燈在進行按鍵操作時由于按鍵的機械特性,按鍵在閉合與斷開的瞬間都存在一個抖動期,抖動期的長短與按鍵質量有關,一般為5-20ms。如果任其不管,程序將出現(xiàn)多次跳轉的結果。那么如何才能去除開關上的火花現(xiàn)象而造成CPU誤判的問題呢?方法有兩種:一是采取改進硬件電路來消除此現(xiàn)象;

15、二是可以通過軟件的形式來消除影響。軟件消除開關觸電抖動程序如圖3一9所示。當CPU查詢到有按鍵按下之后,延時一段時間之后再回頭查詢一下該按鍵是否還是被按下,如狀態(tài)未變,則說明開關為被按下狀態(tài);否則,程序將跳過開關程序,繼續(xù)執(zhí)行主程序。下一頁上一頁返回3.2可控制的LED閃爍燈圖3一9中t1和t3按鍵均為抖動期時的開關觸電接觸狀態(tài)波形,t2為按鍵被按下而可靠接觸的時間。目前MCS51單片機處理與判斷事件的速度為s級,而按鍵的抖動期是ms級的。顯然,若不加以處理,這個抖動期對按鍵操作的識別是有影響的。(5)位數(shù)據(jù)判斷轉移指令 JNB bit, STRAT若位地址(bit) =0時,則立即轉移到指定

16、的地址“STRAT“.JB bit, STRAT;若位地址(bit ) =1時,則立即轉移到指定的地址“STRAT . (6)位置位指令 SETB bit;將位“bit,置1。下一頁上一頁返回3.2可控制的LED閃爍燈2.按鍵的中斷方式(1)中斷技術概況中斷是在執(zhí)行或做某件事的過程中,被隨機出現(xiàn)的某一情況而打斷了的現(xiàn)象。中斷現(xiàn)象可形象地比喻成如下情況: .一個人在看書; .突然有人敲門; .你會放下書,在書頁間夾好標簽; .起身去開門,并在門口與人交談; .電話鈴響了; .讓客人稍等片刻; .轉而去接電話; .然后又回到門口與來人繼續(xù)交談;下一頁上一頁返回3.2可控制的LED閃爍燈.結束交談后

17、,關好門,回到書桌前,接著之前做標簽的地方繼續(xù)閱讀。上述片段是人們在日常生活中經常遇到的情景,可以說,在日常生活中,我們經常被外界某一事件所打斷。這就是我們日常生活中的中斷現(xiàn)象。同樣,在計算機的運行過程中,中央處理器每時每刻都在不停地忙碌著,它既要主持主程序的工作流程,還經常被外部其他事件所打斷。這種被打斷的情況是隨機性的,在這樣的環(huán)境下,CPU將根據(jù)所接收到的中斷信息的輕重緩急,合理安排眼前的事物,及時合理地處理外部事件。從整體上來看,中斷其實就是一個資源面向多項任務的分時控制技術,由于只有一個CPU,采用中斷技術可有效地解決各個事件之間的矛盾。中斷技術是計算機系統(tǒng)中的一項重要的組成部分,是

18、一項資源共享技術。下一頁上一頁返回3.2可控制的LED閃爍燈(2) 51單片機的中斷系統(tǒng)在計算機系統(tǒng)中,中斷是一個非常重要的概念。在89C51單片機中,共設立有5個中斷源:外部中斷源INT0和INTl兩個,定時器/計數(shù)器中斷源兩個,串口中斷源一個。例如,外部中斷源IN”與某一電路相連,假如此時單片機的程序設置允許使用該中斷源,那么,當有信號接人INT1時,CPU會停下正在運行的程序,并將中斷的程序做上標記,轉而去執(zhí)行此中斷程序;當中斷程序執(zhí)行完畢以后,CPU首先要提取標記,再根據(jù)標記所指的地址,回到上次被中斷的地方繼續(xù)執(zhí)行原來的程序。這里提到的“做標記”,在單片機中稱之為入棧,提取標記的過程稱

19、之為出棧。下一頁上一頁返回3.2可控制的LED閃爍燈那么,CPU何時響應中斷請求呢?這主要決定于單片機工作程序的設置,也就是說,根據(jù)編程者的預期來設定程序,具體是:通過程序對單片機中有關中斷的寄存器進行設置,這些寄存器有中斷允許寄存器、定時器控制寄存器、串行口控制寄存器和中斷優(yōu)先級控制寄存器。51系列單片機的中斷系統(tǒng)結構圖如圖3一10所示。從圖中可以了解到,單片機能否被中斷所左右,關鍵要看TCON,IE和IP這3個寄存器的狀態(tài),其中IE寄存器中的EA為中斷總允許。下面將分別作詳細介紹。下一頁上一頁返回3.2可控制的LED閃爍燈(3)中斷允許寄存器(IE)單片機中斷程序是否能被允許執(zhí)行,首先要由

20、“中斷允許寄存器”來決定,它就像一個大宅院,要進入房間,首先要通過大門,然后再打開房門進入房間,這個宅院的大門,就好似單片機中斷系統(tǒng)中的中斷總允許,具體的中斷源就好比宅院中的一扇房間門,缺少其中的任何環(huán)節(jié),中斷過程都無法完成。中斷允許寄存器用IE來表示,字節(jié)地址為A8H,如表3 -4(2)所示,該單元中的8個位中的位地址AEH和ADH為無效位,下面將具體介紹其他幾個位地址具體含義。下一頁上一頁返回3.2可控制的LED閃爍燈EA:中斷允許總控制位。 EA=1,中斷總允許打開; EA = 0,中斷總允許關閉。ES:串行中斷允許控制位。 ES =1,允許串行中斷; ES = 0,關閉串行中斷。ETl

21、:定時器/計數(shù)器1中斷允許控制位。 ETl =1,允許定時默計數(shù)器1的中斷請求; ETl = 0,關閉定時器/計數(shù)器1的中斷請求。EXl:外部中斷1允許控制位。 EXl =1,允許外部中斷1的中斷請求; EXl =0,關閉外部中斷1的中斷請求。下一頁上一頁返回3.2可控制的LED閃爍燈 ETO:定時器/計數(shù)器0中斷允許控制位。 ET0=1,允許定時默計數(shù)器1的中斷請求; ET0= 0,關閉定時器/計數(shù)器1的中斷請求。 EXO:外部中斷0允許控制位。 EX1 =1,允許外部中斷1的中斷請求; EX1=0,關閉外部中斷1的中斷請求。(4)定時器控制寄存器(TCON)定時器/計數(shù)器的啟動、中斷請求標

22、志位及外部中斷請求標志位、外部中斷信號觸發(fā)方式都在本寄存器中進行設置。定時器控制寄存器的字節(jié)地址是88H,位地址及相關名稱如表3一5所示。下一頁上一頁返回3.2可控制的LED閃爍燈在8個位地址中,與中斷有直接關系的只有6位,具體如下。.IEO:外部中斷0請求標志位。IEO =1,外部中斷0有請求。.IEl:外部中斷1請求標志位。IEl =1,外部中斷1有請求。.ITO:外部中斷0 (INTO)請求方式控制位。 IT0 =1,外部中斷INTO端為負脈沖觸發(fā)中斷方式。 IT0 = 0,外部中斷INTO端為低電平觸發(fā)中斷方式。.IT1:外部中斷1(INTl)請求方式控制位。 IT0 =1,外部中斷I

23、NTl端為負脈沖觸發(fā)中斷方式。 IT0= 0,外部中斷INTl端為低電平觸發(fā)中斷方式。 TF0:定時器/計數(shù)器0中斷請求標志位。 TF0=1,定時器/計數(shù)器計數(shù)溢出請求中斷。當CPU執(zhí)行此中斷程序后,TF0被清零。下一頁上一頁返回3.2可控制的LED閃爍燈.TF1:定時器/計數(shù)器1中斷請求標志位。 TF0=1,定時器/計數(shù)器1計數(shù)溢出請求中斷。當CPU執(zhí)行此中斷程序后,TF1被清零。.TR1,TR0:分別是定時器/計數(shù)器1和定時器/計數(shù)器0的計數(shù)啟動控制位。 TR1(或TR0 ) =1時,定時器/計數(shù)器開始計數(shù)。 TR1(或TR0 ) = 0時,定時器/計數(shù)器停止計數(shù)。 (5)中斷優(yōu)先級控制寄

24、存器(IP)我們知道,51系列單片機共有5個中斷源。在條件許可的情況下,這5個中斷源都可以向CPU發(fā)出中斷請求,假若出現(xiàn)同時申請中斷的情況,CPU將如何進行處理呢?這要根據(jù)中斷事件的輕重緩急來定。在單片機中,設置了“中斷優(yōu)先級控制寄存器”,通過對該寄存器的設置,就可以設定各中斷源的優(yōu)先級別,具體如下一頁上一頁返回3.2可控制的LED閃爍燈表3一6所示,中斷優(yōu)先級控制寄存器由IP來表示,字節(jié)地址為BBH. 51系列單片機共分有兩個級別,即高優(yōu)先級和低優(yōu)先級,具體解釋如下。.PS:串行I/O口中斷優(yōu)先級控制位。PS =1,高優(yōu)先級;PS = 0,低優(yōu)先級。.PT1:定時器/計數(shù)器1中斷請求優(yōu)先級控

25、制位。PT1=1,高優(yōu)先級;PT1 = 0,低優(yōu)先級。.PX1:外部中斷1中斷優(yōu)先級控制位。PX1=1,高優(yōu)先級;PX1=0,低優(yōu)先級。.PT0:定時器/計數(shù)器0中斷優(yōu)先級控制位。PT0=1,高優(yōu)先級;PT0 = 0,低優(yōu)先級。.PX0:外部中斷0中斷優(yōu)先級控制位。PX0 =1.高優(yōu)先級:PX0= 0.低優(yōu)先級。下一頁上一頁返回3.2可控制的LED閃爍燈(6)中斷的響應過程當幾個相同級別的中斷源同時向CPU申請中斷,且這幾個中斷源被設置為允許中斷,中斷總允許的大門也被打開,那么它們被CPU響應和執(zhí)行中斷程序的順序為: .外部中斷0中斷; .定時器/計數(shù)器0中斷; .外部中斷1中斷; .定時器/

26、計數(shù)器1中斷; .串行口中斷。 下一頁上一頁返回3.2可控制的LED閃爍燈中斷源被響應后,必然會轉移程序地址,去執(zhí)行中斷程序,那么怎樣才能準確找到和執(zhí)行申請中斷的程序呢?根據(jù)不同的中斷源,51系列單片機通過硬件設置了5個中斷源入口地址,一個中斷源對應一個中斷入口地址,中斷源被響應之后,程序便轉向該中斷源的入口地址,并執(zhí)行中斷程序。中斷源入口地址及說明,如表3 -7所示。由于每一個中斷源對應一個中斷入口,在中斷源得到響應時,相應的中斷標志位被置1,等待CPU執(zhí)行該中斷。如果該中斷沒有被響應,則該中斷標志將一直保持,除非人為清零中斷標志位;當CPU開始執(zhí)行中斷程序之后,該中斷標志會被硬件清零;然而

27、,對于串行口中斷標志而言,中斷程序在響應之后,中斷標志位不會被單片機自動清零,而需要在中斷服務程序中安排指令,以清除被執(zhí)行的中斷標志。下一頁上一頁返回3.2可控制的LED閃爍燈(7)中斷方.式下的開關控制LED交通燈89C51單片機的12腳不僅是通用型的輸入/輸出口,而且也是單片機的外部中斷0的信息輸入端口,因此,在進行中斷控制實驗的時候無需更換按鍵引腳,只是控制機理發(fā)生了變化而已。下面將以LED交通紅綠燈為例,采用計算機中斷技術,在LED交通燈的控制系統(tǒng)中,加入東西向臨時放行的延時效果,具體程序如表3一8所示。與前面交通紅綠燈不同的是,在表3一8所示的程序中,已經加入了開關按鍵中斷處理控制指

28、令,如主程序中添加的中斷指令有: MAIN:MOV SP, #30H;重新設置堆棧指針 SETB ITO;外部中斷0的中斷方式為下降沿,若使用清除指令CLR ITO,則變更為低電平觸發(fā)中斷下一頁上一頁返回3.2可控制的LED閃爍燈SETB EXO;為開啟外部中斷0的允許指令,若改用CLR EXO指令,則關閉了外部中斷0SETB EA;開啟了單片機中斷的總允許程序編譯和燒錄后,即可接人電路測試,按照本程序的工作意圖,開機后程序進入正??刂栖壽E。當按下S1開關之后,單片機將立即進入中斷程序,東、西方向的綠色LED燈被強行點亮lOs,而后又自動返回正常的運行狀態(tài)。實驗時,最好趕在東、西方向剛剛變?yōu)榧t

29、燈時按下S1,此時東、西方向綠色的LED燈又被點亮,更能說明中斷系統(tǒng)的實時控制情況。下一頁上一頁返回3.2可控制的LED閃爍燈(9)中斷處理過程中要注意的幾個問題在主程序中的設置:考慮到有出現(xiàn)中斷的可能性,在主程序中,必須對中斷前的信息進行調整和準備,如堆棧指針(SP),51系列單片機復位后SP = 07H,如堆棧深度較大,SP要選擇一個合適的地址空間才行,否則會出現(xiàn)數(shù)據(jù)沖突等問題。設置好中斷控制位:根據(jù)中斷預期的流程,及時準確地把握中斷控制位的設置數(shù)據(jù)。編寫中斷處理程序:既然設置了允許中斷,那么就必須要有中斷處理程序,中斷程序的內容應包括對中斷中將要使用的寄存器特殊功能寄存器等,其原有的數(shù)據(jù)

30、是否需要保護,應給予充分的考慮。保護的方法是使用入棧指令PUSH direct,將需要保護的數(shù)據(jù)壓入堆棧區(qū),出棧時應使用指令下一頁上一頁返回3.2可控制的LED閃爍燈POP direct,將數(shù)據(jù)彈出堆棧區(qū);需要提示的是PUSH指令和POP指令必須成對使用,并遵循先人后出的原則,即最先壓入堆棧區(qū)的數(shù)據(jù),將最后一個撤離堆棧區(qū)。(9)中斷返回指令RETI是中斷子程序中的一個重要的組成部分,當單片機在執(zhí)行中斷程序的過程中,若遇到RETI指令,則程序將立即返回中斷前的地址執(zhí)行程序。上一頁返回3.3LED流水燈效果的控制本節(jié)通過單片機控制LED發(fā)光二極管形成流水式的閃亮效果的實現(xiàn),進一步介紹單片機端口電路

31、與軟件之間的關系。一、實驗組織要求1.實驗目的.學習單片機控制指令;.了解流水燈的形成及編程原理。2.使用器材下一頁返回3.3LED流水燈效果的控制下一頁上一頁返回3.3LED流水燈效果的控制二、實驗內容1.硬件部分(1)LED流水燈電路簡介本電路仍然選用P1口作為LED控制的輸出端口,具體電路如圖3一11所示。由圖3一11可見,P1口的8個端線分別連接8個LED發(fā)光二極管,并通過限流電阻與電源正極相連。其中VD1已經在前面所講知識中使用過,因此,在這里只需要增加7只LED發(fā)光二極管和7只電阻器即可。 (2)LED流水燈形成原理LED形成流水燈的效果的實質是按順序以間歇的方式逐一點亮發(fā)光二極管

32、,其發(fā)光過程如表3一9所示。下一頁上一頁返回3.3LED流水燈效果的控制(3)LED流水燈硬件的制作根據(jù)圖3-11所示的電路原理圖,將所選用的元器件焊接在萬用電路板上,焊裝過程如表3一10所示。 LED發(fā)光二極管焊接完成之后,用萬用表的電阻擋測量電源與地之間是否有短路現(xiàn)象,正常晴況下,剛剛接觸時指針猛然擺動一下,隨后指針指示的電固以雇防立接近無窮大,表明電路無短路。為確保單片機硬件電路可以在正常的情況下運行程序,應盡量在沒有插入單片機芯片的情況下,調試和驗證LED發(fā)光二極管電路的正確性,具體步驟如表3一11所示。通過上述檢測,基本上可以確定硬件電路是否能正常工作。由于單片機電路屬于脈沖數(shù)字電路

33、,因此,只要連接無誤,硬件電路一般無須調試即可正常工作。下一頁上一頁返回3.3LED流水燈效果的控制2.軟件部分(1)程序流程圖硬件電路完成后,就要利用單片機的指令來編制程序。程序的編制應從整體出發(fā),首先要根據(jù)總體方案和意圖,確定大致的功能模塊和技術要求,為了快速地勾畫出編程者的程序思路或邏輯順序,一般使用一種方框圖來描述程序的大致流程情況,這個方框圖稱為程序流程圖。為統(tǒng)一規(guī)范和使用方便,要對方框圖的功能作出一定的規(guī)定。一般情況下,方框圖內標明有該塊內要完成的任務或執(zhí)行步驟,以便于分析和閱讀程序;方框圖還有一個程序入口和至少一個程序出口。詳細說明如表3 -12所示。下一頁上一頁返回3.3LED

34、流水燈效果的控制 (2)LED流水燈程序方框圖根據(jù)LED點亮從而形成預期的循環(huán)效果,可以采用單分支結構程序來規(guī)劃設計本程序。 LED流水燈程序流程圖如圖3一12所示。圖3一12(a)為程序設計者初步構思所形成的流程圖,根據(jù)本模塊的要求,首先將P1. 0端口變?yōu)榈碗娖?,其他口保持高電平,因此便只有一個LED被點亮,隨后程序進行P1口字節(jié)數(shù)據(jù)平移,延時后又返回相應的地址,準備下一次水平移動。若沒有經過分析,這樣的設計思路應該是合情合理的,然而,51系列單片機的數(shù)據(jù)水平位移指令僅僅對累加器A是有效的,因此必須經過圖3一12(b)所示的流程,通過累加器A進行數(shù)據(jù)中轉,以實現(xiàn)位數(shù)據(jù)水平移動,最后再傳給P

35、1端口輸出。下一頁上一頁返回3.3LED流水燈效果的控制(3)LED流水燈程序的編制由于本模塊的電路圖及欲控制的LED形成流水式的點亮效果較為簡單,所以可以采用簡單的基本結構來編制程序,即順序結構程序。具體的程序和說明如表3一13所示。 將表中的程序通過軟件輸入并燒錄到單片機的芯片中,接通電源后即可見到LED的流水式點亮效果,如圖3一13所示。電路板上的LED的亮度與限流電阻(R2-R9)有關,電阻值越小,通過LED的電流就越大,LED發(fā)出的光也就越強。一般情況下,該電阻值不能小于100。下一頁上一頁返回3.3LED流水燈效果的控制(4)指令學習在本節(jié)中共使用了10條指令,其中匯編使用的偽指令

36、有2條,數(shù)據(jù)傳送指令有6條,減1指令2條,轉移指令1條及位移動指令單字節(jié)位平移指令。在51系列單片機的指令中,單字節(jié)操作數(shù)的邏輯運算指令均是針對累加器A中的內容進行操作的,其共有6條指令,具體如表3一14所示。 (5)延時程序的分析到目前為止,已經兩次使用指令進行了延時處理,下面將著重介紹本模塊中延時程序的工作原理及主要相關參數(shù)。 第一條指令和第二條指令是為了給工作寄存器預置數(shù)據(jù): MOV R3 , #05 H Z2:MOV R4,#00H 下一頁上一頁返回3.3LED流水燈效果的控制這兩條指令的含義是將立即數(shù)送給工作寄存器中,每條指令的運行時間為1個機器周期,由于一個機器周期為12/晶體頻率

37、,因此,運行此指令所需要的時間為: t=12/4=3 s(微秒)第三條和第四條指令為減1指令: Z3:DJNZ R4,Z3 DJNZ R3 ,Z2 SJMP Z1下一頁上一頁返回3.3LED流水燈效果的控制 每執(zhí)行一次“DJNZ R4,Z3”指令,工作寄存器R4中的數(shù)據(jù)將會減1,減1之后還要判斷R4中是否為。,不為。則轉移到標號為Z3的地址,否則就會順序執(zhí)行下一條指令。顯然,最終工作寄存器R3和R4中的數(shù)據(jù)將等于0,這期間反復執(zhí)行指令“DJNZ R4,Z3”和“DJNZ R3,Z2。反復執(zhí)行的次數(shù)由前面的MOV指令決定,也就是說,預先送給R3和R4的數(shù)值越大,DJNZ減1的次數(shù)也就越多。在這里

38、,則利用此種方法來實現(xiàn)程序延時器的作用。DJNZ R4,Z3指令是一個減1判0指令,在指令表中的格式為:DJNZ Rn,rel;其中Rn有8種選擇,即RO,R1,R2,R3,R4,RS,R6和R7,這里選用了工作寄存器R4。指令格式中的“rel是地址偏移量,表示指令跳轉的相對距離,在實際中,可以直接使用標號替代。下一頁上一頁返回3.3LED流水燈效果的控制3.單片機輸入/輸出端口LED發(fā)光二極管亮/滅是通過改變單片機輸入/輸出引腳的狀態(tài)來實現(xiàn)的,因此,只要了解單片機各端口的地址等信息和控制指令,就可以控制端口的狀態(tài)。表3一15所列內容為89C51單片機的4組輸入/輸出端口的詳細情況表,PO口、

39、P1口、P2口和P3口的字節(jié)地址、位地址和引腳均對應列出,通過查閱表中數(shù)據(jù),選用相應的指令,就可以改變各端口的狀態(tài)。根據(jù)控制部位的不同,相應指令可分為字節(jié)控制指令和位操作指令。下一頁上一頁返回3.3LED流水燈效果的控制(1)字節(jié)數(shù)據(jù)傳送指令如MOV Direct,#XXH;控制指令,含義是將數(shù)據(jù)“XXH”送到地址名稱為“Direct”的地址里。例如:MOV 90H,#2AH;將數(shù)值為2AH的數(shù)送到地址90H里面。MOV:數(shù)據(jù)傳送指令的操作碼,用來說明本指令的性質和作用。90H:地址編號,這里稱之為直接地址,在指令格式中用“Direct”表示。由于地址編號為90H是單片機的P1口的直接地址碼,

40、因此,執(zhí)行本指令后,就等于將25 H的數(shù)據(jù)傳送到了P1口上。對于一些常用的寄存器,在實際應用中,人們常常使用寄存器下一頁上一頁返回3.3LED流水燈效果的控制或端口的名稱直接融入指令中,如上述“MOV 90H, #2AH”指令就可以寫成“MOV P1, #2AH的形式。(2)位控制指令利用位操作指令可以直接對具有位地址的寄存器或端口進行操作。位傳送指令:MOV bit, C ;含義:將CY位的數(shù)據(jù)傳送到直接位地址里去。例如:(CY) -1,執(zhí)行MOV 90H,C指令之后,P1. 0位地址變?yōu)楦唠娖?。位取反指?CPL bit;含義:將直接位地址的狀態(tài)取反。例如:位地址(90HH )=1,執(zhí)行指

41、令CPL,90H之后,則(P1.0 )=0.下一頁上一頁返回3.3LED流水燈效果的控制位置1指令:SETB bit;含義:將直接位地址置1。例如:位地址(90H )=0,執(zhí)行指令CPL 90H之后,則(P1. 0 )=1。位清零指令:CLR bit;含義:將直接位地址清零。例如:位地址(90H )=1,執(zhí)行指令CPL 90H之后,則(P1. 0 )=0。上面的例子都選用了直接位地址90H,在實際應用中,可以使用直接位地址的名稱代替位地址。上一頁返回3.4LED復雜顯示效果的實驗單片機控制電路與常規(guī)的電子控制電路不同的是,一般的數(shù)字硬件控制電路的控制流程在電路設計完成之時就已經確定,如若改變控

42、制流程就必須重新建立和改造電路結構,而改變單片機控制電路中的控制流程只須修改軟件部分,便可完成對新流程的控制。因此,單片機的控制電路具有很大的升級空間。 一、實驗組織要求1.實驗目的 .進一步掌握指令的編排技巧; .學習匯編語言的指令。2.實驗器材下一頁返回3.4LED復雜顯示效果的實驗下一頁上一頁返回3.4LED復雜顯示效果的實驗二、實驗內容本實驗中的學習內容將以軟件實驗為目的,依托一些電路結構,進行兩種不同的發(fā)光控制操作,從而完成相應的顯示效果。1. LED星球大撞擊(1)撞擊效果的構思LED星球大撞擊顯示效果的形成,是利用LED發(fā)光的變化,來模擬兩物體之間的相對運動來完成的。從整體效果分

43、析來看,兩側較遠處的LED先被點亮,然后同時向中心逐位點亮,直至兩個LED發(fā)光點靠近。當LED的發(fā)光點重合時,即表示兩物體已產生了深度撞擊的影像,為了模擬兩星體“相撞”后發(fā)生劇烈爆炸的場面,此時應有一個由中心向兩端同時快速點亮LED的過程,這里設計的LED發(fā)光運動軌跡過程如表3一16所示。下一頁上一頁返回3.4LED復雜顯示效果的實驗(2)程序的分析根據(jù)表3 -16所示的LED點亮的構思,可以編制出如圖3 -14所示的流程圖,根據(jù)此圖,可以把編程者的初步想法和完成的步驟粗略地表達出來,為隨后的具體編制程序搭制框架。以上程序流程圖的編制只反映出筆者的某種想法或問題的某種解決方案,也許具體方法很多

44、,但在實際中必須選擇一條路,有的人興許走了捷徑,有的人也許繞了大彎,但最終都抵達同一地點(即完成了預期的目的)。在這里采用了查表取值的方法,來完成對單片機端口的控制。在程序運行的初期,必須指明存儲數(shù)據(jù)的地址,這個任務由數(shù)據(jù)指針來完成,所以,在程序中應安排DPTR賦值指令及變址取數(shù)的操作過程,最后將數(shù)據(jù)轉送至端口,從而完成LED的顯示過程。下一頁上一頁返回3.4LED復雜顯示效果的實驗(3)程序的編制有了LED發(fā)光效果的運動軌跡圖和程序流程圖,下面就應下達相應的單片機控制指令。根據(jù)控制流程,現(xiàn)編制出如表3一17所示的匯編程序。需要提示的是,在指令的注釋部分,不一定要按照指令碼原有的含義進行解釋,

45、可以根據(jù)編程者的意圖,并結合實際方案,靈活地作出文字上的說明(注釋必須使用“;”開頭)。(4)程序的調試由于本處中的實驗仍然使用LED流水燈效果控制模塊三中的電路結構,所以只需要改變程序(也常稱為“軟件”)就可以改變發(fā)光效果,這也是單片機區(qū)別于其他純硬件電路的一大特點,即無需對硬件電路做任何變動,僅對軟件進行修改就可改變原有的功能。匯編程序編制完成之后,即可進行校對和編譯。此項工作都是基于編譯程序自動提示和機器代碼的轉換來完成的,而下一頁上一頁返回3.4LED復雜顯示效果的實驗且本處中均已給出正確程序,因此程序的編寫工作就顯得較為輕松。接通燒錄好的單片機電路板的電源,應能看到:位于兩端的LED

46、先同時發(fā)光,然后同步向里跳躍式發(fā)光,當中心兩個相鄰的LED發(fā)光二極管均發(fā)光時,便由中心快速向兩端逐一點亮,從整體上來看就形成了相撞后的爆炸效果,如圖3一15所示。在表3一17中,匯編程序的序號1一序號6和序號55為程序運行的準備階段,在這個階段可以對單片機的寄存器或外圍器件的狀態(tài)進行調整和準備。該階段有時也被稱為初始化階段。在本程序里使用了調用指令ACALL,分別調用了延時子程序TIMER1 , TIMER2和TIMER3。其中TIMERI的延時最長,TIMER2的延時最短,分別用在LED的不同顯示時段,下一頁上一頁返回3.4LED復雜顯示效果的實驗其中的R2和R3為延時器的時基參數(shù),改變其賦

47、值的大小,即可改變相應時段的效果,如:將TIMERI中指令“MOV R2,#OOH”改為“MOV R2,#OFH,那么,程序開始運行時,LED的點亮過程將變?yōu)楦蛹彼俚匾苿?改變TIMER2中的R2和R3的賦值,將牽扯到快速閃爍的爆炸效果等。(5)查表指令在單片機正常運行時,程序存儲器是不能隨意被訪問的,也就是說,限制了用戶對程序存儲器ROM的操作,用戶只能從ROM中讀取數(shù)據(jù),數(shù)據(jù)的傳輸是單向的。從ROM中讀數(shù)據(jù)可以使用下面的指令進行。 MOVC A, A + DPTR;將累加器A中的數(shù)據(jù)與數(shù)據(jù)指針DPTR中的數(shù)據(jù)相加,得到的和作為新的地址,再將該地址中的數(shù)據(jù)傳送到累加器A中。 下一頁上一頁返

48、回3.4LED復雜顯示效果的實驗 MOVCA , A + PC;將累加器A中的數(shù)據(jù)與程序指針PC中的數(shù)據(jù)相加,得到的和作為新的地址,再將該地址中的數(shù)據(jù)傳送到累加器A中。2.程控交通紅綠燈交通紅綠燈是交通路口上的交通通行指揮燈,有3種顏色組成,即紅色燈、綠色燈和黃色燈,紅燈亮禁行,綠燈亮通行,黃色燈在綠一紅轉換的中間過渡期時點亮幾秒。因此,交通指揮燈實際上就是一個程控時間分路開關,可以分時分別對某一路段進行燈光控制,從而完成交通指揮的任務。(1)硬件部分下一頁上一頁返回3.4LED復雜顯示效果的實驗交通指揮燈的電路原理與制作交通指揮燈的電路圖如圖3-16所示,該電路使用了12只LED發(fā)光二極管,

49、紅、黃、綠各4只,每只二極管的負極通過電阻連接至單片機89C51的I/O引腳上,以實現(xiàn)單片機對LED的硬件輸出線路的連接。交通指揮燈的實驗電路板實物圖如圖3一17所示,在萬用板的右下角規(guī)劃布置本線路,為了能盡可能逼真地模擬交通指揮燈及方便程序的調試,紅綠燈的安置位置應按實際中的情況設置,即3個紅綠燈為一邊,黃燈在中間。圖3一16中的空心箭頭是與74HC595的引腳連接的端點,連接時注意箭頭下面對應的腳號不能搞錯,否則將會出現(xiàn)錯誤的點亮順序。本節(jié)制作過程及元件安裝順序如表3一18所示下一頁上一頁返回3.4LED復雜顯示效果的實驗交通指揮燈電路的調試使用萬用板安裝焊接應用電路,最容易出現(xiàn)焊接錯誤或

50、接觸不良的問題,有時感覺焊接正確,但實際上卻存在較大的隱患。為了消除在后期調試軟件時對硬件電路裝接質量的懷疑,焊接完成之后,應對硬件部分進行一次“全身體檢”。眾所周知,十字路口的交通紅綠燈是3個燈為一組,所以檢查時應對照圖3一17所示的電路進行。后面的程序是針對本電路編制出來的,為了使LED燈光保持正確點亮流程,每組內紅、黃、綠燈也不能出現(xiàn)交叉的現(xiàn)象,表3一19列出了每組LED紅綠燈與U1所對應的引腳號碼,以方便核對。下一頁上一頁返回3.4LED復雜顯示效果的實驗實際檢查步驟如圖3一18所示。將萬用表撥至50mA的電流擋,黑表筆接地(或負極),利用紅表筆逐一接觸表3一18所示U1的引腳,檢查各

51、路口燈亮情況。注意:不能把紅表筆隨意接觸表3一18所示引腳以外的引腳上,以免出現(xiàn)因短路而燒毀萬用表保險的現(xiàn)象。(2)軟件部分程序的編制交通路口指揮燈的控制流程常常是一個固定的模式,也就是說,可以使用最簡單的順序程序來構建程序主體結構,如圖3一19所示。根據(jù)程序流程圖各程序方塊的功能,查閱可能要使用的單片機指令。初學時應將相關指令集中列表,一方面是熟悉指令,另一方面就是進行指令對比。表3一20所列為89C51單片機交通紅綠燈的工作程序。下一頁上一頁返回3.4LED復雜顯示效果的實驗程序的調試程序編制、燒錄完成后,就可以將有程序的單片機芯片插到電路板上。由于硬件電路此前已經過嚴格的檢查,此時就可以

52、直接在電路板上加入5V電源,首先能觀察到所有路口的紅燈一起點亮;延時一段時間后,所有紅燈變成了黃燈;幾秒鐘之后,紅、綠燈開始交替點亮。圖3一20所示為接電之后的運行情況,圖3一21所示為使用與本書配套的器材制作的紅綠燈運行情況。在運行過程中,應仔細觀察LED的點亮流程,根據(jù)本程序,交通燈點亮的流程動作應如圖3一22所示。為了便于觀察和調試程序,此處的實驗沒有嚴格按照實際中指揮通行的時間間隔來進行。下一頁上一頁返回3.4LED復雜顯示效果的實驗 (3)調用指令長距調用指令LCALL LIU:當前指令將臨時轉移到標號為“LIU”的地址去執(zhí)行,當遇到返回指令“RET時,程序將返回到轉移指令的下一條指

53、令去執(zhí)行。本指令的調用范圍是:64KB.短距調用指令ACALL LIU:當前指令將臨時轉移到標號為“LIU”的地址去執(zhí)行,當遇到返回指令“RET時,程序將返回到轉移指令的下一條指令去執(zhí)行。本指令的調用范圍是:2KB.上一頁返回3.5單片機輸出音頻信號的方法在傳統(tǒng)電子技術中,利用電子振蕩裝置來制作音頻信號,本節(jié)通過軟件對單片機的定時器/計數(shù)器進行設置和編程,制作和輸出音頻信號,進而使學生學習到單片機的重要部件之一定時器/計數(shù)器。一、實驗組織要求1.實驗目的 .了解單片機定時器/計數(shù)器的結構; .學會對定時器/計數(shù)器的設置方法。2.實驗器材下一頁返回3.5單片機輸出音頻信號的方法下一頁上一頁返回3

54、.5單片機輸出音頻信號的方法二、實驗內容本實驗將以89C51單片機定時器/計數(shù)器為核心,由簡人繁地介紹單片機的定時器/計數(shù)器的構成原理,并結合實際應用,對單片機的編程及定時器/計數(shù)器基本功能的設置進行介紹。1.硬件部分(1)89C51單片機輸出音頻信號的電路單片機輸出音頻信號主要是通過軟件來實現(xiàn)的,相對于單片機的軟件部分,其外圍電路就顯得較為簡單。圖3一23所示為單片機音頻信號輸出放大電路,它由三極管VT1、電阻R32,R31和揚聲器SP組成。該放大器的輸入端與單片機的輸入/輸出接口P3. 7相連接,在通常情況下,P3. 7應保持高電平,基本上與供電極Vcc保持同等電位,因此也就沒有Ib;當P

55、3. 7口為低電下一頁上一頁返回3.5單片機輸出音頻信號的方法平時,在R31和R32上形成了壓降,進而出現(xiàn)了基極電流Ib。由于三極管是一個電流放大器件,所以較小的Ib便可以引起較大的集電極Ic的變化(見圖3一24 );如果此變化的信息是由單片機產生的音頻信號,那么,該放大器的輸出能力足以推動揚聲器發(fā)出聲響。圖3一25所示的單三極管放大電路是為本書專門設計的實驗板上的實際電路圖。相比前面的單片機音頻信號輸出放大電路,該電路中多了兩個元器件R30和J3,為后續(xù)的擴展實驗留下盡可能大的空間,在本次實驗中,只要將R30和J3短路即可。下一頁上一頁返回3.5單片機輸出音頻信號的方法(2)單片機音頻信號輸

56、出電路的制作單片機音頻信號輸出的硬件部分,基本上都集中在三極管放大電路上。音頻的產生由單片機軟件部分來實現(xiàn)的,其電路制作極為簡單,只是要求揚聲器的阻抗盡可能大為好,揚聲器實際的阻抗范圍是8一32SZ。在使用前應對每一個元器件進行檢測,三極管應為PNP型。三極管常見的型號有9012和A733等,這兩種三極管的引腳分布略有差別,具體如圖3一26和圖3一27所示,焊裝時注意識別。下一頁上一頁返回3.5單片機輸出音頻信號的方法2.軟件部分(1)程序的編錄本節(jié)中的音頻信號發(fā)生器是利用單片機中的定時器/計數(shù)器來產生周期性的溢出信號而工作的。定時器/計數(shù)器有4種工作方式,即方式0、方式1、方式2和方式3。這

57、里選用的是方式0,可以使用控制指令來完成設置,詳細說明見后文,下面給出了全部的程序代碼,如表3一21所示。按照表中的程序,將其編譯到單片機中,插接到應用的電路板上,接通電源即可聽見悅耳的音頻聲。(2)指令的學習 JBC bit, rel ; bit表示位,該指令是位狀態(tài)判斷指令。如果被判斷位的狀態(tài)為高電平,即(bit) =1,那么,程序將發(fā)生轉移,轉移的地址由地址偏移量rel決定。在使用匯編軟件編程時,可直接使用需轉移的地址標號來替代。下一頁上一頁返回3.5單片機輸出音頻信號的方法例如:本程序中的JBC TF1, LIU10該指令的含義是:如果位地址“TFl”為高電平1時,則程序將立即轉移到地

58、址標號為LIU1”的程序段上去執(zhí)行指令。 CLR bit:是位清零指令,執(zhí)行該指令之后,無論bit原來是什么狀態(tài),一律變?yōu)榈碗娖?. 3.定時器/計數(shù)器的結構與設置51系列單片機內部設立有兩個定時器/計數(shù)器,分別為:定時器/計數(shù)器0,用1b表示;定時器/計數(shù)器1,用T1表示。從該部件的實際電路來看,其核心部分就是一個16位可編程控制的脈沖計數(shù)器,最大計數(shù)值均為216 (65536) 。脈沖信號有兩個來源:一個是通過單片機引腳引入的脈沖信號,另一個是由單片機內部振蕩器產生的脈沖信號。下一頁上一頁返回3.5單片機輸出音頻信號的方法 由于單片機使用的振蕩源頻率較為準確,脈沖間隔均等,因此從內部振蕩器

59、引入定時器/振蕩器,就可構成一個較為精準的延時器,我們形象地稱之為定時器。如果脈沖信號由外部引入單片機,由于外部情況有可能存在一些不確定因素,脈沖信號的頻率可能會發(fā)生變化,只能機械地記錄外來脈沖的個數(shù),此時的“定時器/計數(shù)器”運行結果,只有記錄脈沖的數(shù)量有意義,此時又稱之為計數(shù)器。當計數(shù)器達到最大值時,便會向CPU申請中斷,如果此時程序的設置是允許中斷請求,則CPU將立即執(zhí)行該請求,以完成中斷事件中所急需處理的問題和動作。下一頁上一頁返回3.5單片機輸出音頻信號的方法此種情況就像一個橢圓形的400m跑道一樣,如圖3一28所示,橢圓形閉合跑道距離就好比是定時器/計數(shù)器的最大計數(shù)值,400m賽跑的

60、起點和終點在一個點上。如果只要求運動員跑200m的距離,那么運動員就必須先順行走到200m處作為起點,然后再以此為起點,當聽到起跑命令之后,再向400m跑道的終點沖去,到達終點沖線后,由終點裁判計時。這時先走的200m就類似于編程者事先賦予定時器/計數(shù)器的數(shù)值,在單片機中稱之為初值。此例中,雖然使用了400m的終點,但運動員實際跑動的距離只有剩下的200m,很顯然,同一個運動員跑200m的用時要比跑全程400m的用時要少一半時間。下一頁上一頁返回3.5單片機輸出音頻信號的方法同理,如果單片機程序事先給定時器/計數(shù)器賦予一定的數(shù)值,使定時器/計數(shù)器以該數(shù)值為起點開始計數(shù),那么賦值后的定時器/計數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論