關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)
本書(shū)較全面和詳細(xì)地介紹了單片機(jī)的基本原理、系統(tǒng)結(jié)構(gòu)、指令系統(tǒng)、內(nèi)部資源、外部接口擴(kuò)展、應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例以及嵌入式操作系統(tǒng)在單片機(jī)系統(tǒng)中應(yīng)用等內(nèi)容, 并通過(guò)大量實(shí)例分析, 重點(diǎn)講解單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)方法, 以培養(yǎng)讀者單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)能力。全書(shū)共12章。每章節(jié)的例題均由淺入深, 循序漸進(jìn)、講解透徹。書(shū)中相關(guān)例程均在KeilC51 3.0環(huán)境下調(diào)試通過(guò), 能夠?qū)嶋H演示。每章最后備有習(xí)題, 以及時(shí)鞏固所學(xué)知識(shí)。
內(nèi)容全面,概念清晰,由淺入深,循序漸進(jìn)。本書(shū)全面介紹了MCS-51單片機(jī)的原理、指令系統(tǒng)、51匯編語(yǔ)言和C51語(yǔ)言編程方法、接口技術(shù)、應(yīng)用系統(tǒng)設(shè)計(jì)方法,以及嵌入式操作系統(tǒng)在51單片機(jī)中的應(yīng)用方法。
案例翔實(shí),具有實(shí)戰(zhàn)演練功能。書(shū)中所有例題均在Keil μVision開(kāi)發(fā)環(huán)境下調(diào)試通過(guò),并給出Proteus仿真環(huán)境下的實(shí)現(xiàn)結(jié)果,不是紙上談兵,而是實(shí)戰(zhàn)演習(xí)。 配套資源豐富,包含有電子課件、所有例題的電路圖與源代碼以及習(xí)題解答,而且程序的關(guān)鍵部分標(biāo)有注釋,是學(xué)習(xí)單片機(jī)軟硬件設(shè)計(jì)技術(shù)的理想教材和工具。
本書(shū)的目的是幫助初學(xué)者學(xué)習(xí)使用單片機(jī)。首先,作者總結(jié)多年的工程實(shí)踐經(jīng)驗(yàn)和教學(xué)體會(huì),先與讀者分享一下學(xué)習(xí)經(jīng)驗(yàn)。
1. 分享經(jīng)驗(yàn) 首先,是做好基礎(chǔ)知識(shí)的準(zhǔn)備。基礎(chǔ)知識(shí)包括模擬電路、數(shù)字電路和C語(yǔ)言知識(shí)。在學(xué)習(xí)單片機(jī)之前,應(yīng)先溫習(xí)所學(xué)過(guò)的模擬電路、數(shù)字電路以及C語(yǔ)言知識(shí),為學(xué)習(xí)單片機(jī)加強(qiáng)基礎(chǔ)。 單片機(jī)的硬件電路大多數(shù)屬于數(shù)字電路,如果數(shù)字電路基礎(chǔ)扎實(shí),對(duì)復(fù)雜的單片機(jī)硬件結(jié)構(gòu)和原理就能容易理解,就能輕松地邁開(kāi)學(xué)習(xí)的第一步。因此,如果你覺(jué)得單片機(jī)很難,那就應(yīng)該先去重溫?cái)?shù)字電路,搞清楚觸發(fā)器、寄存器、門電路、CMOS電路、時(shí)序邏輯和時(shí)序圖、進(jìn)制轉(zhuǎn)換等基礎(chǔ)知識(shí)。當(dāng)你掌握了這些基礎(chǔ)知識(shí)后再去看單片機(jī)的結(jié)構(gòu)和原理,就會(huì)大徹大悟,信心倍增。模擬電路是電子技術(shù)的基礎(chǔ),主要內(nèi)容是學(xué)習(xí)電阻、電容、電感、二極管、三極管、場(chǎng)效應(yīng)管及放大器等模擬器件的工作原理和在電路中的作用。扎實(shí)的模擬電路基礎(chǔ)可以讓你容易看懂別人設(shè)計(jì)的電路,也能使你設(shè)計(jì)的電路更可靠。同時(shí),單片機(jī)的學(xué)習(xí)離不開(kāi)編程,在所有的程序設(shè)計(jì)中C語(yǔ)言運(yùn)用最為廣泛。C語(yǔ)言知識(shí)并不難,需要掌握的知識(shí)就那么幾種數(shù)據(jù)類型和幾個(gè)控制語(yǔ)句?蓜e小看這幾種數(shù)據(jù)類型和幾個(gè)控制語(yǔ)句,用它們可以處理各種形式的數(shù)據(jù)以及非常復(fù)雜的邏輯關(guān)系。 扎實(shí)的電子技術(shù)基礎(chǔ)和C語(yǔ)言基礎(chǔ),會(huì)讓你的單片機(jī)學(xué)習(xí)得心應(yīng)手。當(dāng)單片機(jī)乖乖地依照你的想法和設(shè)計(jì)去執(zhí)行指令,實(shí)現(xiàn)預(yù)期結(jié)果的時(shí)候,成就感會(huì)讓你信心十足地投入到單片機(jī)的世界里,未來(lái)的單片機(jī)專家就是你。 其次,要通過(guò)實(shí)踐積累經(jīng)驗(yàn)。單片機(jī)的學(xué)習(xí)具有很強(qiáng)的實(shí)踐性,是一門很注重實(shí)際動(dòng)手操作的技術(shù)學(xué)科,不動(dòng)手實(shí)踐是學(xué)不會(huì)單片機(jī)的。因此,實(shí)踐才是真正學(xué)習(xí)單片機(jī)的必由之路。 實(shí)踐中要有一套完整的學(xué)習(xí)開(kāi)發(fā)工具, 即必須有一臺(tái)計(jì)算機(jī)、◆單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)(第2版)前言一套單片機(jī)開(kāi)發(fā)板、視頻教程和單片機(jī)教材。計(jì)算機(jī)上要安裝Keil C51集成開(kāi)發(fā)軟件,用來(lái)編寫(xiě)和編譯程序,并將程序代碼下載到單片機(jī)上;開(kāi)發(fā)板用來(lái)運(yùn)行單片機(jī)程序,驗(yàn)證實(shí)際效果;視頻教程就是手把手教你單片機(jī)開(kāi)發(fā)環(huán)境的使用、單片機(jī)編程和調(diào)試。對(duì)于單片機(jī)初學(xué)者來(lái)說(shuō),視頻教程必須看,否則,即使把教材看了幾遍,還是不知道如何下手;單片機(jī)教材是理論學(xué)習(xí)資料,備忘備查。初學(xué)者為了節(jié)約成本和時(shí)間,可以先用Proteus軟件仿真調(diào)試,熟悉之后,再使用開(kāi)發(fā)板調(diào)試程序。 軟件編程要注重理論和實(shí)踐相結(jié)合,效果會(huì)更好?吹嚼填}目先試著構(gòu)思自己的編程思路,然后再看教材或視頻教程里的代碼,研究別人的編程思路以及與自己思路的差異;接下來(lái)是親自動(dòng)手編寫(xiě)程序,對(duì)有疑問(wèn)的地方試著按照自己的思路修改程序,比較程序運(yùn)行效果,領(lǐng)會(huì)其中的奧妙。還可以在原有程序基礎(chǔ)上改進(jìn)和拓展,使其功能更強(qiáng)大。此外,自己應(yīng)該找些項(xiàng)目來(lái)做,以鞏固所學(xué)的知識(shí)和積累更多的經(jīng)驗(yàn)。 在實(shí)踐中要多與同行虛心交流。在單片機(jī)學(xué)習(xí)過(guò)程中,每個(gè)人都會(huì)遇到無(wú)數(shù)的問(wèn)題,如果你向有經(jīng)驗(yàn)的過(guò)來(lái)人虛心求教,就會(huì)少走許多彎路,節(jié)省很多時(shí)間。 最后,研究硬件設(shè)計(jì),實(shí)現(xiàn)產(chǎn)品開(kāi)發(fā)。學(xué)習(xí)單片機(jī)的最終目的是做產(chǎn)品開(kāi)發(fā),產(chǎn)品即是一個(gè)軟硬件相結(jié)合的控制系統(tǒng)。所以,硬件設(shè)計(jì)是學(xué)習(xí)單片機(jī)技術(shù)的必學(xué)內(nèi)容。當(dāng)你的單片機(jī)編程水平有了相當(dāng)提高之后,就應(yīng)該去研究單片機(jī)硬件系統(tǒng)設(shè)計(jì)了。硬件設(shè)計(jì)包括電路原理設(shè)計(jì)和電路板(即PCB板)設(shè)計(jì)。 電路原理設(shè)計(jì)涉及各種芯片的應(yīng)用,而芯片的典型應(yīng)用在芯片數(shù)據(jù)手冊(cè)(Datasheet)中都能找到答案。電子技術(shù)領(lǐng)域的第一手資料就是Datasheet,而且?guī)缀醵际侨⑽牡,從Datasheet里所獲得的知識(shí),可能是在教科書(shū)、網(wǎng)絡(luò)文檔和課外讀物等中很少見(jiàn)到的。雖然有些資料也都是在Datasheet的基礎(chǔ)上撰寫(xiě)的,但內(nèi)容不全面,甚至存在翻譯上的遺漏和錯(cuò)誤。所以良好的英文閱讀能力也是學(xué)習(xí)單片機(jī)技術(shù)不可缺少的。PCB板的設(shè)計(jì)相對(duì)簡(jiǎn)單,只要懂得使用PCB板設(shè)計(jì)軟件Protel或 Altium Designer就 沒(méi)問(wèn)題了。但要想設(shè)計(jì)的板子布局美觀、布線合理,還需要在實(shí)踐中不斷學(xué)習(xí)。 具備一定的Keil C51環(huán)境下的單片機(jī)編程經(jīng)驗(yàn)、會(huì)使用Protel軟件或 Altium Designer軟件設(shè)計(jì)硬件電路以及良好的英文閱讀能力,你就是遇強(qiáng)則強(qiáng)的單片機(jī)高手了。 2. 本書(shū)內(nèi)容 本書(shū)第2版增加了工程實(shí)踐內(nèi)容。多年來(lái),MCS51系列單片機(jī)一直是學(xué)習(xí)單片機(jī)技術(shù)的主要教學(xué)平臺(tái),在嵌入式技術(shù)高速發(fā)展的大環(huán)境下,單片機(jī)技術(shù)課程已經(jīng)不再是培養(yǎng)電子工程師課程體系的最終環(huán)節(jié),單片機(jī)的教學(xué)要為后續(xù)學(xué)習(xí)嵌入式系統(tǒng)打下良好基礎(chǔ)。因此,本書(shū)在編寫(xiě)過(guò)程中,除了論述MCS51單片機(jī)的基本原理、系統(tǒng)結(jié)構(gòu)、內(nèi)部資源、指令系統(tǒng)、常用接口及其外部擴(kuò)展、應(yīng)用系統(tǒng)設(shè)計(jì)等內(nèi)容外,還增加了豐富且能夠?qū)嶋H演示的單片機(jī)應(yīng)用實(shí)例、嵌入式操作系統(tǒng)在51單片機(jī)系統(tǒng)中應(yīng)用的方法和實(shí)例,以及自主設(shè)計(jì)的便攜式單片機(jī)學(xué)習(xí)板的軟硬件設(shè)計(jì)的內(nèi)容,并在第2版中增加了工程實(shí)踐案例的設(shè)計(jì)內(nèi)容。 3. 本書(shū)特色 (1) 強(qiáng)調(diào)動(dòng)手實(shí)踐。 實(shí)踐是學(xué)好單片機(jī)技術(shù)的必經(jīng)之路。本書(shū)詳細(xì)介紹了Keil μVision集成開(kāi)發(fā)環(huán)境下進(jìn)行匯編語(yǔ)言程序和C51程序開(kāi)發(fā)的過(guò)程;書(shū)中所有案例程序均在Keil μVision環(huán)境下調(diào)試通過(guò),不是紙上談兵,而是實(shí)戰(zhàn)演習(xí)。 (2) 強(qiáng)調(diào)單片機(jī)應(yīng)用系統(tǒng)的軟硬件整體設(shè)計(jì)。 書(shū)中給出了若干完整的單片機(jī)應(yīng)用系統(tǒng)實(shí)例。案例的編寫(xiě)具有完整性、系統(tǒng)性和工程性。 所有案例均給出可實(shí)施的系統(tǒng)級(jí)設(shè)計(jì)資料,包括完整的可實(shí)現(xiàn)電路板布線的硬件電路原理圖(并非電路示意圖)和完整的 Keil μVision環(huán)境下調(diào)試通過(guò)的軟件源程序工程代碼(并非程序段或偽代碼)。 所有案例均給出仿真實(shí)現(xiàn)過(guò)程和結(jié)果,即基于Proteus環(huán)境的系統(tǒng)仿真實(shí)現(xiàn)結(jié)果。 設(shè)計(jì)有便攜式單片機(jī)學(xué)習(xí)板,給出了該學(xué)習(xí)板的Protel電路原理圖設(shè)計(jì)和PCB版設(shè)計(jì)資料,便于讀者進(jìn)行工程實(shí)踐。書(shū)中單片機(jī)應(yīng)用系統(tǒng)案例均可在該學(xué)習(xí)板上硬件實(shí)現(xiàn)。 (3) 為嵌入式系統(tǒng)學(xué)習(xí)打好基礎(chǔ)。 嵌入式系統(tǒng)是單片機(jī)技術(shù)發(fā)展的高級(jí)階段,因此學(xué)習(xí)單片機(jī)要做好進(jìn)一步學(xué)習(xí)嵌入式系統(tǒng)的知識(shí)準(zhǔn)備。一方面是加強(qiáng)C語(yǔ)言程序設(shè)計(jì)能力,另一方面是加強(qiáng)嵌入式操作系統(tǒng)在51單片機(jī)系統(tǒng)上應(yīng)用的內(nèi)容介紹。此外,本書(shū)介紹了嵌入式操作系統(tǒng)在51單片機(jī)系統(tǒng)中應(yīng)用的方法和實(shí)例。 (4) 配套資源豐富。 本書(shū)配有多媒體資料,其中包含電子課件、所有相關(guān)例程源代碼、習(xí)題解答及編程題的程序源代碼,并且在程序的關(guān)鍵部分加以注釋,既適合作為教材供教師和學(xué)生使用,也適合自學(xué)成才。 4. 致謝 本書(shū)由沈陽(yáng)理工大學(xué)馬秀麗、周越、王紅共同編寫(xiě)。本書(shū)第1~5章和8.8節(jié)由馬秀麗編寫(xiě),第7~10章由周越和王紅編寫(xiě),第6和第11章由周越和馬秀麗編寫(xiě),王紅霞參加了附錄和部分章節(jié)的編寫(xiě)工作。最后由馬秀麗審閱并統(tǒng)稿完成。感謝本書(shū)所列參考文獻(xiàn)的作者,他們的工作給了我們很大的幫助和啟發(fā)。感謝為本書(shū)出版付出辛勤勞動(dòng)的清華大學(xué)出版社的工作人員。感謝讀者選用本書(shū)。 盡管全體參編人員竭心盡力,但限于自身水平,書(shū)中難免會(huì)有遺漏,懇請(qǐng)廣大讀者不吝指正,同時(shí)歡迎您對(duì)本書(shū)內(nèi)容提供寶貴建議,我們將非常感謝。 編者 2017年5月
第1章單片機(jī)概述1
1.1單片機(jī)的概念及特點(diǎn)1 1.1.1單片機(jī)的基本概念1 1.1.2單片機(jī)的主要特點(diǎn)2 1.2單片機(jī)的發(fā)展歷程3 1.3單片機(jī)的種類與應(yīng)用5 1.3.1單片機(jī)的種類5 1.3.2單片機(jī)的等級(jí)9 1.3.3單片機(jī)的應(yīng)用9 1.4單片機(jī)的選型10 習(xí)題11 第2章單片機(jī)的基本原理12 2.1MCS51系列單片機(jī)簡(jiǎn)介12 2.1.1MCS51系列單片機(jī)的特點(diǎn)12 2.1.2MCS51系列單片機(jī)的常用芯片簡(jiǎn)介13 2.2MCS51系列單片機(jī)的結(jié)構(gòu)16 2.2.1MCS51系列單片機(jī)的內(nèi)部結(jié)構(gòu)16 2.2.2MCS51系列單片機(jī)的CPU17 2.2.3MCS51系列單片機(jī)的存儲(chǔ)器分布20 2.2.4MCS51系列單片機(jī)的輸入輸出接口26 2.2.5MCS51系列單片機(jī)的時(shí)鐘電路29 2.2.6MCS51系列單片機(jī)的復(fù)位電路29 2.3MCS51系列單片機(jī)的引腳功能31 2.4MCS51系列單片機(jī)的時(shí)序33 2.4.1MCS51系列單片機(jī)的時(shí)序單位33 2.4.2MCS51系列單片機(jī)典型指令的時(shí)序34◆單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)(第2版)目錄2.5MCS51系列單片機(jī)的最小系統(tǒng)36 2.5.1MCS51系列單片機(jī)的最小系統(tǒng)組成36 2.5.2MCS51系列單片機(jī)的節(jié)電方式37 習(xí)題38 第3章單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)40 3.1MCS51系列單片機(jī)的匯編指令格式和尋址方式40 3.1.1MCS51系列單片機(jī)的匯編指令格式40 3.1.2MCS51系列單片機(jī)的尋址方式41 3.2MCS51系列單片機(jī)的指令系統(tǒng)44 3.2.1數(shù)據(jù)傳送類指令45 3.2.2算術(shù)運(yùn)算類指令48 3.2.3邏輯運(yùn)算類指令51 3.2.4控制轉(zhuǎn)移類指令52 3.2.5位運(yùn)算類指令57 3.3MCS51系列單片機(jī)匯編程序常用的偽指令59 3.4MCS51系列單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)63 3.4.1數(shù)據(jù)的尋找與排序的程序64 3.4.2數(shù)據(jù)運(yùn)算的程序66 3.4.3數(shù)據(jù)的拼拆和轉(zhuǎn)換69 3.4.4多分支轉(zhuǎn)移程序71 3.4.5子程序設(shè)計(jì)74 習(xí)題76 第4章單片機(jī)C語(yǔ)言程序設(shè)計(jì)80 4.1C語(yǔ)言與MCS51系列單片機(jī)80 4.1.1C語(yǔ)言與MCS51系列單片機(jī)概述80 4.1.2C51程序的結(jié)構(gòu)82 4.2C51的基本數(shù)據(jù)類型83 4.3C51的運(yùn)算量85 4.3.1常量85 4.3.2變量86 4.3.3變量的存儲(chǔ)模式89 4.3.4絕對(duì)地址的訪問(wèn)90 4.4C51的運(yùn)算符及表達(dá)式92 4.4.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式92 4.4.2賦值運(yùn)算符和賦值表達(dá)式93 4.4.3增量運(yùn)算符和增量表達(dá)式93 4.4.4關(guān)系運(yùn)算符和關(guān)系表達(dá)式93 4.4.5邏輯運(yùn)算符和邏輯表達(dá)式94 4.4.6復(fù)合賦值運(yùn)算符95 4.4.7逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式95 4.4.8條件運(yùn)算符和條件表達(dá)式95 4.4.9位運(yùn)算符和位運(yùn)算96 4.4.10指針與地址運(yùn)算符96 4.5C51的輸入與輸出97 4.5.1格式輸出函數(shù)printf()97 4.5.2格式輸入函數(shù)scanf()98 4.6C51程序基本結(jié)構(gòu)與相關(guān)語(yǔ)句98 4.6.1C51程序的基本結(jié)構(gòu)98 4.6.2C51語(yǔ)句100 4.6.3if語(yǔ)句100 4.6.4switch…case語(yǔ)句101 4.6.5while語(yǔ)句102 4.6.6do…while語(yǔ)句102 4.6.7for語(yǔ)句103 4.6.8break和continue語(yǔ)句103 4.6.9return語(yǔ)句104 4.7C51的函數(shù)104 4.7.1函數(shù)的定義105 4.7.2函數(shù)的調(diào)用與聲明107 4.7.3函數(shù)的嵌套調(diào)用和遞歸調(diào)用108 4.8C51的構(gòu)造數(shù)據(jù)類型110 4.8.1數(shù)組110 4.8.2指針111 4.8.3結(jié)構(gòu)體113 4.8.4共用體115 4.8.5枚舉類型117 4.9C51程序的編輯和編譯118 習(xí)題118 第5章MCS51單片機(jī)內(nèi)部資源及編程120 5.1并行輸入輸出接口120 5.2定時(shí)/計(jì)數(shù)器接口121 5.2.1定時(shí)/計(jì)數(shù)器的主要特性121 5.2.2定時(shí)/計(jì)數(shù)器T0、T1的工作原理122 5.2.3定時(shí)/計(jì)數(shù)器的特殊功能寄存器123 5.2.4定時(shí)/計(jì)數(shù)器的工作模式124 5.2.5定時(shí)/計(jì)數(shù)器的初始化編程及應(yīng)用127 5.3串行接口134 5.3.1串行口的主要特性134 5.3.2MCS51系列單片機(jī)串行口的工作原理135 5.3.3串行口的特殊功能寄存器136 5.3.4串行口的工作方式138 5.3.5串行口的初始化編程及應(yīng)用142 5.4中斷系統(tǒng)154 5.4.1MCS51系列單片機(jī)中斷系統(tǒng)的特點(diǎn)154 5.4.2MCS51系列單片機(jī)的中斷源155 5.4.3MCS51系列單片機(jī)的中斷控制寄存器157 5.4.4中斷系統(tǒng)的應(yīng)用159 習(xí)題162 第6章MCS51單片機(jī)的外部接口技術(shù)165 6.1人機(jī)接口165 6.1.1數(shù)碼管顯示接口165 6.1.2字符點(diǎn)陣式LCD顯示接口170 6.1.3圖形點(diǎn)陣式LCD顯示接口177 6.1.4鍵盤接口190 6.2存儲(chǔ)器擴(kuò)展196 6.2.1單片機(jī)系統(tǒng)總線196 6.2.2數(shù)據(jù)存儲(chǔ)器擴(kuò)展197 6.2.3程序存儲(chǔ)器擴(kuò)展199 6.2.4單片機(jī)對(duì)外部存儲(chǔ)器的讀寫(xiě)時(shí)序200 6.3輸入輸出口擴(kuò)展202 6.3.1簡(jiǎn)單I/O接口擴(kuò)展202 6.3.2可編程并行I/O接口擴(kuò)展203 6.4A/D轉(zhuǎn)換接口211 6.4.1A/D轉(zhuǎn)換原理211 6.4.2ADC0809芯片的應(yīng)用213 6.5D/A轉(zhuǎn)換接口219 6.5.1D/A轉(zhuǎn)換原理219 6.5.2DAC0832芯片的應(yīng)用221 6.6開(kāi)關(guān)量輸入輸出接口226 習(xí)題227 第7章MCS51單片機(jī)的通信接口技術(shù)228 7.1RS232接口通信228 7.1.1RS232基本原理228 7.1.2單片機(jī)與PC的RS232接口通信229 7.2RS485接口通信234 7.3IIC總線接口通信234 7.3.1IIC總線主要特點(diǎn)234 7.3.2IIC總線工作時(shí)序235 7.3.3IIC總線操作指令格式236 7.3.4IIC總線EEPROM芯片的應(yīng)用 236 7.4SPI總線接口通信245 7.4.1SPI總線工作原理245 7.4.2SPI總線芯片ADC0832的應(yīng)用246 7.5CAN總線接口通信251 7.5.1CAN通信總線原理251 7.5.2常用的CAN總線芯片252 7.5.3CAN總線應(yīng)用253 7.6USB總線接口通信254 7.6.1USB通信總線原理254 7.6.2常用的USB通信總線芯片255 7.6.3USB 1.1通信總線應(yīng)用256 習(xí)題257 第8章單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)258 8.1系統(tǒng)設(shè)計(jì)總體規(guī)劃258 8.1.1單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)流程258 8.1.2硬件系統(tǒng)設(shè)計(jì)原則260 8.1.3軟件系統(tǒng)設(shè)計(jì)原則260 8.2電子密碼鎖設(shè)計(jì)260 8.2.1硬件電路設(shè)計(jì)261 8.2.2軟件程序設(shè)計(jì)261 8.3GPS定位終端設(shè)計(jì)263 8.3.1硬件電路設(shè)計(jì)263 8.3.2軟件程序設(shè)計(jì)264 8.4電子日歷設(shè)計(jì)268 8.4.1硬件電路設(shè)計(jì)268 8.4.2軟件程序設(shè)計(jì)271 8.5溫度檢測(cè)器設(shè)計(jì)271 8.5.1硬件電路設(shè)計(jì)271 8.5.2軟件程序設(shè)計(jì)275 8.6電梯內(nèi)部控制器設(shè)計(jì)276 8.6.1硬件電路設(shè)計(jì)277 8.6.2軟件程序設(shè)計(jì)278 8.7直流電機(jī)溫控調(diào)速器279 8.7.1硬件電路設(shè)計(jì)280 8.7.2軟件程序設(shè)計(jì)282 8.8RFID讀卡器設(shè)計(jì)282 8.8.1硬件電路設(shè)計(jì)283 8.8.2軟件程序設(shè)計(jì)284 8.9ZigBee物聯(lián)網(wǎng)結(jié)點(diǎn)設(shè)計(jì)285 8.9.1ZigBee物聯(lián)網(wǎng)整體結(jié)構(gòu)285 8.9.2溫濕度結(jié)點(diǎn)的硬件電路設(shè)計(jì)286 8.9.3軟件程序設(shè)計(jì)288 第9章嵌入式操作系統(tǒng)應(yīng)用基礎(chǔ)290 9.1嵌入式操作系統(tǒng)介紹290 9.1.1嵌入式計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)290 9.1.2嵌入式操作系統(tǒng)主要功能292 9.1.3典型的嵌入式操作系統(tǒng)293 9.2RTX51 Tiny操作系統(tǒng)基本功能294 9.2.1RTX51 Tiny特性294 9.2.2RTX51 Tiny的任務(wù)管理294 9.2.3RTX51 Tiny的系統(tǒng)函數(shù)297 9.2.4使用RTX51 Tiny編程時(shí)注意事項(xiàng)299 9.2.5RTX51 Tiny的系統(tǒng)配置300 9.2.6RTX51 Tiny的編程規(guī)則302 9.3RTX51 Tiny操作系統(tǒng)應(yīng)用實(shí)例303 9.3.1多路跑馬燈303 9.3.2矩陣式鍵盤掃描識(shí)別306 9.3.3秒表308 9.3.4串口通信311 習(xí)題314 第10章便攜式單片機(jī)學(xué)習(xí)板介紹315 10.1SLG1型便攜式單片機(jī)學(xué)習(xí)板特點(diǎn)315 10.2原理圖設(shè)計(jì)315 10.2.1總體設(shè)計(jì)315 10.2.2各模塊單元設(shè)計(jì)317 10.3例程設(shè)計(jì)322 第11章單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)工具323 11.1Keil μVision集成開(kāi)發(fā)環(huán)境的使用323 11.1.1工程文件的建立323 11.1.2在工程中添加程序文件325 11.1.3編譯和連接工程文件,形成目標(biāo)文件325 11.1.4調(diào)試運(yùn)行,觀察結(jié)果326 11.1.5仿真環(huán)境的設(shè)置328 11.2Proteus仿真軟件介紹332 11.3電路設(shè)計(jì)開(kāi)發(fā)工具Altium Designer介紹337 附錄AMCS51單片機(jī)指令表338 A.1數(shù)據(jù)傳輸類指令338 A.2算術(shù)運(yùn)算類指令339 A.3邏輯操作類指令340 A.4位操作類指令341 A.5控制轉(zhuǎn)移類指令342 附錄BC51的庫(kù)函數(shù)343 B.1專用寄存器頭文件regxx.h343 B.2字符函數(shù)庫(kù)ctype.h343 B.3一般輸入輸出函數(shù)庫(kù)stdio.h344 B.4字符串函數(shù)庫(kù)string.h345 B.5標(biāo)準(zhǔn)函數(shù)庫(kù)stdlib.h347 B.6數(shù)學(xué)函數(shù)庫(kù)math.h348 B.7預(yù)定義宏函數(shù)庫(kù)absacc.h349 B.8內(nèi)部函數(shù)庫(kù)intrins.h349 參考文獻(xiàn)351
第5章chapter5
MCS51單片機(jī)內(nèi)部資源及編程1.1微型計(jì)算機(jī)簡(jiǎn)介MCS51系列單片機(jī)的內(nèi)部資源主要有并行I/O口、定時(shí)器/計(jì)數(shù)器、串行接口以及中斷系統(tǒng),MCS51系列單片機(jī)的大部分功能就是通過(guò)對(duì)這些資源的利用來(lái)實(shí)現(xiàn)的。 5.1并行輸入輸出接口 MCS51系列單片機(jī)有4個(gè)8位的并行輸入輸出接口P0、P1、P2和P3。這4個(gè)接口既可以并行輸入輸出8位數(shù)據(jù),也可以按位方式獨(dú)立地使用每一位作為輸入輸出接口。其中,P0 口是一個(gè)8位漏極開(kāi)路的雙向I/O接口,在用作通用I/O接口時(shí),P0 口必須外接上拉電阻;此外在連接外存儲(chǔ)器使用時(shí),P0口被用作低8位地址及數(shù)據(jù)總線接口。P1、P2和P3是帶內(nèi)部上拉電阻的8位雙向I/O 接口,都具有直接驅(qū)動(dòng)負(fù)載能力。此外P2 口在連接外存儲(chǔ)器使用時(shí),被用作高8位地址總線接口;而P3口除用作通用I/O接口使用外,還用于實(shí)現(xiàn)特殊功能。這里先介紹它們用作通用I/O口的編程。 【例51】利用MCS51單片機(jī)的P0口接2個(gè)發(fā)光二極管,P1口接2個(gè)開(kāi)關(guān),編程實(shí)現(xiàn),當(dāng)P1.X連接的開(kāi)關(guān)動(dòng)作時(shí),對(duì)應(yīng)的P0.X連接的發(fā)光二極管亮或滅。 設(shè)計(jì)思路: 先把P1口的內(nèi)容讀出,然后把讀取的P1口的開(kāi)關(guān)狀態(tài)通過(guò)P0口輸出,即可控制發(fā)光二極管的亮或滅。電路原理圖 如圖5.1所示。 匯編程序如下: ORG0000H LJMPSTAR ORG 0100H STAR: MOV P0,#0FFH LOOP: MOV A,P1 MOV P0,A SJMP LOOP END C51語(yǔ)言程序如下: #include sbit S1 = P1^0;sbit S2 = P1^1; sbit LED1 = P0^0; sbit LED2 = P0^1; void main() { while(1) {LED1 = S1;LED2 = S2; } } 圖5.1利用并行接口開(kāi)關(guān)控制LED燈的應(yīng)用 ◆單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)(第2版)第◆5章MCS51單片機(jī)內(nèi)部資源及編程5.2定時(shí)/計(jì)數(shù)器接口〖*4/5〗5.2.1定時(shí)/計(jì)數(shù)器的主要特性MCS51系列單片機(jī)中,51子系列有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器T0和T1,52子系列有三個(gè)16位的可編程定時(shí)/計(jì)數(shù)器T0、T1和T2。它們既可以編程為定時(shí)器使用,通過(guò)對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)來(lái)實(shí)現(xiàn)定時(shí)功能;也可以編程為計(jì)數(shù)器使用,通過(guò)對(duì)外部輸入端脈沖信號(hào)周期進(jìn)行計(jì)數(shù)來(lái)實(shí)現(xiàn)計(jì)數(shù)功能。用來(lái)計(jì)數(shù)的特殊功能寄存器是TH0和TL0(或TH1和TL1)。每個(gè)定時(shí)/計(jì)數(shù)器用作定時(shí)器方式還是計(jì)數(shù)器方式,要通過(guò)對(duì)特殊功能寄存器TMOD的編程來(lái)選擇。 每個(gè)定時(shí)/計(jì)數(shù)器都有多種工作模式,其中T0有四種工作模式;T1和T2有三種工作模式。其工作模式的設(shè)定是通過(guò)對(duì)特殊功能寄存器TMOD的編程來(lái)選擇的。 每一個(gè)定時(shí)/計(jì)數(shù)器有啟動(dòng)、停止和溢出三種工作狀態(tài),啟動(dòng)和停止?fàn)顟B(tài)是通過(guò)對(duì)特殊功能寄存器TCON的編程來(lái)控制的;溢出狀態(tài)是當(dāng)定時(shí)計(jì)數(shù)時(shí)間到時(shí)產(chǎn)生溢出,由硬件自動(dòng)將特殊功能寄存器TCON的溢出標(biāo)志位置位。溢出狀態(tài)可以通過(guò)查詢或中斷方式來(lái)處理。 定時(shí)/計(jì)數(shù)器是MCS51系列單片機(jī)的重要功能模塊之一,在工業(yè)控制、檢測(cè)、智能儀器等產(chǎn)品中使用非常廣泛。這部分內(nèi)容的學(xué)習(xí)目標(biāo)是: (1) 理解定時(shí)/計(jì)數(shù)器T0和T1的工作原理。 (2) 掌握特殊功能寄存器TMOD、TCON、TH0和TL0(或TH1和TL1)的功能和使用,即會(huì)設(shè)定定時(shí)/計(jì)數(shù)器的工作方式: 定時(shí)器方式和計(jì)數(shù)器方式。 會(huì)設(shè)定定時(shí)/計(jì)數(shù)器的四種工作模式: 模式0~3。 會(huì)控制定時(shí)/計(jì)數(shù)器的啟動(dòng)和停止。會(huì)通過(guò)查詢或中斷方式來(lái)處理溢出。 (3) 學(xué)會(huì)定時(shí)/計(jì)數(shù)器的編程和使用。 5.2.2定時(shí)/計(jì)數(shù)器T0、T1的工作原理 MCS51系列單片機(jī)的定時(shí)/計(jì)數(shù)器T0和T1是由加法計(jì)數(shù)器、方式控制寄存器TMOD和狀態(tài)控制寄存器TCON等組成,其基本結(jié)構(gòu)如圖5.2所示。其中,加法計(jì)數(shù)器是定時(shí)/計(jì)數(shù)器的核心,其作用是對(duì)內(nèi)部機(jī)器周期或外部輸入信號(hào)的周期進(jìn)行計(jì)數(shù),它是用8位的特殊功能寄存器TH0、TL0及TH1、TL1來(lái)表示, TH0和TL0用于表示定時(shí)/計(jì)數(shù)器T0加法計(jì)數(shù)器的高8位和低8位;TH1和TL1用于表示定時(shí)/計(jì)數(shù)器T1加法計(jì)數(shù)器的高8位和低8位。方式控制寄存器TMOD用于設(shè)定定時(shí)/計(jì)數(shù)器的工作方式和工作模式;狀態(tài)控制寄存器TCON用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)、停止和溢出。 圖5.2定時(shí)/計(jì)數(shù)器T0和T1的結(jié)構(gòu)框圖 定時(shí)/計(jì)數(shù)器有兩種工作方式: 定時(shí)器方式和計(jì)數(shù)器方式。 當(dāng)用作定時(shí)器時(shí),加法計(jì)數(shù)器在每個(gè)機(jī)器周期TCY內(nèi)都做加1計(jì)數(shù),即為內(nèi)部機(jī)器周期計(jì)數(shù),由于一個(gè)機(jī)器周期包含12個(gè)振蕩周期,因此其計(jì)數(shù)的速率是振蕩頻率的1/12。當(dāng)計(jì)數(shù)值滿,產(chǎn)生溢出(即加法計(jì)數(shù)器最高位產(chǎn)生進(jìn)位)時(shí),便自動(dòng)將TCON的溢出標(biāo)志位置“1”(如果預(yù)先設(shè)置了允許定時(shí)器中斷,則同時(shí)還向CPU請(qǐng)求中斷)。 此時(shí),從加法計(jì)數(shù)器計(jì)數(shù)開(kāi)始到產(chǎn)生溢出所經(jīng)歷的計(jì)數(shù)時(shí)間就是定時(shí)器的定時(shí)時(shí)間。 例如,定時(shí)/計(jì)數(shù)器T0的加法計(jì)數(shù)器的初值是X,其最大計(jì)數(shù)值(即滿值)是M,當(dāng)用作定時(shí)器時(shí),加法計(jì)數(shù)器從計(jì)數(shù)開(kāi)始到溢出所經(jīng)歷的計(jì)數(shù)值N為: 計(jì)數(shù)值N=最大計(jì)數(shù)值M-初值X 定時(shí)時(shí)間 =計(jì)數(shù)值N×機(jī)器周期=計(jì)數(shù)值N×振蕩周期fOSC/12 這里需要注意的是,在不同的工作模式下,加法計(jì)數(shù)器的使用位數(shù)不同,因此其最大計(jì)數(shù)值(滿值)是不一樣。 當(dāng)用作計(jì)數(shù)器時(shí),加法計(jì)數(shù)器對(duì)單片機(jī)引腳輸入端T0(P3.4)或T1(P3.5)上的外部脈沖輸入信號(hào)進(jìn)行計(jì)數(shù)(即檢測(cè)到一個(gè)1→0的跳變時(shí)使加法計(jì)數(shù)器加1),由于識(shí)別一個(gè)從1至0的跳變至少要用到兩個(gè)機(jī)器周期(即一個(gè)機(jī)器周期檢測(cè)到1,下一個(gè)機(jī)器周期檢測(cè)到0),因此計(jì)數(shù)的最高速率是振蕩頻率的1/24。當(dāng)計(jì)數(shù)值滿,產(chǎn)生溢出(即加法計(jì)數(shù)器最高位產(chǎn)生進(jìn)位)時(shí),便自動(dòng)將TCON的溢出標(biāo)志位置1(如果預(yù)先設(shè)置了允許定時(shí)器中斷,則同時(shí)還向CPU請(qǐng)求中斷)。此時(shí),從加法計(jì)數(shù)器計(jì)數(shù)開(kāi)始到產(chǎn)生溢出所經(jīng)歷的時(shí)間就是計(jì)數(shù)器的計(jì)數(shù)時(shí)間。 這里需要注意的是,在使用計(jì)數(shù)器方式時(shí),為了能準(zhǔn)確對(duì)每一個(gè)外部輸入脈沖信號(hào)進(jìn)行計(jì)數(shù),外部輸入脈沖信號(hào)的頻率應(yīng)小于振蕩頻率的1/24。 5.2.3定時(shí)/計(jì)數(shù)器的特殊功能寄存器 與定時(shí)/計(jì)數(shù)器使用相關(guān)的特殊功能寄存器有: 方式控制寄存器TMOD、狀態(tài)控制寄存器TCON、定時(shí)/計(jì)數(shù)器T0(或T1)的加法計(jì)數(shù)器高8位TH0(或TH1)和低8位TL0(或TL1)。 ……
你還可能感興趣
我要評(píng)論
|