內容簡介 本書由淺至深系統地向讀者介紹了單片機的軟硬件結構、程序設計、仿真和調試方法,從“實用”的角度出發(fā),著重介紹了諸如通道控制、顯示、鍵盤、通信、A/D、D/A等多個模塊的具體實現方法以及目前流行的SPI、I2C總線接口的基本用法,是作者多年來對單片機技術開發(fā)、教學工作的一次比較系統的總結。書中所有代碼都經過作者上機驗證,有的就是實際工程的范例,相信讀者能從這些范例中得到啟迪。根據本書,讀者在系統的學習之后,應該可以獨立設計出一個真正符合現場環(huán)境的應用系統,達到從“實驗”到“實用”的目的。前言 近幾年來,單片機技術的發(fā)展已達到了相當高的水平,一些新型單片機層出不窮,技術日新月異。越來越多的電子愛好者都想在這一新型領域有所作為,有關單片機的書籍和資料也很多。然而令眾多初學者困惑的是:如何才能根據現場環(huán)境設計出一個具體的應用系統,而不是僅僅停留在會控制一組發(fā)光二極管,能編寫一個簡單的程序讓單片機奏出一段音樂上。如何才能真正學好單片機?我從作為一個有著十幾年嵌入式系統開發(fā)經驗的單片機開發(fā)工程師的角度向讀者提以下幾點建議。 重在實踐提出“重在實踐”,是因為單片機開發(fā)是一門實踐性很強的技術。一個成功的應用系統,包括軟件和硬件的設計都是經過大量的試驗完成的。試問,一個連電烙鐵都不會使用的人如何能學好單片機呢?因此要想真正入門單片機,首先還是要建立一個“實時仿真”的應用環(huán)境,最好有一套可以隨時動手的“在線實時仿真”系統,如“仿真機”、應用試驗板、下載實驗儀等。在“實時仿真”系統環(huán)境中進行在線試驗,會使初學者有較為直觀的感性認識。 貴在總結一個成熟可靠的單片機應用系統軟件是由許多不同功能的子程序組合在一起的,而這些子程序往往是通用的,如鍵盤、顯示、通信子程序等。將這些子程序通過不同的主程序靈活地組織起來,便可構成多個功能完全不同的應用系統。因此,不斷在實踐中總結和積累,是初學者成為一名單片機高手的必由之路。許多單片機愛好者幾乎都有這樣的觀點:理論是基礎,經驗才是最為寶貴的財富。這些寶貴的經驗正是他們在實踐中不斷總結的結晶。 掌握相關的基礎知識要想學好單片機,僅僅掌握單片機的知識是遠遠不夠的,因為一個成功的單片機應用系統并不是一個獨立的、封閉的系統。舉個例子,在實驗室中,編寫了一段程序,可以靈活自如地通過單片機的I/O口控制一組發(fā)光二極管,但要同樣通過這幾個端口去控制一組發(fā)動機或一個家用電器,也許會覺得無從下手。這時候數字和模擬電路的基礎知識便顯得尤為重要了。它們在一個單片機應用系統內不是分離的、獨立的,而是相輔相成的關系。一個連模擬電路基礎知識都不太懂的人是肯定學不好單片機的。另外,本書的內容并沒有過多地涉及單片機的內部結構,而是偏重單片機技術的應用,在“實用”二字上下功夫。它通過利用SST89系列單片機強大的IAP和ISP功能,以SST89C58為核心設計的仿真下載實驗儀為主導線,可使讀者在不具備專業(yè)仿真器的情況下完成51系列的絕大多數單片機在線調試。首先從最基本的I/O接口、鍵盤、顯示、通信講起,之后是A/D轉換并介紹一些近年來比較流行的新技術,如I2 C總線等,其中又重點介紹了目前流行的基于Windows環(huán)境下的單片機集成開發(fā)環(huán)境μVision。它的最大特點之一是對C語言的完美支持??紤]到讀者的實際水平和接受能力,本書多數例程都給出了匯編和C語言兩種源程序。當然,不可否認的是,在讀者真正掌握了一種單片機之后,就會發(fā)現,采用C高級語言設計程序將是單片機技術今后發(fā)展的方向。本書是以2002.1至2003.10刊登在《電子世界》雜志上的“單片機應用技術講座”為基礎,并補充了部分內容編寫完成的,是我多年來對單片機技術開發(fā)、教學工作的一次比較系統的總結。書中所有代碼都經過我上機驗證,有的就是實際工程的范例,相信讀者能從這些范例中得到啟迪。對于本書的出版,首先要感謝北京航空航天大學的何立民教授,他在百忙之中對該書的初稿進行了審校,并將具體修改意見通過編輯部予以轉告,使得該書得以順利出版;其次,還要特別致謝《電子世界》雜志社主編戴茗女士,她親自為該書撰寫序言以及不遺余力地在初學者特別是大學生讀者中推廣、普及單片機的知識;最后,還要感謝我的家人,妻子李冰承擔了繁瑣的書稿抄寫、打印工作;還有我的父母,他們一直是我從事這項工作的堅強后盾和動力源泉。嚴天峰2005年5月于蘭州交通大學《電子世界》雜志社網址:www.eleworld.com作者信箱:yantianfeng@163.com