版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)及其控制技術(shù)項(xiàng)目一 認(rèn)識(shí)單片機(jī)任務(wù)1-1 初識(shí)單片機(jī)任務(wù)要點(diǎn):本任務(wù)主要是使初學(xué)者了解、認(rèn)識(shí)單片機(jī),理解單片機(jī)的概念,了解單片機(jī)的用途、特點(diǎn)及其發(fā)展趨勢(shì)。1.1.1單片機(jī)基本概念單片機(jī)也許大家都聽說過,單片機(jī)到底是什么?它是用來做什么的呢?項(xiàng)目一 認(rèn)識(shí)單片機(jī)1.1.2 點(diǎn)亮一個(gè)LED燈為了更好的認(rèn)識(shí)單片機(jī),理解單片機(jī)的功能,我們通過實(shí)例來進(jìn)一步認(rèn)識(shí)單片機(jī)。用單片機(jī)來點(diǎn)亮一個(gè)LED燈,如圖所示:在P1.0端口上接一個(gè)發(fā)光二極管LED,任務(wù)就是要讓發(fā)光二極管LED點(diǎn)亮。這里要解決的問題主要有以下幾個(gè):(1) 發(fā)光二極管LED如何發(fā)光;(2) 單片機(jī)如何控制LED發(fā)光;(3) 單片機(jī)工作需要哪
2、些基本條件;(4) 單片機(jī)控制LED發(fā)光的程序如何編寫。1. LED如何發(fā)光項(xiàng)目一 認(rèn)識(shí)單片機(jī)2. 單片機(jī)如何控制LED發(fā)光3. 單片機(jī)工作基本條件4. 編寫LED發(fā)光的程序ORG 0000HLJMP MAINORG 0030HMAIN: CLR P1.0JMP MAINEND 項(xiàng)目一 認(rèn)識(shí)單片機(jī)1.1.3 單片機(jī)的應(yīng)用領(lǐng)域(1)日常生活及家電領(lǐng)域 (2)辦公自動(dòng)化領(lǐng)域 (3)商業(yè)營(yíng)銷領(lǐng)域 (4)工業(yè)自動(dòng)化 (5)智能儀器儀表 (6)集成智能傳感器的測(cè)控系統(tǒng)(7)汽車電子與航空航天電子系統(tǒng)1.1.4 單片機(jī)的分類1.1.5 單片機(jī)的特點(diǎn)1.1.6 單片機(jī)的發(fā)展趨勢(shì)1.1.7 現(xiàn)階段主流單片機(jī)簡(jiǎn)
3、介結(jié)構(gòu)簡(jiǎn)單、體積小 性能價(jià)格比高 可靠性高、耗能小 應(yīng)用范圍廣泛。項(xiàng)目一 認(rèn)識(shí)單片機(jī)8位主流單片機(jī)的種類很多,如下所示。(1)Intel MCS-51兼容單片機(jī)有很多,是屬于早期的8位單片機(jī)系列。(2)Microchip PIC16C 5X/6X/7X/8X 系列、PIC17C、PIC18C 系列。(3)Freescale 68HC908;68S08 系列。(4)Atmel AVR 系列:(5)義隆EM78系列。Microchip的8位PIC系列擁有較大的市場(chǎng)份額,采用類RISC設(shè)計(jì),在家用電器、工業(yè)控制上應(yīng)用廣泛。Freescale C前身為Motorola半導(dǎo)體)的68系列單片機(jī)具有高可靠
4、性,廣泛用于汽車電子領(lǐng)域。16位主流單片機(jī)的種類如下所示。(1)Intel MCS-96 系列,如 80C196。(2)TI MSP4:30 系列。(3)Microchip PIC24C 系列。(4)Maxim MAXQ 系列(5)凌陽(yáng)SPMC75系列。(6)Freescale MC68S12 系列。32位主流單片機(jī)的種類如下示。(1)ST STM32(Cortex-M3)。(2)Atmel AT32UC3B 系列(AVR32)。(3)NXP LPC2000 系列(ARM7 內(nèi)核)。(4)Luminary Micro(TI收購(gòu))的SteUaris(群星)系列(armCo版內(nèi)核)。項(xiàng)目一 認(rèn)識(shí)單
5、片機(jī)任務(wù)1-2解析單片機(jī)的內(nèi)部結(jié)構(gòu)任務(wù)要點(diǎn):掌握單片機(jī)各個(gè)引腳的功能,掌握常用型號(hào)單片機(jī)的內(nèi)部存儲(chǔ)器的結(jié)構(gòu)和地址分配。1.2.1 89C51單片機(jī)的外部引腳及最小系統(tǒng)單片機(jī)的組成 項(xiàng)目一 認(rèn)識(shí)單片機(jī)最小應(yīng)用系統(tǒng)的概念 在實(shí)際應(yīng)用中,由于需求情況不同,單片機(jī)應(yīng)用系統(tǒng)的外圍電路及控制要求不同。單片機(jī)最小應(yīng)用系統(tǒng)是指能使單片機(jī)獨(dú)立工作運(yùn)行的盡可能少的電路連接。89C51單片機(jī)內(nèi)部已經(jīng)有4kB的Flash ROM及128B的RAM,因此只需外接時(shí)鐘電路、復(fù)位電路及電源即可工作,稱為單片機(jī)最小應(yīng)用系統(tǒng),如圖所示。 項(xiàng)目一 認(rèn)識(shí)單片機(jī)(2)時(shí)鐘電路(3)復(fù)位電路項(xiàng)目一 認(rèn)識(shí)單片機(jī)1.2.2 89C51單片
6、機(jī)的存儲(chǔ)器結(jié)構(gòu)1. 程序存儲(chǔ)器ROM89C51程序存儲(chǔ)器特殊功能存儲(chǔ)單元項(xiàng)目一 認(rèn)識(shí)單片機(jī)2. 數(shù)據(jù)存儲(chǔ)器RAM2.1內(nèi)部RAM低128單元項(xiàng)目一 認(rèn)識(shí)單片機(jī)工作寄存器區(qū) RS0、RS1決定使用的是哪個(gè)寄存器 MOV A, RO MOV A, 00H位尋址區(qū) CLR 00H MOV 00H,#00H 或 ANL 00H,#00H用戶RAM區(qū)項(xiàng)目一 認(rèn)識(shí)單片機(jī)2.2內(nèi)部RAM高I28單元(專用寄存器區(qū))項(xiàng)目一 認(rèn)識(shí)單片機(jī)MCS-51中共有22個(gè)專用寄存器21個(gè)可尋址1、程序計(jì)數(shù)器PC PC中的數(shù)據(jù)位將要執(zhí)行的指令的地址2、累加器ACC 8位寄存器 E0H3、B寄存器 主要用于乘除法運(yùn)算項(xiàng)目一 認(rèn)
7、識(shí)單片機(jī)4、程序狀態(tài)字(PSW)5、數(shù)據(jù)指針(DPTR) DPH高8位 DPL低8位項(xiàng)目一 認(rèn)識(shí)單片機(jī)任務(wù)1-3 數(shù)制轉(zhuǎn)換任務(wù)要點(diǎn):掌握單片機(jī)中數(shù)的表示和各數(shù)制之間的轉(zhuǎn)換。1.3.1常用數(shù)制1、數(shù)字與碼制基礎(chǔ)十進(jìn)制二進(jìn)制八進(jìn)制十六進(jìn)制不同進(jìn)制間的轉(zhuǎn)換1.3.2不同進(jìn)制數(shù)之間的相互轉(zhuǎn)換1.3.3邏輯運(yùn)算與、或、非、同或、異或項(xiàng)目一 認(rèn)識(shí)單片機(jī)任務(wù)1-4單片機(jī)的開發(fā)工具1.4.1Keil軟件的使用Keil Vision2是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的51架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還支持PLM ,匯編和C語(yǔ)言的程序設(shè)計(jì),它的界面和常用的微軟VC+的
8、界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。Keil單片機(jī)模擬調(diào)試軟件安裝完成以后,計(jì)算機(jī)桌面上將產(chǎn)生一個(gè)標(biāo)注有“Keil Vision2”的圖標(biāo),雙擊這個(gè)圖標(biāo)就可以進(jìn)入Keil單片機(jī)模擬調(diào)試軟件的集成開發(fā)環(huán)境,出現(xiàn)如圖所示的屏幕,進(jìn)入圖所示的編輯界面。項(xiàng)目一 認(rèn)識(shí)單片機(jī)STC_ISP_V488單片機(jī)下載軟件的使用1、 這里使用STC-ISP-V4.88免安裝版,雙擊可執(zhí)行文件,如圖所示。2、 啟動(dòng)后,首次設(shè)置時(shí)只需注意芯片的選擇,在左上角下拉框中選擇單片機(jī)型號(hào),一般的臺(tái)式機(jī)大多只有一個(gè)串口,所以COM欄就選擇COM1,如果使用別的串口那就選擇相應(yīng)的串口號(hào),其他全部
9、使用默認(rèn),其他參數(shù)可以使用默認(rèn)狀態(tài),無須改動(dòng)。總體設(shè)置如圖所示。項(xiàng)目一 認(rèn)識(shí)單片機(jī)1.4.2Proteus 的基本操作1、認(rèn)識(shí)ProteusProteus是英國(guó)Labcenter Electronics公司開發(fā)的EDA軟件。它運(yùn)行于Windows操作系統(tǒng)上,能夠?qū)崿F(xiàn)原理圖設(shè)計(jì)、電路仿真到PCB設(shè)計(jì)的一站式作業(yè),真正實(shí)現(xiàn)了電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件的三合一。2、進(jìn)入Proteus ISIS雙擊桌面上的ISIS 7 Professional圖標(biāo)或者單擊屏幕左下方的“開始”“所有程序”“Proteus 7 Professional” “ISIS 7 Professional”,進(jìn)
10、入Proteus ISIS工作環(huán)境,如圖1-4-22所示: 項(xiàng)目一 認(rèn)識(shí)單片機(jī)3、工作界面Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,包括:屏幕上方的標(biāo)題欄、菜單欄、標(biāo)準(zhǔn)工具欄,屏幕左側(cè)的繪圖工具欄、對(duì)象選擇按鈕、預(yù)覽對(duì)象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對(duì)象選擇器窗口,屏幕下方的狀態(tài)欄,屏幕中間的圖形編輯窗口,如圖所示: 單片機(jī)及其控制技術(shù)項(xiàng)目二 LED及數(shù)碼管控制任務(wù)2-1閃爍燈的控制項(xiàng)目二 LED及數(shù)碼管控制 MOV A,Rn ;RnA ,n=07 MOV A,Ri ;(Ri)A,i=0、1 MOV A,direct ;(direct)A MOV A,#da
11、ta ;dataA 一、數(shù)據(jù)傳送類指令 內(nèi)RAM數(shù)據(jù)傳送指令 以累加器A為目的字節(jié)的傳送指令(4條)項(xiàng)目二 LED及數(shù)碼管控制例:項(xiàng)目二 LED及數(shù)碼管控制 MOV Rn,A ;ARn,n=07 MOV Rn,direct;(direct)Rn,n=07 MOV Rn,#data ;dataRn,n=07 以工作寄存器Rn為目的字節(jié) 的傳送指令(3條)項(xiàng)目二 LED及數(shù)碼管控制 以直接地址為目的字節(jié)的傳送指令(5條) MOV direct,A ;A(direct) MOV direct,Rn ;Rn(direct),n=07 MOV direct,Ri ;(Ri)(direct),i=0、1
12、MOV direct1,direct2;(direct2)(direct1) MOV direct,#data;data(direct)項(xiàng)目二 LED及數(shù)碼管控制 以寄存器間址為目的字節(jié)的傳送指令(3條) MOV Ri,A ;A(Ri),i=0、1 MOV Ri,direct ;(direct)(Ri),i=0、1 MOV Ri,#data ;data(Ri),i=0、1項(xiàng)目二 LED及數(shù)碼管控制例項(xiàng)目二 LED及數(shù)碼管控制試編程把30h和40h單元內(nèi)容進(jìn)行交換。MOV A,30H ;(30h) AMOV 30H,40H ;(40h) 30h MOV 40H,A ; A 40h RAMXY累加
13、器A30H40H返回項(xiàng)目二 LED及數(shù)碼管控制 16位數(shù)據(jù)傳送指令MOV DPTR,#data16 ;data16DPTR【例】MOV DPTR,#1234H ;DPTR=1234H該指令也可以用兩條8位數(shù)據(jù)傳送指令實(shí)現(xiàn):MOV DPH,#12H ;DPH=12HMOV DPL,#34H ;DPL=34H,DPTR=1234H項(xiàng)目二 LED及數(shù)碼管控制項(xiàng)目二 LED及數(shù)碼管控制 MOVX A,Ri ;(Ri)A,i=0、1 MOVX A,DPTR ;(DPTR)A MOVX Ri,A ;A(Ri),i=0、1 MOVX DATR,A ;A(DATR) 外RAM傳送指令(4條)項(xiàng)目二 LED及數(shù)
14、碼管控制2.2減1非0轉(zhuǎn)移指令(2條) DJNZ direct,rel;PC+3PC,(direct)-1direct 若(direct)=0,則程序順序執(zhí)行 若(direct)0,則PC+relPC,轉(zhuǎn)移 DJNZ Rn,rel ;PC+2PC,Rn-1Rn, 若Rn=0,則程序順序執(zhí)行 若Rn0,則PC+relPC,轉(zhuǎn)移項(xiàng)目二 LED及數(shù)碼管控制四、任務(wù)實(shí)施1、硬件設(shè)計(jì)項(xiàng)目二 LED及數(shù)碼管控制2、軟件設(shè)計(jì)項(xiàng)目二 LED及數(shù)碼管控制任務(wù)2-2模擬開關(guān)燈的控制項(xiàng)目二 LED及數(shù)碼管控制項(xiàng)目二 LED及數(shù)碼管控制項(xiàng)目二 LED及數(shù)碼管控制2、軟件設(shè)計(jì)項(xiàng)目二 LED及數(shù)碼管控制任務(wù)2-3流水燈的
15、控制(一)項(xiàng)目二 LED及數(shù)碼管控制項(xiàng)目二 LED及數(shù)碼管控制2、軟件設(shè)計(jì)項(xiàng)目二 LED及數(shù)碼管控制任務(wù)2-4流水燈的控制(二)項(xiàng)目二 LED及數(shù)碼管控制四、任務(wù)實(shí)施1、硬件設(shè)計(jì)項(xiàng)目二 LED及數(shù)碼管控制2、軟件設(shè)計(jì)項(xiàng)目二 LED及數(shù)碼管控制任務(wù)2-5數(shù)碼管靜態(tài)顯示控制項(xiàng)目二 LED及數(shù)碼管控制1、LED顯示和接口項(xiàng)目二 LED及數(shù)碼管控制項(xiàng)目二 LED及數(shù)碼管控制2、軟件設(shè)計(jì):參考程序如下:項(xiàng)目二 LED及數(shù)碼管控制任務(wù)2-6數(shù)碼管動(dòng)態(tài)顯示控制項(xiàng)目二 LED及數(shù)碼管控制四、任務(wù)實(shí)施1、硬件設(shè)計(jì)如圖所示。項(xiàng)目二 LED及數(shù)碼管控制2、軟件設(shè)計(jì)根據(jù)圖中連接,假設(shè)8255A的無關(guān)地址位為1(也可為
16、0),則8255A的A 口地址為FFFCH, B 口地址為FFFDH,控制口地址為FFFFH,由于A、B 口均為輸出,因此控制字為80H。參考程序如下:項(xiàng)目二 LED及數(shù)碼管控制項(xiàng)目二 LED及數(shù)碼管控制單片機(jī)及其控制技術(shù)項(xiàng)目三 按鍵控制任務(wù)3-1 獨(dú)立按鍵控制項(xiàng)目三 按鍵控制2、按鍵去抖動(dòng)項(xiàng)目三 按鍵控制項(xiàng)目三 按鍵控制四、任務(wù)實(shí)施:項(xiàng)目三 按鍵控制項(xiàng)目三 按鍵控制3、 軟件設(shè)計(jì)項(xiàng)目三 按鍵控制項(xiàng)目三 按鍵控制任務(wù)3-2 多路開關(guān)狀態(tài)指示項(xiàng)目三 按鍵控制項(xiàng)目三 按鍵控制項(xiàng)目三 按鍵控制項(xiàng)目三 按鍵控制任務(wù)3-3 矩陣鍵盤的控制項(xiàng)目三 按鍵控制3.3.2按鍵識(shí)別行線通過電阻接+5V電源,無按鍵
17、動(dòng)作時(shí),行線處于高電平。當(dāng)有鍵按下時(shí),行線電平狀態(tài)將由與此行線相連的列線電平?jīng)Q定,列線電平如被指令輸出為低,則行線電平為低,反之亦然。由于矩陣鍵盤中行、列線為多鍵共用,各按鍵彼此將發(fā)生相互影響,所以必須將行。列線信號(hào)配合起來并作適當(dāng)處理才能確定按下鍵的位置。(1) 掃描法(2)線反轉(zhuǎn)法項(xiàng)目三 按鍵控制3.3.3矩陣鍵盤的工作方式項(xiàng)目三 按鍵控制項(xiàng)目三 按鍵控制項(xiàng)目三 按鍵控制單片機(jī)及其控制技術(shù)項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用CPU暫時(shí)中止其正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行請(qǐng)求中斷的那個(gè)外設(shè)或事件的服務(wù)程序,等處理完畢后再返回執(zhí)行原來中止的程序, 叫做中斷。 為什么要設(shè)置中斷? 提高CPU工作效率
18、 具有實(shí)時(shí)處理功能 具有故障處理功能 實(shí)現(xiàn)分時(shí)操作一.中斷概述 什么叫中斷? INT0:外部中斷0,中斷請(qǐng)求信號(hào)由P3.2輸入。 INT1:外部中斷1,中斷請(qǐng)求信號(hào)由P3.3輸入。 T0:定時(shí)/計(jì)數(shù)器0溢出中斷,對(duì)外部脈沖計(jì)數(shù)由P3.4輸入。 T1:定時(shí)/計(jì)數(shù)器1溢出中斷,對(duì)外部脈沖計(jì)數(shù)由P3.5輸入。 串行中斷:包括串行接收中斷RI和串行發(fā)送中斷TI。二. 中斷源和中斷控制寄存器 中斷源 中斷源是指能發(fā)出中斷請(qǐng)求,引起中斷的裝置或事件。 80C51單片機(jī)的中斷源共有5個(gè),其中2個(gè)為外部中斷源,3個(gè)為內(nèi)部中斷源:項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 中斷請(qǐng)求:定時(shí)和外中斷控制寄存器TCON;
19、 串行控制寄存器SCON; 中斷允許控制寄存器IE; 中斷優(yōu)先級(jí)控制寄存器IP。 中斷控制寄存器 80C51單片機(jī)中涉及中斷控制的有3個(gè)方面4個(gè)特殊功能寄存器:項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用INT0、INT1、T0、T1中斷請(qǐng)求標(biāo)志放在TCON中串行中斷請(qǐng)求標(biāo)志放在SCON中。 中斷請(qǐng)求控制寄存器(88H)TCOND7D6D5D4D3D2D1D0位名稱TF1TF0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能 T1 中斷標(biāo)志T0中斷標(biāo)志 中斷標(biāo)志 觸發(fā)方式 中斷標(biāo)志觸發(fā)方式TCON的結(jié)構(gòu)、位名稱、位地址和功能如下:項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)
20、用 TCON位功能: TF1 T1溢出中斷請(qǐng)求標(biāo)志 T1計(jì)數(shù)溢出后,TF1=1 TF0 T0溢出中斷請(qǐng)求標(biāo)志 T0計(jì)數(shù)溢出后,TF0=1 IE1 外中斷中斷請(qǐng)求標(biāo)志 當(dāng)P3.3引腳信號(hào)有效時(shí),IE1=1 IE0 外中斷中斷請(qǐng)求標(biāo)志 當(dāng)P3.2引腳信號(hào)有效時(shí),IE0=1 IT1 外中斷觸發(fā)方式控制位 IT1=1,邊沿觸發(fā)方式; IT1=0,電平觸發(fā)方式。 IT0 外中斷觸發(fā)方式控制位 其意義和功能與IT1相似。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用串行控制寄存器SCON(98H)TCOND7D6D5D4D3D2D1D0位名稱TIRI位地址99H98H功能 串行發(fā)送中斷標(biāo)志串行接收中斷標(biāo)志 TI
21、串行口發(fā)送中斷請(qǐng)求標(biāo)志 RI 串行口接收中斷請(qǐng)求標(biāo)志項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 80C51對(duì)中斷源的開放或關(guān)閉由中斷允許控制寄存器IE控制。 IE在特殊功能寄存器中,字節(jié)地址A8H,位地址分別是A8HAFH。IE控制CPU對(duì)中斷源總的開放或禁止以及每個(gè)中斷源是否允許中斷。 中斷允許控制寄存器IE(A8H)IE的結(jié)構(gòu)、位名稱和位地址如下:IED7D6D5D4D3D2D1D0位名稱EAESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H中斷源CPU串行口T1T0項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 EA CPU中斷允許控制位 EA=1,CPU開中; EA=0,CPU
22、關(guān)中,且屏蔽所有5個(gè)中斷源。 EX0 外中斷INT0中斷允許控制位 EX0=1,INT0開中;EX0=0,INT0關(guān)中。 EX1 外中斷INT1中斷允許控制位 EX1=1,INT1開中;EX1=0,INT1關(guān)中。 ET0 定時(shí)/計(jì)數(shù)器T0中斷允許控制位 ET0=1,T0開中;ET0=0,T0關(guān)中。 ET1 定時(shí)/計(jì)數(shù)器T1中斷允許控制位 ET1=1,T1開中;ET1=0,T1關(guān)中。 ES 串行口中斷(包括串發(fā)、串收)允許控制位 ES=1,串行口開中;ES=0,串行口關(guān)中。說明: 80C51對(duì)中斷實(shí)行兩級(jí)控制,總控制位是EA,每一中斷源還有各自的控制位。首先要EA=1,其次還要自身的控制位置“1
23、”。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用(3)中斷優(yōu)先寄存器IP(B8H) IP在特殊功能寄存器中,字節(jié)地址為B8H,位地址分別是B8HBFH,IP用來鎖存各中斷源優(yōu)先級(jí)的控制位,其格式如圖所示。 三. 中斷處理過程 中斷處理過程大致可分為四步: 中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)、中斷返回 中斷請(qǐng)求 中斷源發(fā)出中斷請(qǐng)求信號(hào),相應(yīng)的中斷請(qǐng)求標(biāo)志位(在中斷允許控制寄存器IE中)置“1”。 中斷響應(yīng) CPU查詢(檢測(cè))到某中斷標(biāo)志為“1”,在滿足中斷響應(yīng)條件下,響應(yīng)中斷。 中斷響應(yīng)條件: 該中斷已經(jīng)“開中”; CPU此時(shí)沒有響應(yīng)同級(jí)或更高級(jí)的中斷; 當(dāng)前正處于所執(zhí)
24、行指令的最后一個(gè)機(jī)器周期; 正在執(zhí)行的指令不是RETI或者是訪向IE、IP的指令, 否則必須再另外執(zhí)行一條指令后才能響應(yīng)。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 中斷響應(yīng)操作 CPU響應(yīng)中斷后,進(jìn)行下列操作: 保護(hù)斷點(diǎn)地址; 撤除該中斷源的中斷請(qǐng)求標(biāo)志; 關(guān)閉同級(jí)中斷; 將相應(yīng)中斷的入口地址送入PC; 80C51五個(gè)中斷入口地址:INT0:0003H; T0:000BH;INT1:0013H T1:001BH;串行口:0023H 執(zhí)行中斷服務(wù)程序 中斷服務(wù)程序應(yīng)包含以下幾部分: 保護(hù)現(xiàn)場(chǎng) 執(zhí)行中斷服務(wù)程序主體,完成相應(yīng)操作 恢復(fù)現(xiàn)場(chǎng) 中斷返回 在中斷服務(wù)程序最后,必須安排一條中斷返回指令RET
25、I,當(dāng)CPU執(zhí)行RETI指令后,自動(dòng)完成下列操作: 恢復(fù)斷點(diǎn)地址。 開放同級(jí)中斷,以便允許同級(jí)中斷源請(qǐng)求中斷。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 四. 中斷響應(yīng)等待時(shí)間 若排除CPU正在響應(yīng)同級(jí)或更高級(jí)的中斷情況,中斷響應(yīng)等待時(shí)間為: 38個(gè)機(jī)器周期五. 中斷請(qǐng)求的撤除 中斷源發(fā)出中斷請(qǐng)求,相應(yīng)中斷請(qǐng)求標(biāo)志置“1”。 CPU響應(yīng)中斷后,必須清除中斷請(qǐng)求“1”標(biāo)志。否則中斷響應(yīng)返回后,將再次進(jìn)入該中斷,引起死循環(huán)出錯(cuò)。 對(duì)定時(shí)/計(jì)數(shù)器T0、T1中斷,外中斷邊沿觸發(fā)方式,CPU響應(yīng)中斷時(shí)就用硬件自動(dòng)清除了相應(yīng)的中斷請(qǐng)求標(biāo)志。 對(duì)外中斷電平觸發(fā)方式,需要采取軟硬結(jié)合的方法消除后果。 對(duì)串行口中斷
26、,用戶應(yīng)在串行中斷服務(wù)程序中用軟件清除TI或RI。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用六. 中斷優(yōu)先控制和中斷嵌套 中斷優(yōu)先控制 80C51中斷優(yōu)先控制首先根據(jù)中斷優(yōu)先級(jí),此外還規(guī)定了同一中斷優(yōu)先級(jí)之間的中斷優(yōu)先權(quán)。其從高到低的順序?yàn)椋?INT0、INT1、T0、T1、串行口。 中斷優(yōu)先級(jí)是可編程的,而中斷優(yōu)先權(quán)是固定的,不能設(shè)置,僅用于同級(jí)中斷源同時(shí)請(qǐng)求中斷時(shí)的優(yōu)先次序。 80C51中斷優(yōu)先控制的基本原則: 高優(yōu)先級(jí)中斷可以中斷正在響應(yīng)的低優(yōu)先級(jí)中斷,反之則不能。 同優(yōu)先級(jí)中斷不能互相中斷。 同一中斷優(yōu)先級(jí)中,若有多個(gè)中斷源同時(shí)請(qǐng)求中斷,CPU將先響應(yīng)優(yōu)先權(quán)高的中斷,后響應(yīng)優(yōu)先權(quán)低的中斷。
27、項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 中斷嵌套 當(dāng)CPU正在執(zhí)行某個(gè)中斷服務(wù)程序時(shí),如果發(fā)生更高一級(jí)的中斷源請(qǐng)求中斷,CPU可以“中斷”正在執(zhí)行的低優(yōu)先級(jí)中斷,轉(zhuǎn)而響應(yīng)更高一級(jí)的中斷,這就是中斷嵌套。 中斷嵌套只能高優(yōu)先級(jí)“中斷”低優(yōu)先級(jí),低優(yōu)先級(jí)不能“中斷”高優(yōu)先級(jí),同一優(yōu)先級(jí)也不能相互“中斷”。 中斷嵌套結(jié)構(gòu)類似與調(diào)用子程序嵌套,不同的是: 子程序嵌套是在程序中事先按排好的;中斷嵌套是隨機(jī)發(fā)生的。 子程序嵌套無次序限制,中斷嵌套只允許高優(yōu)先級(jí)“中斷”低優(yōu)先級(jí)。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用七. 中斷系統(tǒng)的應(yīng)用 中斷初始化 設(shè)置堆棧指針SP 定
28、義中斷優(yōu)先級(jí) 定義外中斷觸發(fā)方式 開放中斷 安排好等待中斷或中斷發(fā)生前主程序應(yīng)完成的操作內(nèi)容。 中斷服務(wù)主程序 中斷服務(wù)子程序內(nèi)容要求: 在中斷服務(wù)入口地址設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務(wù)程序的實(shí)際入口處。 根據(jù)需要保護(hù)現(xiàn)場(chǎng)。 中斷源請(qǐng)求中斷服務(wù)要求的操作。 恢復(fù)現(xiàn)場(chǎng)。與保護(hù)現(xiàn)場(chǎng)相對(duì)應(yīng),注意先進(jìn)后出、后進(jìn)先出操作原則。 中斷返回,最后一條指令必須是RETI。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用【例】 出租車計(jì)價(jià)器計(jì)程方法是車輪每運(yùn)轉(zhuǎn)一圈產(chǎn)生一個(gè)負(fù)脈沖,從外中斷(P3.2)引腳輸入,行駛里程為輪胎周長(zhǎng)運(yùn)轉(zhuǎn)圈數(shù),設(shè)輪胎周長(zhǎng)為2m,試實(shí)時(shí)計(jì)算出租車行駛里程(單位米),數(shù)據(jù)存32H、31H、30H。
29、 中斷系統(tǒng)應(yīng)用舉例解:編程如下: ORG 0000H;復(fù)位地址 LJMP STAT;轉(zhuǎn)初始化 ORG 0003H;中斷入口地址 LJMP INT;轉(zhuǎn)中斷服務(wù)程序項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 ORG 0100H;初始化程序首地址STAT: MOV SP,#60H;置堆棧指針 SETB ITO;置邊沿觸發(fā)方式 MOV IP,#01H;置高優(yōu)先級(jí) MOV IE,#81H;開中 MOV 30H,#0;里程計(jì)數(shù)器清0 MOV 31H,#0; MOV 32H,#0; LJMP MAIN;轉(zhuǎn)主程序,并等待中斷 ORG 0200H;中斷服務(wù)子程序首地址INT: PUSH Acc;保護(hù)現(xiàn)場(chǎng) PUSH
30、PSW; MOV A,30H;讀低8位計(jì)數(shù)器 ADD A,#2;低8位計(jì)數(shù)器加2m MOV 30H,A;回存 CLR A; ADDC A,31H;中8位計(jì)數(shù)器加進(jìn)位 MOV 31H,A;回存 CLR A; ADDC A,32H;高8位計(jì)數(shù)器加進(jìn)位 MOV 32H,A;回存 POP PSW;恢復(fù)現(xiàn)場(chǎng) POP Acc ; RETI;中斷返回項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用【例】現(xiàn)有5個(gè)外中斷源EX1、EX20、EX21、EX22和EX23,高電平時(shí)表示請(qǐng)求中斷,要求執(zhí)行相應(yīng)中斷服務(wù)程序,試編制程序。 解:ORG0000H;復(fù)位地址LJMPMAIN;轉(zhuǎn)主程序ORG0003H;中斷入口地址LJM
31、PPINT0;轉(zhuǎn)中斷服務(wù)程序ORG0013H;中斷入口地址LJMPPINT1;轉(zhuǎn)中斷服務(wù)程序項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 ORG0100H ;主程序首地址MAIN: MOVSP,#60H;置堆棧指針 ORLTCON,#05H;置INT0、INT1為邊沿觸發(fā)方式 SETBPX0 ;置為高優(yōu)先級(jí) MOVIE,#0FFH;全部開中 ;主程序內(nèi)容 ORG 1000H;中斷服務(wù)程序首地址 PINT0: PUSHAcc;中斷,保護(hù)現(xiàn)場(chǎng) LCALL WORK1;調(diào)用EX1服務(wù)子程序 POPAcc;恢復(fù)現(xiàn)場(chǎng) RETI;中斷返回 ORG 2000H ;中斷服務(wù)程序首地址PINT1: CLR EA ;C
32、PU禁中 PUSH Acc ;中斷保護(hù)現(xiàn)場(chǎng) PUSH DPH ; PUSH DPL ; SETB EA ;CPU開中項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 JB P1.0,LWK20;P1.0=1,EX20請(qǐng)求中斷 JB P1.1,LWK21;P1.1=1,EX21請(qǐng)求中斷 JB P1.2,LWK22;P1.2=1,EX22請(qǐng)求中斷 LCALL WORK23 ;P1.3=1,調(diào)用EX23服務(wù)子LRET: CLR EA;CPU禁中 POP DPL;恢復(fù)現(xiàn)場(chǎng) POP DPH; POP Acc; SETB EA;CPU開中 RETI;中斷返回LWK20: LCALL WORK20;P1.0 = 1,
33、調(diào)用EX20服務(wù)子程序 SJMP LRET ;轉(zhuǎn)中斷返回LWK21: LCALL WORK21 ;P1.1 = 1,調(diào)用EX21服務(wù)子程序 SJMP LRET;轉(zhuǎn)中斷返回LWK22: LCALL WORK22 ;P1.2 = 1,調(diào)用EX22服務(wù)子程序 SJMP LRET;轉(zhuǎn)中斷返回項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 定時(shí)/計(jì)數(shù)器是單片機(jī)系統(tǒng)一個(gè)重要的部件,其工作方式靈活、編程簡(jiǎn)單、使用方便,可用來實(shí)現(xiàn)定時(shí)控制、延時(shí)、頻率測(cè)量、脈寬測(cè)量、信號(hào)發(fā)生、信號(hào)檢測(cè)等。此外,定時(shí)/計(jì)數(shù)器還可作為串行通信中波特率發(fā)生器。80C51定時(shí)/計(jì)數(shù)器項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用80C51單片機(jī)內(nèi)部有
34、兩個(gè)定時(shí)/計(jì)數(shù)器T0和T1,其核心是計(jì)數(shù)器,基本功能是加1。對(duì)外部事件脈沖(下降沿)計(jì)數(shù),是計(jì)數(shù)器;對(duì)片內(nèi)機(jī)周脈沖計(jì)數(shù),是定時(shí)器。計(jì)數(shù)器由二個(gè)8位計(jì)數(shù)器組成。定時(shí)時(shí)間和計(jì)數(shù)值可以編程設(shè)定,其方法是在計(jì)數(shù)器內(nèi)設(shè)置一個(gè)初值,然后加1計(jì)滿后溢出。調(diào)整計(jì)數(shù)器初值,可調(diào)整從初值到計(jì)滿溢出的數(shù)值,即調(diào)整了定時(shí)時(shí)間和計(jì)數(shù)值。定時(shí)/計(jì)數(shù)器作為計(jì)數(shù)器時(shí),外部事件脈沖必須從規(guī)定的引腳輸入。且外部脈沖的最高頻率不能超過時(shí)鐘頻率的1/24。一. 定時(shí)/計(jì)數(shù)器概述項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用TCON低4位與外中斷 、 有關(guān),已在中斷中敘述。 高4位與定時(shí)/計(jì)數(shù)器T0、T1有關(guān)。 TF1:定時(shí)/計(jì)數(shù)器T1溢出標(biāo)
35、志。 TF0:定時(shí)/計(jì)數(shù)器T0溢出標(biāo)志。 TR1:定時(shí)/計(jì)數(shù)器T1運(yùn)行控制位。TR1=1,T1運(yùn)行;TR1=0,T1停。 TR0:定時(shí)/計(jì)數(shù)器T0運(yùn)行控制位。TR0=1,T0運(yùn)行;TR0=0,T0停。TCON的字節(jié)地址為88H,每一位有位地址,均可位操作。 定時(shí)/計(jì)數(shù)器控制寄存器TCON二. 定時(shí)/計(jì)數(shù)器的控制寄存器TCONT1中斷標(biāo)志T1運(yùn)行標(biāo)志T0中斷標(biāo)志T0運(yùn)行標(biāo)志INT1中斷標(biāo)志INT1觸發(fā)方式INT0中斷標(biāo)志INT0觸發(fā)方式位名稱TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用高4位控制T1低
36、4位控制T0門控位計(jì)數(shù)/定時(shí)方式選擇工作方式選擇門控位計(jì)數(shù)/定時(shí)方式選擇工作方式選擇GC / TM1M0GC / TM1M0TMOD用于設(shè)定定時(shí)/計(jì)數(shù)器的工作方式低4位用于控制T0,高4位用于控制T1。 定時(shí)/計(jì)數(shù)器工作方式控制寄存器TMOD(89H) M1M0 工作方式選擇位M1M0工作方式功能00方式013位計(jì)數(shù)器01方式116位計(jì)數(shù)器10方式2兩個(gè)8位計(jì)數(shù)器,初值自動(dòng)裝入11方式3兩個(gè)8位計(jì)數(shù)器,僅適用T0項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 C/T 計(jì)數(shù)/定時(shí)方式選擇位 C/T=1,計(jì)數(shù)工作方式,對(duì)外部事件脈沖計(jì)數(shù),用作計(jì)數(shù)器。 C/T=0,定時(shí)工作方式,對(duì)片內(nèi)機(jī)周脈沖計(jì)數(shù),用作定時(shí)
37、器。 GATE 門控位 GATE=0,運(yùn)行只受TCON中運(yùn)行控制位TR0/TR1的控制。 GATE=1,運(yùn)行同時(shí)受TR0/TR1和外中斷輸入信號(hào)的雙重控制。 只有當(dāng)INT0/INT1=1且TR0/TR1=1,T0/T1才能運(yùn)行。 注意:TMOD字節(jié)地址89H,不能位操作,設(shè)置TMOD須用字節(jié)操作指令。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用三. 定時(shí)/計(jì)數(shù)器工作方式 工作方式0 13位計(jì)數(shù)器,由TL0低5位和TH0 8位組成,TL0低5位計(jì)數(shù)滿時(shí)不向TL0第6位進(jìn)位,而是向TH0進(jìn)位,13位計(jì)滿溢出,TF0置“1”。最大計(jì)數(shù)值213 = 8192。 工作方式1 16位計(jì)數(shù)器,最大計(jì)數(shù)值為216
38、= 65536。 工作方式2 8位計(jì)數(shù)器,僅用TL0計(jì)數(shù),最大計(jì)數(shù)值為28= 256,計(jì)滿溢出后,一方面進(jìn)位TF0,使溢出標(biāo)志TF0 = 1;另一方面,使原來裝在TH0中的初值裝入TL0。 優(yōu)點(diǎn):定時(shí)初值可自動(dòng)恢復(fù);缺點(diǎn):計(jì)數(shù)范圍小。 適用于需要重復(fù)定時(shí),而定時(shí)范圍不大的應(yīng)用場(chǎng)合。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 工作方式3 方式3僅適用于T0,T1無方式3。 T0方式3 在方式3情況下,T0被拆成二個(gè)獨(dú)立的8位計(jì)數(shù)器TH0、TL0。 TL0使用T0原有的控制寄存器資源: TF0,TR0,GATE,C/T,INT0,組成一個(gè)8位的定時(shí)/計(jì)數(shù)器; TH0借用T1的中斷溢出標(biāo)志TF1,運(yùn)行控
39、制開關(guān)TR1,只能對(duì)片內(nèi)機(jī)周脈沖計(jì)數(shù),組成另一個(gè)8位定時(shí)器(不能用作計(jì)數(shù)器)。 T0方式3情況下的T1 T1由于其TF1、TR1被T0的TH0占用,計(jì)數(shù)器溢出時(shí),只能將輸出信號(hào)送至串行口,即用作串行口波特率發(fā)生器。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用其中: N與工作方式有關(guān): 方式0時(shí),N=13; 方式1時(shí),N=16; 方式2、3時(shí),N=8。 機(jī)周時(shí)間與主振頻率有關(guān):機(jī)周時(shí)間=12/fosc fosc=12MHZ時(shí),1機(jī)周=1S; fosc=6MHZ 時(shí),1機(jī)周=2S。 四. 定時(shí)/計(jì)數(shù)器的應(yīng)用 計(jì)算定時(shí)/計(jì)數(shù)初值80C51定時(shí)/計(jì)數(shù)初值計(jì)算公式:項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用解:工
40、作方式0: 213500S/2S=8192-250=7942=1F06H 1F06H化成二進(jìn)制: 1F06H=0001 1111 0000 0110B =000 11111000 00110 B其中:低5位00110前添加3位000送入TL0 TL0=000 00110B=06H; 高8位11111000B送入TH0 TH0=11111000B=F8H?!纠?已知晶振6MHz,要求定時(shí)0.5mS,試分別求出T0工作于方式0、方式1、方式2、方式3時(shí)的定時(shí)初值。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 工作方式1: T0初值 =216-500s/2s=65536250=65286=FF06H T
41、H0=FFH;TL0=06H。 工作方式2: T0初值 =28-500s/2s=256-250=6 TH0=06H;TL0=06H。 工作方式3: T0方式3時(shí),被拆成兩個(gè)8位定時(shí)器,定時(shí)初值可分別計(jì)算,計(jì)算方法同方式2。兩個(gè)定時(shí)初值一個(gè)裝入TL0,另一個(gè)裝入TH0。因此: TH0=06H;TL0=06H。 從上例中看到,方式0時(shí)計(jì)算定時(shí)初值比較麻煩,根據(jù)公式計(jì)算出數(shù)值后,還要變換一下,容易出錯(cuò),不如直接用方式1,且方式0計(jì)數(shù)范圍比方式1小,方式0完全可以用方式1代替,方式0與方式1相比,無任何優(yōu)點(diǎn)。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 定時(shí)/計(jì)數(shù)器應(yīng)用步驟 合理選擇定時(shí)/計(jì)數(shù)器工作方式 計(jì)
42、算定時(shí)/計(jì)數(shù)器定時(shí)初值(按上述公式計(jì)算) 編制應(yīng)用程序 定時(shí)/計(jì)數(shù)器的初始化 包括定義TMOD、寫入定時(shí)初值、設(shè)置中斷系統(tǒng)、啟動(dòng)定時(shí)/計(jì)數(shù)器運(yùn)行等。 正確編制定時(shí)/計(jì)數(shù)器中斷服務(wù)程序 注意是否需要重裝定時(shí)初值,若需要連續(xù)反復(fù)使用原定時(shí)時(shí)間,且未工作在方式2,則應(yīng)在中斷服務(wù)程序中重裝定時(shí)初值。項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用【例】試用T1方式2編制程序,在P1.0引腳輸出周期為400S的脈沖方波,已知fosc=12MHZ。解: 計(jì)算定時(shí)初值 T1初值=28-200s/1s=256200=56=38H TH1=38H;TL1=38H 設(shè)置TMOD: 0 0 10 0000 B=20H T0控
43、制位,與T1無關(guān) T1方式2 T1定時(shí)器 T1啟動(dòng)與 無關(guān)項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 編制程序如下: ORG0000H ;復(fù)位地址LJMPMAIN ;轉(zhuǎn)主程序ORG001BH ;T1中斷入口地址LJMPIT1 ;轉(zhuǎn)T1中斷服務(wù)程序 ORG0100H ;主程序首地址MAIN: MOVTMOD,#20H ;置T1定時(shí)器方式2MOVTL1,#38H ;置定時(shí)初值MOVTH1,#38H ;置定時(shí)初值備份MOVIP,#00001000B;置T1高優(yōu)先級(jí)MOVIE,#0FFH ;全部開中SETBTR1 ;T1運(yùn)行SJMP$ ;等待T1中斷 ORG 0200H ;T1中斷服務(wù)程序首地址IT1:
44、CPL P1.0 ;輸出波形取反首地址RETI ;中斷返回項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用項(xiàng)目四 中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器的應(yīng)用 80C51系列單片機(jī)有很強(qiáng)的外部擴(kuò)展能力。外部擴(kuò)展可分為并行擴(kuò)展和串行擴(kuò)展兩大形式。 早期的單片機(jī)應(yīng)用系統(tǒng)以采用并行擴(kuò)展為多,近期的單片機(jī)應(yīng)用系統(tǒng)以采用串行擴(kuò)展為多。 外部擴(kuò)展的器件可以有ROM、RAM、I/O口和其他一些功能器件,擴(kuò)展器件大多是一些常規(guī)芯片,有典型的擴(kuò)展應(yīng)用電路,可根據(jù)規(guī)范化電路來構(gòu)成能滿足要求的應(yīng)用系統(tǒng)。單片機(jī)及其控制技術(shù)項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制任務(wù)5-1 D/A轉(zhuǎn)換接口1、D/A轉(zhuǎn)換基本知識(shí)在單片機(jī)應(yīng)用系統(tǒng)中,有許多如溫度、速度、電壓、電流
45、及壓力等模擬量,這些都是連續(xù)變化的物理量。由于計(jì)算機(jī)只能處理數(shù)字量,因此單片機(jī)系統(tǒng)中凡遇到有模擬量的地方,就要進(jìn)行數(shù)字量向模擬量、模擬量向數(shù)字量的轉(zhuǎn)換,通過數(shù)/模(D/A)和模/數(shù)(A/D) 轉(zhuǎn)換接口實(shí)現(xiàn)。(1)轉(zhuǎn)換特性D/A轉(zhuǎn)換器(DAC)輸入的是n位二進(jìn)制數(shù)字量,經(jīng)轉(zhuǎn)換后成正比例的輸出模擬量電壓u0或電流i0 。對(duì)于一個(gè)n位的DAC,假如U0 (或I0)為其可以輸出的最大電壓(或電流 ),D(0-2n )為單片機(jī)對(duì)其輸人的二進(jìn)制值,則 (2) D/A轉(zhuǎn)換器的主要技術(shù)性能指標(biāo)項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制2、典型的D/A轉(zhuǎn)換器芯片DAC0832(1)DAC0832的應(yīng)用特性(2)DACO832引腳功
46、能DACO832的引腳項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制(3)DAC0832的輸出方式 (4)DAC0832接口1)直通方式當(dāng)LE1=LE2= l (ILE接+5V,CS、WR1、XFER、WR2接地)時(shí),如圖5-1-5所示,DAC0832處于直通狀態(tài),當(dāng)數(shù)字量送到數(shù)據(jù)輸入端時(shí),不經(jīng)過任何緩沖立即進(jìn)入D/A轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,這種方式往往用于非單片機(jī)控制的系統(tǒng)中。項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制2)單緩沖方式圖5-1-5所示為DAC0832的單緩沖務(wù)式下與89C51單片機(jī)的接口連線。此時(shí),輸入鎖存器為緩沖狀態(tài),而DAC寄存器為直通狀態(tài).在這種方式下,輸入鎖存器和DAC寄存器只占用一個(gè)I/O 口地址,DAC寄存盔地址為7
47、FFFH。單片機(jī)執(zhí)行下面指令即可將數(shù)字量轉(zhuǎn)化為模擬量輸出:MOV A, #DATAMOV DPTR, #7FFFHMOVX DPTR, A項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制3) 雙緩沖方式 利用雙緩沖方式可以實(shí)現(xiàn)多路數(shù)據(jù)轉(zhuǎn)換后信號(hào)的同步輸出。DACO832雙緩沖方式與89C51單片機(jī)的接口連線如圖5-1-7所示 ,兩個(gè)DACO832占了3個(gè)地址單元,其中兩個(gè)DAC寄存器共用一個(gè)地址 ,以實(shí)現(xiàn)同步輸出。項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制任務(wù)5-2 DAC0832在燈的循環(huán)漸變中的應(yīng)用 (3)任務(wù)分析 可以將89C51單片機(jī)內(nèi)部單元中的數(shù)據(jù)從FFH逐漸變到00H并逐一送給DAC0832芯片,再將D/A轉(zhuǎn)換器轉(zhuǎn)換后輸出的模
48、擬量以電壓的形式驅(qū)動(dòng)發(fā)光二極管,通過發(fā)光二極管的亮暗程度可以反映DAC0832的轉(zhuǎn)換結(jié)果。設(shè)計(jì)的DAC0832轉(zhuǎn)換接口結(jié)構(gòu)原理圖如圖5-1-8所示。項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制參考程序:ORG 0000HMAIN: MOV R2, #0FFH ;設(shè)置送出數(shù)據(jù)的初值BACK: MOV DPTR,#0AOFFH ;DAC0832的地址MOV A, R2MOVX DPTR,A ;將數(shù)據(jù)送出LCALL DELAY ;調(diào)用延時(shí)子程序DJNZ R2,BACK ;送出的數(shù)據(jù)減1SJMP MAIN ;程序重?cái)亻_始DELAY: MOV TMOD,#01H ;0.1s 延時(shí)子程序,設(shè)定定時(shí)器0為方
49、式1MOV R2, #03CHDELAYX:MOV TH0,#03CH ;89C51的50ms定時(shí),定時(shí)器0賦初值3CB0HMOV TL0,#0B0H ;計(jì)數(shù)50000機(jī)器周期時(shí)中斷溢出SETB TR0CLR TF0JNB TFO, $DJNZ R2, DELAYX ;循環(huán)2次50ms的定時(shí),總定時(shí)0.1sCLR TR0CLR TF0RETEND項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制任務(wù)5-3 A/D轉(zhuǎn)換接口5.3.1 A/D轉(zhuǎn)換接口 A/D轉(zhuǎn)換器(Analog to Digital Converter,簡(jiǎn)記作ADC)用于實(shí)現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換,輸出的數(shù)字信號(hào)大小與輸入的模擬量大小成正比。按轉(zhuǎn)換原理,ADC
50、可分為四類:計(jì)數(shù)式、雙積分式、逐次逼近式和并行式。(1)典型的A/D轉(zhuǎn)換器芯片ADC08091) ADC0809內(nèi)部邏輯結(jié)構(gòu)ADC0809內(nèi)部邏輯結(jié)構(gòu)如圖5-1-9所示。項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制2)ADC0809的引腳(2)ADC0809與89C51單片機(jī)的連接ADC0809與89C51單片機(jī)的連接有三種方式查詢方式、中斷方式和定時(shí)方式。采用什么方式,應(yīng)該根據(jù)具體情況來選擇。89C51單片機(jī)與ADC0809的典型硬件電路如圖5-1-11所示,該連接圖通過軟件編程,既可實(shí)現(xiàn)中斷方式,又可實(shí)現(xiàn)查詢方式。3、光電隔離及繼電器接口項(xiàng)目五 模數(shù)轉(zhuǎn)換的控制5.3.2 ADC0809與89C51單片機(jī)的連接A
51、DC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關(guān)以及微處理機(jī)兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機(jī)直接接口。(1) ADC0809的內(nèi)部邏輯結(jié)構(gòu)如圖5-1-15所示。 由上圖可知,ADC0809由一個(gè)8路模擬開關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè)A/D轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。單片機(jī)及其控制技術(shù)項(xiàng)目六 綜合應(yīng)用實(shí)例任務(wù)6-1 可預(yù)置可逆4位計(jì)數(shù)器1實(shí)驗(yàn)任務(wù)項(xiàng)目六 綜合應(yīng)用實(shí)例2電路原理
52、圖項(xiàng)目六 綜合應(yīng)用實(shí)例3系統(tǒng)板上硬件連線(1)把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0P1.3端口用8芯排線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的L1L4上;要求:P1.0對(duì)應(yīng)著L1,P1.1對(duì)應(yīng)著L2,P1.2對(duì)應(yīng)著L3,P1.3對(duì)應(yīng)著L4;(2)把“單片機(jī)系統(tǒng)”區(qū)域中的P3.0/RXD,P3.1/TXD,P3.2/INT0,P3.3/INT1用導(dǎo)線連接到“四路撥動(dòng)開關(guān)”區(qū)域中的K1K4上;(3)把“單片機(jī)系統(tǒng)”區(qū)域中的P3.6/WR,P3.7/RD用導(dǎo)線連接到“獨(dú)立式鍵盤”區(qū)域中的SP1和SP2上;4程序設(shè)計(jì)內(nèi)容(1)兩個(gè)獨(dú)立式按鍵識(shí)別的處理過程;(2)預(yù)置初值讀取的問題(3)LED輸出指示項(xiàng)目
53、六 綜合應(yīng)用實(shí)例5程序框圖如圖所示。項(xiàng)目六 綜合應(yīng)用實(shí)例任務(wù)6-2 定時(shí)計(jì)數(shù)器T0作定時(shí)應(yīng)用技術(shù)1實(shí)驗(yàn)任務(wù)2電路原理圖項(xiàng)目六 綜合應(yīng)用實(shí)例3系統(tǒng)板上硬件連線(1)把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個(gè)ah端口上;要求:P0.0/AD0對(duì)應(yīng)著a,P0.1/AD1對(duì)應(yīng)著b,P0.7/AD7對(duì)應(yīng)著h。(2)把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0/A8P2.7/A15端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個(gè)ah端口上;要求:P2.0/A8對(duì)應(yīng)著a,P2.1/A9對(duì)應(yīng)著b,P2.7/A15對(duì)應(yīng)著h。4程序設(shè)計(jì)內(nèi)容 A
54、T89S51單片機(jī)的內(nèi)部16位定時(shí)/計(jì)數(shù)器是一個(gè)可編程定時(shí)/計(jì)數(shù)器,它既可以工作在13位定時(shí)方式,也可以工作在16位定時(shí)方式和8位定時(shí)方式。只要通過設(shè)置特殊功能寄存器TMOD,即可完成。定時(shí)/計(jì)數(shù)器何時(shí)工作也是通過軟件來設(shè)定TCON特殊功能寄存器來完成的。項(xiàng)目六 綜合應(yīng)用實(shí)例程序框圖項(xiàng)目六 綜合應(yīng)用實(shí)例任務(wù)6-3 動(dòng)態(tài)數(shù)碼顯示技術(shù)1實(shí)驗(yàn)任務(wù) 如圖6-3-1所示,P0端口接動(dòng)態(tài)數(shù)碼管的字形碼筆段,P2端口接動(dòng)態(tài)數(shù)碼管的數(shù)位選擇端,P1.7接一個(gè)開關(guān),當(dāng)開關(guān)接高電平時(shí),顯示“12345”字樣;當(dāng)開關(guān)接低電平時(shí),顯示“HELLO”字樣。2電路原理圖項(xiàng)目六 綜合應(yīng)用實(shí)例3系統(tǒng)板上硬件連線(1)把“單片
55、機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0P0.7/AD7用8芯排線連接到“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的ah端口上;(2)把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0/A8P2.7/A15用8芯排線連接到“動(dòng)態(tài)數(shù)碼顯示”區(qū)域中的S1S8端口上;(3)把“單片機(jī)系統(tǒng)”區(qū)域中的P1.7端口用導(dǎo)線連接到“獨(dú)立式鍵盤”區(qū)域中的SP1端口上;4程序設(shè)計(jì)內(nèi)容(1)動(dòng)態(tài)掃描方法動(dòng)態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時(shí),利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形碼的輸出(字形選擇),另一接口完成各數(shù)碼管的輪流點(diǎn)亮(數(shù)位選擇)。(2)在進(jìn)行數(shù)碼顯示的時(shí)候,要對(duì)顯示單元開辟8個(gè)顯示緩沖區(qū),每個(gè)顯
56、示緩沖區(qū)裝有顯示的不同數(shù)據(jù)即可。(3)對(duì)于顯示的字形碼數(shù)據(jù)我們采用查表方法來完成。項(xiàng)目六 綜合應(yīng)用實(shí)例5程序框圖項(xiàng)目六 綜合應(yīng)用實(shí)例6匯編源程序ORG 00HSTART:JB P1.7,DIR1 MOV DPTR,#TABLE1SJMP DIRDIR1:MOV DPTR,#TABLE2DIR:MOV R0,#00HMOV R1,#01HNEXT:MOV A,R0 MOVC A,A+DPTRMOV P0,A MOV A,R1MOV P2,ALCALL DAY INC R0RL AMOV R1,A CJNE R1,#0DFH,NEXTSJMP STARTDAY:MOV R6,#4D1:MOV R7,#248 DJNZ R7,$DJNZ R6,D1RETTABLE1:DB 06H,5BH,4FH,66H,6DHTABLE2:DB 78H,79H,38H,38H,3FHEND項(xiàng)目六
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度合同公司管理制度與綠色供應(yīng)鏈管理合同3篇
- 2025年度礦山安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)合同3篇
- 二零二五年度城市綠化工程項(xiàng)目物資采購(gòu)合同風(fēng)險(xiǎn)識(shí)別與應(yīng)對(duì)3篇
- 標(biāo)題27:2025年度公司借用辦公場(chǎng)地協(xié)議3篇
- 二零二五年度股東在公司設(shè)立前知識(shí)產(chǎn)權(quán)歸屬協(xié)議3篇
- 二零二五年度全新出售房屋買賣綠色認(rèn)證合同3篇
- 二零二五年度共享辦公房屋無償使用及配套服務(wù)合同3篇
- 2025年農(nóng)村合作建房質(zhì)量安全監(jiān)督協(xié)議范本
- 二零二五年度電影主題公園運(yùn)營(yíng)管理合同3篇
- 2025年度智能倉(cāng)儲(chǔ)物流系統(tǒng)整體轉(zhuǎn)讓協(xié)議版3篇
- 2024年理論中心組學(xué)習(xí)心得體會(huì)模版(2篇)
- 浙江省杭州市2023-2024學(xué)年六年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- 環(huán)保行業(yè)工業(yè)廢氣污染防治技術(shù)路線方案
- 電工的職業(yè)健康培訓(xùn)
- 《預(yù)防性侵害講座》課件
- 2024年中國(guó)船舶涂料市場(chǎng)調(diào)查研究報(bào)告
- 少兒編程教育教學(xué)指南
- 2024至2030年臺(tái)鈴項(xiàng)目投資價(jià)值分析報(bào)告
- 2024年時(shí)事政治考點(diǎn)大全(173條)
- DB14-T 2730-2023 產(chǎn)后康復(fù)管理師等級(jí)劃分與評(píng)定
- 礦產(chǎn)資源總體規(guī)劃工作計(jì)劃
評(píng)論
0/150
提交評(píng)論