版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)原理與應(yīng)用主講:梁祥瑩1.1 MCS-51單片機(jī)概貌1.2 MCS-51單片機(jī)的主要性能特點(diǎn)1.3 8051的內(nèi)部總體結(jié)構(gòu)1.4 8051的引腳描述1.5 存儲(chǔ)器配置1.6 振蕩器、時(shí)鐘電路和CPU時(shí)序1.7 輸入/輸出端口1.8 定時(shí)器/計(jì)數(shù)器1.9 串行接口1.10 中斷1.11 單步操作1.12 復(fù)位1.13 低功耗操作方式1.14 編程、程序驗(yàn)證與加密第一章 MCS51系列單片機(jī)的根本硬件結(jié)構(gòu)一、有關(guān)本課程學(xué)習(xí)的幾點(diǎn)建議二、課堂授課時(shí)間分配三、MCS51單片機(jī)概貌四、單片機(jī)的特點(diǎn)及其應(yīng)用領(lǐng)域五、 MCS51單片機(jī)的結(jié)構(gòu)六、 8051的引腳描述七、 存儲(chǔ)器配置一、有關(guān)本課程學(xué)習(xí)的幾
2、點(diǎn)建議1、本課程的前期根底課程是數(shù)字電路和微機(jī)原理。2、本課程是一門(mén)實(shí)踐性、應(yīng)用性很強(qiáng)的學(xué)科。3、硬件/軟件同樣重要,不可偏廢。4、預(yù)習(xí)、聽(tīng)課、復(fù)習(xí)、作業(yè)、實(shí)驗(yàn)環(huán)環(huán)都重要。二、課堂授課時(shí)間分配35學(xué)時(shí)第一章 MCS51系列單片機(jī)的根本硬件結(jié) 構(gòu)18學(xué)時(shí)第二章 MCS51指令系統(tǒng)4學(xué)時(shí)第三章 MCS51單片機(jī)的系統(tǒng)擴(kuò)展與應(yīng)用 10學(xué)時(shí)第四章 實(shí)用程序及其設(shè)計(jì)方法3學(xué)時(shí)三、 MCS51單片機(jī)概貌1、微處理器、微機(jī)、單片機(jī)和單片機(jī)系統(tǒng)的概念微處理器microprocessor:本身不是計(jì)算機(jī),是小型計(jì)算機(jī)或微型計(jì)算機(jī)的控制和處理局部。微機(jī)microcomputer:是指由CPU、存儲(chǔ)器、I/O接口電
3、路等各種大型集成電路芯片組裝在一塊或者由幾塊印制電路板組裝而成的機(jī)器。單片機(jī)single chipmicrocomputer:在一個(gè)芯片上集成CPU、存儲(chǔ)器、I/O接口等電子電路的超微型計(jì)算機(jī)。單片機(jī)系統(tǒng):在單片機(jī)芯片的根底上擴(kuò)展其它電路或芯片構(gòu)成的具有一定應(yīng)用功能的計(jì)算機(jī)系統(tǒng)。在單片機(jī)系統(tǒng)中,單片機(jī)處于核心地位,是構(gòu)成單片機(jī)系統(tǒng)的硬件和軟件根底。返回目錄四、單片機(jī)的特點(diǎn)及應(yīng)用領(lǐng)域1、單片機(jī)的特點(diǎn):1小巧靈活、本錢(qián)低、易于產(chǎn)品化。能組裝成各種智能式測(cè)控設(shè)備及智能儀器儀表。2可靠性好,應(yīng)用范圍廣。單片機(jī)芯片本身是按工業(yè)測(cè)控環(huán)境要求設(shè)計(jì)的,抗干擾性強(qiáng),能適應(yīng)各種惡劣的環(huán)境,這是其他機(jī)種無(wú)法比較的。
4、3易擴(kuò)展,很容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),控制功能強(qiáng)。單片機(jī)的邏輯控制功能很強(qiáng),指令系統(tǒng)有各種控制功能指令,可以對(duì)邏輯功能比較復(fù)雜的系統(tǒng)進(jìn)行控制。4具有通訊功能,可以很方便地實(shí)現(xiàn)多機(jī)和分布式控制,形成控制網(wǎng)絡(luò)和遠(yuǎn)程控制。2、單片機(jī)的應(yīng)用1工業(yè)方面:各種測(cè)控系統(tǒng)。數(shù)據(jù)采集系統(tǒng),工業(yè)機(jī)器人,智能化儀器,機(jī)、電一體化產(chǎn)品。2智能儀器儀表方面。3通訊方面:調(diào)制解調(diào)器、程控交換技術(shù)等。4消費(fèi)產(chǎn)品方面:電動(dòng)玩具、錄像機(jī)、激光唱機(jī)。5導(dǎo)彈與控制方面:導(dǎo)彈控制、魚(yú)雷制導(dǎo)控制、智能武器裝備、飛機(jī)導(dǎo)航系統(tǒng)。6計(jì)算機(jī)外部設(shè)備及電器方面:打印機(jī)、硬盤(pán)驅(qū)動(dòng)器、彩色與黑白復(fù)印機(jī)、磁帶機(jī)等。7多機(jī)分布式系統(tǒng):可用單片機(jī)構(gòu)成分
5、布式測(cè)控系統(tǒng),它使單片機(jī)應(yīng)用進(jìn)入了一個(gè)全新的階段。五、單片機(jī)與PC機(jī)的比較PC機(jī)單片機(jī)單價(jià)高低功能多單一體積大小到不能再小內(nèi)存以百M(fèi)B計(jì)2KB8KB操作環(huán)境Windows、Linux等自行發(fā)展標(biāo)準(zhǔn)輸出CRT或LCD屏幕LED或七段數(shù)碼管標(biāo)準(zhǔn)輸入鍵盤(pán)、鼠標(biāo)數(shù)個(gè)按鍵常用控制用程序VB或VC匯編語(yǔ)言或C語(yǔ)言返回目錄六、MCS51單片機(jī)的結(jié)構(gòu)框圖七、MCS-51單片機(jī)的邏輯結(jié)構(gòu)1、中央處理器CPU)中央處理器簡(jiǎn)稱CPU,是單片機(jī)的核心,完成運(yùn)算和控制操作。按其功能,中央處理器包括運(yùn)算器和控制器兩局部電路。1運(yùn)算器電路功能:?jiǎn)纹瑱C(jī)的運(yùn)算部件,用于實(shí)現(xiàn)算術(shù)和邏輯運(yùn)算。8051運(yùn)算器還包含一個(gè)布爾處理器,用
6、來(lái)處理位操作。2控制器電路功能:?jiǎn)纹瑱C(jī)的指揮控制部件,保證單片機(jī)各局部能自動(dòng)而協(xié)調(diào)地工作。2、內(nèi)部數(shù)據(jù)存儲(chǔ)器組成:RAM1288和RAM地址存放器等。功能:用于存放可讀寫(xiě)的數(shù)據(jù)。3、內(nèi)部程序存儲(chǔ)器組成:ROM4K8)和程序地址存放器等。功能:用于存放程序和原始數(shù)據(jù)。4、定時(shí)器計(jì)數(shù)器80C51共有兩個(gè)16位的定時(shí)器計(jì)數(shù)器。功能:實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能,并以其定時(shí)或計(jì)數(shù)結(jié)果對(duì)單片機(jī)進(jìn)行控制,以滿足控制應(yīng)用的需要。5、并行I/O口MCS-51共有4個(gè)8位的I/O口P0、P1、P2、P3功能:實(shí)現(xiàn)數(shù)據(jù)的并行輸入輸出。6、串行口MCS- 51單片機(jī)有一個(gè)全雙工的串行口。功能:以實(shí)現(xiàn)單片機(jī)和其它數(shù)據(jù)設(shè)備之間的
7、串行數(shù)據(jù)傳送。7、中斷控制系統(tǒng)80C51共有5個(gè)中斷源,即外中斷2個(gè),定時(shí)計(jì)數(shù)中斷2個(gè),串行中斷1個(gè)。全部中斷分為高級(jí)和低級(jí)共兩個(gè)優(yōu)先級(jí)別。8、時(shí)鐘電路MCS- 51芯片的內(nèi)部有時(shí)鐘電路,但石英晶體和微調(diào)電容需外接。功能:時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列。典型的晶振頻率:6MHz、11.0592MHz、12MHz。9、位處理器位處理器稱為布爾處理器。功能:以狀態(tài)存放器中的進(jìn)位標(biāo)志位C為累加位,可進(jìn)行各種位操作。10、總線總線:連接計(jì)算機(jī)各部件的一組公共信號(hào)線。分類:地址總線、數(shù)據(jù)總線和控制總線。作用:減少了單片機(jī)的連線和引腳,提高了集成度和可靠性。返回目錄八、8051單片機(jī)的引腳描述1、VCC
8、電源正端,容許正常工作的電壓是510,即CPU可工作于4.5V5.5V的電壓環(huán)境。2、 VSS電源低端,所有輸入/輸出信號(hào)都以此點(diǎn)為參考電壓點(diǎn),如:P1.0的輸出電壓為4.0V時(shí),即指輸出端為VSS點(diǎn)的電壓差為4.0V3、 RSTCPU的復(fù)位引腳。平常應(yīng)工作于低電位狀態(tài),當(dāng)要對(duì)CPU做復(fù)位操作時(shí),只要將此引腳升到邏輯1的狀態(tài),并保持2個(gè)機(jī)器周期以上時(shí)間。單片機(jī)將立刻進(jìn)行系統(tǒng)重置的各項(xiàng)工作,并且開(kāi)始由0000H地址上讀入程序碼。4、ALE 地址鎖存控制信號(hào) 功能一、在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出的低8位地址送入鎖存器鎖存起來(lái),以實(shí)現(xiàn)低位地址和數(shù)據(jù)的分時(shí)傳送。功能二、ALE是以六分之一晶
9、振頻率的固定頻率輸出的正脈沖,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。5、/PSEN 外部程序存儲(chǔ)器讀選通信號(hào)在讀外部ROM時(shí)/PSEN有效低電平,以實(shí)觀外部ROM單元的讀操作。6、/EA 訪問(wèn)程序存儲(chǔ)器控制信號(hào)當(dāng)/EA信號(hào)為低電平時(shí),對(duì)ROM的讀操作限定在外部程序存儲(chǔ)器;當(dāng)/EA信號(hào)為高電平時(shí),對(duì)ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開(kāi)始,并可延續(xù)至外部程序存儲(chǔ)器。7、XTAL1系統(tǒng)振蕩晶體的反相放大輸入端。8、XTAL2系統(tǒng)振蕩晶體的反相放大輸出端。9、P0口端口0,一個(gè)8位的漏極開(kāi)路型雙向I/O,內(nèi)部不帶上拉電阻,P0口能以吸收電流的方式驅(qū)動(dòng)8個(gè)LSTTL負(fù)載電路,通常在使用時(shí)外接上拉電阻。用來(lái)驅(qū)動(dòng)
10、多個(gè)數(shù)碼管。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P0口時(shí)分時(shí)轉(zhuǎn)換的地址低8位/數(shù)據(jù)總線。 10、P1口一個(gè)雙向的I/O端口,有內(nèi)部的上拉電阻,能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載,通常在使用時(shí)不需要接上拉電阻,就可以直接驅(qū)動(dòng)發(fā)光二極管。端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。11、P2口帶內(nèi)部上拉電阻的8位雙向I/O口,能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載,端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用,對(duì)內(nèi)部Flash程序存儲(chǔ)器編程時(shí),接收高8位地址和控制信息。在訪問(wèn)外部程序和16位外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址。12、P3口內(nèi)部有上拉電阻的8位雙向I/O口,可驅(qū)動(dòng)4個(gè)LSTTL負(fù)載,置成1可當(dāng)作I/O
11、使用。每個(gè)引腳均有其他特殊功能。返回目錄九、存儲(chǔ)器配置MCS-51的存儲(chǔ)器可分為程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,又有片內(nèi)和片外之分。1程序存儲(chǔ)器 一般將只讀存儲(chǔ)器ROM用做程序存儲(chǔ)器??蓪ぶ房臻g為64KB,用于存放用戶程序、數(shù)據(jù)和表格等信息。MCS-51單片機(jī)按程序存儲(chǔ)器可分為內(nèi)部無(wú)ROM型如8031和內(nèi)部有ROM型如8051兩種,連接時(shí)引腳有區(qū)別。程序存儲(chǔ)器結(jié)構(gòu)如下頁(yè)圖所示:2數(shù)據(jù)存儲(chǔ)器一般將隨機(jī)存儲(chǔ)器RAM用做數(shù)據(jù)存儲(chǔ)器??蓪ぶ房臻g為64KB。MCS-51數(shù)據(jù)存儲(chǔ)器可分為片內(nèi)和片外兩局部。片外RAM:最大范圍:0000HFFFFH,64KB;用指令MOVX訪問(wèn)。片內(nèi)RAM:最大范圍:00HFFH,
12、256B;用指令MOV訪問(wèn)。又分為兩局部:低128B007FH為真正的RAM區(qū),高128B80FFH為特殊功能存放器SFR區(qū)。如上頁(yè)圖所示。 內(nèi)部RAM的20H2FH單元為位尋址區(qū),既可作為一般單元用字節(jié)尋址,也可對(duì)它們的位進(jìn)行尋址。位地址為00H7FH。 CPU能直接尋址這些位稱MCS-51具有布爾處理功能,位地址分配如右表所示。3、MCS51的專用存放器SFR1程序存儲(chǔ)器中7個(gè)特殊定義的地址不屬于SFR入 口意 義0000H系統(tǒng)程序的啟動(dòng)地址0003H外部中斷0入口地址000BH定時(shí)器0溢出入口地址0013H外部中斷1入口地址001BH定時(shí)器1溢出入口地址0023H串行口中斷002BH定時(shí)
13、器2溢出或T2EX(p1.1)端負(fù)跳通常在這些入口地址都安放一條絕對(duì)跳轉(zhuǎn)指令,跳轉(zhuǎn)到相應(yīng)中斷效勞程序入口去執(zhí)行中斷效勞程序。2專用存放器MCS51共有23個(gè)特殊功能存放器3個(gè)屬于8032/8052,其中5個(gè)是雙字節(jié)存放器,程序計(jì)數(shù)器PC在物理上是獨(dú)立的,其余22個(gè)存放器都屬于片內(nèi)數(shù)據(jù)存儲(chǔ)器SFR塊,共26個(gè)字節(jié)。 程序計(jì)數(shù)器PC16bit 累加器A 存放器B 程序狀態(tài)字PSW 堆棧指針SP 數(shù)據(jù)指針DPTR I/O端口P0P3程序計(jì)數(shù)器PCProgram Counter程序計(jì)數(shù)器PC在物理上是獨(dú)立的,它不屬于SFR存儲(chǔ)器塊。 PC是一個(gè)16位的計(jì)數(shù)器,專門(mén)用于存放CPU將要執(zhí)行的指令地址即下一
14、條指令的地址,尋址范圍為64KB,PC有自動(dòng)加1功能,不可尋址,用戶無(wú)法對(duì)它進(jìn)行讀寫(xiě),但是可以通過(guò)轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以控制程序執(zhí)行的順序。執(zhí)行指令時(shí),PC內(nèi)容的低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。程序狀態(tài)字PSWCYACF0RS1RS0OVPCY:進(jìn)位/借位標(biāo)志位AC:輔助進(jìn)位位/借位標(biāo)志位F0:可由用戶定義的標(biāo)志位RS1、RS0:工作存放器組選擇位OV:溢出標(biāo)志位PSW.1:未定義P:奇偶標(biāo)志位采用偶校驗(yàn)堆棧指針SP1MCS51堆棧設(shè)在內(nèi)部RAM中,是一個(gè)按“先進(jìn)先出順序,受SP管理的存儲(chǔ)區(qū)域。2在程序中斷、子程序調(diào)用等情況下,會(huì)用到堆棧來(lái)保存斷點(diǎn)和現(xiàn)場(chǎng)也可作數(shù)據(jù)傳送的中
15、轉(zhuǎn)站3堆棧深度為128個(gè)字節(jié),系統(tǒng)復(fù)位時(shí),硬件使SP07H,用戶可修改SP來(lái)改變堆棧位置。返回目錄1.6 振蕩器、時(shí)鐘電路和CPU時(shí)序一、振蕩器電路的兩種接法說(shuō)明:使用內(nèi)部方式時(shí),時(shí)鐘發(fā)生器對(duì)振蕩脈沖二分頻。使用外部方式時(shí),外部振蕩信號(hào)應(yīng)直接加到XTAL1,而XTAL2懸空二、CPU時(shí)序1、幾個(gè)周期的概念振蕩周期/時(shí)鐘周期:TC=晶振頻率fosc或外加頻率的倒數(shù)狀態(tài)周期Ts=2個(gè)時(shí)鐘周期機(jī)器周期Tm=6個(gè)狀態(tài)周期Ts12個(gè)振蕩周期Tc指令周期Ti執(zhí)行一條指令所需要的機(jī)器周期數(shù)振蕩周期:為單片機(jī)提供時(shí)鐘信號(hào)的振蕩源的周期。時(shí)鐘周期:是振蕩源信號(hào)經(jīng)二分頻后形成的 時(shí)鐘脈沖信號(hào)。 機(jī)器周期:通常將完
16、成一個(gè)根本操作所需的時(shí)間稱為機(jī)器周期。指令周期:是指CPU執(zhí)行一條指令所需要的時(shí)間。一個(gè)指令周期通常含有14個(gè)機(jī)器周期。 時(shí)鐘電路產(chǎn)生的振蕩脈沖,經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻之后才能為單片機(jī)的時(shí)鐘脈沖信號(hào)。請(qǐng)?zhí)貏e注意時(shí)鐘脈沖與振蕩脈沖之間的二分頻關(guān)系,否那么會(huì)造成概念上的錯(cuò)誤。2、 時(shí)鐘脈沖和振蕩脈沖3、時(shí)序的定時(shí)單位時(shí)序是用定時(shí)單位來(lái)說(shuō)明的,80C51的時(shí)序定時(shí)單位共有個(gè),從小到大依次是:節(jié)拍狀態(tài)機(jī)器周期指令周期。 節(jié)拍與狀態(tài)振蕩脈沖的周期叫做節(jié)拍,用表示。振蕩脈沖經(jīng)過(guò)二分頻后,就是單片機(jī)的時(shí)鐘信號(hào),把時(shí)鐘信號(hào)的周期定義為狀態(tài),用表示。這樣,一個(gè)狀態(tài)就包括兩個(gè)節(jié)拍,其前半周期對(duì)應(yīng)的節(jié)拍叫節(jié)拍,后半周
17、期對(duì)應(yīng)的節(jié)拍叫節(jié)拍。機(jī)器周期80C51采用定時(shí)控制方式,因此它有固定的機(jī)器周期。80C51的一個(gè)機(jī)器周期的寬度為個(gè)狀態(tài),并依次表示為,由于一個(gè)狀態(tài)又包括兩個(gè)節(jié)拍,因此一個(gè)機(jī)器周期總共有個(gè)節(jié)拍,分別記作S1P1、S1P2S6P1、S6P2。由于一個(gè)機(jī)器周期共有個(gè)振蕩脈沖周期,因此機(jī)器周期就是振蕩脈沖的十二分頻。當(dāng)振蕩脈沖頻率為z時(shí),一個(gè)機(jī)器周期為s,當(dāng)振蕩脈沖頻率為z時(shí),一個(gè)機(jī)器周期為s。指令周期指令周期是最大的時(shí)序定時(shí)單位,執(zhí)行一條指令需要的時(shí)間稱之為指令周期。根據(jù)指令的不同,80C51的指令周期可以包含有1、2、4個(gè)機(jī)器周期。當(dāng)然,1個(gè)機(jī)器周期的指令執(zhí)行的最快。 P1P2S1P2振蕩周期時(shí)鐘
18、周期機(jī)器周期機(jī)器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2圖2-12 MCS-51單片機(jī)各種周期的相互關(guān)系4、 振蕩周期、時(shí)鐘周期、機(jī)器周期和指令周期例:假設(shè)MCS-51單片機(jī)外接晶振為12MHz時(shí),那么單片機(jī)的四個(gè)周期的具體值為:振蕩周期1/12MHz1/12s0.0833s時(shí)鐘周期1/6s0.167s機(jī)器周期1s指令周期14s指令的集合稱為程序,執(zhí)行程序的過(guò)程就是執(zhí)行指令的過(guò)程,單片機(jī)執(zhí)行任何一條指令時(shí),都可以分為取指階段和執(zhí)行階段。在取指階段,CPU從程序存儲(chǔ)器中取出指令
19、操作碼,送指令存放器,再經(jīng)指令譯碼器譯碼,產(chǎn)生一系列控制信號(hào),完本錢(qián)指令規(guī)定的操作。5、 MCS-51單片機(jī)指令的取指和執(zhí)行時(shí)序一個(gè)機(jī)器周期P1 P2P1 P2單字節(jié)單周期指令例:INC A單字節(jié)單周期指令例:INC A雙字節(jié)單周期指令例:ADD A,DATA單字節(jié)雙周期指令例:INC DPTR說(shuō)明:ALE信號(hào)是用于鎖存低8位地址的選通信號(hào),每出現(xiàn)一次該信號(hào),單片機(jī)即進(jìn)行一次讀指令操作,當(dāng)指令為多字節(jié)或多周期指令時(shí),只有第一個(gè)ALE信號(hào)進(jìn)行讀指令操作,其余的ALE信號(hào)為無(wú)效操作或讀操作數(shù)操作6、訪問(wèn)片外ROM/RAM指令的時(shí)序外部程序存儲(chǔ)器讀時(shí)序 從外部程序存儲(chǔ)器讀取指令,必須有兩個(gè)信號(hào)進(jìn)行控
20、制:ALE信號(hào)和 信號(hào)外部ROM讀選通脈沖。 外部數(shù)據(jù)存儲(chǔ)器讀時(shí)序第一個(gè)機(jī)器周期是取指周期,是從ROM中讀取指令數(shù)據(jù),第二個(gè)機(jī)器周期才開(kāi)始讀取外部數(shù)據(jù)存儲(chǔ)器RAM中的內(nèi)容。有三個(gè)信號(hào)進(jìn)行控制:ALE信號(hào)、 信號(hào)外部RAM讀選通脈沖和 信號(hào)外部ROM讀選通脈沖。 返回目錄1.7 輸入/輸出I/O端口MCS-51單片機(jī)有4個(gè)雙向并行的8位I/O口P0P3,P0口為開(kāi)漏極輸出,內(nèi)部沒(méi)有上拉電阻,為三態(tài)雙向I/O口,可驅(qū)動(dòng)8個(gè)TTL電路,P1、P2、P3三個(gè)口內(nèi)部有上拉電阻,稱為準(zhǔn)雙向口。1.7.1 P0口1. P0口結(jié)構(gòu)P0口是一個(gè)三態(tài)雙向口, 可作為地址/數(shù)據(jù)分時(shí)復(fù)用口, 也可作為通用I/O接口。
21、 其1位的結(jié)構(gòu)原理下頁(yè)圖中所示。 P0口由8個(gè)這樣的電路組成: 鎖存器起輸出鎖存作用, 8個(gè)鎖存器構(gòu)成了特殊功能存放器P0; 場(chǎng)效應(yīng)管FETV1、 V2組成輸出驅(qū)動(dòng)器, 以增大帶負(fù)載能力; 三態(tài)門(mén)1是引腳輸入緩沖器; 三態(tài)門(mén)2是用于讀鎖存器端口; 與門(mén)3、 反相器4及模擬轉(zhuǎn)換開(kāi)關(guān)構(gòu)成輸出控制電路。 P0口的工作原理P0.0P0.7: 雙向I/O 內(nèi)置場(chǎng)效應(yīng)管上拉 尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X34Vcc21DQCK/Q讀引腳 =1讀鎖存器
22、寫(xiě)鎖存器內(nèi)部總線地址/數(shù)據(jù)控制引腳P0.X34控制=0 時(shí),此腳作輸入口事先必須對(duì)它寫(xiě)“100100截止截止=0VccP0口的工作原理P0.0P0.7: 雙向I/O 內(nèi)置場(chǎng)效應(yīng)管上拉 尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳 =0讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時(shí),此腳作地址/數(shù)據(jù)復(fù)用口:1輸出地址/數(shù)據(jù) =0 時(shí)1011=0導(dǎo)通截止=0VccP0口工作原理P0.0P0.7: 雙向I/O 內(nèi)置場(chǎng)效應(yīng)管上拉 尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為雙向8位數(shù)據(jù)口和輸出低8位地址
23、復(fù)用口;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳 =0讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時(shí),此腳作地址/數(shù)據(jù)復(fù)用口:2輸出地址/數(shù)據(jù) =1 時(shí)1100=1截止導(dǎo)通=1VccP0口的工作原理P0.0P0.7: 雙向I/O 內(nèi)置場(chǎng)效應(yīng)管上拉 尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳 =1讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址/數(shù)據(jù)控制=1引腳P0.X34控制=1時(shí),此腳作地址/數(shù)據(jù)復(fù)用口: 3輸入數(shù)據(jù)時(shí),輸入指令將使引腳與內(nèi)部總線直通VccP0口工
24、作原理P0.0P0.7: 雙向I/O 內(nèi)置場(chǎng)效應(yīng)管上拉 尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。讀鎖存器在端口已處于輸出狀態(tài)的情況下讀鎖存器。讀鎖存器是通過(guò)上方的緩沖器讀鎖存器端的狀態(tài)。在端口已處于輸出狀態(tài)的情況下,不能正常讀取引腳的信號(hào),只能讀取鎖存器的狀態(tài);這樣安排的目的是適應(yīng)對(duì)端口進(jìn)行“讀修改寫(xiě)操作指令的需要。例如“ANL P0,A就屬于這類指令,執(zhí)行時(shí)先讀入P0口鎖存器中的數(shù)據(jù),然后與A的內(nèi)容進(jìn)行邏輯“與,再把結(jié)果送到P0口輸出。從這種意義上說(shuō),該指令又可看作是輸出指令。除MOV類指令外的其它口操作指令都屬于這
25、種情況。 說(shuō)明:一、當(dāng)P0口作為通用I/O接口時(shí), 要注意兩點(diǎn): 在輸出數(shù)據(jù)1時(shí), 由于V2截止, 輸出級(jí)是漏極開(kāi)路電路, 要使“1信號(hào)正常輸出, 必須外接上拉電阻。 P0口作為通用I/O使用時(shí)是一準(zhǔn)雙向口。二、MCS51單片機(jī)有不少指令可直接進(jìn)行端口操作, 例如: ANL P0, A ;P0P0A ORL P0, data ; P0P0 data DEL P0 ; P0P011.7.2 P1口P1口為準(zhǔn)雙向口, 其1位的內(nèi)部結(jié)構(gòu)如以下圖所示。 它在結(jié)構(gòu)上與P0口的區(qū)別在于輸出驅(qū)動(dòng)局部,其輸出驅(qū)動(dòng)局部由場(chǎng)效應(yīng)管V1與內(nèi)部上拉電阻組成。當(dāng)其某位輸出高電平時(shí), 可以提供拉電流負(fù)載, 不必象P0口那
26、樣需要外接電阻。 從功能上來(lái)看P1只有一種功能對(duì)MCS51子系列, 即通用輸入輸出I/O接口, 具有輸入、輸出、 端口操作3種工作方式, 每1位口線能獨(dú)立地用作輸入或輸出線。 P1口工作原理P1.0P1.7: 準(zhǔn)雙向I/O口內(nèi)置了上拉電阻 輸出時(shí)一切照常,僅在作輸入口用時(shí)要先對(duì)其 寫(xiě)“1。21DQCK/Q讀引腳讀鎖存器寫(xiě)鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻21DQCK/Q讀引腳讀鎖存器寫(xiě)鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻輸出數(shù)據(jù) = 1 時(shí)110截止=1P1口工作原理P1.0P1.7: 準(zhǔn)雙向I/O口內(nèi)置了上拉電阻 輸出時(shí)一切照常,僅在作輸入口用時(shí)要先對(duì)其 寫(xiě)“1。21DQC
27、K/Q讀引腳讀鎖存器寫(xiě)鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻輸出數(shù)據(jù) = 0 時(shí)001=0導(dǎo)通P1口工作原理P1.0P1.7: 準(zhǔn)雙向I/O口內(nèi)置了上拉電阻 輸出時(shí)一切照常,僅在作輸入口用時(shí)要先對(duì)其 寫(xiě)“1。21DQCK/Q讀引腳 =1讀鎖存器寫(xiě)鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻輸入數(shù)據(jù)時(shí),要先對(duì)其寫(xiě)“1110截止P1口工作原理P1.0P1.7: 準(zhǔn)雙向I/O口內(nèi)置了上拉電阻 輸出時(shí)一切照常,僅在作輸入口用時(shí)要先對(duì)其 寫(xiě)“1。1.7.3 P2口P2口也是一準(zhǔn)雙向口, 其1位的內(nèi)部結(jié)構(gòu)如下頁(yè)圖所示。 它具有通用I/O接口或高8位地址總線輸出兩種功能, 所以其輸出驅(qū)動(dòng)結(jié)構(gòu)比P1口輸
28、出驅(qū)動(dòng)結(jié)構(gòu)多了一個(gè)輸出模擬轉(zhuǎn)換開(kāi)關(guān)MUX和反相器3。P2口工作原理P2.0P2.7: 雙向I/O 內(nèi)置了上拉電阻 尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址高8位控制引腳 P2.X3內(nèi)部上拉電阻Vcc21DQCK/Q讀引腳 =0讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址高8位控制 引腳P2.X控制=0時(shí),此腳作通用輸出口: 輸出=1時(shí)110截止3內(nèi)部上拉電阻11Vcc=1=0P2口工作原理P2.0P2.7: 雙向I/O 內(nèi)置了上拉電阻 尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口
29、使用。21DQCK/Q讀引腳 =0讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址高8位控制 引腳P2.X控制=0時(shí),此腳作通用輸出口:輸出=0時(shí)001導(dǎo)通3內(nèi)部上拉電阻00Vcc=0=0P2口工作原理P2.0P2.7: 雙向I/O 內(nèi)置了上拉電阻 尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳 =0讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址高8位控制=1 引腳P2.X控制=1 時(shí),此腳作高8位地址A8A15輸出口:當(dāng)輸出 =1 時(shí)10截止3內(nèi)部上拉電阻1=1Vcc=1P2口工作原理P2.0P2.7: 雙向I/O 內(nèi)置了上拉電阻 尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;
30、不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。21DQCK/Q讀引腳 =0讀鎖存器寫(xiě)鎖存器內(nèi)部總線地址高8位控制=1 引腳P2.X01導(dǎo)通3內(nèi)部上拉電阻0=0Vcc=0控制=1 時(shí),此腳作高8位地址A8A15輸出口:當(dāng)輸出 =0 時(shí)P2口工作原理P2.0P2.7: 雙向I/O 內(nèi)置了上拉電阻 尋址外部程序存儲(chǔ)器時(shí)輸出高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。說(shuō)明:當(dāng)作為準(zhǔn)雙向通用I/O接口使用時(shí), 控制信號(hào)使轉(zhuǎn)換開(kāi)關(guān)接向左側(cè), 鎖存器Q端經(jīng)反相器3接V1, 其工作原理與P1相同, 也具有輸入、 輸出、 端口操作三種工作方式, 負(fù)載能力也與P1口相同。1.7.4 P3口P
31、3口的1位結(jié)構(gòu)如下頁(yè)圖所示。 它的輸出驅(qū)動(dòng)由與非門(mén)3、 V1組成, 比P0、 P1、P2口結(jié)構(gòu)多了一個(gè)緩沖器4。 P3口除了可作為通用準(zhǔn)雙向I/O接口外, 每1根線還具有第2功能。 P3口工作原理P3.0P3.7: 雙功能口內(nèi)置了上拉電阻 它具有特定的第二功能。在不使用它的第二功能時(shí)它就是普通的通用準(zhǔn)雙向I/O口。21DQCK/Q讀引腳讀鎖存器寫(xiě)鎖存器內(nèi)部總線第二功能輸出引腳 P3.X3內(nèi)部上拉電阻Vcc第二功能輸入421DQCK/Q讀引腳讀鎖存器寫(xiě)鎖存器內(nèi)部總線第二功能輸出WR,RD,TxD引腳 P3.X3內(nèi)部上拉電阻Vcc4第二功能輸出時(shí),內(nèi)部自動(dòng) D=1111反相器P3口工作原理P3.0
32、P3.7: 雙功能口內(nèi)置了上拉電阻 它具有特定的第二功能。在不使用它的第二功能時(shí)它就是普通的通用準(zhǔn)雙向I/O口。21DQCK/Q讀引腳讀鎖存器寫(xiě)鎖存器內(nèi)部總線此端自動(dòng)1引腳 P3.X3內(nèi)部上拉電阻Vcc 第二功能輸入RxD,T0,T1,INT0,INT14第二功能輸入時(shí),信號(hào)經(jīng)緩沖器4 直接進(jìn)入內(nèi)總線1110截止P3口工作原理P3.0P3.7: 雙功能口內(nèi)置了上拉電阻 它具有特定的第二功能。在不使用它的第二功能時(shí)它就是普通的通用準(zhǔn)雙向I/O口。 P3口的第二功能表P3.2P3.3位線引腳第二功能P3.010RXD(串行輸入口)P3.111TXD(串行輸出口)12INT0(外部中斷0)13INT
33、1(外部中斷1)P3.414T0(定時(shí)器0的計(jì)數(shù)輸入)P3.515T1(定時(shí)器1的計(jì)數(shù)輸入)16WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)脈沖)17RD(外部數(shù)據(jù)存儲(chǔ)器讀脈沖)P3.7 P3.6 1.7. 5 端口的負(fù)載能力及接口要求P0口得每一位輸出可驅(qū)動(dòng)8個(gè)LS TTL輸入,但把它當(dāng)通用I/O口用時(shí),輸出級(jí)屬漏極開(kāi)路,在驅(qū)動(dòng)NMOS電路時(shí)應(yīng)外接上拉電阻。當(dāng)P0口作地址數(shù)據(jù)總線使用時(shí),那么無(wú)需外接上拉電阻。2. 1P3口的輸出級(jí)接有上拉電阻,它們的每一位輸出可驅(qū)動(dòng)3個(gè)LS TTL輸入。對(duì)于HMOS型的單片機(jī),當(dāng)1和P3口作輸入時(shí),任何TTL或NMOS電路都能以正常的方式去驅(qū)動(dòng)這些口。不管是HMOS型的還是NMO
34、S型的單片機(jī),它們的1P3的輸入端都可以被集電極開(kāi)路或漏級(jí)開(kāi)路電路所驅(qū)動(dòng),而無(wú)需上拉電阻。3. CHMOS端口只能提供幾毫安的輸出電流,故當(dāng)作為輸出口去驅(qū)動(dòng)一個(gè)普通晶體管的基極時(shí),應(yīng)在端口與晶體管基極間串接一個(gè)電阻,以限制高電平輸出時(shí)的電流。返回目錄1.8 定時(shí)器/計(jì)數(shù)器一、根本概念1計(jì)數(shù):計(jì)數(shù)是指對(duì)外部事件的個(gè)數(shù)進(jìn)行計(jì)量。其實(shí)質(zhì)就是對(duì)外部輸入脈沖的個(gè)數(shù)進(jìn)行計(jì)數(shù)。實(shí)現(xiàn)計(jì)數(shù)功能的器件稱為計(jì)數(shù)器。2定時(shí):8051單片機(jī)中的定時(shí)器和計(jì)數(shù)器是一個(gè)部件,只不過(guò)計(jì)數(shù)器記錄的是外界發(fā)生的事件,而定時(shí)器那么是由單片機(jī)內(nèi)部提供一個(gè)非常穩(wěn)定的計(jì)數(shù)源進(jìn)行定時(shí)的。這個(gè)計(jì)數(shù)源是由單片機(jī)的晶振經(jīng)過(guò)12分頻后獲得的一個(gè)脈沖
35、源。所以定時(shí)器計(jì)數(shù)脈沖的時(shí)間間隔與晶振有關(guān)。3定時(shí)的種類軟件定時(shí):利用執(zhí)行一個(gè)循環(huán)程序進(jìn)行時(shí)間延遲。其特點(diǎn)是定時(shí)時(shí)間精確,不需外加硬件電路,但占用CPU時(shí)間。因此軟件定時(shí)的時(shí)間不宜過(guò)長(zhǎng)。硬件定時(shí):利用硬件電路實(shí)現(xiàn)定時(shí)。其特點(diǎn)是不占用CPU時(shí)間,通過(guò)改變電路元器件參數(shù)來(lái)調(diào)節(jié)定時(shí),但使用不夠靈活方便。對(duì)于時(shí)間較長(zhǎng)的定時(shí),常用硬件電路來(lái)實(shí)現(xiàn)??删幊潭〞r(shí)器:通過(guò)專用的定時(shí)器/計(jì)數(shù)器芯片實(shí)現(xiàn)。其特點(diǎn)是通過(guò)對(duì)系統(tǒng)時(shí)鐘脈沖進(jìn)行計(jì)數(shù)實(shí)現(xiàn)定時(shí),定時(shí)時(shí)間可通過(guò)程序設(shè)定的方法改變,使用靈活方便。也可實(shí)現(xiàn)對(duì)外部脈沖的計(jì)數(shù)功能。二、MCS-51內(nèi)部定時(shí)器/計(jì)數(shù)器 MCS-51單片機(jī)內(nèi)部有兩個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器
36、,簡(jiǎn)稱為T(mén)0和T1,均可作定時(shí)器用,也可用作計(jì)數(shù)器,它們均是二進(jìn)制加法計(jì)數(shù)器,當(dāng)計(jì)數(shù)器計(jì)滿,回零時(shí)能自動(dòng)產(chǎn)生溢出中斷請(qǐng)求,表示定時(shí)時(shí)間已到或計(jì)數(shù)已終止。適用于定時(shí)控制、延時(shí)、外部計(jì)數(shù)和檢測(cè)等。當(dāng)它對(duì)外部事件進(jìn)行計(jì)數(shù)時(shí),由于頻率不固定,此時(shí)稱之為計(jì)數(shù)器;當(dāng)它對(duì)內(nèi)部固定頻率的機(jī)器周期進(jìn)行計(jì)數(shù)時(shí),稱之為定時(shí)器。定時(shí)器/計(jì)數(shù)器的根本結(jié)構(gòu)1定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)組成:16位加法計(jì)數(shù)器、工作方式存放器TMOD和控制存放器TCON。T0: TL0低8位和TH0高8位T1: TL1低8位和TH1高8位定時(shí)器:對(duì)片內(nèi)機(jī)器時(shí)鐘(周期方波)進(jìn)行計(jì)數(shù) 計(jì)數(shù)速率為振蕩器速率的1/12。計(jì)數(shù)器:對(duì)Tx引腳輸入的負(fù)脈沖進(jìn)行計(jì)
37、數(shù) 外部輸入的計(jì)數(shù)脈沖的最高頻率為振蕩器頻 率的1/24。2說(shuō)明:上圖中,TH1,TL1是定時(shí)器T1的計(jì)數(shù)器,TH0,TL0是T0的計(jì)數(shù)器。TH1和TL1、TH0和TL0分別構(gòu)成兩個(gè)16位加法計(jì)數(shù)器,他們的工作狀態(tài)及工作方式由兩個(gè)特殊功能存放器TMOD和TCON的各位來(lái)決定。工作狀態(tài)有定時(shí)和計(jì)數(shù)兩種,由TMOD的第2位或第6位決定。工作模式有四種,也是由TMOD其中的兩位來(lái)決定,TMOD和TCON的內(nèi)容由軟件寫(xiě)入。當(dāng)T0或T1加1溢出后,記滿溢出信號(hào)使TCON中的TF0或TF1置1,作為定時(shí)器/計(jì)數(shù)器的溢出中斷標(biāo)志。三、T0和T1的控制和狀態(tài)存放器1、定時(shí)器模式控制存放器TMOD (89H)G
38、ATE C / T M1 M0 GATE C / T M1 M0T1T0M1,M0:工作方式選擇位 。 =00:13位定時(shí)器/計(jì)數(shù)器用它無(wú)益,不要記它!; =01:16位定時(shí)器/計(jì)數(shù)器經(jīng)常用到; =10:可自動(dòng)重裝的8位定時(shí)器/計(jì)數(shù)器經(jīng)常用到; =11:T0 分為2個(gè)8位定時(shí)器/計(jì)數(shù)器;僅適用于T0幾乎無(wú)用。GATE C / T M1 M0 GATE C / T M1 M0T1T0C/T:計(jì)數(shù)器/定時(shí)器選擇位 = 1 外部事件計(jì)數(shù)器,對(duì)T0/T1引腳輸入的外部事件的負(fù)脈沖計(jì)數(shù); = 0 片內(nèi)時(shí)鐘定時(shí)器。對(duì)機(jī)器周期脈沖計(jì)數(shù)定時(shí)GATE門(mén)控位: Timer可由軟件與硬件兩者控制 GATE = 0
39、普通用法 Timer的啟/停由軟件對(duì)TRx位寫(xiě)“1/“0控制 GATE = 1 門(mén)控用法 Timer的啟/停由軟件對(duì)TRx位寫(xiě)“1/“0 和在INTx引腳 上出現(xiàn)的信號(hào)的高/低共同控制即只有當(dāng)INTx引腳為高 電平且TRx置1時(shí),相應(yīng)的定時(shí)器計(jì)數(shù)器才被選通工作, 這時(shí)可用于測(cè)量在INTx端出現(xiàn)的正脈沖的寬度。GATE C / T M1 M0 GATE C / T M1 M0T1T0GATE位的控制邏輯圖2、定時(shí)器控制存放器TCON (88H)TF1TR1TF0TR0IE1IT1IE0IT0TFx: Timer0/1計(jì)數(shù)溢出標(biāo)志位。 =1 計(jì)數(shù)溢出; =0 計(jì)數(shù)未滿TFx標(biāo)志位可用于申請(qǐng)中斷或供
40、CPU查詢。 在進(jìn)入中斷效勞程序后由硬件自動(dòng)清零;但在 查詢方式時(shí)必須軟件清零。TRx: Timer0/1運(yùn)行控制位。 =1 啟動(dòng)計(jì)數(shù); =0 停止計(jì)數(shù)TF1TR1TF0TR0IE1IT1IE0IT0IE0/IE1:外部中斷申請(qǐng)標(biāo)志位:檢測(cè)到在INTX引腳上出現(xiàn)的外部中斷信號(hào)的下降沿時(shí),由硬件置位,請(qǐng)求中斷.進(jìn)入中斷效勞后被硬件自動(dòng)去除。 =0:沒(méi)有外部中斷申請(qǐng); =1:有外部中斷申請(qǐng)。IT0/IT1:外部中斷請(qǐng)求的觸發(fā)方式選擇位: =0:在INT0/INT1端申請(qǐng)中斷的信號(hào)低電平有效; =1:在INT0/INT1端申請(qǐng)中斷的信號(hào)負(fù)跳變有效。定時(shí)器T0/T1 中斷申請(qǐng)過(guò)程定時(shí)/計(jì)數(shù)器可按片內(nèi)機(jī)
41、器周期定時(shí),也可對(duì)由T0/T1引腳輸入一個(gè)負(fù)脈沖進(jìn)行加法計(jì)數(shù)在已經(jīng)開(kāi)放T0/T1中斷允許且已被啟動(dòng)的前提下;T0/T1加滿溢出時(shí) TF0/TF1標(biāo)志位自動(dòng)置“1;檢測(cè)到TCON中TF0/TF1變“1后,將產(chǎn)生指令 LCALL 000BH/LCALL 001BH 執(zhí)行中斷效勞程序; TF0/TF1標(biāo)志位會(huì)自動(dòng)清“0,以備下次中斷申請(qǐng)。四、定時(shí)器結(jié)構(gòu)與工作方式1、工作方式0 M1M0=00,13位定時(shí)器/計(jì)數(shù)器振蕩器12TLx THx (5位) (8位)TFx申請(qǐng)中斷Tx端TRx位GATE位INTx端1&C/T=0C/T=1控制 =1開(kāi)關(guān)接通或門(mén)與門(mén)說(shuō)明:工作方式0 的編程要點(diǎn)THx/TLx賦初值
42、:THx賦高8位,TLx賦低5位(高3位未用);TMOD選方式: 寫(xiě)“M1,M0=00選方式0;假設(shè)不用門(mén)控位,直接用軟件寫(xiě)TRx控制啟/停;假設(shè)使用門(mén)控位,先置位TRx,然后由INTx端的高/低電平來(lái)控制其啟/停;假設(shè)要允許中斷,還須先置位ETx、EA等中斷允許控制位,并編寫(xiě)中斷效勞程序;假設(shè)不用中斷,可查詢“計(jì)數(shù)溢出標(biāo)志TFx的方式工作,但溢出標(biāo)志TFx需軟件清02、工作方式1 M1M0=01 ,16位定時(shí)器/計(jì)數(shù)器振蕩器12TLx THx (8位) (8位)TFx申請(qǐng)中斷Tx端TRx位GATE位INTx端1&C/T=0C/T=1控制 =1開(kāi)關(guān)接通或門(mén)與門(mén)說(shuō)明:工作方式1 的編程要點(diǎn)THx
43、/TLx賦初值:THx賦高8位,TLx賦低8位;TMOD選方式: 寫(xiě)“M1,M0=01選方式1;假設(shè)不用門(mén)控位,直接用軟件寫(xiě)TRx控制啟/停;假設(shè)使用門(mén)控位,先置位TRx,然后由INTx端的高/低電平來(lái)控制其啟/停;假設(shè)要允許中斷,還須先置位ETx、EA等中斷允許控制位,并編寫(xiě)中斷效勞程序假設(shè)不用中斷,可查詢“計(jì)數(shù)溢出標(biāo)志TFx的方式工作,但溢出標(biāo)志TFx需軟件清03、工作方式2: M1M0=10 ,8位自動(dòng)重裝載定時(shí)器/計(jì)數(shù)器振蕩器12TLx (8位)TFx申請(qǐng)中斷Tx端TRx位GATE位INTx端1&C/T=0C/T=1控制 =1開(kāi)關(guān)接通或門(mén)與門(mén)THx (8位)溢出位門(mén)開(kāi)說(shuō)明:工作方式 2
44、 的編程16位定時(shí)器/計(jì)數(shù)器被拆成兩個(gè)8位存放器THX和TLX,CPU在對(duì)它們初始化時(shí)必須裝入相同的計(jì)數(shù)初值,并以TLX作計(jì)數(shù)器,THX作為預(yù)置存放器。在TLX計(jì)數(shù)到達(dá)0FFH再加“1時(shí),TLX將溢出,進(jìn)位位直接進(jìn)入“TFX去申請(qǐng)中斷,同時(shí)翻開(kāi)三態(tài)門(mén),使THX中的值以硬件方式自動(dòng)重裝進(jìn)TLX。這種工作方式很適合于那些重復(fù)計(jì)數(shù)的應(yīng)用場(chǎng)合如串行數(shù)據(jù)通信的波特率發(fā)生器。TMOD存放器寫(xiě)“M1M0 =10選中方式2其他用法與各種方式1完全相同4、工作方式 3: M1M0=11,2個(gè)8位定時(shí)器/計(jì)數(shù)器,僅適用于T0振蕩器12TL0 (8位)TF0申請(qǐng)中斷T0端TR0位GATE位INT0端1&C/T=0C
45、/T=1控制 =1開(kāi)關(guān)接通或門(mén)與門(mén)TH0 (8位)TF1申請(qǐng)中斷TR1位控制 =1T0成為雙8位Timer T1不再有Timer功能 TF1,TR1出借給TH0 說(shuō)明:T0:組織成TL0和TH0兩個(gè)8位定時(shí)器/計(jì)數(shù)器TL0為8位定時(shí)器/計(jì)數(shù)器,使用T0原有控制資源C/T,TR0,GATE,其功能和操作與方式0或方式1完全相同;TH0只能作為8位定時(shí)器,占用T1的控制位TR1和TF1,只能對(duì)片內(nèi)機(jī)器周期脈沖計(jì)數(shù)。T1:不再是定時(shí)器/計(jì)數(shù)器。T1 的TR1和TF1出借給TH0當(dāng)控制位使用,剩下的TH1/TL1存放器只能當(dāng)作普通存放器用。五、定時(shí)器/計(jì)數(shù)器的應(yīng)用定時(shí)器/計(jì)數(shù)器可按片內(nèi)機(jī)器周期定時(shí),也
46、可對(duì)由T0/T1引腳輸入一個(gè)負(fù)脈沖進(jìn)行加法計(jì)數(shù)。在應(yīng)用時(shí),其工作方式和工作過(guò)程均可通過(guò)程序設(shè)定和控制,因此定時(shí)器/計(jì)數(shù)器在工作前必須先對(duì)其進(jìn)行初始化和計(jì)算設(shè)置初值。1. 定時(shí)器T0/T1 中斷申請(qǐng)過(guò)程:1在已經(jīng)開(kāi)放T0/T1中斷允許且已被啟動(dòng)的前提下,T0/T1加1計(jì)滿溢出時(shí) TF0/TF1標(biāo)志位自動(dòng)置“1 ;2CPU 檢測(cè)到TCON中TF0/TF1變“1后,將產(chǎn)生指令:LCALL 000BH/LCALL 001BH 執(zhí)行中斷效勞程序;3TF0/TF1標(biāo)志位由硬件自動(dòng)清“0,以備下次中斷申請(qǐng)。2. 定時(shí)器/計(jì)數(shù)器初始化的步驟1寫(xiě)TMOD,設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式;2計(jì)算定時(shí)器/計(jì)數(shù)器的初值
47、,寫(xiě)入TH0/TH1、TL0/TL1。3設(shè)置IE、IP,以開(kāi)放相應(yīng)的中斷和設(shè)定中斷優(yōu)先級(jí)。3. 定時(shí)器/計(jì)數(shù)器的定時(shí)器/計(jì)數(shù)器范圍1工作方式0:13位定時(shí)器/計(jì)數(shù)器方式 最大計(jì)數(shù)值= 213 = 81922工作方式1:16位定時(shí)器/計(jì)數(shù)器方式 最大計(jì)數(shù)值= 216 = 655363工作方式2和工作方式3:8位的定時(shí)器/計(jì)數(shù)器方式 最大計(jì)數(shù)值= 28 = 256 3. 計(jì)數(shù)器初值的計(jì)算方法:用最大計(jì)數(shù)量減去需要的計(jì)數(shù)次數(shù)。即: TC=MC 其中:TC計(jì)數(shù)器需要預(yù)置的初值; M 計(jì)數(shù)器的模值最大計(jì)數(shù)值; 方式0時(shí),M=213;方式1時(shí),M=216;方式 2, 3時(shí),M=28; C 計(jì)數(shù)器計(jì)滿回0所
48、需的計(jì)數(shù)值,即設(shè) 計(jì)任務(wù)要求的計(jì)數(shù)值。例如:流水線上一個(gè)包裝是12盒,要求每到12盒就產(chǎn)生一個(gè)動(dòng)作,用單片機(jī)的工作方式0來(lái)控制,那么應(yīng)當(dāng)預(yù)置的初值為: TC = M C = 213 12=81804. 定時(shí)器初值的計(jì)算定時(shí)時(shí)間的計(jì)算公式為:T=MTCT0 或TC=MT/T0 其中:T定時(shí)器的定時(shí)時(shí)間,即設(shè)計(jì)任務(wù)要求的定時(shí)時(shí)間; T0計(jì)數(shù)器計(jì)數(shù)脈沖的周期,即單片機(jī)系統(tǒng)主頻周期的 12倍; M計(jì)數(shù)器的模值; TC定時(shí)器需要預(yù)置的初值。假設(shè)設(shè)初值TC=0,那么定時(shí)器定時(shí)時(shí)間為最大。假設(shè)設(shè)單片機(jī)系統(tǒng)主頻為12MHz,那么各種工作方式定時(shí)器的最大定時(shí)時(shí)間為:工作方式0: Tmax=2131s=8.192
49、ms工作方式1: Tmax=2161s=65.536ms工作方式2和3:Tmax=281s=0.256ms返回目錄1.9 串行接口一、概述1、關(guān)于通信的一些概念通信:?jiǎn)纹瑱C(jī)與外界進(jìn)行信息交換統(tǒng)稱為通信。8051單片機(jī)的通信方式有兩種:并行通信:數(shù)據(jù)的各位同時(shí)發(fā)送或接收。特點(diǎn)是傳送速度快、效率高,但本錢(qián)高。適用于短距離傳送數(shù)據(jù)。計(jì)算機(jī)內(nèi)部的數(shù)據(jù)傳送一般均采用并行方式。串行通信:數(shù)據(jù)一位一位順序發(fā)送或接收。特點(diǎn)是傳送速度慢,但本錢(qián)低。適用于較長(zhǎng)距離傳送數(shù)據(jù)。計(jì)算機(jī)與外界的數(shù)據(jù)傳送一般均采用串行方式。 幀frame:從起始位開(kāi)始到停止位結(jié)束的全部?jī)?nèi)容稱之為一幀,幀是一個(gè)字符的完整通信格式,因此也就把
50、串行通信的字符格式稱之為幀格式。起始位:發(fā)送器是通過(guò)發(fā)送起始位而開(kāi)始一個(gè)字符的傳送。起始位使數(shù)據(jù)線處于“space狀態(tài)。數(shù)據(jù)位:起始位之后就傳送數(shù)據(jù)位。在數(shù)據(jù)位中,低位在前左,高位在后右。數(shù)據(jù)位可以是5、6、7或8位。奇偶校驗(yàn)位:用于對(duì)字符傳送作正確性檢查。共有3種可能,即奇校驗(yàn)、偶校驗(yàn)和無(wú)校驗(yàn)。停止位:停止位在最后,用以標(biāo)志一個(gè)字符傳送的結(jié)束,它對(duì)應(yīng)于mark狀態(tài)。停止位可能是1、1. 5或2位,在實(shí)際應(yīng)用中根據(jù)需要確定。2. 數(shù)據(jù)通信的制式單工方式:?jiǎn)喂ば问降臄?shù)據(jù)傳送是單向的。通信雙方中一方固定為發(fā)送端,另一方那么固定為接收端。單工形式的串行通信,只需要一條數(shù)據(jù)線。半雙工方式:半雙工形式的
51、數(shù)據(jù)傳送也是雙向的。但任何時(shí)刻只能由其中的一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù)。因此半雙工形式既可以使用一條數(shù)據(jù)線,也可以使用兩條數(shù)據(jù)線。全雙工方式:全雙工形式的數(shù)據(jù)傳送是雙向的,且可以同時(shí)發(fā)送和接收數(shù)據(jù),因此全雙工形式的串行通信需要兩條數(shù)據(jù)線。 3. 串行通信的分類串行數(shù)據(jù)通信按數(shù)據(jù)傳送方式可分為異步通信和同步通信兩種形式:同步方式:以數(shù)據(jù)塊為單位進(jìn)行數(shù)據(jù)傳送,包括同步字符、數(shù)據(jù)塊和校驗(yàn)字符CRC。優(yōu)點(diǎn)是數(shù)據(jù)傳輸速率較高,缺點(diǎn)是要求發(fā)送時(shí)鐘和接收時(shí)鐘保持嚴(yán)格同步。數(shù)據(jù)格式如以下圖所示。異步方式:以字符為單位進(jìn)行數(shù)據(jù)傳送,每一個(gè)字符均按固定的字符格式傳送,又被稱為幀。優(yōu)點(diǎn)是不需要傳送同步脈沖,可靠性高
52、,所需設(shè)備簡(jiǎn)單;缺點(diǎn)是字符幀中因包含有起始位和停止位而降低了有效數(shù)據(jù)的傳輸速率。數(shù)據(jù)格式如以下圖所示:4. 串行數(shù)據(jù)通信的波特率每秒鐘傳送二進(jìn)制數(shù)的信號(hào)數(shù)即二進(jìn)制數(shù)的位數(shù)定義為波特率比特率,單位是bpsbit per second或?qū)懗蒪/s位/秒。例如:異步串行通信的數(shù)據(jù)傳送的速率是120字符/秒,而每個(gè)字符規(guī)定包含10位數(shù)字,那么傳輸波特率為: 120字符/秒 10位/字符=1200位/秒= 1200bps二、51單片機(jī)串行接口的結(jié)構(gòu)SBUF發(fā)SBUF收發(fā)送控制器 TI接收控制器 RI移位存放器波特率發(fā)生器T11A累加器(門(mén))移位存放器RxDTxD去申請(qǐng)中斷引腳引腳CPU內(nèi)部MCS-51單
53、片機(jī)內(nèi)部有一個(gè)全雙工的串行通信口P3.0、P3.1 ,既可作UART通用異步接收/發(fā)送器用,也可作同步移位存放器使用,還可用于網(wǎng)絡(luò)通信,其幀格式可有8位、10位和11位,并能設(shè)置各種波特率。1串行口存放器結(jié)構(gòu) 1兩個(gè)物理上獨(dú)立的同名的接收/發(fā)送緩沖存放器SBUF 指令 MOV SBUF,A 啟動(dòng)一次數(shù)據(jù)發(fā)送, 指令 MOV A,SBUF 完成一次數(shù)據(jù)接收, 即向發(fā)送緩沖 器SBUF寫(xiě)入數(shù)據(jù)即可發(fā)送數(shù)據(jù),從接收緩沖器SBUF讀 出數(shù)據(jù)即可接收數(shù)據(jù)。2輸入和輸出移位存放器和控制器等組成。32個(gè)SFR存放器SCON和PCON,用于串行口的初始化編程。4接收/發(fā)送數(shù)據(jù),無(wú)論是否采用中斷方式工作,每接收
54、/發(fā)送一個(gè)數(shù)據(jù)都必須用指令對(duì) RI/TI 清0,以備下一次收/發(fā)。三、串口通信控制存放器SCON98HSM0SM1SM2RENTB8RB8TIRISM0、SM1:串行口工作方式選擇位。用于設(shè)定串行口的工作方式,兩個(gè)選擇位對(duì)應(yīng)4種工作方式,如下表所示:SM0 SM1工作方式功能波特率 0 0方式0同步移位寄存器fosc/12 0 1方式110位異步收發(fā)波特率可變 1 0方式211位異步收發(fā)fosc/32或fosc/64 1 1方式311位異步收發(fā)波特率可變SM2:多機(jī)通信控制位。主要在方式2和方式3下使用。在方式0時(shí), SM2不用,應(yīng)設(shè)置為0狀態(tài)。在方式1下, SM2也應(yīng)設(shè)置為0,此時(shí),RI只有
55、在接收電路接收到停止位時(shí)“1時(shí)才被激活成“1,并能自動(dòng)發(fā)出串行口中斷請(qǐng)求。在方式2或方式3下,假設(shè)SM2 =0,串行口以單機(jī)發(fā)送或接收方式工作,TI和RI以正常方式被激活,但不會(huì)引起中斷請(qǐng)求;假設(shè)SM2 =1且RB8=1時(shí),RI不僅被激活而且可以向CPU請(qǐng)求中斷。REN:允許接收控制位。假設(shè)使REN1,那么允許串行口接收數(shù)據(jù);假設(shè)使REN0,那么禁止串行口接收數(shù)據(jù)。TB8:方式2、3中,是要發(fā)送的第9位數(shù)據(jù);在雙機(jī)通信中,用于對(duì)接收到的數(shù)據(jù)進(jìn)行奇偶校驗(yàn);在多機(jī)通信中,用作判斷地址幀/數(shù)據(jù)幀,TB8=0 表示發(fā)送的是數(shù)據(jù),TB8=1 表示發(fā)送的是地址。RB8:在方式2、3中,用于存放收到的第9位
56、數(shù)據(jù);在雙機(jī)通信中,作為奇偶校驗(yàn);在多機(jī)通信中,用作區(qū)別地址幀/數(shù)據(jù)幀的標(biāo)志。RI,TI:串行口收/發(fā)數(shù)據(jù)申請(qǐng)中斷標(biāo)志位1 申請(qǐng)中斷; 0 不申請(qǐng)中斷。四、電源控制存放器PCON97H 不能按位尋址SMOD_GF1GF0PDIDLSMOD:在串行口工作方式 1、2、3 中, 是波特率加倍位 =1 時(shí),波特率加倍 =0 時(shí),波特率不加倍。 (在PCON中只有這一個(gè)位與串口有關(guān)) GF1,GF0:用戶可自行定義使用的通用標(biāo)志位PD:掉電方式控制位。等于0時(shí)為常規(guī)工作方式,等于1時(shí)進(jìn)入掉電方式。 振蕩器停振 片內(nèi)RAM和SRF的值保持不變 P0P3口維持原狀。 程序停止 只有復(fù)位能使之退出掉電方式。
57、IDL:待機(jī)方式(空閑方式)控制位。等于0時(shí)為常規(guī)工作方式,等于1時(shí),進(jìn)入待機(jī)方式。 振蕩器繼續(xù)振蕩 中斷、定時(shí)器、串口功能繼續(xù)有效 片內(nèi)RAM和SRF保持不變 CPU狀態(tài)保持、P0P3口維持原狀 程序停頓。 中斷和復(fù)位能退出待機(jī),繼續(xù)后面的程序。五、串行接口串行通信的根本特征是數(shù)據(jù)逐位順序進(jìn)行傳送串行通信的格式及約定如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號(hào)電平等不同,形成了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn)。常見(jiàn)的有:通用異步收發(fā)器(UART)本課程介紹的串口通用串行總線USBI2C總線CAN總線SPI總線RS-485,RS-232C,RS422A標(biāo)準(zhǔn)等等下一頁(yè)UART:Universal Asy
58、nchronous Receiver/Transmitter通用異步收發(fā)UART是用于控制計(jì)算機(jī)與串行設(shè)備的芯片。它提供了RS-232C數(shù)據(jù)終端設(shè)備接口,這樣計(jì)算機(jī)就可以和調(diào)制解調(diào)器或其它使用RS-232C接口的串行設(shè)備通信了。作為接口的一局部,UART還提供以下功能:將由計(jì)算機(jī)內(nèi)部傳送過(guò)來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流。將計(jì)算機(jī)外部來(lái)的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計(jì)算機(jī)內(nèi)部使用并行數(shù)據(jù)的器件使用。在輸出的串行數(shù)據(jù)流中參加奇偶校驗(yàn)位,并對(duì)從外部接收的數(shù)據(jù)流進(jìn)行奇偶校驗(yàn)。在輸出數(shù)據(jù)流中參加啟停標(biāo)記,并從接收數(shù)據(jù)流中刪除啟停標(biāo)記處理由鍵盤(pán)或鼠標(biāo)發(fā)出的中斷信號(hào)鍵盤(pán)鼠標(biāo)也是串行設(shè)備。可以處理計(jì)算機(jī)與外部串
59、行設(shè)備的同步管理問(wèn)題。返回USB: Universal Serial Bus通用串行總線 最多可連接127臺(tái)外設(shè),由于USB支持熱插拔,即插即用的優(yōu)點(diǎn),所以USB接口已經(jīng)成為計(jì)算機(jī)的標(biāo)準(zhǔn)接口。USB目前有兩個(gè)版本,USB1.1的最高數(shù)據(jù)傳輸率為12Mbps,USB2.0那么提高到480Mbps。注意:這里的b是Bit的意思,1MB/s兆字節(jié)/秒=8MBPS兆位/秒,12Mbps=1.5MB/s。二者的物理接口完全一致,數(shù)據(jù)傳輸率上的差異完全由PC的USB host控制器以及USB設(shè)備決定。USB可以通過(guò)連接線為設(shè)備提供最高5V,500mA的電力。另外,市面上的某些USB相關(guān)產(chǎn)品標(biāo)注為USB 2
60、.0 Full Speed的其實(shí)就是USB 1.1,而標(biāo)注為USB 2.0 High Speed的才是真正的USB2.0。USB接口有3種類型: Type A:一般用于PC Type B:一般用于USB設(shè)備 Mini-USB:一般用于數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、測(cè)量?jī)x器以及移動(dòng)硬盤(pán)等Type A左邊為T(mén)ype A,右邊為T(mén)ype B移動(dòng)硬盤(pán)盒上的USB Type B接口 帶Mini-USB接口的USB線 返回I2C總線 inter integrated circuit bus 內(nèi)部集成電路總線 I2C總線是一種由PHILIPS公司開(kāi)發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。 I2C總線是由數(shù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 道路景觀設(shè)施承諾書(shū)
- 煙草產(chǎn)品收款流程
- 印刷廠門(mén)窗施工合同協(xié)議書(shū)
- 健身房墻面裝修合同協(xié)議
- 可持續(xù)發(fā)展成品油市場(chǎng)管理辦法
- 基坑降水施工合同:文物保護(hù)工程
- 廣告公司合同管理方案
- 建筑公司工程車(chē)輛司機(jī)聘用合同
- 通信設(shè)備維護(hù)服務(wù)合同
- 流行病的特征
- 巴金名著導(dǎo)讀《十年一夢(mèng)》
- 項(xiàng)目申報(bào)書(shū)(模板)(高校)
- 教科版五年級(jí)科學(xué)上冊(cè)全冊(cè)教學(xué)設(shè)計(jì)
- 三只松鼠客戶關(guān)系管理
- XX電站接地裝置的熱穩(wěn)定校驗(yàn)報(bào)告(220kV)
- 2024年山東地區(qū)光明電力服務(wù)公司第二批招聘高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 涉警輿情培訓(xùn)課件模板
- 馬戲團(tuán)活動(dòng)方案
- 《預(yù)防踩踏》課件
- 人教版四年級(jí)上下冊(cè)英語(yǔ)單詞默寫(xiě)表(漢譯英)
- 小學(xué)關(guān)工委制度范本
評(píng)論
0/150
提交評(píng)論