關(guān)于我們
書單推薦
新書推薦
|
單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)
本書較全面和詳細(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)容, 并通過大量實(shí)例分析, 重點(diǎn)講解單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)方法, 以培養(yǎng)讀者單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)能力。全書共12章。每章節(jié)的例題均由淺入深, 循序漸進(jìn)、講解透徹。書中相關(guān)例程均在KeilC51 3.0環(huán)境下調(diào)試通過, 能夠?qū)嶋H演示。每章最后備有習(xí)題, 以及時鞏固所學(xué)知識。
內(nèi)容全面,概念清晰,由淺入深,循序漸進(jìn)。本書全面介紹了MCS-51單片機(jī)的原理、指令系統(tǒng)、51匯編語言和C51語言編程方法、接口技術(shù)、應(yīng)用系統(tǒng)設(shè)計(jì)方法,以及嵌入式操作系統(tǒng)在51單片機(jī)中的應(yīng)用方法。
案例翔實(shí),具有實(shí)戰(zhàn)演練功能。書中所有例題均在Keil μVision開發(fā)環(huán)境下調(diào)試通過,并給出Proteus仿真環(huán)境下的實(shí)現(xiàn)結(jié)果,不是紙上談兵,而是實(shí)戰(zhàn)演習(xí)。 配套資源豐富,包含有電子課件、所有例題的電路圖與源代碼以及習(xí)題解答,而且程序的關(guān)鍵部分標(biāo)有注釋,是學(xué)習(xí)單片機(jī)軟硬件設(shè)計(jì)技術(shù)的理想教材和工具。
本書的目的是幫助初學(xué)者學(xué)習(xí)使用單片機(jī)。首先,作者總結(jié)多年的工程實(shí)踐經(jīng)驗(yàn)和教學(xué)體會,先與讀者分享一下學(xué)習(xí)經(jīng)驗(yàn)。
1. 分享經(jīng)驗(yàn) 首先,是做好基礎(chǔ)知識的準(zhǔn)備;A(chǔ)知識包括模擬電路、數(shù)字電路和C語言知識。在學(xué)習(xí)單片機(jī)之前,應(yīng)先溫習(xí)所學(xué)過的模擬電路、數(shù)字電路以及C語言知識,為學(xué)習(xí)單片機(jī)加強(qiáng)基礎(chǔ)。 單片機(jī)的硬件電路大多數(shù)屬于數(shù)字電路,如果數(shù)字電路基礎(chǔ)扎實(shí),對復(fù)雜的單片機(jī)硬件結(jié)構(gòu)和原理就能容易理解,就能輕松地邁開學(xué)習(xí)的第一步。因此,如果你覺得單片機(jī)很難,那就應(yīng)該先去重溫?cái)?shù)字電路,搞清楚觸發(fā)器、寄存器、門電路、CMOS電路、時序邏輯和時序圖、進(jìn)制轉(zhuǎn)換等基礎(chǔ)知識。當(dāng)你掌握了這些基礎(chǔ)知識后再去看單片機(jī)的結(jié)構(gòu)和原理,就會大徹大悟,信心倍增。模擬電路是電子技術(shù)的基礎(chǔ),主要內(nèi)容是學(xué)習(xí)電阻、電容、電感、二極管、三極管、場效應(yīng)管及放大器等模擬器件的工作原理和在電路中的作用。扎實(shí)的模擬電路基礎(chǔ)可以讓你容易看懂別人設(shè)計(jì)的電路,也能使你設(shè)計(jì)的電路更可靠。同時,單片機(jī)的學(xué)習(xí)離不開編程,在所有的程序設(shè)計(jì)中C語言運(yùn)用最為廣泛。C語言知識并不難,需要掌握的知識就那么幾種數(shù)據(jù)類型和幾個控制語句。可別小看這幾種數(shù)據(jù)類型和幾個控制語句,用它們可以處理各種形式的數(shù)據(jù)以及非常復(fù)雜的邏輯關(guān)系。 扎實(shí)的電子技術(shù)基礎(chǔ)和C語言基礎(chǔ),會讓你的單片機(jī)學(xué)習(xí)得心應(yīng)手。當(dāng)單片機(jī)乖乖地依照你的想法和設(shè)計(jì)去執(zhí)行指令,實(shí)現(xiàn)預(yù)期結(jié)果的時候,成就感會讓你信心十足地投入到單片機(jī)的世界里,未來的單片機(jī)專家就是你。 其次,要通過實(shí)踐積累經(jīng)驗(yàn)。單片機(jī)的學(xué)習(xí)具有很強(qiáng)的實(shí)踐性,是一門很注重實(shí)際動手操作的技術(shù)學(xué)科,不動手實(shí)踐是學(xué)不會單片機(jī)的。因此,實(shí)踐才是真正學(xué)習(xí)單片機(jī)的必由之路。 實(shí)踐中要有一套完整的學(xué)習(xí)開發(fā)工具, 即必須有一臺計(jì)算機(jī)、◆單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)(第2版)前言一套單片機(jī)開發(fā)板、視頻教程和單片機(jī)教材。計(jì)算機(jī)上要安裝Keil C51集成開發(fā)軟件,用來編寫和編譯程序,并將程序代碼下載到單片機(jī)上;開發(fā)板用來運(yùn)行單片機(jī)程序,驗(yàn)證實(shí)際效果;視頻教程就是手把手教你單片機(jī)開發(fā)環(huán)境的使用、單片機(jī)編程和調(diào)試。對于單片機(jī)初學(xué)者來說,視頻教程必須看,否則,即使把教材看了幾遍,還是不知道如何下手;單片機(jī)教材是理論學(xué)習(xí)資料,備忘備查。初學(xué)者為了節(jié)約成本和時間,可以先用Proteus軟件仿真調(diào)試,熟悉之后,再使用開發(fā)板調(diào)試程序。 軟件編程要注重理論和實(shí)踐相結(jié)合,效果會更好?吹嚼填}目先試著構(gòu)思自己的編程思路,然后再看教材或視頻教程里的代碼,研究別人的編程思路以及與自己思路的差異;接下來是親自動手編寫程序,對有疑問的地方試著按照自己的思路修改程序,比較程序運(yùn)行效果,領(lǐng)會其中的奧妙。還可以在原有程序基礎(chǔ)上改進(jìn)和拓展,使其功能更強(qiáng)大。此外,自己應(yīng)該找些項(xiàng)目來做,以鞏固所學(xué)的知識和積累更多的經(jīng)驗(yàn)。 在實(shí)踐中要多與同行虛心交流。在單片機(jī)學(xué)習(xí)過程中,每個人都會遇到無數(shù)的問題,如果你向有經(jīng)驗(yàn)的過來人虛心求教,就會少走許多彎路,節(jié)省很多時間。 最后,研究硬件設(shè)計(jì),實(shí)現(xiàn)產(chǎn)品開發(fā)。學(xué)習(xí)單片機(jī)的最終目的是做產(chǎn)品開發(fā),產(chǎn)品即是一個軟硬件相結(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ù)手冊(Datasheet)中都能找到答案。電子技術(shù)領(lǐng)域的第一手資料就是Datasheet,而且?guī)缀醵际侨⑽牡,從Datasheet里所獲得的知識,可能是在教科書、網(wǎng)絡(luò)文檔和課外讀物等中很少見到的。雖然有些資料也都是在Datasheet的基礎(chǔ)上撰寫的,但內(nèi)容不全面,甚至存在翻譯上的遺漏和錯誤。所以良好的英文閱讀能力也是學(xué)習(xí)單片機(jī)技術(shù)不可缺少的。PCB板的設(shè)計(jì)相對簡單,只要懂得使用PCB板設(shè)計(jì)軟件Protel或 Altium Designer就 沒問題了。但要想設(shè)計(jì)的板子布局美觀、布線合理,還需要在實(shí)踐中不斷學(xué)習(xí)。 具備一定的Keil C51環(huán)境下的單片機(jī)編程經(jīng)驗(yàn)、會使用Protel軟件或 Altium Designer軟件設(shè)計(jì)硬件電路以及良好的英文閱讀能力,你就是遇強(qiáng)則強(qiáng)的單片機(jī)高手了。 2. 本書內(nèi)容 本書第2版增加了工程實(shí)踐內(nèi)容。多年來,MCS51系列單片機(jī)一直是學(xué)習(xí)單片機(jī)技術(shù)的主要教學(xué)平臺,在嵌入式技術(shù)高速發(fā)展的大環(huán)境下,單片機(jī)技術(shù)課程已經(jīng)不再是培養(yǎng)電子工程師課程體系的最終環(huán)節(jié),單片機(jī)的教學(xué)要為后續(xù)學(xué)習(xí)嵌入式系統(tǒng)打下良好基礎(chǔ)。因此,本書在編寫過程中,除了論述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. 本書特色 (1) 強(qiáng)調(diào)動手實(shí)踐。 實(shí)踐是學(xué)好單片機(jī)技術(shù)的必經(jīng)之路。本書詳細(xì)介紹了Keil μVision集成開發(fā)環(huán)境下進(jìn)行匯編語言程序和C51程序開發(fā)的過程;書中所有案例程序均在Keil μVision環(huán)境下調(diào)試通過,不是紙上談兵,而是實(shí)戰(zhàn)演習(xí)。 (2) 強(qiáng)調(diào)單片機(jī)應(yīng)用系統(tǒng)的軟硬件整體設(shè)計(jì)。 書中給出了若干完整的單片機(jī)應(yīng)用系統(tǒng)實(shí)例。案例的編寫具有完整性、系統(tǒng)性和工程性。 所有案例均給出可實(shí)施的系統(tǒng)級設(shè)計(jì)資料,包括完整的可實(shí)現(xiàn)電路板布線的硬件電路原理圖(并非電路示意圖)和完整的 Keil μVision環(huán)境下調(diào)試通過的軟件源程序工程代碼(并非程序段或偽代碼)。 所有案例均給出仿真實(shí)現(xiàn)過程和結(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í)踐。書中單片機(jī)應(yīng)用系統(tǒng)案例均可在該學(xué)習(xí)板上硬件實(shí)現(xiàn)。 (3) 為嵌入式系統(tǒng)學(xué)習(xí)打好基礎(chǔ)。 嵌入式系統(tǒng)是單片機(jī)技術(shù)發(fā)展的高級階段,因此學(xué)習(xí)單片機(jī)要做好進(jìn)一步學(xué)習(xí)嵌入式系統(tǒng)的知識準(zhǔn)備。一方面是加強(qiáng)C語言程序設(shè)計(jì)能力,另一方面是加強(qiáng)嵌入式操作系統(tǒng)在51單片機(jī)系統(tǒng)上應(yīng)用的內(nèi)容介紹。此外,本書介紹了嵌入式操作系統(tǒng)在51單片機(jī)系統(tǒng)中應(yīng)用的方法和實(shí)例。 (4) 配套資源豐富。 本書配有多媒體資料,其中包含電子課件、所有相關(guān)例程源代碼、習(xí)題解答及編程題的程序源代碼,并且在程序的關(guān)鍵部分加以注釋,既適合作為教材供教師和學(xué)生使用,也適合自學(xué)成才。 4. 致謝 本書由沈陽理工大學(xué)馬秀麗、周越、王紅共同編寫。本書第1~5章和8.8節(jié)由馬秀麗編寫,第7~10章由周越和王紅編寫,第6和第11章由周越和馬秀麗編寫,王紅霞參加了附錄和部分章節(jié)的編寫工作。最后由馬秀麗審閱并統(tǒng)稿完成。感謝本書所列參考文獻(xiàn)的作者,他們的工作給了我們很大的幫助和啟發(fā)。感謝為本書出版付出辛勤勞動的清華大學(xué)出版社的工作人員。感謝讀者選用本書。 盡管全體參編人員竭心盡力,但限于自身水平,書中難免會有遺漏,懇請廣大讀者不吝指正,同時歡迎您對本書內(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ī)的等級9 1.3.3單片機(jī)的應(yīng)用9 1.4單片機(jī)的選型10 習(xí)題11 第2章單片機(jī)的基本原理12 2.1MCS51系列單片機(jī)簡介12 2.1.1MCS51系列單片機(jī)的特點(diǎn)12 2.1.2MCS51系列單片機(jī)的常用芯片簡介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ī)的存儲器分布20 2.2.4MCS51系列單片機(jī)的輸入輸出接口26 2.2.5MCS51系列單片機(jī)的時鐘電路29 2.2.6MCS51系列單片機(jī)的復(fù)位電路29 2.3MCS51系列單片機(jī)的引腳功能31 2.4MCS51系列單片機(jī)的時序33 2.4.1MCS51系列單片機(jī)的時序單位33 2.4.2MCS51系列單片機(jī)典型指令的時序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ī)匯編語言程序設(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ī)匯編語言程序設(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語言程序設(shè)計(jì)80 4.1C語言與MCS51系列單片機(jī)80 4.1.1C語言與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變量的存儲模式89 4.3.4絕對地址的訪問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逗號運(yùn)算符和逗號表達(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)語句98 4.6.1C51程序的基本結(jié)構(gòu)98 4.6.2C51語句100 4.6.3if語句100 4.6.4switch…case語句101 4.6.5while語句102 4.6.6do…while語句102 4.6.7for語句103 4.6.8break和continue語句103 4.6.9return語句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定時/計(jì)數(shù)器接口121 5.2.1定時/計(jì)數(shù)器的主要特性121 5.2.2定時/計(jì)數(shù)器T0、T1的工作原理122 5.2.3定時/計(jì)數(shù)器的特殊功能寄存器123 5.2.4定時/計(jì)數(shù)器的工作模式124 5.2.5定時/計(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存儲器擴(kuò)展196 6.2.1單片機(jī)系統(tǒng)總線196 6.2.2數(shù)據(jù)存儲器擴(kuò)展197 6.2.3程序存儲器擴(kuò)展199 6.2.4單片機(jī)對外部存儲器的讀寫時序200 6.3輸入輸出口擴(kuò)展202 6.3.1簡單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開關(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總線工作時序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溫度檢測器設(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編程時注意事項(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矩陣式鍵盤掃描識別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)開發(fā)工具323 11.1Keil μVision集成開發(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ì)開發(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的庫函數(shù)343 B.1專用寄存器頭文件regxx.h343 B.2字符函數(shù)庫ctype.h343 B.3一般輸入輸出函數(shù)庫stdio.h344 B.4字符串函數(shù)庫string.h345 B.5標(biāo)準(zhǔn)函數(shù)庫stdlib.h347 B.6數(shù)學(xué)函數(shù)庫math.h348 B.7預(yù)定義宏函數(shù)庫absacc.h349 B.8內(nèi)部函數(shù)庫intrins.h349 參考文獻(xiàn)351
第5章chapter5
MCS51單片機(jī)內(nèi)部資源及編程1.1微型計(jì)算機(jī)簡介MCS51系列單片機(jī)的內(nèi)部資源主要有并行I/O口、定時器/計(jì)數(shù)器、串行接口以及中斷系統(tǒng),MCS51系列單片機(jī)的大部分功能就是通過對這些資源的利用來實(shí)現(xiàn)的。 5.1并行輸入輸出接口 MCS51系列單片機(jī)有4個8位的并行輸入輸出接口P0、P1、P2和P3。這4個接口既可以并行輸入輸出8位數(shù)據(jù),也可以按位方式獨(dú)立地使用每一位作為輸入輸出接口。其中,P0 口是一個8位漏極開路的雙向I/O接口,在用作通用I/O接口時,P0 口必須外接上拉電阻;此外在連接外存儲器使用時,P0口被用作低8位地址及數(shù)據(jù)總線接口。P1、P2和P3是帶內(nèi)部上拉電阻的8位雙向I/O 接口,都具有直接驅(qū)動負(fù)載能力。此外P2 口在連接外存儲器使用時,被用作高8位地址總線接口;而P3口除用作通用I/O接口使用外,還用于實(shí)現(xiàn)特殊功能。這里先介紹它們用作通用I/O口的編程。 【例51】利用MCS51單片機(jī)的P0口接2個發(fā)光二極管,P1口接2個開關(guān),編程實(shí)現(xiàn),當(dāng)P1.X連接的開關(guān)動作時,對應(yīng)的P0.X連接的發(fā)光二極管亮或滅。 設(shè)計(jì)思路: 先把P1口的內(nèi)容讀出,然后把讀取的P1口的開關(guān)狀態(tài)通過P0口輸出,即可控制發(fā)光二極管的亮或滅。電路原理圖 如圖5.1所示。 匯編程序如下: ORG0000H LJMPSTAR ORG 0100H STAR: MOV P0,#0FFH LOOP: MOV A,P1 MOV P0,A SJMP LOOP END C51語言程序如下: #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利用并行接口開關(guān)控制LED燈的應(yīng)用 ◆單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)(第2版)第◆5章MCS51單片機(jī)內(nèi)部資源及編程5.2定時/計(jì)數(shù)器接口〖*4/5〗5.2.1定時/計(jì)數(shù)器的主要特性MCS51系列單片機(jī)中,51子系列有兩個16位的可編程定時/計(jì)數(shù)器T0和T1,52子系列有三個16位的可編程定時/計(jì)數(shù)器T0、T1和T2。它們既可以編程為定時器使用,通過對內(nèi)部機(jī)器周期計(jì)數(shù)來實(shí)現(xiàn)定時功能;也可以編程為計(jì)數(shù)器使用,通過對外部輸入端脈沖信號周期進(jìn)行計(jì)數(shù)來實(shí)現(xiàn)計(jì)數(shù)功能。用來計(jì)數(shù)的特殊功能寄存器是TH0和TL0(或TH1和TL1)。每個定時/計(jì)數(shù)器用作定時器方式還是計(jì)數(shù)器方式,要通過對特殊功能寄存器TMOD的編程來選擇。 每個定時/計(jì)數(shù)器都有多種工作模式,其中T0有四種工作模式;T1和T2有三種工作模式。其工作模式的設(shè)定是通過對特殊功能寄存器TMOD的編程來選擇的。 每一個定時/計(jì)數(shù)器有啟動、停止和溢出三種工作狀態(tài),啟動和停止?fàn)顟B(tài)是通過對特殊功能寄存器TCON的編程來控制的;溢出狀態(tài)是當(dāng)定時計(jì)數(shù)時間到時產(chǎn)生溢出,由硬件自動將特殊功能寄存器TCON的溢出標(biāo)志位置位。溢出狀態(tài)可以通過查詢或中斷方式來處理。 定時/計(jì)數(shù)器是MCS51系列單片機(jī)的重要功能模塊之一,在工業(yè)控制、檢測、智能儀器等產(chǎn)品中使用非常廣泛。這部分內(nèi)容的學(xué)習(xí)目標(biāo)是: (1) 理解定時/計(jì)數(shù)器T0和T1的工作原理。 (2) 掌握特殊功能寄存器TMOD、TCON、TH0和TL0(或TH1和TL1)的功能和使用,即會設(shè)定定時/計(jì)數(shù)器的工作方式: 定時器方式和計(jì)數(shù)器方式。 會設(shè)定定時/計(jì)數(shù)器的四種工作模式: 模式0~3。 會控制定時/計(jì)數(shù)器的啟動和停止。會通過查詢或中斷方式來處理溢出。 (3) 學(xué)會定時/計(jì)數(shù)器的編程和使用。 5.2.2定時/計(jì)數(shù)器T0、T1的工作原理 MCS51系列單片機(jī)的定時/計(jì)數(shù)器T0和T1是由加法計(jì)數(shù)器、方式控制寄存器TMOD和狀態(tài)控制寄存器TCON等組成,其基本結(jié)構(gòu)如圖5.2所示。其中,加法計(jì)數(shù)器是定時/計(jì)數(shù)器的核心,其作用是對內(nèi)部機(jī)器周期或外部輸入信號的周期進(jìn)行計(jì)數(shù),它是用8位的特殊功能寄存器TH0、TL0及TH1、TL1來表示, TH0和TL0用于表示定時/計(jì)數(shù)器T0加法計(jì)數(shù)器的高8位和低8位;TH1和TL1用于表示定時/計(jì)數(shù)器T1加法計(jì)數(shù)器的高8位和低8位。方式控制寄存器TMOD用于設(shè)定定時/計(jì)數(shù)器的工作方式和工作模式;狀態(tài)控制寄存器TCON用于控制定時/計(jì)數(shù)器的啟動、停止和溢出。 圖5.2定時/計(jì)數(shù)器T0和T1的結(jié)構(gòu)框圖 定時/計(jì)數(shù)器有兩種工作方式: 定時器方式和計(jì)數(shù)器方式。 當(dāng)用作定時器時,加法計(jì)數(shù)器在每個機(jī)器周期TCY內(nèi)都做加1計(jì)數(shù),即為內(nèi)部機(jī)器周期計(jì)數(shù),由于一個機(jī)器周期包含12個振蕩周期,因此其計(jì)數(shù)的速率是振蕩頻率的1/12。當(dāng)計(jì)數(shù)值滿,產(chǎn)生溢出(即加法計(jì)數(shù)器最高位產(chǎn)生進(jìn)位)時,便自動將TCON的溢出標(biāo)志位置“1”(如果預(yù)先設(shè)置了允許定時器中斷,則同時還向CPU請求中斷)。 此時,從加法計(jì)數(shù)器計(jì)數(shù)開始到產(chǎn)生溢出所經(jīng)歷的計(jì)數(shù)時間就是定時器的定時時間。 例如,定時/計(jì)數(shù)器T0的加法計(jì)數(shù)器的初值是X,其最大計(jì)數(shù)值(即滿值)是M,當(dāng)用作定時器時,加法計(jì)數(shù)器從計(jì)數(shù)開始到溢出所經(jīng)歷的計(jì)數(shù)值N為: 計(jì)數(shù)值N=最大計(jì)數(shù)值M-初值X 定時時間 =計(jì)數(shù)值N×機(jī)器周期=計(jì)數(shù)值N×振蕩周期fOSC/12 這里需要注意的是,在不同的工作模式下,加法計(jì)數(shù)器的使用位數(shù)不同,因此其最大計(jì)數(shù)值(滿值)是不一樣。 當(dāng)用作計(jì)數(shù)器時,加法計(jì)數(shù)器對單片機(jī)引腳輸入端T0(P3.4)或T1(P3.5)上的外部脈沖輸入信號進(jìn)行計(jì)數(shù)(即檢測到一個1→0的跳變時使加法計(jì)數(shù)器加1),由于識別一個從1至0的跳變至少要用到兩個機(jī)器周期(即一個機(jī)器周期檢測到1,下一個機(jī)器周期檢測到0),因此計(jì)數(shù)的最高速率是振蕩頻率的1/24。當(dāng)計(jì)數(shù)值滿,產(chǎn)生溢出(即加法計(jì)數(shù)器最高位產(chǎn)生進(jìn)位)時,便自動將TCON的溢出標(biāo)志位置1(如果預(yù)先設(shè)置了允許定時器中斷,則同時還向CPU請求中斷)。此時,從加法計(jì)數(shù)器計(jì)數(shù)開始到產(chǎn)生溢出所經(jīng)歷的時間就是計(jì)數(shù)器的計(jì)數(shù)時間。 這里需要注意的是,在使用計(jì)數(shù)器方式時,為了能準(zhǔn)確對每一個外部輸入脈沖信號進(jìn)行計(jì)數(shù),外部輸入脈沖信號的頻率應(yīng)小于振蕩頻率的1/24。 5.2.3定時/計(jì)數(shù)器的特殊功能寄存器 與定時/計(jì)數(shù)器使用相關(guān)的特殊功能寄存器有: 方式控制寄存器TMOD、狀態(tài)控制寄存器TCON、定時/計(jì)數(shù)器T0(或T1)的加法計(jì)數(shù)器高8位TH0(或TH1)和低8位TL0(或TL1)。 ……
你還可能感興趣
我要評論
|