版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)原理及應(yīng)用(第4版)一、為什么要開(kāi)這門課?專業(yè)需要:自動(dòng)化、電氣工程、計(jì)算機(jī)應(yīng)用、電子信息工程及機(jī)電一體化等電氣與電子信息類專業(yè)本課程:以CPU為核心的“自動(dòng)化產(chǎn)品”的設(shè)計(jì)基礎(chǔ)。二、選擇什么樣的CPU?技術(shù)成熟、兼容性好。作為檢測(cè)與控制,8位機(jī)是主流因此:選擇帶CPU的單片機(jī):MCS-51單片機(jī)。三、和其他課程的關(guān)系數(shù)學(xué)電路、電子--數(shù)字與模擬計(jì)算機(jī)文化基礎(chǔ)自動(dòng)化控制原理(信號(hào)與系統(tǒng))控制與檢測(cè)技術(shù)四、課程內(nèi)容
本書從教學(xué)的角度出發(fā),系統(tǒng)、全面地介紹51系列單片機(jī)的基本知識(shí),是一本重在原理與應(yīng)用、兼顧理論的實(shí)用教程。第1章:概述第2章:?jiǎn)纹瑱C(jī)硬件基礎(chǔ)第3章:指令基礎(chǔ)第4章:匯編語(yǔ)言程序設(shè)計(jì)第5-7章:主要功能部件應(yīng)用基礎(chǔ)第8章:并行總線擴(kuò)展基礎(chǔ)第9章:串行總線擴(kuò)展技術(shù)第10章:應(yīng)用系統(tǒng)設(shè)計(jì)基礎(chǔ)第11章:編程與仿真平臺(tái)使用基礎(chǔ)對(duì)課程的處理:在《計(jì)算機(jī)文化基礎(chǔ)》的基礎(chǔ)上:第1章:復(fù)習(xí)與銜接第2章:?jiǎn)纹瑱C(jī)基礎(chǔ)第3-6章:主要內(nèi)部資源的應(yīng)用基礎(chǔ)第7章:外部擴(kuò)展基礎(chǔ)第8章:鍵盤/顯示器接口技術(shù)第9章:模擬量接口技術(shù)第10章:應(yīng)用系統(tǒng)設(shè)計(jì)基礎(chǔ)第1章概述在:《計(jì)算機(jī)文化基礎(chǔ)》、《微型計(jì)算機(jī)原理》基礎(chǔ)上1.1微型計(jì)算機(jī)(MC)的基礎(chǔ)知識(shí)概述1.2中斷、定時(shí)器/計(jì)數(shù)器、串行通信、并行通信概述~~1.1MC基礎(chǔ)知識(shí)概述一、MC的基本概念二、MC的基本結(jié)構(gòu)三、計(jì)算機(jī)中數(shù)制四、ASCII碼與BCD碼1.1.1MC定義與馮·諾依曼體系1、MC定義以微處理器為核心,配上大容量的半導(dǎo)體存儲(chǔ)器及功能強(qiáng)大的可編程接口芯片,連上外設(shè)及電源所組成的計(jì)算機(jī),稱為微型計(jì)算機(jī),簡(jiǎn)稱微型機(jī)或微機(jī)。微機(jī)加上系統(tǒng)軟件,就構(gòu)成了微型計(jì)算機(jī)系統(tǒng)(MCS,簡(jiǎn)稱微機(jī)系統(tǒng))。簡(jiǎn)單的說(shuō),某系統(tǒng)或設(shè)備只要有CPU,就可以稱為微型計(jì)算機(jī),如平常我們說(shuō)的臺(tái)式機(jī)、筆記本電腦、智能洗衣機(jī)、微波爐、單片機(jī)開(kāi)發(fā)板、數(shù)字式儀器儀表、機(jī)器人、自動(dòng)化生產(chǎn)線、內(nèi)部含有CPU的芯片等。2、馮·諾依曼體系:①采用二進(jìn)制代碼表示數(shù)據(jù)和指令。②采用存儲(chǔ)程序的工作方式。③計(jì)算機(jī)硬件系統(tǒng)由運(yùn)算器、存儲(chǔ)器、控制器、輸入設(shè)備和輸出設(shè)備組成。計(jì)算機(jī)是一種能夠存儲(chǔ)程序,并自動(dòng)連續(xù)地執(zhí)行程序,對(duì)各種數(shù)字化信息進(jìn)行運(yùn)算的現(xiàn)代化電子設(shè)備。1.1.2MC結(jié)構(gòu)1、硬件結(jié)構(gòu)運(yùn)算器+控制器+存儲(chǔ)器=主機(jī);輸入+輸出設(shè)備則稱為計(jì)算機(jī)的外圍設(shè)備(簡(jiǎn)稱“外設(shè)”);運(yùn)算器+控制器=中央處理單元CPU(CentralProcessUnit)。CPU、存儲(chǔ)器、I/O口、總線2、軟件軟件是指使用和管理計(jì)算機(jī)的各種程序(Program),而程序是由一條條指令(Instruction)組成的。(1)指令(2)程序(3)機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言匯編語(yǔ)言與機(jī)器語(yǔ)言的對(duì)照:
MOVA,#630111010000111111
ADDA,#560010010000111000
ADDA,#360010010000100100
ADDA,#140010010000001110
3、硬件與軟件的關(guān)系有機(jī)結(jié)合的整體硬件是基礎(chǔ)軟件是靈魂1.1.3計(jì)算機(jī)中的數(shù)制
進(jìn)位計(jì)數(shù)制與轉(zhuǎn)換:二進(jìn)制(B)十六進(jìn)制(H)十進(jìn)制(D)
帶符號(hào)數(shù)的表示:原碼、反碼、補(bǔ)碼、溢出1.1.4常用的編碼1、ASCII碼:美國(guó)信息交換標(biāo)準(zhǔn)代碼2、BCD碼二進(jìn)制編碼的十進(jìn)制數(shù)強(qiáng)調(diào):計(jì)算機(jī)只認(rèn)二進(jìn)制數(shù),并不認(rèn)什么十六、十、ASCII、BCD碼等其他數(shù)的大小和性質(zhì)需要人來(lái)分析11111111B多大?什么性質(zhì)的數(shù)?無(wú)符號(hào):255帶符號(hào):負(fù)數(shù)-1BCD碼:無(wú)效ASCII碼:“DEL”鍵的ASCII碼1.2中斷、定時(shí)器/計(jì)數(shù)器、并行通信、串行通信的初步認(rèn)識(shí)概述
1.2.1中斷概述舉例:生活中“洗衣服、燒開(kāi)水”生活中“玩游戲、接電話”上課中“講課、敲門”(中斷請(qǐng)求、
中斷響應(yīng)、中斷處理
中斷返回)(1)中斷---過(guò)程(主程序與中斷程序)(2)中斷源:內(nèi)部與外部(硬件)(3)中斷申請(qǐng)(中斷請(qǐng)求)、中斷響應(yīng)(4)中斷服務(wù)程序、中斷服務(wù)程序入口地址(5)可屏蔽中斷與非屏蔽中斷(6)中斷的開(kāi)放與禁止(7)中斷優(yōu)先級(jí)與中斷嵌套1.2.2定時(shí)器/計(jì)數(shù)器概述
計(jì)算機(jī)在工作過(guò)程,需要知道從某個(gè)時(shí)間開(kāi)始:
多長(zhǎng)時(shí)間之后做什么—定時(shí)器或從某個(gè)時(shí)間開(kāi)始:
計(jì)幾個(gè)數(shù)之后做什么—計(jì)數(shù)器。
無(wú)論是定時(shí)器還是計(jì)數(shù)器,其核心部件—計(jì)數(shù)寄存器(計(jì)數(shù)器)
從定時(shí)器/計(jì)數(shù)器內(nèi)部來(lái)說(shuō),定時(shí)器與計(jì)數(shù)器的工作過(guò)程,都是基于計(jì)數(shù)器的減1(或加1)工作。對(duì)周期信號(hào)的計(jì)數(shù)就變?yōu)槎〞r(shí)。計(jì)數(shù)器有兩種:加法計(jì)數(shù)器和減法計(jì)數(shù)器。
1.2.3并行通信與串行通信概述計(jì)算機(jī)與外設(shè)之間或計(jì)算機(jī)之間的信息交換或數(shù)據(jù)傳輸稱為通信(Communication)。基本的通信方式有兩種,一種是并行通信,另一種是串行通信。比較:(1)通信距離(2)通信速率(3)抗干擾性能(4)設(shè)備和費(fèi)用(5)硬件可靠性(6)軟件設(shè)計(jì)串行通信數(shù)據(jù)傳送的方向單工、半雙工、全雙工1.2.4CPU與外設(shè)的數(shù)據(jù)傳輸方式
MC和外設(shè)之間的數(shù)據(jù)傳送有四種方式,即:
無(wú)條件方式查詢方式中斷方式直接存儲(chǔ)器存取方式(DMA方式)。1、無(wú)條件傳輸方式CPU和外設(shè)之間只有BUS(數(shù)據(jù)線、地址線、控制線),無(wú)另外的聯(lián)絡(luò)信號(hào)線。2、程序查詢傳輸方式
CPU和外設(shè)之間除有BUS(數(shù)據(jù)線、地址線、控制線),還有一條聯(lián)絡(luò)信號(hào)線(外設(shè)提供,需要CPU主動(dòng)讀,反映外設(shè)的狀態(tài)—忙/閑、準(zhǔn)備好/沒(méi)準(zhǔn)備好)。一個(gè)數(shù)據(jù)傳送過(guò)程由3個(gè)環(huán)節(jié)組成:①CPU從接口中讀出狀態(tài)字;②CPU檢測(cè)狀態(tài)字的對(duì)應(yīng)位是否滿足“就緒”條件,如果不滿足,則回到前一步讀出狀態(tài)字;③如果狀態(tài)字表明外設(shè)已處于“就緒”狀態(tài),則傳送數(shù)據(jù)。3、中斷傳輸方式CPU和外設(shè)之間除有BUS(數(shù)據(jù)線、地址線、控制線),還有一條聯(lián)絡(luò)信號(hào)線(外設(shè)提供,外設(shè)主動(dòng)提供給CPU,反映外設(shè)的狀態(tài)—忙/閑、準(zhǔn)備好/沒(méi)準(zhǔn)備好)。在中斷傳送方式下,外設(shè)具有申請(qǐng)CPU服務(wù)的主動(dòng)權(quán),當(dāng)輸入設(shè)備將數(shù)據(jù)準(zhǔn)備好或者輸出設(shè)備可以接收數(shù)據(jù)時(shí),便可以向CPU發(fā)中斷請(qǐng)求,使CPU暫時(shí)停下目前的工作而和外設(shè)進(jìn)行一次數(shù)據(jù)傳輸,等輸入操作或者輸出操作結(jié)束以后,CPU繼續(xù)進(jìn)行原來(lái)的工作。4、DMA方式CPU釋放總線控制權(quán)由DMA控制器控制完成數(shù)據(jù)傳送。(大量數(shù)據(jù)傳送的時(shí)間)第2章51系列單片機(jī)硬件基礎(chǔ)
本章對(duì)單片機(jī)典型芯片--51單片機(jī)的硬件進(jìn)行介紹。2.1單片機(jī)概述
2.251單片機(jī)總體結(jié)構(gòu)2.351單片機(jī)的存儲(chǔ)器結(jié)構(gòu)2.1單片機(jī)概述將CPU、存儲(chǔ)器、I/O口通過(guò)一定的工藝手段集成在一個(gè)芯片上,再加上必要的外圍器件,就構(gòu)成了一個(gè)較為完整的計(jì)算機(jī)硬件系統(tǒng)。因此被稱為單片微控制器(SingleChipMicroController,單片機(jī))或微控制單元(MicroControllerUnit,MCU)。通俗的講:
單片機(jī)就是一塊集成芯片,但這塊集成芯片具有一定特殊的功能,而它的功能的實(shí)現(xiàn)要靠我們使用者自己來(lái)編程完成。
編程的目的是控制這塊芯片的各個(gè)引腳在不同的時(shí)間輸出不同的電平,進(jìn)而控制與單片機(jī)各個(gè)引腳相連的外圍電路的電氣狀態(tài)。編程時(shí)用選擇C語(yǔ)言或匯編語(yǔ)言。2.1.1單片機(jī)特點(diǎn)、應(yīng)用1、單片機(jī)的特點(diǎn)(1)低噪聲與高可靠性(2)單片機(jī)壽命長(zhǎng)(3)8位、32位單片機(jī)共同發(fā)展(4)低噪聲與高速度(5)低電壓與低功耗(6)ISP與IAP2、單片機(jī)的應(yīng)用智能儀表、機(jī)電一體化、實(shí)時(shí)控制、軍工領(lǐng)域、分布式多機(jī)系統(tǒng)、民用電子產(chǎn)品等。3、單片機(jī)的分類按用途分:專用型、通用型、按位數(shù)分:4位、8位、16位、32位機(jī)按結(jié)構(gòu)分:CISC結(jié)構(gòu)、RISC結(jié)構(gòu)2.1.2常用的單片機(jī)產(chǎn)品MCS系列及兼容單片機(jī)PIC系列單片機(jī)MSP430系列單片機(jī)M68HC08系列單片機(jī)ARM處理器DSP處理器PIC:MSP430M68HCDSP:數(shù)字信號(hào)處理ARM:2.1.3MCS-51已成為國(guó)際經(jīng)典
(1)由于8051內(nèi)核技術(shù)完整,體系結(jié)構(gòu)靈活,得到了絕大多數(shù)用戶的認(rèn)可。再加上8051內(nèi)核技術(shù)廣泛轉(zhuǎn)讓,使之在單片機(jī)技術(shù)領(lǐng)域占有絕對(duì)優(yōu)勢(shì),從而成為單片機(jī)技術(shù)經(jīng)典。
(3)由于8051內(nèi)核技術(shù)幾乎包含了單片機(jī)理論基礎(chǔ)和技術(shù)的全部,具有較好的系統(tǒng)性和完整性。再加上30多年來(lái),國(guó)內(nèi)已積累了豐富的技術(shù)資料、完整的實(shí)驗(yàn)環(huán)境與開(kāi)發(fā)設(shè)備。
(3)絕大部分實(shí)時(shí)測(cè)控等應(yīng)用領(lǐng)域而言,8位字長(zhǎng)的單片機(jī),足以滿足用戶的實(shí)際需要,所以8位單片機(jī)的市場(chǎng)需求經(jīng)久不衰,仍占市場(chǎng)的絕對(duì)主流。因此,學(xué)懂、弄通了51單片機(jī)的基本理論與應(yīng)用技術(shù),也就打好了學(xué)習(xí)、應(yīng)用單片機(jī)的基礎(chǔ),即使學(xué)、用其他系列單片機(jī)也就不難了。2.1.4單片機(jī)與CPU、ARM、嵌入式系統(tǒng)的關(guān)系1.單片機(jī)與CPU的關(guān)系
單片機(jī)是計(jì)算機(jī),而CPU是計(jì)算機(jī)中的一個(gè)部件。2.單片機(jī)與ARM的關(guān)系A(chǔ)RM其實(shí)就是“跑的快一點(diǎn)”的單片機(jī)。3.單片機(jī)與嵌入式系統(tǒng)的關(guān)系嵌入式系統(tǒng)是個(gè)廣泛的概念。所有用于實(shí)時(shí)測(cè)控的計(jì)算機(jī)應(yīng)用系統(tǒng),均可納入嵌入式系統(tǒng)范疇。以MC為內(nèi)核,嵌入到實(shí)際的應(yīng)用系統(tǒng)中,構(gòu)成完整的并實(shí)現(xiàn)某種特定功能要求的應(yīng)用系統(tǒng),故稱之為嵌入式計(jì)算機(jī)應(yīng)用系統(tǒng),簡(jiǎn)稱嵌入式系統(tǒng)(EmbeddedSystem)。MC:工控機(jī)、專用CPU、單片機(jī)單片機(jī)是嵌入式系統(tǒng)中應(yīng)用最典型、最廣泛的內(nèi)核(1)單片機(jī)作為最典型的嵌入式系統(tǒng),成為嵌入式系統(tǒng)的龐大家族。(2)單片機(jī)是當(dāng)前構(gòu)成嵌入式應(yīng)用系統(tǒng)中最典型的主流機(jī)型。所以說(shuō),學(xué)好單片機(jī)基本理論及其技術(shù),是開(kāi)發(fā)、設(shè)計(jì)各類嵌入式應(yīng)用系統(tǒng)的基礎(chǔ)。2.1.5單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)概述1、開(kāi)發(fā)環(huán)境的軟硬件構(gòu)成(在系統(tǒng)編程ISP、在應(yīng)用編程IAP)硬件:計(jì)算機(jī)仿真器:示波器:萬(wàn)用表焊接設(shè)備:2、有關(guān)的軟件平臺(tái)仿真軟件:PROTEUS繪圖軟件:PROTEL、DXP編程軟件:KEILC51、DAIS、WAVE程序下載軟件:STC_ISP_V480串口調(diào)試軟件3、單片機(jī)應(yīng)用系統(tǒng)結(jié)構(gòu)涉及的有關(guān)知識(shí)內(nèi)容:傳感器技術(shù)(檢測(cè)技術(shù))傳動(dòng)輸出控制技術(shù)電子技術(shù)(數(shù)字、模電)單片機(jī)技術(shù)自動(dòng)控制技術(shù)等由此:?jiǎn)纹瑱C(jī)=綜合技術(shù)2.251單片機(jī)總體結(jié)構(gòu)講到單片機(jī)都有個(gè)系列問(wèn)題。MCS-51:
基本型
51子系列(8031\8051\8751)
增強(qiáng)型
52子系列(8032\8052\8752)
特殊型
所有的基礎(chǔ)都是基本型。包括以下問(wèn)題:2.2.1內(nèi)部結(jié)構(gòu)2.2.2外部引腳2.2.3CPU的時(shí)序周期補(bǔ)充:
標(biāo)號(hào)信息及封裝類型如:STC89C51RC40C-PDIP0707CU8138.00DSTC—前綴。芯片為STC公司生產(chǎn)的產(chǎn)品。其他前綴如AT、i、Winbond、SST等。8—芯片位8051內(nèi)核芯片。9—內(nèi)部含F(xiàn)lashEEPROM存儲(chǔ)器。還有如80C51中的0表示內(nèi)部含MaskROM(掩模ROM)存儲(chǔ)器;如87C51中7表示內(nèi)部含EPROM。C—該器件為CMOS產(chǎn)品。還有如89LV52和89LE58中的LV和LE都表示該芯片為低電壓產(chǎn)品(通常為3.3V電壓供電);89S52中的S表示高芯片含有可串行下載功能的Flash存儲(chǔ)器,即具有ISP可在線編程功能。5—固定不變1—該芯片內(nèi)部程序存儲(chǔ)器存儲(chǔ)空間的大小,1為4KB,2為8KB,3為12KB,即乘上4KB。RC—STC單片機(jī)內(nèi)部RAM(隨機(jī)存儲(chǔ)器)為512B。還有RD+表示內(nèi)部RAM為1280B。40—外部晶振最高可接入40MHz.C—產(chǎn)品級(jí)別,表示芯片使用的溫度范圍。C:表示商業(yè)用0℃--+70℃,另外:I:工業(yè)級(jí)-40℃--+85℃A:汽車用-40℃--+125℃M:軍用-55℃--+150℃PDIP—產(chǎn)品封裝型號(hào)。PDIP表示雙列直插式。0707—本批次芯片生產(chǎn)日期為07年第7周。CU8138.00D—不詳。芯片封裝簡(jiǎn)介:DIP—雙列直插式PLCC—帶引線的塑料芯片封裝PQFP—塑料方型扁平式PGA—插針網(wǎng)絡(luò)陣列封裝BGA—球柵陣列封裝2.2.1內(nèi)部結(jié)構(gòu)1、內(nèi)部結(jié)構(gòu)(1)CPU(2)存儲(chǔ)器(3)I/O口1個(gè)8位1個(gè)1位128個(gè)字節(jié)RAM4K字節(jié)ROM4個(gè)8位并行I/O口1個(gè)全雙工的串行口2個(gè)16位的定時(shí)器/計(jì)數(shù)器5個(gè)中斷源、2個(gè)中斷優(yōu)先級(jí)21個(gè)專用寄存器外部可以擴(kuò)展16條AB、8條DB內(nèi)部結(jié)構(gòu)框圖:2.2.2外部引腳及說(shuō)明(1)電源引腳(2)時(shí)鐘引腳(3)輸入/輸出引腳(4)控制引腳(1)電源引腳VCCVSS(2)時(shí)鐘引腳(3)輸入/輸出引腳P0、P1、P2、P3基本的輸入/輸出功能:
字節(jié)操作、位操作另外的功能:
數(shù)據(jù)總線、地址總線、控制總線(4)其他引腳RST、ALE、/PSEN、/EA復(fù)位電路
(4)總線圖2.2.3CPU的時(shí)序周期振蕩周期、狀態(tài)周期、機(jī)器周期、指令周期外部晶振的2分頻是MCS-51單片機(jī)的內(nèi)部時(shí)鐘周期,6個(gè)時(shí)鐘周期構(gòu)成了單片機(jī)的1個(gè)機(jī)器周期。機(jī)器頻率是外部頻率的1/12.2.351單片機(jī)的存儲(chǔ)器片內(nèi)、片外(不需要片外)程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器2.2.1程序存儲(chǔ)器2.2.2數(shù)據(jù)存儲(chǔ)器2.2.3特殊功能寄存器2.3.1程序存儲(chǔ)器(片外不需要設(shè)計(jì),基本上都是片內(nèi))程序的幾個(gè)特殊地址:復(fù)位0000H外部中斷00003H0定時(shí)器/計(jì)數(shù)器0溢出000BH1
外部中斷10013H2定時(shí)器/計(jì)數(shù)器1溢出001BH3串行口中斷0023H4
2.3.2數(shù)據(jù)存儲(chǔ)器
數(shù)據(jù)存儲(chǔ)器則存放緩沖數(shù)據(jù),系統(tǒng)在運(yùn)行過(guò)程中可修改其中的數(shù)據(jù)。包括:片外數(shù)據(jù)存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器、特殊功能寄存器塊1、片內(nèi)數(shù)據(jù)存儲(chǔ)器分為3部分:(1)00H~1FH(2)20H~2FH(3)30H~7FH2、片外數(shù)據(jù)存儲(chǔ)器及I/O口存儲(chǔ)器空間地址:0000H—0FFFFH2.3.3特殊功能寄存器(SFR)特殊功能寄存器又稱為專用寄存器。專用于控制、管理片內(nèi)算術(shù)邏輯部件、并行I/O口、串行I/O口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)等功能模塊的工作。課本有個(gè)特殊功能寄存器表。(字節(jié)型、位)SFR可分為兩大類:和內(nèi)部功能部件有關(guān)的、和CPU有關(guān)的。和CPU有關(guān)的SFR:1.累加器A和寄存器B2.堆棧指針SP3.數(shù)據(jù)指針DPTR4.程序狀態(tài)字PSW三、時(shí)序(1)振蕩周期(2)狀態(tài)周期(3)機(jī)器周期(4)指令周期外部晶振的2分頻是MCS-51單片機(jī)的內(nèi)部時(shí)鐘周期,6個(gè)時(shí)鐘周期構(gòu)成了單片機(jī)的1個(gè)機(jī)器周期。第3章51單片機(jī)指令系統(tǒng)
3.1概述3.2尋址方式3.3指令系統(tǒng)3.4偽指令3.1概述一、指令格式[標(biāo)號(hào):]操作碼[操作數(shù)1],[操作數(shù)2],[操作數(shù)3];注釋二、操作數(shù)類型立即數(shù)、寄存器操作數(shù)、存儲(chǔ)器操作數(shù)三、指令描述約定Rn、direct、@Ri#data、#data16addr16、addr11、relbit、/bitDPTR、A、B、C(X)、((X))3.2尋址方式
1、概述尋址就是尋找指令中操作數(shù)或操作數(shù)所在的地址。所謂尋址方式就是如何找到存放操作數(shù)的地址,把操作數(shù)提取出來(lái)的方法。它是計(jì)算機(jī)的重要性能指標(biāo)之一,也是匯編語(yǔ)言程序設(shè)計(jì)中最基本的內(nèi)容之一。2、尋址方式說(shuō)明
立即尋址
寄存器器尋址
直接尋址
寄存器間接尋址
基寄存器加變址寄存器間接尋址
相對(duì)尋址
位尋址
3.3指令系統(tǒng)111條指令,42種操作助記符,描述33種操作功能。從功能:數(shù)據(jù)傳送(29)、算術(shù)運(yùn)算(24)、邏輯操作(24)、控制轉(zhuǎn)移(17)、位操作(17);從空間:?jiǎn)巫止?jié)(49)、雙字節(jié)(45條)、三字節(jié)(17條);從時(shí)間:?jiǎn)螜C(jī)器周期(64條)、雙機(jī)器周期(45條)、四機(jī)器周期(2)一、數(shù)據(jù)傳送類共29條。按其操作方式,又可把它們分為三種:數(shù)據(jù)傳送、數(shù)據(jù)交換和棧操作。助記符:MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP。應(yīng)用舉例:1、把片內(nèi)RAM6AH單元內(nèi)容傳送到片外RAM300H單元。2、把片外I/O口2000H數(shù)據(jù)讀入片內(nèi)RAM40H單元。3、把片外I/O口2000H數(shù)據(jù)讀入片外RAM4000H單元。4、把外部數(shù)據(jù)存儲(chǔ)器2040H單元內(nèi)容和片外RAM2230H單元互換。5、已知片內(nèi)RAM50H單元中存放數(shù)據(jù)為0AAH,設(shè)堆棧指針為30H,把此數(shù)據(jù)值壓入堆棧,然后再?gòu)椈氐?0H單元中。二、算術(shù)運(yùn)算類(24條)加、減、乘、除基本四則運(yùn)算和增量(加1)、減量(減1)運(yùn)算。助記符:ADD、ADDC、INC、DASUBB、DEC、MUL、DIV
共8種操作助記符。應(yīng)用舉例:1、將片內(nèi)RAM40H和41H單元內(nèi)容相加,結(jié)果放42H。2、將片外RAM2000H和2001H單元兩BCD碼內(nèi)容相加,結(jié)果放2002H。3、試編寫計(jì)算1234H+0FE7H的程序,將和的高8位存入片內(nèi)RAM41H,低8位存入40H。4、把上例中的加法運(yùn)算改為減法,其他要求相同。5、設(shè)被加數(shù)存入片內(nèi)RAM30H~32H單元中,加數(shù)存入片內(nèi)RAM40H~42H,低位在前,高位在后,各單元中均為壓縮的BCD碼。將結(jié)果之和分別存入50H~52H單元中。6、把R1R0和R3R2中的兩個(gè)4位BCD碼數(shù)相加,結(jié)果送R5R4中,如有進(jìn)位存入進(jìn)位位C中。三、邏輯運(yùn)算類(24條)包括清除、求反、移位及與、或、異或等操作。這類指令有:CLR、CPL、RL、RLC、RR、RRC、ANL、ORL、XRL,共9種操作助記符。應(yīng)用舉例:1、把累加器A中低4位(高4位清0)送入外部數(shù)據(jù)存儲(chǔ)器的3000H單元。2、將累加器A的低4位的狀態(tài)通過(guò)P1口的高4位輸出。3、編程將片內(nèi)RAM21H單元的低3位和20H單元的低5位合并為一個(gè)字節(jié)送片內(nèi)RAM30H,要求21H的低3位放在高位上。四、控制轉(zhuǎn)移類(17條)計(jì)算機(jī)在運(yùn)行過(guò)程中,有時(shí)因?yàn)椴僮鞯男枰虺绦蜉^復(fù)雜,程序指令往往不能按順序逐條執(zhí)行,需要改變程序運(yùn)行的方向。控制轉(zhuǎn)移類指令包括無(wú)條件轉(zhuǎn)移、條件轉(zhuǎn)移、調(diào)用和返回指令等。指令有:AJMP、LJMP、SJMP、JMP、JZ、JNZ、CJNZ、DJNZ、ACALL、LCALL、RET、RETI、NOP
共13種操作助記符。應(yīng)用舉例:1、將累加器A的低4位取反4次,高4位不變,每變換一次從P1口輸出。2、如果累加器A中存放待處理命令編號(hào)(0~7),程序存儲(chǔ)器中存放著標(biāo)號(hào)為PMTB的轉(zhuǎn)移表首地址,則執(zhí)行下面的程序,將根據(jù)A中命令編號(hào)轉(zhuǎn)向相應(yīng)的處理程序。五、位操作類(17條)以進(jìn)位標(biāo)志C作為累加器C在使用位操作類指令時(shí)要和字節(jié)操作類指令區(qū)別開(kāi)來(lái),因?yàn)樗鼈兊闹浄窍嗤?。這類指令的助記符有:MOV、CLR、CPL、SETB、ANL、ORL、JC、JNC、JB、JNB、JBC
共11種操作助記符。應(yīng)用舉例:1、將累加器的ACC.5與00H位相與后,通過(guò)P1.4輸出。2、比較片內(nèi)RAM40H、50H中兩個(gè)無(wú)符號(hào)數(shù)的大小,若40H中的數(shù)小則把片內(nèi)RAM中的位地址40H置1;若50H中數(shù)小,則把片內(nèi)RAM中的位地址50H置1;若相等則把片內(nèi)RAM中的位地址20H置1。3.4偽指令匯編程序?qū)τ脜R編語(yǔ)言寫的源程序進(jìn)行匯編時(shí),還要提供一些匯編用的指令,例如要指定程序或數(shù)據(jù)存放的起始地址;要給一些連續(xù)存放的數(shù)據(jù)確定單元等等。但是,這些指令在匯編時(shí)并不產(chǎn)生目標(biāo)代碼,不影響程序的執(zhí)行,所以稱為偽指令ORG定位偽指令
DB定義字節(jié)偽指令DW定義字偽指令EQU賦值偽指令END匯編結(jié)束偽指令第4章51單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)
指令的有序羅列。4.1程序設(shè)計(jì)概述4.2基本程序設(shè)計(jì)4.3基本功能程序設(shè)計(jì)4.4實(shí)驗(yàn)
4.1程序設(shè)計(jì)概述
4.2基本程序設(shè)計(jì)4.2.1順序結(jié)構(gòu)程序是一種最簡(jiǎn)單、最基本的程序,按照程序編寫的順序逐條依次執(zhí)行,直到程序結(jié)束。這是程序的最基本的形式,任何程序都離不開(kāi)這種形式。例4-1:將片內(nèi)RAM20H單元中的數(shù)拆成兩段,每段4位,并將其分別存入21H、22H單元中。低4位存在21H單元,高4位存在22H單元4.2.2分支結(jié)構(gòu)的程序
分支結(jié)構(gòu)程序是利用條件轉(zhuǎn)移指令,使程序執(zhí)行到某一指令時(shí),根據(jù)條件是否滿足,來(lái)改變程序執(zhí)行的順序。編寫分支結(jié)構(gòu)的程序主要在于正確使用轉(zhuǎn)移指令。編寫分支結(jié)構(gòu)的程序的關(guān)鍵是確定好分支條件。用于分支結(jié)構(gòu)程序中的語(yǔ)句有:
JZ/JNZ、CJNE、DJNZ、JC/JNC、JB/JNB、JBC例編制程序使y按下式賦值:例設(shè)外部存儲(chǔ)器單元ST1和ST2存放兩個(gè)不帶符號(hào)的二進(jìn)制數(shù),找出其中的大數(shù)存入ST3單元。4.2.3循環(huán)結(jié)構(gòu)的程序
是強(qiáng)制CPU重復(fù)執(zhí)行某一指令序列的一種程序結(jié)構(gòu)形式。循環(huán)結(jié)構(gòu)的程序一般由5部分組成:初始化,循環(huán)體、循環(huán)修改、循環(huán)控制和結(jié)束部分。例:1、工作單元清0。2、多個(gè)單字節(jié)數(shù)據(jù)求和。3、設(shè)在DAT開(kāi)始的片內(nèi)RAM中存放8個(gè)無(wú)符號(hào)字節(jié)數(shù),找出最大值,并暫存在A中。10個(gè)數(shù),去掉一個(gè)最大值、一個(gè)最小值,求剩余8個(gè)數(shù)的平均值。4.3基本功能程序的設(shè)計(jì)
4.3.1查表程序4.3.2子程序4.3.3算術(shù)邏輯運(yùn)算程序4.3.4數(shù)制轉(zhuǎn)換程序4.3.1查表程序的設(shè)計(jì)
查表法是對(duì)一些復(fù)雜的函數(shù)運(yùn)算如sinx等,事先把其全部可能范圍的函數(shù)值按一定的規(guī)律編成表格存放在計(jì)算機(jī)的程序存儲(chǔ)器中。當(dāng)用戶程序中需要用到這些函數(shù)時(shí),直接按編排好的索引值(或程序號(hào))尋找答案。在控制應(yīng)用場(chǎng)合或智能儀器儀表中,經(jīng)常使用查表法。這種方法的不足是要占用較多的存儲(chǔ)單元。例:1、已知數(shù)據(jù)0~9的平方,設(shè)變量x的值在累加器A中,查表后求x2的值放回累加器,試編制程序。2、設(shè)計(jì)一個(gè)將十六進(jìn)制數(shù)轉(zhuǎn)換成ASCII碼的子程序。設(shè)十六進(jìn)制數(shù)存放在R0的低4位,要求轉(zhuǎn)換后的ASCII碼送回R0中。4.3.2子程序設(shè)計(jì)在實(shí)際問(wèn)題中,常常會(huì)遇到在一個(gè)程序中有許多相同的運(yùn)算或操作,例如多字節(jié)的加、減、字符處理等。如果每遇到這些運(yùn)算和操作,都從頭做起,則使程序非常繁瑣且浪費(fèi)內(nèi)存。因此在實(shí)際應(yīng)用中,通常把這些多次使用的程序段,按一定結(jié)構(gòu)編好,存放在內(nèi)存中,當(dāng)需要時(shí),程序可以去調(diào)用這些獨(dú)立的程序段。通常將這種可以被調(diào)用的程序段稱為子程序。調(diào)用子程序的程序稱為主程序。使用子程序的過(guò)程稱為調(diào)用子程序;子程序執(zhí)行完畢后返回主程序的過(guò)程稱為子程序返回。例:1、用程序?qū)崿F(xiàn)c=a2+b2。設(shè)a、b均小于10,a存在片內(nèi)RAM31H單元中,,b存在32H單元中,把c存入33H單元中。2、求兩個(gè)無(wú)符號(hào)數(shù)據(jù)塊中的最大值。數(shù)據(jù)塊的首地址分別為片內(nèi)RAM60H和70H,每個(gè)數(shù)據(jù)塊的第1個(gè)字節(jié)都存放數(shù)據(jù)塊的長(zhǎng)度,結(jié)果存入5FH單元。4.3.3算術(shù)邏輯運(yùn)算程序多字節(jié)二進(jìn)制數(shù)加法多字節(jié)壓縮BCD碼加法多字節(jié)數(shù)求補(bǔ)除以2的倍數(shù)的處理雙字節(jié)無(wú)符號(hào)數(shù)整數(shù)相乘4.3.4數(shù)制轉(zhuǎn)化程序二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)的ASCII碼ASCII字符串轉(zhuǎn)換為十六進(jìn)制數(shù),兩兩組合成1個(gè)字節(jié)第5章P0~P3口應(yīng)用基礎(chǔ)片內(nèi)并行I/O口的應(yīng)用。5.1認(rèn)識(shí)51單片機(jī)
的P0~P3口5.2輸出操作5.3輸入操作5.4實(shí)驗(yàn)與設(shè)計(jì)5.1認(rèn)識(shí)51單片機(jī)的P0~P3口從輸出位置看:P0與P1、P2、P3不同,因此:P0稱為“雙向口”,其余的稱為“準(zhǔn)雙向口”。雙向口:?jiǎn)纹瑱C(jī)的I/O口為了提高接口的驅(qū)動(dòng)能力,具有由場(chǎng)效應(yīng)管組成的輸出驅(qū)動(dòng)器。當(dāng)驅(qū)動(dòng)器場(chǎng)效應(yīng)管的漏極具有開(kāi)路狀態(tài)時(shí),該口就具有高電平、低電平和高阻抗3種狀態(tài),稱為雙向口。準(zhǔn)雙向口:?jiǎn)纹瑱C(jī)I/O口的輸出場(chǎng)效應(yīng)管的漏極接有上拉電阻,該口具有高電平、低電平兩種狀態(tài),稱為準(zhǔn)雙向口。P1口的輸入/輸出分析:輸入時(shí),必須先置“1”,再讀5.2輸出操作輸出高、低電平。5.2.1基本輸出--字節(jié)、位5.2.2擴(kuò)展輸出--流水燈、霹靂燈5.2.3擴(kuò)展輸出—8段LED靜態(tài)顯示5.2.1基本輸出--字節(jié)、位
【例5-1】字節(jié)輸出。8燈亮、滅閃爍【例5-2】位操作。編程實(shí)現(xiàn)P1.3所接的發(fā)光二極管亮、滅閃爍請(qǐng)修改:(1)P1.7對(duì)應(yīng)的燈亮、滅閃爍(2)P1.1、P1.3、P1.5對(duì)應(yīng)的燈亮、滅閃爍(3)P1.0對(duì)應(yīng)的燈亮?xí)r,P1.7對(duì)應(yīng)的燈滅;P1.0對(duì)應(yīng)的燈滅時(shí),P1.7對(duì)應(yīng)的燈亮。(4)將P1口改為P3口。5.2.2擴(kuò)展輸出--流水燈【例5-3】流水燈。編程實(shí)現(xiàn)8個(gè)燈從低到高流水燈的顯示閃爍。流水燈閃爍規(guī)律:11111110B—11111101B—11111011B--…--01111111B。
從初值11111110B循環(huán)左移一位就可以。修改:(1)兩個(gè)燈右循環(huán)。(2)從左到右,一個(gè)一個(gè)亮保持到全亮,然后再重復(fù)。(3)霹靂燈——霹靂燈規(guī)律:11111110B—11111101B—…—01111111B—10111111B—11011111—…—11111110—…。5.2.3擴(kuò)展輸出—8段LED靜態(tài)顯示1、認(rèn)識(shí)8段LED2、顯示函數(shù)的編寫(1)根據(jù)硬件電路的結(jié)構(gòu)建立一個(gè)顯示的代碼表DSPTAB:DB3FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,6FH(2)開(kāi)辟顯示緩沖區(qū)片內(nèi)RAM—data;
顯示緩沖區(qū)中存放要顯示的內(nèi)容所對(duì)應(yīng)的代碼在代碼表中的相對(duì)位置;
顯示緩沖區(qū)的位數(shù)和硬件電路中顯示器的位數(shù)相同,每個(gè)顯示緩沖器對(duì)應(yīng)著一位顯示器。(3)查表并操作相應(yīng)的顯示器MOV A,#dataMOV DPTR,#DSPTABMOVC A,@A+DPTR(4)顯示子程序的調(diào)用3、靜態(tài)顯示示例【例5-4】利用51單片機(jī)的并行口作為靜態(tài)顯示的控制口的示例請(qǐng)修改:(1)顯示“12”;(2)輪流顯示“12”、“--”、“AB”;(3)計(jì)數(shù)器:從00開(kāi)始,1S加1。5.3輸入操作
作為51單片機(jī)片內(nèi)并行I/O口輸入信號(hào),是屬于數(shù)字信號(hào)的“高、低電平”或脈沖信號(hào)的“上升沿、下降沿”兩大類,這兩類信號(hào)可以通過(guò):“閘刀型開(kāi)關(guān)”、“按鈕型開(kāi)關(guān)”兩類開(kāi)關(guān)來(lái)模擬。5.3.1閘刀型輸入信號(hào)【例5-5】閘刀開(kāi)關(guān)型輸入信號(hào)。編程實(shí)現(xiàn)相應(yīng)的開(kāi)關(guān)閉合時(shí),相應(yīng)的燈亮。思考:
為什么在讀鍵狀態(tài)之前要先置1?修改:(1)開(kāi)關(guān)閉合時(shí)燈滅。
(2)定義一個(gè)按鍵K0,K0閉合時(shí)燈閃爍,K0打開(kāi)時(shí),燈全亮。5.3.2按鈕開(kāi)關(guān)型
輸入信號(hào)【例5-6】按鈕開(kāi)關(guān)。編程實(shí)現(xiàn)S1按鈕按一下,4個(gè)燈一組亮、滅交替修改:開(kāi)始時(shí)所有的燈都亮,按一下S1,燈變?yōu)?00ms閃爍,再按一下,變?yōu)槿?。(相?dāng)于S1為一個(gè)控制開(kāi)關(guān),控制著燈的亮、滅閃爍。)說(shuō)明:開(kāi)關(guān)接在P3.2上是為以后介紹中斷的時(shí)間準(zhǔn)備的;本例題是屬于查詢方式,第6章介紹中斷時(shí)可以模擬外部中斷輸入。5.3.3多個(gè)按鈕型開(kāi)關(guān)輸入信號(hào)
--鍵盤【例5-7】P1口作為并行接口按鍵的輸入口,用P3口接一共陽(yáng)極LED顯示器,編程顯示按鍵的鍵號(hào)0~7。(1)鍵號(hào)(2)鍵值
每一個(gè)按鍵根據(jù)某種算法,可以得到和其他按鍵不一樣的值,該值稱為該按鍵的鍵值。(3)鍵值表
將所有按鍵的鍵值,按照一定的順序,在code區(qū)建立一個(gè)表格,該表格稱為鍵值表。請(qǐng)修改:
兩個(gè)輸入按鍵(如P1.6、P1.7)一個(gè)為“+1”鍵,一個(gè)為“-1”鍵,開(kāi)始顯示器顯示“5”,然后根據(jù)按鍵顯示后面的內(nèi)容。5.4實(shí)驗(yàn)與設(shè)計(jì)實(shí)驗(yàn)1閘刀型開(kāi)關(guān)輸入/8段LED靜態(tài)顯示輸出5.4實(shí)驗(yàn)與設(shè)計(jì)設(shè)計(jì)1:LED模擬交通6個(gè)燈—南北:黃、紅、綠
東西:黃、紅、綠(紅、綠是10秒,黃閃爍2秒)2個(gè)應(yīng)急開(kāi)關(guān):南北綠或東西綠畫出硬件設(shè)計(jì),編出模擬程序。實(shí)驗(yàn)2并行接口鍵盤/LED指示燈輸出設(shè)計(jì)1計(jì)時(shí)秒表的設(shè)計(jì)(1)兩位LED顯示可以顯示00~99秒;(2)兩個(gè)按鍵分別為啟動(dòng)/停止鍵、清零鍵。要求:設(shè)計(jì)硬件電路,編寫出軟件程序(延時(shí)由軟件形成)。設(shè)計(jì)2模擬交通信號(hào)燈控制裝置的設(shè)計(jì)(1)6個(gè)發(fā)光二極管模擬交通燈南北:黃、紅、綠;東西:黃、紅、綠。(2)2個(gè)應(yīng)急開(kāi)關(guān)南北綠東西紅或東西綠南北紅。要求:設(shè)計(jì)硬件模擬電路,編寫軟件程序。第6章51單片機(jī)中斷系統(tǒng)及定時(shí)器/計(jì)數(shù)器應(yīng)用基礎(chǔ)本章主要介紹中斷系統(tǒng)及定時(shí)器/計(jì)數(shù)器的應(yīng)用。包括:6.1中斷系統(tǒng)概述6.2外部中斷應(yīng)用舉例6.3定時(shí)器/計(jì)數(shù)器概述6.4定時(shí)器/計(jì)數(shù)器應(yīng)用舉例6.5實(shí)驗(yàn)與設(shè)計(jì)6.151單片機(jī)中斷系統(tǒng)5個(gè)中斷源外部中斷:外部中斷0/INT0外部中斷1/INT1定時(shí)器/計(jì)數(shù)器溢出中斷:定時(shí)器/計(jì)數(shù)器0TF0定時(shí)器/計(jì)數(shù)器1TF1串行口中斷:串行口RI、TI中斷控制設(shè)置了4個(gè)專用寄存器用于中斷控制。。(1)定時(shí)器控制寄存器(TCON)(2)串行口控制寄存器(SCON)(3)中斷允許控制寄存器(IE)(4)中斷優(yōu)先級(jí)控制寄存器(IP)中斷優(yōu)先級(jí)結(jié)構(gòu)
優(yōu)先級(jí)排列如下(從高到低):
外部中斷0定時(shí)器/計(jì)數(shù)器0溢出外部中斷1定時(shí)器/計(jì)數(shù)器1溢出串行口中斷6.2外部中斷應(yīng)用示例51單片機(jī)提供了2個(gè)外部中斷源:
外部中斷0請(qǐng)求,占用P3.2引腳,其中斷請(qǐng)求號(hào)為0。
外部中斷1請(qǐng)求,占用P3.3引腳,其中斷請(qǐng)求號(hào)為2。外部中斷源的初始化時(shí)通過(guò)設(shè)置相應(yīng)的特殊功能寄存器的相應(yīng)位來(lái)實(shí)現(xiàn)的。(1)TCON寄存器中的IT0、IT1位外部中斷0和外部中斷1的中斷觸發(fā)方式控制位。如:CLRIT0;外部中斷0為電平觸發(fā)方式SETBIT1;外部中斷1為脈沖觸發(fā)方式(2)IP寄存器中的PX0、PX1位外部中斷0和外部中斷1的中斷優(yōu)先級(jí)的設(shè)定。如:CLRPX0;設(shè)定外部中斷0為低級(jí)中斷SETBPX1;設(shè)定外部中斷1為高級(jí)中斷(3)IE寄存器中的EA、EX0、EX1位EA為中斷允許總控制位;EX0、EX1為外部中斷0中斷和外部中斷1中斷的中斷允許位。如:SETBEA;開(kāi)放總的中斷控制SETBEX0;允許外部中斷0中斷CLREX1;禁止外部中斷1中斷【例6-1】初始狀態(tài)時(shí)低4位燈亮,高4位的燈滅,編程實(shí)現(xiàn)按一下S0,P1口的發(fā)光狀態(tài)發(fā)生反轉(zhuǎn)。注意:和例題5-6的區(qū)別修改:(1)按3下S0,P1口的發(fā)光狀態(tài)發(fā)生反轉(zhuǎn)(2)按一下,燈變?yōu)殚W爍,按一下,燈全亮?!纠?-2】當(dāng)S0動(dòng)作時(shí),P1.0端口的電平反向,當(dāng)外S1動(dòng)作,P1.7端口的電平反向修改:(1)S0控制P1.0—P1.3的燈,S1控制P1.4—P1.7的燈。(2)按下S0后,點(diǎn)亮8只LED;按下S1后,變?yōu)殚W爍狀態(tài)。6.351單片機(jī)的定時(shí)器/計(jì)數(shù)器概述51單片機(jī)有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,其核心部件為加法計(jì)數(shù)器。6.3.1結(jié)構(gòu)6.3.2控制寄存器6.3.3工作模式6.3.1結(jié)構(gòu)計(jì)數(shù)功能:是指對(duì)外部事件進(jìn)行計(jì)數(shù):計(jì)數(shù)信號(hào)來(lái)自T0(P3.4)、T1(P3.5)引腳。定時(shí)功能:也是通過(guò)計(jì)數(shù)器的計(jì)數(shù)功能來(lái)完成的,不過(guò)此時(shí)的計(jì)數(shù)脈沖來(lái)自單片機(jī)內(nèi)部:機(jī)器周期。6.3.2控制寄存器
與定時(shí)器/計(jì)數(shù)器應(yīng)用有關(guān)的控制寄存器有2個(gè),分別為TCON、TMOD、TH、TL。1、計(jì)數(shù)器控制寄存器(TCON)2、工作方式控制寄存器(TMOD)3、TH、TL
4、如果是中斷方式,還與IE、IP寄存器有關(guān)。6.3.3工作模式4種1.模式1—16位定時(shí)與計(jì)數(shù)范圍:計(jì)數(shù)寄存器的計(jì)數(shù)初值范圍是:0000H~0FFFFH(0~216-1)
則:當(dāng)為計(jì)數(shù)器工作方式時(shí):
計(jì)數(shù)范圍為:1~216;當(dāng)為定時(shí)工作方式時(shí):
定時(shí)時(shí)間=(216-計(jì)數(shù)初值)×定時(shí)周期若晶振頻率為12MHz,其定時(shí)周期1μs:定時(shí)范圍:1μs~65536μs2、模式0—13位計(jì)數(shù)寄存器的計(jì)數(shù)初值范圍是:0000H~1FFFH(0~213-1)
則:當(dāng)為計(jì)數(shù)器工作方式時(shí):
計(jì)數(shù)范圍為:1~213;當(dāng)為定時(shí)工作方式時(shí):定時(shí)時(shí)間=(213-計(jì)數(shù)初值)×定時(shí)周期若晶振頻率為12MHz,其定時(shí)周期1μs:定時(shí)范圍:1μs~8192μs定時(shí)和計(jì)數(shù)范圍:計(jì)數(shù)器的計(jì)數(shù)值范圍是:1~8192(213)當(dāng)為計(jì)數(shù)器工作方式時(shí):
計(jì)數(shù)器的初值范圍為:0~213-1;定時(shí)時(shí)間的計(jì)算公式為:
定時(shí)時(shí)間=(213-計(jì)數(shù)初值)×定時(shí)周期若晶振頻率為6MHz,其定時(shí)周期2μs:則最短定時(shí)時(shí)間為:Tmin=[213-(213-1)]×2μs=2(μs)最長(zhǎng)定時(shí)時(shí)間為:Tmax=(213-0)×2μs=16384(μs)3.模式2:計(jì)數(shù)與定時(shí)范圍:計(jì)數(shù)寄存器的計(jì)數(shù)初值范圍是:00H~0FFH(0~28-1)
則:當(dāng)為計(jì)數(shù)器工作方式時(shí):
計(jì)數(shù)范圍為:1~28;當(dāng)為定時(shí)工作方式時(shí): 定時(shí)時(shí)間=(28-計(jì)數(shù)初值)×定時(shí)周期若晶振頻率為12MHz,其定時(shí)周期1μs:定時(shí)范圍:1μs~256μs4.模式3:6.4應(yīng)用舉例(1)TMOD的確定(2)計(jì)數(shù)器的計(jì)數(shù)初值X已知需要計(jì)的數(shù)N:X=2N-n(3)定時(shí)器/計(jì)數(shù)器在中斷方式工作時(shí),需開(kāi)CPU中斷和源中斷——編程IE寄存器;(4)啟動(dòng)定時(shí)器/計(jì)數(shù)器——編程TCON中的TR1或TR0位。
模式2:TH=TL=256-n;或:TH=TL=-n(3)定時(shí)器/計(jì)數(shù)器在中斷方式工作時(shí),需開(kāi)CPU中斷和源中斷——編程IE寄存器;(4)啟動(dòng)定時(shí)器/計(jì)數(shù)器——編程TCON中的TR1或TR0位。(5)中斷類型號(hào):1、3【例6-3】模式1、2應(yīng)用:設(shè)系統(tǒng)時(shí)鐘頻率為12MHz,用定時(shí)器/計(jì)數(shù)器T0編程實(shí)現(xiàn)從P1.0輸出周期為500μs的方波。分析:(1)定時(shí)250us(2)應(yīng)該采用模式2,也可以采用模式1(3)可以采用中斷或查詢【例6-4】模式3應(yīng)用51單片機(jī)外接6MHz晶振,通過(guò)T0定時(shí),需要在P1.0和P1.1分別產(chǎn)生周期為400μs和800μs的方波。說(shuō)明:此時(shí)可以TL0和TH0產(chǎn)生200μs和400μs的定時(shí)中斷,并在中斷服務(wù)程序中對(duì)P1.0和P1.1取反。由于采用了6MHz晶振,因此單片機(jī)的機(jī)器周期為2μs。因此可計(jì)算TL0的初值X=156=9CH,TH0的初值X=56=38H?!纠?-5】P1.1輸出周期1s的方波由于定時(shí)時(shí)間較長(zhǎng),一個(gè)定時(shí)器不能直接實(shí)現(xiàn)(一個(gè)定時(shí)器最長(zhǎng)定時(shí)時(shí)間為65536us),可以有以下兩種方法。方法1:硬件定時(shí)*軟件計(jì)數(shù)如硬件定時(shí)50ms,軟件計(jì)數(shù)器設(shè)定為20即可。方法2:硬件定時(shí)器*硬件計(jì)數(shù)器(1)T0定時(shí)器,定時(shí)器50ms,定時(shí)時(shí)間到,P1.0取反;(2)T1計(jì)數(shù)器,計(jì)數(shù)脈沖位P1.0,計(jì)數(shù)10次;(3)計(jì)數(shù)次數(shù)到P1.1取反。【例6-6】不同占空比的輸出)設(shè)系統(tǒng)時(shí)鐘頻率為12MHz,編程實(shí)現(xiàn):P1.1引腳上輸出周期為1s,占空比為20%的脈沖信號(hào)。(取10ms基礎(chǔ),100個(gè),分別占20個(gè)、80個(gè))【例6-7】門控位的應(yīng)用(測(cè)量脈沖)利用定時(shí)器的門控位GATE測(cè)量正脈沖寬度,脈沖從(P3.3)引腳輸入。門控位GATE=1,定時(shí)器/計(jì)數(shù)器T1的啟動(dòng)受到外部中斷1引腳的控制,當(dāng)GATE=1,TR1=1時(shí),只有引腳為高電平時(shí),T1才被允許計(jì)數(shù),利用GATE的這個(gè)功能,可以測(cè)量引腳(P3.3)上正脈沖的寬度(機(jī)器周期數(shù)),其方法如下所示?!纠?-8】計(jì)數(shù)器應(yīng)用用定時(shí)器/計(jì)數(shù)器T0監(jiān)視一生產(chǎn)線,每生產(chǎn)100個(gè)工件,發(fā)出一包裝命令,包裝成一箱,并記錄其箱數(shù)。
6.5實(shí)驗(yàn)與設(shè)計(jì)實(shí)驗(yàn)1按鈕型開(kāi)關(guān)模擬外部中斷實(shí)驗(yàn)實(shí)驗(yàn)2按鈕型開(kāi)關(guān)模擬計(jì)數(shù)器實(shí)驗(yàn)實(shí)驗(yàn)3定時(shí)器實(shí)驗(yàn)設(shè)計(jì)1:出租車計(jì)價(jià)器里程計(jì)量裝置的設(shè)計(jì)出租車車輪運(yùn)轉(zhuǎn)1圈產(chǎn)生2個(gè)負(fù)脈沖,輪胎周長(zhǎng)為2m。試測(cè)量并顯示出租車的行駛里程,測(cè)量與顯示范圍0~99Km。設(shè)計(jì)硬件電路并編寫程序。(信號(hào)通過(guò)中斷方式取得)。設(shè)計(jì)1:出租車計(jì)價(jià)器里程計(jì)量裝置的設(shè)計(jì)出租車車輪運(yùn)轉(zhuǎn)1圈產(chǎn)生2個(gè)負(fù)脈沖,輪胎周長(zhǎng)為2m。試測(cè)量并顯示出租車的行駛里程,測(cè)量與顯示范圍0~99Km。設(shè)計(jì)硬件電路并編寫程序。(信號(hào)通過(guò)計(jì)數(shù)器方式取得)。設(shè)計(jì)2:多種頻率發(fā)生器的設(shè)計(jì)4個(gè)撥動(dòng)開(kāi)關(guān)K0、K1、K2、K3,分別控制4個(gè)不同頻率(周期)的信號(hào)輸出(一個(gè)輸出端),4個(gè)周期分別100ms、500ms、1s、2s,并有4個(gè)指示燈指示(2s為20%占空比的信號(hào),其余的為周期信號(hào))。第7章51單片機(jī)串行口應(yīng)用基礎(chǔ)串行是相對(duì)于并行而言:并行示意圖串行示意圖7.1串行通信的再認(rèn)識(shí)7.2認(rèn)識(shí)51單片機(jī)的串行口7.351單片機(jī)串行口的工作方式7.451單片機(jī)串行口應(yīng)用舉例7.5實(shí)驗(yàn)與設(shè)計(jì)7.1串行通信的再認(rèn)識(shí)發(fā)送端:將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù);接收端:將串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)。7.1.1異步串行通信與同步串行通信7.1.2波特率7.1.3串行通信的檢錯(cuò)與糾錯(cuò)7.1.4串行接口芯片在發(fā)送與接收時(shí),要關(guān)注一個(gè)字符轉(zhuǎn)換成一個(gè)什么樣的串行數(shù)據(jù)(幀);發(fā)送與接收一位二進(jìn)制數(shù)需要多長(zhǎng)時(shí)間。7.1.1異步串行通信與同步串行通信1、異步串行通信
異步通信是指通信的發(fā)送和接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過(guò)程。異步通信是以字符(構(gòu)成幀)為單位進(jìn)行傳輸,字符與字符之間的間隙是任意的,但每個(gè)字符中的各位是以固定的時(shí)間傳送的。幀格式:例如:傳送一個(gè)7位的ASCII碼字符,再加上一個(gè)起始位、一個(gè)奇偶校驗(yàn)位和一個(gè)停止位組成的一幀共10位。傳輸字符“E”的ASCII碼(45H)的波形。(奇校驗(yàn))2、同步通信3、比較(1)從硬件設(shè)備的要求看(2)從數(shù)據(jù)的傳輸效率看7.1.2串行傳送速率--波特率波特率:指每秒鐘內(nèi)所傳送二進(jìn)制數(shù)據(jù)的位數(shù),單位為波特(Bd),實(shí)際上它是傳送每一位信息所用時(shí)間內(nèi)的倒數(shù)。如果一個(gè)串行字符由1個(gè)起始位,7個(gè)數(shù)據(jù)位,1個(gè)奇偶校驗(yàn)位和1個(gè)停止位等10個(gè)數(shù)位構(gòu)成,每秒鐘傳送120個(gè)字符,則實(shí)際傳送的波特率為:10位/字符×120字符/秒=1200位/秒=1200波特傳送每位信息所占用的時(shí)間: 1秒/1200=0.833毫秒常用的標(biāo)準(zhǔn)波特率:110、300、600、1000、1200、2400、4800、9600和19200波特。它也是國(guó)際上規(guī)定的標(biāo)準(zhǔn)波特率。同步傳送的波特率高于異步方式,可達(dá)到64000波特。7.1.3串行通信的檢錯(cuò)與糾錯(cuò)1、奇偶校驗(yàn)2、代碼和校驗(yàn)3、循環(huán)冗余校驗(yàn)(CRC校驗(yàn))7.1.4串行接口芯片UART和USART調(diào)制解調(diào)器總結(jié):(1)并行與串行;(2)異步與同步;(3)異步的格式;(4)波特率。7.2認(rèn)識(shí)51單片機(jī)的串行接口全雙工的串行口。它能同時(shí)發(fā)送和接收數(shù)據(jù)。使用時(shí)用的是寄存器。7.2.1結(jié)構(gòu)7.2.2控制寄存器7.2.1串行口的結(jié)構(gòu)原理RXD/P3.0TXD/P3.1
PCONSCON發(fā)送緩沖器SBUF接收緩沖器SBUF一個(gè)是發(fā)送寄存器,一個(gè)是接收寄存器。串行發(fā)送時(shí):
從片內(nèi)總線向發(fā)送SBUF寫入數(shù)據(jù);串行接收時(shí):
從接收SBUF向片內(nèi)總線讀出數(shù)據(jù)。它們都是可尋址的寄存器,但因?yàn)榘l(fā)送和接收不能同時(shí)進(jìn)行,所以給這兩個(gè)寄存器賦以同一地址(99H)。7.2.2串行口控制寄存器串行控制寄存器SCON電源控制寄存器PCON1、串行控制寄存器SCON(P170)SM0、SM1:串行口工作方式選擇位,這兩位的組合決定了串行口的4種工作方式。SM2是多機(jī)通信控制位:REN是允許接收位:當(dāng)REN=1時(shí),允許接收數(shù)據(jù);當(dāng)REN=0時(shí),禁止接收數(shù)據(jù)。該位由軟件置位或復(fù)位。TB8是發(fā)送數(shù)據(jù)的第9位。RB8是接收數(shù)據(jù)的第9位。TI是發(fā)送中斷標(biāo)志位。RI是接收中斷標(biāo)志位。2、電源控制寄存器PCON最高位SMOD是串行口波特率的倍增位。當(dāng)SMOD=1時(shí),串行口波特率加倍。系統(tǒng)復(fù)位時(shí),SMOD=0。7.3串行口的工作方式通過(guò)SCON的SM0、SM1確定。7.3.1串行口工作方式0
同步移位寄存器輸入/輸出模式,可外接移位寄存器,以擴(kuò)展I/O口。格式:P3.0(RXD):總是用于數(shù)據(jù)的輸出或輸入,P3.1(TXD):總是用于輸出移位脈沖,每一移位脈沖將使RXD端輸出或者輸入一位二進(jìn)制碼。波特率:晶振頻率fosc的1/12
1、方式0輸出①初始化:SCON=0x00;②置標(biāo)志:TI=0;③寫操作:SBUF=0xDATA;當(dāng)8位數(shù)據(jù)發(fā)送完畢的時(shí)候,標(biāo)志TI=1。④準(zhǔn)備下一次數(shù)據(jù)發(fā)送。
軟件中置TI=0,然后才能發(fā)送下一組數(shù)據(jù)。方式0的數(shù)據(jù)輸出可以采用查詢方式,也可以采用中斷方式。在查詢方式下,通過(guò)while、if語(yǔ)句查詢TI的值,如果TI=1則結(jié)束查詢,可以發(fā)送下一組數(shù)據(jù);如果TI=0,則繼續(xù)查詢。在中斷方式下,TI置位產(chǎn)生中斷申請(qǐng),在中斷服務(wù)程序中發(fā)送下一組數(shù)據(jù)。此時(shí),需要開(kāi)啟相應(yīng)的中斷請(qǐng)求(EA、ES)?!纠?-1】方式0數(shù)據(jù)發(fā)送74LS164:8位串入/并出寄存器A、B為兩個(gè)數(shù)據(jù)輸入;CP為時(shí)鐘輸入;/MR為復(fù)位輸入(低電平有效);Q0-Q7數(shù)據(jù)輸出2、方式0輸入方式0輸入時(shí),REN為串行口接收允許控制位。REN=0,禁止接收。在方式0下,程序可以按照如下的流程來(lái)進(jìn)行數(shù)據(jù)的接收:①初始化:SCON=0x10;②此時(shí),在TXD端發(fā)送同步移位脈沖,在同步脈沖為低電平的時(shí)候,8位數(shù)據(jù)從RXD引腳由低位到高位逐位接收。③當(dāng)8位數(shù)據(jù)接收完畢的時(shí)候,硬件自動(dòng)置RI=1,請(qǐng)求中斷,表示接收數(shù)據(jù)已裝人接收緩沖器,可以由CPU讀?、軠?zhǔn)備下一次接收數(shù)據(jù)。由于RI不會(huì)自動(dòng)清零,當(dāng)需要接收下一組數(shù)據(jù)的時(shí)候,必須在軟件中置RI=0,然后才可以接收下一組數(shù)據(jù)。此時(shí),同樣可以采用查詢和中斷兩種方式,分別介紹如下。在查詢方式中,查詢RI的值,如果RI=1則結(jié)束查詢,可以接收下一組數(shù)據(jù);如果RI-0,則繼續(xù)查詢。在中斷方式中,在RI置位后產(chǎn)生中斷申請(qǐng),在中斷服務(wù)程序中接收下一組數(shù)據(jù)。此時(shí),需要開(kāi)啟相應(yīng)的中斷請(qǐng)求?!纠?-2】方式0輸入74LS165:8位并入/串出移位寄存器CLK,CLKINK:
時(shí)鐘輸入端(上升沿有效)A~H:并行數(shù)據(jù)輸入端SER:串行數(shù)據(jù)輸入端QH:輸出端/QH:互補(bǔ)輸出端SH/LD:移位控制/置入控制(低電平有效)7.3.2串行口工作方式1
串行口的工作方式1是波特率可變的串行異步通信方式。
數(shù)據(jù)幀由10位組成,按順序分別為起始位、8位數(shù)據(jù)位、停止位。數(shù)據(jù)在傳輸時(shí),低位在前,高位在后。1、方式1的波特率T1的溢出率:T1定時(shí)器方式、模式2。
T1的初始值為X,則每過(guò)256-X個(gè)機(jī)器周期的時(shí)候,T1便將產(chǎn)生一次溢出。溢出的周期為:
(256-X)×12/fosc溢出率:fosc/[12×(256-X)]。方式1波特率=T1溢出率×2SMOD/32根據(jù):方式1波特率=T1溢出率×2SMOD/32波特率=(2SMOD/32)×fosc/[12×(256-X)]通過(guò)上面的式子可得到定時(shí)器T1在模式2下的初值X:X=256-(2SMOD×fosc)/(384×波特率)波特率foscSMOD初值
1106072H137.511.98601DH120011.05920E8H240011.05920F4H480011.05920FAH960011.05920FDH1920011.05921FDH6250011.05921FFH串口方式1初始化及波特率初始化的程序示例如下:MOV TMOD,#20H ;設(shè)置T1定時(shí)方式,工作于模式2MOV TH1,#0F4HMOV TL1,#0F4HSETBTR1MOVPCON,#0 ;設(shè)置SMOD為0MOV SCON,#50H ;設(shè)置方式1,允許接收2、方式1的數(shù)據(jù)發(fā)送①初始化串口,設(shè)置SCON寄存器以及PCON寄存器。②初始化定時(shí)器,設(shè)置波特率。③置串行接口控制寄存器SCON的TI=0,啟動(dòng)串行口發(fā)送。④執(zhí)行寫發(fā)送緩沖器SBUF語(yǔ)句,
⑤硬件自動(dòng)發(fā)送起始位,起始位為邏輯低電平。在發(fā)送移位脈沖的作用下,數(shù)據(jù)幀依次從TXD引腳發(fā)出。在發(fā)送8位數(shù)據(jù)時(shí),低位首先發(fā)送,高位最后發(fā)送。最后硬件自動(dòng)發(fā)送停止位,停止位為邏輯高電平。⑥在8位串行數(shù)據(jù)發(fā)送完畢后,也就是在插入停止位的時(shí)候,使TI置1,用以通知CPU可以發(fā)過(guò)下一幀的數(shù)據(jù)。此時(shí)可以采用查詢或者中斷兩種方式來(lái)獲知TI是否置位。當(dāng)TI置位后,程序中清霧TI,以便于發(fā)送下一個(gè)數(shù)據(jù)。3、工作方式1的數(shù)據(jù)接收①初始化串口,設(shè)置SCON寄存器以及PCON寄存器。將SCON的REN位置1,啟動(dòng)串行口串行數(shù)據(jù)接收,RXD引腳便進(jìn)行串行口的采樣。②初始化定時(shí)器,設(shè)置波特率。③在數(shù)據(jù)傳遞的時(shí)候RXD引腳的狀態(tài)為1,當(dāng)檢測(cè)到從1到0的跳變的時(shí)候,確認(rèn)數(shù)據(jù)起始位0。開(kāi)始接收一幀的串行數(shù)據(jù),在接收移位脈沖的控制下,將收到的數(shù)據(jù)一位一位地送入移位寄存器,直到9位數(shù)據(jù)完全接收完畢,其中最后一位為停止位。④當(dāng)RI=0,并且接收到的停止位為1,或者SM2=0的時(shí)候,8位數(shù)據(jù)送人接收緩沖器SBUF中,停止位送人RB8中,同時(shí)置RI=1;否則,8位數(shù)據(jù)不裝人SBUF,放棄當(dāng)前接收到的數(shù)據(jù)。⑤此時(shí)可以采用查詢或者中斷兩種方式來(lái)獲知RI是否置位。當(dāng)數(shù)據(jù)送人接收緩沖器之后,便可以執(zhí)行讀SBUF語(yǔ)句來(lái)讀取數(shù)據(jù),示例如下。ch=SBUF;⑥最后,軟件中清標(biāo)志位RI,以便于接收下一次串行數(shù)據(jù)。7.3.3串行口工作方式2
方式2為固定波特率的串行異步通信方式,在方式2中數(shù)據(jù)幀的格式如圖所示。
一幀數(shù)據(jù)由11位構(gòu)成,按照順序分別為:起始位1位、8位串行數(shù)據(jù)(低位在前)、可編程位1位、停止位1位。方式2的波特率:
方式2波特率
=
fosc×2SMOD/647.3.4串行口工作方式3
方式3為11位異步發(fā)送接收方式,在方式3中數(shù)據(jù)幀的格式:1幀數(shù)據(jù)由11位構(gòu)成,按照順序分別為:起始位1位、8位串行數(shù)據(jù)(低位在前)、可編程位1位、停止位1位。7.4串行口的應(yīng)用舉例7.4.1初始化①設(shè)定SCON的SM0、SM1兩位二進(jìn)制編碼。②對(duì)于方式2或3,應(yīng)根據(jù)需要在TB8中寫入待發(fā)送的第9位數(shù)據(jù)。③若選定的操作方式不是方式0,還需設(shè)定發(fā)送的波特率:④設(shè)定SMOD的狀態(tài),以控制波特率是否加倍。⑤若選定操作方式1或3,則應(yīng)對(duì)定時(shí)器T1進(jìn)行初始化以設(shè)定其溢出率。7.4.2編程步驟:(1)定好波特率
(2)填寫控制字(3)串行通信可采用兩種方式,即查詢方式和中斷方式查詢方式:發(fā)送:先發(fā)后查;(TI)接收:先查后收。(RI)中斷方式:發(fā)送:發(fā)送一個(gè)數(shù)據(jù)、等待中斷,
在中斷中再發(fā)送下一個(gè)數(shù)據(jù)。接收:等待中斷、在中斷中接收一個(gè)數(shù)據(jù)?!纠?-5】波特率計(jì)算設(shè)某51單片機(jī)系統(tǒng),其串行口工作于方式3,要求傳送波特率為1200。作為波特率發(fā)生器的定時(shí)器T1工作在模式2時(shí),請(qǐng)求出計(jì)數(shù)初值為多少?設(shè)單片機(jī)的振蕩頻率為6MHz。X=256-(2SMOD×fosc)/(384×波特率)TH1=256–fosc/(波特率×12×32/2SMOD)=256-2SMOD×13當(dāng)SMOD=0時(shí):TH1=256–13=243=0F3H。當(dāng)SMOD=1時(shí):TH1=256–2×13=230=0E6H?!纠?-6】編程:高4位燈和低4位燈以1s亮1s滅的頻率進(jìn)行閃爍。分析:(1)4位亮、4位滅的交替數(shù)據(jù)為11110000B和00001111B;(2)串行口采用方式0,SCON=00H;(3)1s由定時(shí)器T0產(chǎn)生:硬件定時(shí)50mS,軟件計(jì)數(shù)20次;T0定時(shí)器方式、模式1、初值為:50000=65536-XX=15536=3CB0H(4)1s采用中斷的方式,20次中斷到,將輸出的數(shù)據(jù)取反操作?!纠?-87】串行口自收自發(fā)
將51單片機(jī)的TXD接RXD,實(shí)現(xiàn)單片機(jī)串行口數(shù)據(jù)自發(fā)自收,并將接收的數(shù)據(jù)通過(guò)P1口輸出到發(fā)光二極管顯示。系統(tǒng)時(shí)鐘頻率為11.0592MHz,自發(fā)自收的波特率為2400bps。編寫程序,要求:?jiǎn)纹瑱C(jī)串行口工作在方式1,從TXD發(fā)送數(shù)據(jù)0x55,從RXD將該數(shù)據(jù)讀回,并送P1口通過(guò)8個(gè)發(fā)光二極管顯示?!纠?-8】?jī)蓚€(gè)單片機(jī)串行通信在某控制系統(tǒng)中有甲、乙兩個(gè)單片機(jī),甲單片機(jī)首先將P1口撥動(dòng)開(kāi)關(guān)數(shù)據(jù)裝入SBUF,然后經(jīng)由TXD將數(shù)據(jù)發(fā)送給乙單片機(jī)。乙單片機(jī)將接收數(shù)據(jù)存入SBUF,再由SBUF載入累加器,并輸出至P1,點(diǎn)亮相應(yīng)端口的LED。PROTEUS仿真電路如圖所示。7.5實(shí)驗(yàn)與設(shè)計(jì)實(shí)驗(yàn)
串行口控制的流水燈實(shí)驗(yàn)設(shè)計(jì)
串行口控制的8段LED顯示器計(jì)時(shí)秒表的設(shè)計(jì)①兩位LED顯示,可以顯示00~99秒;②兩個(gè)按鍵,分別為啟動(dòng)/停止鍵、清零鍵。要求:設(shè)計(jì)硬件電路,編寫出軟件程序(延時(shí)由硬件定時(shí)器形成)。第8章系統(tǒng)擴(kuò)展技術(shù)片外并行資源的擴(kuò)展:存儲(chǔ)器、I/O口主要為:I/O口。8.1系統(tǒng)并行擴(kuò)展基礎(chǔ)8.2并行I/O口芯片擴(kuò)展示例8.3鍵盤/顯示器接口技術(shù)8.4模擬量接口技術(shù)8.5實(shí)驗(yàn)與設(shè)計(jì)
8.1并行I/O口擴(kuò)展基礎(chǔ)將要擴(kuò)展的芯片(存儲(chǔ)器、I/O接口)正確地連接到CPU的總線上,編程讓其發(fā)揮應(yīng)有的作用。包括:(1)擴(kuò)展的芯片(2)CPU的總線(3)正確地連接---硬件設(shè)計(jì)(4)編程—軟件設(shè)計(jì)8.1.1系統(tǒng)擴(kuò)展總線圖8.1.2典型的芯片介紹8.1.3數(shù)據(jù)線、控制線連接8.1.4地址線的連接8.1.1系統(tǒng)擴(kuò)展總線圖8.1.2典型的芯片
1、鎖存器74LS373引腳說(shuō)明如下:D0~D7:
數(shù)據(jù)輸入引腳。Q0~Q7:
輸出引腳。CLK:時(shí)鐘引腳,在時(shí)鐘的上升沿將輸入引腳的數(shù)據(jù)送到輸出端口。MR:清除引腳,低電平有效。真值表:2、典型的三態(tài)緩沖器74LS244三態(tài)緩沖區(qū)74LS2453、可編程的I/O接口芯片8255A(1)8255A特點(diǎn):8255A是一種通用的可編程并行I/O接口芯片具有3個(gè)8位并行端口:
PA口、PB口、PC口3個(gè)端口分2組控制:
A組控制A口和C口的上半部;
B組控制B口和C口的下半部。3種可編程工作方式:方式0:基本輸入/輸出方式方式1:選通輸入/輸出方式方式2:雙向總線方式(A口具有)(2)8255內(nèi)部結(jié)構(gòu)(3)外部引腳片選:/CS讀信號(hào):/WR寫信號(hào):/RD端口選擇:A1A0A1A000-----PA口
01-----PB口
10-----PC口
11-----控制寄存器端口8255有4個(gè)口地址:
PA口、PB口、PC口、控制口
(4)8255A的控制字:方式控制字如設(shè)置8255A工作于方式0,且PA口為輸出、PB口為輸出、PC口為輸入,則控制字為:
10001001B,即89H。PC口的置位/復(fù)位控制字如:PC3置1,則控制字為:
00000111B,即07H(5)工作方式方式0:基本輸入/輸出方式
-----無(wú)應(yīng)答信號(hào)線方式1:選通輸入/輸出方式方式2:雙向總線方式(A口特有)
-----有應(yīng)答信號(hào)線方式方式1、2為握手聯(lián)絡(luò)---應(yīng)答信號(hào)線方式,由PC口承擔(dān)應(yīng)答信號(hào)線,PA口、PB口作為數(shù)據(jù)口,可工作于輸入方式或輸出方式。8.1.3數(shù)據(jù)線、控制線的連接1、數(shù)據(jù)線的連接CPU:8條 P0口擴(kuò)展的芯片:(1)一般也是8條,一一對(duì)應(yīng)連接;(2)多于8條:分成高位、低位2、控制線的連接CPU:讀、寫(1)可編程芯片:
讀、寫信號(hào)一一對(duì)應(yīng)的連接。(2)不可編程芯片:
使能讀、使能寫8.1.4譯碼信號(hào)的形成—地址線的連接
地址線的連接是為擴(kuò)展的芯片確定一個(gè)唯一的地址,即存儲(chǔ)器的地址空間范圍和I/O接口的端口地址。
要擴(kuò)展的芯片的地址線數(shù)目總是少于單片機(jī)地址總線的數(shù)目,這樣就將51單片機(jī)的地址總線分為兩部分:用到的地址線、沒(méi)有用到的地址線。
用到的地址線分為:高位地址線、低位地址線。1、線譯碼
所謂線譯碼,是指CPU的“低位地址線”用做擴(kuò)展芯片的片內(nèi)譯碼,“高位地址線”直接作為擴(kuò)展芯片的片選,即一根線選中。2、譯碼器譯碼是指CPU
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年上海房屋裝修工程調(diào)解合同
- 2024年度二手房出售合同中的附件:房產(chǎn)證復(fù)印件及交易證明
- 2024年度承包合同園林綠化工程承包合同(04版)
- 2024年度汽車銷售代理權(quán)合同
- 保潔個(gè)人年終工作總結(jié)
- 2024年庫(kù)房火災(zāi)保險(xiǎn)合同
- 2024年奶制品銷售協(xié)議
- 2024雙方關(guān)于電商平臺(tái)運(yùn)營(yíng)合作的合同
- 2024丙丁雙方廣告發(fā)布與代理合同
- 2024年建筑工程施工安全防護(hù)補(bǔ)充協(xié)議
- 辦公樓物業(yè)服務(wù)管理的培訓(xùn)
- 智慧能源管理平臺(tái)建設(shè)項(xiàng)目解決方案
- JTG∕T F30-2014 公路水泥混凝土路面施工技術(shù)細(xì)則
- 2024年高中語(yǔ)文學(xué)業(yè)水平過(guò)關(guān)測(cè)試四-名句名篇默寫積累過(guò)關(guān)訓(xùn)練(全國(guó)通用)學(xué)生版
- 糖尿病性舞蹈病
- 醫(yī)學(xué)類-教學(xué)查房異位妊娠(宮外孕)
- 眼視光技術(shù)職業(yè)生涯規(guī)劃大賽
- 《第八課 我的身體》參考課件
- 肥料創(chuàng)業(yè)計(jì)劃書
- 信息通信網(wǎng)絡(luò)運(yùn)行管理員(高級(jí))理論考試題庫(kù)(學(xué)員用)
- 公司卷煙物流管理規(guī)范
評(píng)論
0/150
提交評(píng)論