




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 HEFEI UNIVERSITY單片機實訓(xùn)題 目 單片機應(yīng)用技術(shù)實驗 姓 名 張樂 班 級 自動化(1)班 學(xué) 號 1205031023 指導(dǎo)老師 儲忠 完成時間 2015-6-12 23實驗一 構(gòu)建單片機最小系統(tǒng)和實驗環(huán)境熟悉一、單片機最小系統(tǒng)的組成原理圖二、單片機的工作原理1. 運算器運算器包括算術(shù)邏輯運算單元ALU、累加器ACC、寄存器B、暫存器TMP、程序狀態(tài)字寄存器PSW、十進制調(diào)整電路等。它能實現(xiàn)數(shù)據(jù)的算術(shù)邏輯運算、位變量處理和數(shù)據(jù)傳送操作。(1) 算術(shù)邏輯單元ALU ALU在控制器根據(jù)指令發(fā)出的內(nèi)部信號控制下,對8位二進制數(shù)據(jù)進行加、減、乘、除運算和邏輯與、或、非、異或、清零等
2、運算。它具有很強的判跳、轉(zhuǎn)移、豐富的數(shù)據(jù)傳送、提供存放中間結(jié)果以及常用數(shù)據(jù)寄存器的功能。MCS-51中位處理具有位處理功能,特別適用于實時邏輯控制。(2)累加器ACC累加器ACC是8位寄存器,是最常用的專用寄存器,它既可存放操作數(shù),又可存放運算的中間結(jié)果。MCS51系列單片機中許多指令的操作數(shù)來自累加器ACC。累加器非常繁忙,在與外部存儲器或I/O接口進行數(shù)據(jù)傳送時,都要經(jīng)過A來完成。(3)寄存器B寄存器B是8位寄存器,主要用于乘、除運算。乘法運算時,B中存放乘數(shù),乘法操作后,高8位結(jié)果存于B寄存器中。除法運算時,B中存放除數(shù),除法操作后,余數(shù)存于寄存器B中。寄存器B也可作為一般的寄存器用。(
3、4)程序狀態(tài)字PSW程序狀態(tài)字是8位寄存器,用于指示程序運行狀態(tài)信息。其中有些位是根據(jù)程序執(zhí)行結(jié)果由硬件自動設(shè)置的,而有些位可由用戶通過指令方法設(shè)定。PSW中各標(biāo)志位名稱及定義如下:位序D7D6D5D4D3D2D1D0位標(biāo)志CYACF0RS1RS0OVPCY(PSW.7):進(借)位標(biāo)志位,也是位處理器的位累加器C。在加減運算中,若操作結(jié)果的最高位有進位或有借位時,CY由硬件自動置1,否則清“0”。在位操作中,CY作為位累加器C使用,參于進行位傳送、位與、位或等位操作。另外某些控制轉(zhuǎn)移類指令也會影響CY位狀態(tài)(第三章討論)。AC(PSW.6):輔助進(借)位標(biāo)志位。在加減運算中,當(dāng)操作結(jié)果的低
4、四位向高四位進位或借位時此標(biāo)志位由硬件自動置1,否則清“0”。F0(PSW.5):用戶標(biāo)志位,由用戶通過軟件設(shè)定,決定程序的執(zhí)行方式。RS1(PSW.4),RS0(PSW.3):寄存器組選擇位。用于設(shè)定當(dāng)前通用寄存器組的組,其對應(yīng)關(guān)系如下:RS1RS0寄存器組R0R7地址00組00007H01組1080FH10組21017H11組3181FHOV(PSW.2):溢出標(biāo)志位。它反映運算結(jié)果是否溢出,溢出時OV=1;否則OV=0。OV可作為條件轉(zhuǎn)移指令中的條件。PSW.1:未定義位。P(PSW.1):奇偶標(biāo)志位。P=1,表示ACC中1的個數(shù)為奇數(shù);否則P=0。P也可以作為條件轉(zhuǎn)移指令中的條件。2.
5、 控制器控制器包括定時控制邏輯(時鐘電路、復(fù)位電路),指令寄存器,指令譯碼器程序計數(shù)器PC,堆棧指針SP,數(shù)據(jù)指針寄存器DPTR以及信息傳送控制部件等。(1)時鐘電路MCS51系列單片機芯片內(nèi)部有一個高增益反相放大器,輸入端為XTAL1,輸出端為XTAL2,一般在XTAL1與XTAL2之間接石英晶體振蕩器和微調(diào)電容,從而構(gòu)成一個穩(wěn)定的自激振蕩器,就是單片機的內(nèi)部時鐘電路,如圖(A)所示。時鐘電路產(chǎn)生的振蕩脈沖經(jīng)過二分頻以后,才成為單片機的時鐘信號。電容C1和C2為微調(diào)電容,可起頻率穩(wěn)定、微調(diào)作用,一般取值在530pf之間,常取30pf。晶振的頻率范圍是1.2MHz12MHz ,典型值取6 MH
6、z。XTAL1接地,XTAL2接外部震蕩器,外接信號應(yīng)是高電平持續(xù)時間大于20ns的方波,且脈沖頻率應(yīng)低于12 MHZ。如圖(B)所示。 (A)內(nèi)部時鐘電路 (B)外部振蕩源(2)復(fù)位電路對于使用12MHZ的晶振的單片機,復(fù)位信號持續(xù)時間應(yīng)超過4s才能完成復(fù)位操作。產(chǎn)生復(fù)位信號的電路有上電自動復(fù)位電路和按鍵手動復(fù)位電路兩種方式。上電自動復(fù)位是通過外部復(fù)位電路的電容充電來實現(xiàn)的,該電路通過電容充電在RST引腳上加了一個高電平完成復(fù)位操作。上電自動復(fù)位電路如圖(a)所示。按鍵手動復(fù)位電路。按鍵手動復(fù)位是通過按鍵實現(xiàn)人為的復(fù)位操作,按鍵手動復(fù)位電路如圖(b)所示。復(fù)位后內(nèi)部暫存器的狀態(tài)如下:PC00
7、00HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0P3FFHSCON00HIP××000000BSBUF不定IE0×000000BPCON0×××0000BTMOD00H(3)指令寄存器和指令譯碼器指令寄存器中存放指令代碼,CPU執(zhí)行指令時,由程序存儲器中讀取的指令代碼送入指令存儲器,經(jīng)譯碼器后由定時與控制電路發(fā)出相應(yīng)的控制信號,完成指令所指定的操作。4.程序計數(shù)器PCPC是一個16位計數(shù)器,其內(nèi)容為單片機將要執(zhí)行的指令機器碼所在存儲單元的地址。PC具有自動加1
8、的功能,從而實現(xiàn)程序的順序執(zhí)行。由于PC不可尋址的,因此用戶無法對它直接進行讀寫操作,但可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以實現(xiàn)程序的轉(zhuǎn)移。PC的尋址范圍為64KB,即地址空間為00000FFFFH。(4)堆棧指針SPSP為8位寄存器,用于指示棧頂單元地址。所謂堆棧是一種數(shù)據(jù)結(jié)構(gòu),它只允許在其一端進行數(shù)據(jù)刪除和數(shù)據(jù)插入操作的線性表。數(shù)據(jù)寫入堆棧叫入棧(PUSH),數(shù)據(jù)讀出堆棧叫出棧(POP)。堆棧的最大特點是“后進先出”的數(shù)據(jù)操作原則。MCS-51系統(tǒng)復(fù)位后,SP初始化為07H。(5)數(shù)據(jù)指針DPTR數(shù)據(jù)指針DPTR為16位寄存器,它是MCS51中唯一的一個16位寄存器。編程時,既可按
9、16位寄存器使用,也可作為兩個8位寄存器分開使用。DPH 為DPTR的高八位寄存器,DPL 為DPTR的低八位寄存器。DPTR通常在訪問外部數(shù)據(jù)存儲器時作為地址指針使用,尋址范圍為64KB。三、實驗小結(jié)單片機系統(tǒng)電路的基本模塊有:復(fù)位電路,晶振電路,上拉電阻,下載口等主要模塊。其中P0口作為輸出使用必須對單片機的I/O口,因為P0為集電極開路,可以提高其功率和電平轉(zhuǎn)換。在單片機最小系統(tǒng)的構(gòu)建中,EA腳拉高是非常必要的,它可以影響單片機的正常工作。在檢測單片機是否正常工作,可以通過檢測晶振兩端的信號的波形形狀。在單片機正常工作條件下,其信號為正弦波。經(jīng)過一周的時間基本完成單片機最小系統(tǒng)板的焊接部
10、分和單片機的工作原理,以及對單片機外圍電路的焊接,知道了硬件部分的重要性,單片機最小系統(tǒng)板的焊接最主要是晶振部分的焊接,它為單片機提供了做工作的頻率,是單片機的心臟。實驗二 跑馬燈實驗及74HC138譯碼器一、實驗原理 1、跑馬燈(1)參考實驗原理圖如下: (跑馬燈原理圖)(2)工作原理給單片機的端口賦初值,點亮第一個LED,然后延時一段時間后,點亮下一個LED,依次循環(huán)下去。形成動態(tài)閃亮的效果。2、138譯碼器電路74LS138譯碼器:圖8 74LS138譯碼器芯片圖74LS138 為3 線8 線譯碼器,共有 54/74S138和 54/74LS138 兩種線路結(jié)構(gòu)型式。其工作原理如下: (
11、1)當(dāng)一個選通端E1為高電平,另兩個選通端和為低電平時,可將地址端A0、A1、A2的二進制編碼在Y0至Y7對應(yīng)的輸出端以低電平譯出。比如:A0A1A2=110時,則Y6輸出端輸出低電平信號。(2)利用 E1、E2和E3可級聯(lián)擴展成 24 線譯碼器;若外接一個反相器還可級聯(lián)擴展成 32 線譯碼器。(3)若將選通端中的一個作為數(shù)據(jù)輸入端時,74LS138還可作數(shù)據(jù)分配器。 (4)可用在8086的譯碼電路中,擴展內(nèi)存。(1)參考實驗原理圖如下:(2)工作原理根據(jù)138譯碼器的工作原理,當(dāng)G1G2AG2B=111時,譯碼器工作,根據(jù)74LS138的3個譯碼信號A、B、C來選擇Y0、Y1、Y2、Y3、Y
12、4、Y5、Y6作為輸出,各輸出為低電平時,當(dāng)共陽極的LED燈節(jié)高電平時,就會使相應(yīng)的燈亮。A、B、C三個信號由單片機的P1.0、P1.1和P1.2來提供,而P1.0、P1.1和P1.2的值是通過匯編程序設(shè)置初始值后,然后根據(jù)P1.0、P1.1和P1.2的值加1和循環(huán)來時8各LED燈循環(huán)點亮。二、軟件流程圖1、138譯碼器程序流程圖:三、源程序代碼1、跑馬燈實驗代碼:#include<reg52.h> /定義8052寄存器的頭文件#include<intrins.h> /包含_cror_()的頭文件#define uint unsigned int/宏定義#define
13、uchar unsigned charvoid delay(uint n) /延時子程序uchar i;while(n-)for(i=0;i<255;i+);void main()uchar i;while(1)for(i=0;i<8;i+) /左右循環(huán)點亮P1=i;delay(300); /調(diào)用延時函數(shù)for(i=6;i>0;i-) /上下循環(huán)點亮P1=i;delay(300);四、實驗調(diào)試:將硬件電路焊制完成后,連接好電路,仔細檢查無錯誤后,我們將流水燈程序下載至STC89C52單片機中,看到八個燈按順序依次循環(huán)點亮。但在焊制的過程中由于八個LED燈是按共陽極接法連入電路
14、中,所以可以只焊一個470的上拉電阻,此處上拉電阻的選擇規(guī)則如下:由于點亮LED需要大約711mA的電流,而電源供電為5V,所以由歐姆定律可知上拉電阻為714454,此處選擇470。實驗中的接線是非常重要的,在接線之前一定要用萬用表檢測線的好壞否則實驗是很難成功的!五、實驗小結(jié)通過LED,74LS138的焊接和它與單片機的連線,我對流水燈的電路有了清晰的認(rèn)識,從概念上理解了如何用程序來控制流水燈。在焊接的過程中我學(xué)會了一些焊接技巧,如何在焊接時走線使電路連線最簡單,在焊接流水燈電阻時,我遇到一個問題,電阻值該如何選擇?在沒有焊接電路我沒有注意到這個問題,經(jīng)過查資料,LED的壓降為1.7V左右,
15、LED的發(fā)光電流為23mA, R=(5-1.7)V/(23)mA.完成電路設(shè)計后,開始在KEIL中編寫c語言程序。從一個指令一個指令的寫,到一句一句的寫,最后到一段一段的寫。完成程序后,在Pritues中進行仿真。通過不斷的修改和調(diào)試,程序仿真是正確的。最后通過下載器把程序燒到單片機里,發(fā)現(xiàn)達不到仿真的效果。經(jīng)過對程序的修改調(diào)試,在實際硬件電路中可以實現(xiàn)了。這使我認(rèn)識到計算機仿真和實際硬件電路還是有一定的差別。在仿真中只能調(diào)試程序,并不能達到實際效果。進過一次一次的下載,調(diào)試程序。最后成功的達到預(yù)期的效果。我對單片機的程序和控制有更深的認(rèn)識和理解。通過第一個單片機實驗的完成,我體會到單片機控制
16、的奇妙。單片機可以實現(xiàn)我們的想法。我感到很興奮,很有趣。這次實驗最大的收獲,第一、我熟悉了KEIL Protuesde 的聯(lián)合使用。第二、學(xué)會單片機程序編寫和調(diào)試。第三、我理解了軟件與硬件的關(guān)系,單片機可以通過軟件作用到硬件把我們的思想表達出來。實驗三 8255控制交通燈實驗一、 實驗原理1、交通燈原理交通燈的變化規(guī)律是:先假定一個十字路口為東南西北走向交通燈的初始狀態(tài)為狀態(tài)1,東西方向綠燈通車,南北方向紅燈。經(jīng)過過一段時間(3S)轉(zhuǎn)換狀態(tài)2,東西方向黃燈閃亮,延時2S,南北方向仍然紅燈。再轉(zhuǎn)換到狀態(tài)3,東西方向紅燈通車,南北方向綠燈。過一段時間(3S)轉(zhuǎn)換到狀態(tài)4,南北方向黃燈閃亮,延時2S
17、,東西方向仍然紅燈。最后循環(huán)至南北紅燈,東西綠燈。實驗原理參考圖:2、8255芯片工作原理:8255A是一個40引腳的雙列直插式集成電路芯片。按功能可把8255A分為三個邏輯電路部分,即:口電路、總線接口電路和控制邏輯電路。(1)口電路 8255A共有三個8位口,其中A口和B口是單純的數(shù)據(jù)口,供數(shù)據(jù)I/O使用。而C口則既可以作數(shù)據(jù)口,又可以作控制口使用,用于實現(xiàn)A口和B口的控制功能。數(shù)據(jù)傳送中A口所需的控制信號由C口高位部分(PC7PC4)提供,因此把A口和C口高位部分合在一起稱之為A組;同樣理由把B口和C口低位部分(PC3PC0)合在一起稱之為B組。(2)總線接口電路總線接口電路用于實現(xiàn)82
18、55A和單片微機的信號連接。其中包括:數(shù)據(jù)總線緩沖器和讀/寫控制邏輯,數(shù)據(jù)總線緩沖器為8位雙向三態(tài)緩沖器,可直接和80C51的數(shù)據(jù)線相連,與I/O操作有關(guān)的數(shù)據(jù)、控制字和狀態(tài)信息都是通過該緩沖器進行傳送。與讀寫有關(guān)的控制信號有CS為片選信號(低電平有效),RD為讀信號(低電平有效),WR為寫信號(低電平有效),A0、A1為端口選擇信號。8255A共有四個可尋址的端口(即A口、B口、C口和控制寄存器),用二位地址編碼即可實現(xiàn)選擇。參見下表。 讀寫端口表RESET復(fù)位信號(高電平有效)。復(fù)位之后,控制寄存器清除,各端口被置為輸入方式。讀寫控制邏輯用于實現(xiàn)8255A的硬件管理:芯片的選擇,口的尋址以
19、及規(guī)定各端口和單片微機之間的數(shù)據(jù)傳送方向。(3)控制邏輯電路控制邏輯電路包括A組控制和B組控制,合在一起構(gòu)成8位控制寄存器。用于存放各口的工作方式控制字8255A工作方式及數(shù)據(jù)I/O操作(1)8255A的工作方式(實驗用方式0)方式0 基本輸入/輸出方式 方式0下,可供使用的是兩個8位口(A口和B口)及兩個4位口(C口高4位部分和低4位部分)。四個口可以是輸入和輸出的任何組合。方式0適用于無條件數(shù)據(jù)傳送,也可以把C口的某一位作為狀態(tài)位,實現(xiàn)查詢方式的數(shù)據(jù)傳送。(2)數(shù)據(jù)輸入操作用于輸入操作的聯(lián)絡(luò)信號有:STB(StroBe)選通脈沖,輸入,低電平有效。 當(dāng)外設(shè)送來STB信號時,輸入數(shù)據(jù)裝入82
20、55A的鎖存器。IBF(Input Buffer Full) 輸入緩沖器滿信號,輸出,高電平有效。IBF信號有效,表明數(shù)據(jù)已裝入鎖存器,因此它是一個狀態(tài)信號。INTR(INTerrupt Request)中斷請求信號,高電平有效,當(dāng)IBF數(shù)據(jù)輸入過程:當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù)輸入后,發(fā)出信號,輸入的數(shù)據(jù)送入緩沖器。然后IBF信號有效。如使用查詢方式,則IBF即作為狀態(tài)信號供查詢使用;如使用中斷方式,當(dāng)信號由低變高時,產(chǎn)生INTR信號,向單片微機發(fā)出中斷。單片微機在響應(yīng)中斷后執(zhí)行中斷服務(wù)程序時讀入數(shù)據(jù),并使INTR信號變低,同時也使IBF信號同時變低。以通知外設(shè)準(zhǔn)備下一次數(shù)據(jù)輸入。(3)數(shù)據(jù)輸出操作用于
21、數(shù)據(jù)輸出操作的聯(lián)絡(luò)信號有:ACK(ACKnowledge)外設(shè)響應(yīng)信號輸入,低電平有效。當(dāng)外設(shè)取走輸出數(shù)據(jù),并處理完畢后向單片微機發(fā)回的響應(yīng)信號為高,信號由低變高(后沿)時,中斷請求信號有效。向單片微機發(fā)出中斷請求。OBF(Output Buffer Full)輸出緩沖器滿信號,輸出,低電平有效。當(dāng)單片微機把輸出數(shù)據(jù)寫入8255A鎖存器后,該信號有效,并送去啟動外設(shè)以接收數(shù)據(jù)。INTR中斷請求信號,輸出,高電平有效。數(shù)據(jù)輸出過程:外設(shè)接收并處理完一組數(shù)據(jù)后,發(fā)回ACK信號。該信號使OBF變高,表明輸出緩沖器已空。如使用查詢方式,則OBF可作為狀態(tài)信號供查詢使用;如使用中斷方式,則當(dāng)ACK信號結(jié)
22、束時,INTR有效,向單片微機發(fā)出中斷請求。在中斷服務(wù)過程中,把下一個輸出數(shù)據(jù)寫入8255A的輸出緩沖器。寫入后OBF有效,表明輸出數(shù)據(jù)已到,并以此信號啟動外設(shè)工作,取走并處理8255A中的輸出數(shù)據(jù)。 8255A C口聯(lián)絡(luò)信號定義:二、軟件流程圖三、實驗源程序代碼 #include<reg52.h> /定義8052單片機寄存器的頭文件#include<absacc.h>/絕對地址處理頭文件,包含XBYTE,用XBYTE來定義擴展的I/O端口和外部RAM單元地址#define uint unsigned int /宏定義#define uchar unsigned cha
23、r#define CON XBYTE0xffff/定義8255控制字寄存器端口#define PA XBYTE0xfcff/定義8255端口PA地址void delay(uint z); /延時void main()uint i=0;CON=0x80;/寫方式控制字,方式0,基本輸入輸出PA=0xff;while(1)PA=0x1e;/東西綠燈,南北紅燈delay(1000);/延時for(i=3;i>0;i-)/黃燈閃爍三次PA=0x2e;delay(100);PA=0x3e;delay(100);PA=0x33;/東西紅燈,南北綠燈delay(1000);for(i=3;i>0
24、;i-)/黃燈閃爍三次PA=0x35;delay(100);PA=0x37;delay(100);void delay(uint z) /延時子程序uint x,y;for(x=z;x>0;x-)for(y=500;y>0;y-);四、實驗調(diào)試:將交通燈的硬件電路焊制完成后,與單片機連接好,將交通燈的程序下載至單片機中,但是此次我并沒有觀察到預(yù)期的現(xiàn)象,開始以為是連線出了錯誤,于是我便重新對照原理圖連接了一遍,可任然沒有預(yù)期的結(jié)果,于是我找來萬用便將單片機連接LED的各引腳電平都測了一遍,發(fā)現(xiàn)這幾個引腳均為3.97V,即為高電平,而且并沒有出現(xiàn)高低電平變換。于是我們又將原理圖在Pr
25、oteus軟件中仿真一遍,結(jié)果仿真正確,那么問題到底出在哪兒?經(jīng)過我的尋找發(fā)現(xiàn)單片機的reset引腳未接地(在仿真軟件里reset引腳是默認(rèn)接地的),于是我們重新調(diào)整了電路,連接好之后,終于出現(xiàn)了理想的結(jié)果。五、實驗小結(jié)通過本次交通燈實驗,學(xué)會了使用8255芯片的初始化和編程方法。同時認(rèn)識到通過8255實現(xiàn)了I/O口的擴展。本實驗使用的是8255的方式0。利用8255完成交通燈的四中狀態(tài)切換。第一種狀態(tài)是東西方向是綠燈,南北方向是紅燈。第二種狀態(tài)是東西方向是黃燈并且閃爍,南北方向是紅燈。第三種狀態(tài)是東西方向是紅燈,南北方向是綠燈。第四種狀態(tài)是東西方向是紅燈,南北方向是黃燈,最后變到第一種狀態(tài)。
26、交通燈的實現(xiàn),難點有兩個點。一是交通燈的工作狀態(tài)。通過觀察實際交通燈,確定了上述的四種狀態(tài)。二是如何用匯編程序來描述這四種狀態(tài)。在實現(xiàn)具體的硬件時,采用8255控制十二個LED,三個一組,分成四組來模擬實際交通燈。其中的對面兩組狀態(tài)變化是相同一致的。在完成仿真后在硬件電路中調(diào)試時,發(fā)現(xiàn)了一個問題。顯示的狀態(tài)不對。經(jīng)過檢查電路后發(fā)現(xiàn)電路的連線錯了。重新調(diào)試后,發(fā)現(xiàn)狀態(tài)對了,但是有一組燈出現(xiàn)了問題。其中的一個燈不亮。經(jīng)過修改程序和軟件仿真,沒有發(fā)現(xiàn)原因何在。后來把LED換了,可能硬件出了問題,最后結(jié)果是正確的。軟件到硬件,再由硬件到軟件。通過問題的解決,我對程序和電路有了更深的認(rèn)識和理解。 實驗四
27、 8253方波實驗一、 實驗原理1、參考原理圖工作原理分析:單片機定時器產(chǎn)生一個10K的方波。將此方波作為時鐘信號送給8253的通道0,通過分頻作為通道1的時鐘信號進行二次分頻,最后得到所要的頻率。1、交通燈原理28253工作原理8253內(nèi)部有三個計數(shù)器,分別成為計數(shù)器0、計數(shù)器1和計數(shù)器2,他們的機構(gòu)完全相同。每個計數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制字,互相之間工作完全獨立。每個計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。每個計數(shù)器內(nèi)部有一個8位的控制寄存器,還有一個16位的計數(shù)初值寄存器CR、一個計數(shù)執(zhí)行部件CE和
28、一個輸出鎖存器OL。 執(zhí)行部件實際上是一個16位的減法計數(shù)器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通過程序設(shè)置的。輸出鎖存器的值是通過程序設(shè)置的。輸出鎖存器OL用來鎖存計數(shù)執(zhí)行部件CE的內(nèi)容,從而使CPU可以對此進行讀操作。順便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器來用。8253具有3個獨立的計數(shù)通道,采用減1計數(shù)方式。在門控信號有效時,每輸入1個計數(shù)脈沖,通道作1次計數(shù)操作。當(dāng)計數(shù)脈沖是已知周期的時鐘信號時,計數(shù)就成為定時。每個計數(shù)通道內(nèi)含1個16位的初值寄存器、減1計數(shù)器和1個16位的(輸出)鎖存器。8253內(nèi)部包含3個功能完全相同的通道,每個通道內(nèi)
29、部設(shè)有一個16位計數(shù)器,可進行二進制或十進制(BCD碼)計數(shù)。采用二進制計數(shù)時, 寫入的初值范圍為0000HFFFFH,最大計數(shù)值是0000H,代表65536。 采用BCD碼計數(shù)時, 寫入的初值范圍為00009999,最大計數(shù)值是0000,代表10000。與此計數(shù)器相對應(yīng), 每個通道內(nèi)設(shè)有一個16位計數(shù)值鎖存器。必要時可用來鎖存計數(shù)值。 當(dāng)某通道用作計數(shù)器時,應(yīng)將要求計數(shù)的次數(shù)預(yù)置到該通道的計數(shù)器中、被計數(shù)的事件應(yīng)以脈沖方式從CLK端輸入, 每輸入一個計數(shù)脈沖,計數(shù)器內(nèi)容減“1”,待計數(shù)值計到“0”。 OUT端將有輸出。表示計數(shù)次數(shù)到。當(dāng)某個通道用作定時器時。 由CLK輸入一定頻率的時鐘脈沖。
30、根據(jù)要求定時的時間長短確定所需的計數(shù)值。并預(yù)置到計數(shù)器中,每輸入一個時鐘脈沖,計數(shù)器內(nèi)容減“1”, 待計數(shù)值計到“0”。OUT將有輸出,表示定時時間到。允許從CLK輸入的時鐘頻在12MHz范圍內(nèi)。因此,任一通道作計數(shù)器用或作定時器用,其內(nèi)部操作完全相同,區(qū)別僅在于前者是由計數(shù)脈沖進行減“1”計數(shù)。 而后者是內(nèi)時鐘脈沖進行減“1”計數(shù)。作計數(shù)器時, 要求計數(shù)的次數(shù)可直接作為計數(shù)器的初值預(yù)置到減“1”計數(shù)器中。作定時器時, 計數(shù)器的初值即定時系數(shù)應(yīng)根據(jù)要求定時的時間進行如下運算才能得到: 定時系數(shù)=需要定時的時間/時鐘脈沖周期 設(shè)置通道:向方式控制字寄存器端口寫入方式選擇控制字,用于確定要設(shè)置的通
31、道及工作方式; 計數(shù)/定時:向通道寫入計數(shù)值,啟動計數(shù)操作; 讀取當(dāng)前的計數(shù)值:向指定通道讀取當(dāng)前計數(shù)器值時,8253將計數(shù)器值存入鎖存器,從鎖存器向外提供當(dāng)前的計數(shù)器值,計數(shù)器則繼續(xù)作計數(shù)操作。 計數(shù)到:當(dāng)計數(shù)器減1為0時,通過引腳OUTi向外輸出“到”的脈沖信號。二、 軟件程序流程圖 三、實驗源程序代碼#include<reg52.h> /定義8052寄存器的頭文件#include<absacc.h> /定義存儲器形式的頭文件#define uchar unsigned char /宏定義#define uint unsigned int#define CH0 XB
32、YTE0xfcff /通道0地址#define CH1 XBYTE0xfdff /通道1地址#define CH2 XBYTE0xfeff /通道2地址#define CON XBYTE0xffff/控制口地址sbit P1_0=P10; /P1.0口產(chǎn)生8253輸入時鐘/*定時器中斷初始化函數(shù)*/void T0_Init()TMOD=0x02; /選擇通道0,方式2TH0=231;/設(shè)置計數(shù)初始值,TH0=256-25TL0=231;/TH0=TL0ET0=1;/通道0中斷使能TR0=1;/啟動定時器0EA=1;/開總中斷/*主程序*/void main(void) T0_Init(); /定時器中斷初始化CON=0X16; /寫通道0控制字,只讀低字節(jié),方式3,BCD計數(shù)CH0=0x64; /寫計數(shù)初值,CH0=20000/100;CON=0x56; /寫通道1控制字,只讀低字節(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年西安醫(yī)學(xué)高等??茖W(xué)校單招職業(yè)傾向性考試題庫匯編
- 2025年西藏林芝地區(qū)單招職業(yè)傾向性考試題庫及參考答案1套
- 2025至2030年手提式動力噴霧機項目投資價值分析報告
- 農(nóng)藝師考試綠色發(fā)展理念試題及答案探索
- 前海公司面試題及答案
- 大學(xué)輔導(dǎo)員學(xué)生活動策劃能力考核試題及答案
- 如何有效整合農(nóng)業(yè)經(jīng)理人考試的書籍與課程資源試題及答案
- 2025至2030年異物檢測成像儀項目投資價值分析報告
- 2025至2030年小型擦手紙架項目投資價值分析報告
- 2024年花藝師考試考生的經(jīng)驗交流與學(xué)習(xí)解決方案試題及答案
- 預(yù)防便秘的健康宣教內(nèi)容
- 2024年蜀道集團招聘筆試參考題庫含答案解析
- 初中語文九年級下冊第四單元作業(yè)設(shè)計單元質(zhì)量檢測作業(yè)
- 2022輔警考試《道路交通安全法》基礎(chǔ)知識題庫(帶答案)
- 液壓仿真技術(shù)的現(xiàn)狀及發(fā)展趨勢
- nrf2and通路在藥物治療中的作用
- 高考語文復(fù)習(xí):詩歌語言鑒賞
- 泌尿外科常見疾病診療指南
- 學(xué)校開展“躺平式”教師專項整治工作實施方案心得體會2篇
- 急救物品藥品管理制度-課件
- 蘇教版三年級下冊口算題大全(全冊完整14份)
評論
0/150
提交評論