《單片機原理及其應用》第1版自出版以來廣受讀者好評。但由於第1版書中講解的μPD78F0485單片機即將停產,為了更好地適應教學的需要,更好地引導讀者入門學習單片機技術,對部分內容進行了改寫,作為第2版教材出版。
隨著電子技術、計算機技術、通信技術的發展,我們已經進入人工智能時代,像單片機這樣的智能芯片的應用也越來越普遍。但是要掌握單片機技術還是有一定的門檻,本書再版的目的就是為了讓更多的讀者比較容易地了解單片機的結構原理,以及通過一些實例學習如何將單片機應用於解決實際問題。
單片機雖然型號繁多,電路結構和功能差別較大,但是從一款結構和功能相對簡單的單片機入手去學習單片機技術,打下一定的基礎,對於激發學習興趣,提高自學能力,並進一步掌握嵌入式繫統的設計與開發都將大有裨益。本書選用51單片機作為樣本,對單片機的電路和功能結構、工作原理及應用開發進行講解。
本書所有編寫人員都是多年從事單片機教學的大專院校教師,有豐富的教學經驗,懂得如何引導初學者入門並一步步打好基礎。
本書主要由袁濤、任佳麗、蔚晨月、鄭淑軍、李月香等共同編寫完成。其中,清華大學袁濤、山西大學李月香負責全書的規劃,山西大學李雪蓮編寫了第6章和第7章; 晉中信息學院蔚晨月編寫了第9章和第12章,晉中信息學院李青雲編寫了第10章和第11章,晉中信息學院呂淑芳編寫了第4章和第5章,晉中信息學院楊璐編寫了第1章和第2章; 山西工程科技職業大學任佳麗編寫了第13章和第14章,山西工程科技職業大學關志艷編寫了第8章; 山東職業學院鄭淑軍編寫了第3章和第15章,山西大學李月香編寫了第16章,清華大學袁濤編寫了第17章。
本書在編寫過程中查閱和參考了大量51單片機相關書籍及網上資料,在此對所有資料的作者表示衷心的感謝!
由於編者水平所限,對於書中存在的問題和疏漏,敬請廣大讀者和各位專家批評指正。
編者2022年5月
課件
實操演示講解
(以105為例講解)
第1版前言
嵌入式繫統是硬件、軟件組成的綜合繫統,其應用覆蓋領域極為廣泛,從天空到地面,從軍工到民用,幾乎隨處可見,一個家庭中擁有幾十片單片機已經不足為奇。
單片機(或稱為微控制器)是集成了CPU、存儲器、定時器、中斷控制器、UART和SPI串行通信接口、並行I/O等多種所需功能電路的一塊芯片。它具有體積小、功能強大、抗干擾能力強、功耗低、允許工作電壓在寬範圍內波動等特點,是嵌入式繫統中為核心的部件。學習和掌握單片機的原理與應用,是設計開發嵌入式繫統的技術關鍵。
單片機的功能配置極具靈活性,絕大多數引腳為多功能復用,可以根據應用需要選擇定義,用同一型號的單片機定義出成百上千種引腳功能各異的單片機並非誇張。因此,不用花費ASIC (Application Specific Integrated Circuit)的價格,也能配置出專用的單片機。單片機的單芯片化使得嵌入式繫統的電路設計越來越簡潔和可靠,但同時必然使得單片機型號明顯增多。對開發應用人員來講,應該針對不同情況選用不同型號的單片機。
單片機雖然型號繁多,但其組成和應用原理是相通的。深入學習和掌握一款功能豐富的8位單片機的使用,就能夠為應用各種單片機打下一個堅實的基礎。本書以μPD78F0485單片機為例介紹了嵌入式繫統的基本原理與應用設計。μPD78F0485單片機是瑞薩(Renesas)公司78K0(8位)繫列單片機中的一個芯片型號,其內部電路功能非常豐富,功耗低(休眠電流僅為2.5μA左右),工作電壓範圍寬(在1.8~5.5V電壓下可以正常工作),是一款性價比很高的8位高端單片機芯片,對於讀者從入門到提高具有很好的示範作用。它提供的默認設置使得許多應用變得簡單; 功能強大、靈活的C編譯器更是為它的開發應用提供了方便,甚至隻熟悉8051單片機、PIC單片機的使用者也不會感到上手困難。書中第2~17章分別介紹了μPD78F0485單片機中各部分電路的原理、功能及使用,並提供了豐富的應用實例,實例中的程序都是用C語言編寫的,並且大部分程序可以在附錄B中的實驗裝置上實際運行。
78K0繫列中的單片機型號很多,但是C編譯器是相同的,隻是器件文件不同而已。編者用μPD78F0485、pPD78F0495、μPD78F9116等不同型號單片機開發完成了多個重要項目,從中切實體驗了C語言可移植性好、可維護性好、開發效率高的特點。甚至僅使用C編譯器和程序固化器就完成了某些項目的開發,更說明了C語言的良好特性。
C語言是目前流行的一種計算機高級語言,它主要用於單片機和一般微型計算機的軟件開發。不同廠家單片機的C語言的區別主要是編譯、連接程序不同,從而生成不同的機器代碼。目前從事嵌入式繫統技術開發的人員眾多、分布領域廣、技術基礎差異大,推廣使用C高級語言開發單片機是非常必要的。C高級語言程序設計速度快、可讀性好、可靠性高、可維護性好、可移植性好、代碼轉換質量高。一般情況下,完成同樣的任務,用C高級語言比用彙編語言工作效率可提高5~10倍,在調試階段更容易體會到這一點。毋庸置疑,C高級語言程序設計能力是從事嵌入式繫統開發工作的技術。
單片機C高級語言的特點是同時兼有高級語言和彙編語言的優點,可以像彙編語言那樣直接利用單片機的硬件特性進行程序設計,即直接操作單片機的硬件接口。因此,目前在嵌入式繫統的應用領域,C高級語言越來越受到人們的重視。C高級語言使單片機的開發變得簡單易行。C高級語言可移植性好,書中以哪款單片機為例並不重要,在滿足應用要求的前提下,將嵌入式繫統中的一款單片機更換為其他型號的單片機並不困難。為了避免重復,書中第21章“C高級語言基礎”中主要介紹了μPD78F0485 單片機所用的C編譯器CC78K0中相對於標準C所增加的內容,而且還詳細敘述了如何進行編譯、連接,以及編譯、連接控制選項的使用等,這部分對於如何用好C高級語言進行單片機開發是不可忽視的內容。
第20章以實例的方式介紹了基於模型的設計方法,這是嵌入式繫統開發方法的進一步發展,能有效解決當前軟件故障越來越多發的難題。
附錄A中所述的開發工具 EZ/EM1是單片機學習和開發的重要工具。它實現了表面封裝單片機的片上調試功能(onchips debug),瑞薩電子公司78K0(8位)、78KOR(16位)和V850(32位)繫列的單片機都可以使用此開發工具。
本書具有如下突出特點:
(1) 軟件設計采用C高級語言,程序可以很容易地移植到其他型號或其他廠家單片機中。
(2) 設計實例具體而豐富,實用性強,即使基礎薄弱的讀者,結合附錄A~附錄D的實驗指導也能容易地入門。書中GSM無線數據通信實例還為學有餘力的讀者學習提高提供了指導。
(3) 對低功耗設計進行了專門的敘述。
(4) 附錄中介紹的實驗裝置便於攜帶,學生可以放入書包隨時使用。這點類似發達國家名校的做法,以利於鼓勵學習積極性,培養興趣,提高能力。實驗裝置不僅能配合書中內容學習,其本身也是個綜合設計的範例,書中給出它的電路設計,便於讀者分析和制作實驗裝置。
本書既適用於工程技術人員自學使用,也適用於各工科大專院校和中等專科學校作為教材,以及作為技術培訓教材。對於有一定單片機基礎的讀者,可以先閱讀附錄和第5章,然後再根據需要選擇閱讀有關章節的內容。
本書主要由清華大學自動化繫袁濤、山西大學計算機繫李月香、清華大學楊勝利執筆,太原工業學院張麟華完成了第9章的編寫工作。在成書過程中,得到了瑞薩電子公司、瑞薩電子(中國)有限公司、瑞薩電子(香港)有限公司、清華大學瑞薩單片機及嵌入式繫統研究與培訓中心、山西大學瑞薩電子聯合實驗室的大力支持,在此表示衷心感謝。對參與本書部分工作的任佳麗、牛鵬飛、王曉波、李青雲、李美俊、單紹明表示感謝!
由於編者水平有限,且時間倉促,書中難免存在缺點和錯誤,懇請讀者批評指正。
編者
2011年7月於清華大學自動化繫