本書是以單片機(jī)工程應(yīng)用實例為重點的技術(shù)書,在簡述了51單片機(jī)的軟硬件基礎(chǔ)之后,重點通過一系列工程應(yīng)用實例,詳細(xì)介紹了單片機(jī)的軟硬件開發(fā)和調(diào)試方法,包括自制單片機(jī)編程器的方法,單片機(jī)的串口通信、定時/計數(shù)器、鍵盤輸入、LED和LCD顯示器等內(nèi)外資源的使用和編程,在匯編程序中調(diào)用C程序的方法。實例中使用了很多當(dāng)前流行的單片機(jī)智能外圍芯片,包括實時鐘、數(shù)字溫度傳感器、DDS波形發(fā)生器、無線數(shù)傳模塊、FM收音機(jī)和USB接口芯片等。書中用一章專題介紹了這些芯片所采用的單總線、IIC總線、SPI總線和USB總線等新型總線技術(shù)的原理;兩個實例中還詳細(xì)講解了單片機(jī)與上位機(jī)RS232串口通信的高級語言編程方法以及用IJSB接口通信的方法。
本書附帶光盤,內(nèi)有實例程序的源代碼。實例中所用的器材,取材容易,適合讀者自己動手來做,特別適合電子技術(shù)類專業(yè)的大學(xué)生作為動手實踐的教材,彌補(bǔ)他們在就業(yè)時缺乏實踐經(jīng)驗的不足。本書涉及了電子工程應(yīng)用的諸多方面,可作為各類單片機(jī)應(yīng)用開發(fā)工程師的參考書。
《51單片機(jī)工程應(yīng)用實例》附帶光盤,內(nèi)有實例程序的源代碼。
實例中所用的器材,取材容易,適合讀者自己動手來做,特別適合電子技術(shù)類專業(yè)的大學(xué)生作為動手實踐的教材,彌補(bǔ)他們在就業(yè)時缺乏實踐經(jīng)驗的不足!51單片機(jī)工程應(yīng)用實例》涉及了電子工程應(yīng)用的諸多方面,可作為各類單片機(jī)應(yīng)用開發(fā)工程師的參考書。
全書共分10章,第1、2章介紹開發(fā)51單片機(jī)必備的基礎(chǔ)知識和工具,有關(guān)這部分內(nèi)容的書籍已很多,一般都講得很詳細(xì),本書不打算再重復(fù)這樣的寫法,占用讀者過多的時間。本書將把那些在單片機(jī)開發(fā)過程中難以記憶、又經(jīng)常使用的資料匯總起來,力圖做到重點突出、內(nèi)容精煉。第1章介紹51單片機(jī)的硬件結(jié)構(gòu),重點介紹目前使用較多的具有Flash閃存的兼容型51單片機(jī),也簡單介紹一類能夠通過串口編程的新型51單片機(jī)。第2章在簡單介紹51單片機(jī)指令系統(tǒng)和匯編語言程序設(shè)計之后,重點介紹Keil μVision2集成開發(fā)環(huán)境的使用方法,特別是使用模擬仿真器調(diào)試程序的方法。第3章介紹單片機(jī)常用的擴(kuò)展總線,包括并行和串行擴(kuò)展總線兩部分,重點介紹串行擴(kuò)展總線,其中包括DALLAS公司的單總線、PHILIPS公司的IIC總線(也稱I2C總線)以及SPI和USB總線等,這些都是目前一些新型單片機(jī)外設(shè)芯片廣泛使用的通信總線,掌握這些知識是使用這些IC芯片的基礎(chǔ)。從第4章到第10章是本書的實例部分。第4章電子鐘的內(nèi)容相對簡單,硬件包括按鍵和LED顯示器的用法,軟件主要是定時器及其中斷。第5章的電容電感測量儀是進(jìn)行電路實驗的有力工具。硬件主要是一個LC振蕩器和字符型LCD顯示器,軟件除了定時/計數(shù)器外,主要是浮點運算,還有字符型LCD顯示器的編程方法。第6章DDS波形信號發(fā)生器也是一個很有用的電路實驗儀器。硬件介紹DDS芯片的使用,軟件介紹IIC接口器件的編程方法。實際上,本書的某些實例對于那些從未接觸過單片機(jī)的讀者來說還是有一定難度的。第7章自制簡單的51編程器。制作該編程器其實并不簡單,需要掌握兩個難點,一個是51單片機(jī)的編程時序,另一個是單片機(jī)串口通信。因此,感到困難的讀者可以先跳過這部分難點,直接使用書中提供的程序,只要能使編程器工作即可,待以后再慢慢消化難點。并行編程的方法雖然在慢慢淡出市場,但是其中用到的時序邏輯和編程方法,對讀者來說仍然是十分有用的知識和工具,這些知識永遠(yuǎn)不會過時。本章最后介紹USB轉(zhuǎn)換器CH341,它能將一個串口編程器轉(zhuǎn)換成一個USB接口編程器。第8章溫度數(shù)據(jù)無線傳輸系統(tǒng)是一個綜合性的實用工程實例。硬件包括DS18B20數(shù)字溫度傳感器、nRF905無線數(shù)傳模塊、AT89C2051單片機(jī)和上位機(jī),軟件包括單總線器件的編程方法、SPI接口器件的編程以及用高級語言編寫的上位機(jī)串口數(shù)據(jù)發(fā)送和接收程序。上位機(jī)串口數(shù)據(jù)發(fā)送和接收程序在第7章和第8章中都用到了,是一個很有用的工具,我曾用它使一臺價值30萬元、即將報廢的日產(chǎn)精密儀器起死回生,得到了公司的獎勵。第9章熔斷時間測試儀結(jié)合一種工業(yè)用的電量傳感器,介紹單片機(jī)在精密時間測試中的應(yīng)用。第10章FM收音機(jī)圍繞PHILIPS公司的單芯片調(diào)頻收音機(jī)集成電路,比較系統(tǒng)地介紹有關(guān)調(diào)頻廣播的知識,包括調(diào)頻信號的原理、調(diào)頻信號產(chǎn)生的方法和調(diào)頻收音機(jī)的原理。軟件方面進(jìn)一步強(qiáng)化了IIC總線的編程方法。本章特別詳細(xì)介紹在匯編語言程序中調(diào)用具有傳遞參數(shù)和返回參數(shù)的C程序的方法,并給出了完整的實例。
書中實例內(nèi)容豐富、取材廣泛,除了單片機(jī)本身之外,還涉及電子工程應(yīng)用的諸多方面,包括信號源、測試測量、傳感器、無線電通信和廣播信號接收等,具有較高的實用價值和廣泛的應(yīng)用范圍,有利于拓展讀者的知識面,適合工程應(yīng)用的各類人士借鑒。
本書實例中的所有程序源代碼都可在隨書附帶的光盤中找到,以方便讀者使用。經(jīng)常聽到一些大學(xué)應(yīng)屆畢業(yè)生就業(yè)難的消息,今年以來,受社會經(jīng)濟(jì)各種因素的影響,這種情況尤其甚于往年。前些天,我的風(fēng)華高科的同事來電話與我討論關(guān)于招聘應(yīng)用電子工程師的問題,多數(shù)用人單位認(rèn)為應(yīng)屆大學(xué)生的經(jīng)驗不足,動手能力差,知識面太窄,不能立即勝任工作。由于大學(xué)教育受在校時間、實驗條件等各方面因素的限制,學(xué)生確實也存在著這樣的問題。所以,我希望本書能給電子技術(shù)等相關(guān)專業(yè)的學(xué)生提供一些自己動手進(jìn)行實驗的實例,通過這些實例切實提高他們的實際工作能力,開闊他們的視野。另外我要強(qiáng)調(diào)的是,這些實例無需昂貴的儀器設(shè)備,都是花費不多即可在自家環(huán)境下進(jìn)行實驗。如果能將這些實驗真正自己動手做好,那么你的實踐經(jīng)驗和動手能力就會有一個較大的提高。
本書能夠出版,首先感謝北京航空航天大學(xué)出版社的胡曉柏主任,沒有他的鼓勵和支持,也就沒有勇氣完成這項工作。當(dāng)然,還要感謝本書的責(zé)任編輯宋淑娟老師,由于她認(rèn)真、細(xì)致的編審,去除了書中不少瑕疵,使讀者能更好地讀懂書中所講的知識。
我要感謝為本書付出辛勤勞動的我的同事和朋友們。沒有他們的幫助,本書不可能在短期內(nèi)完稿。本書第1章由楊揚執(zhí)筆完成,第3章的部分內(nèi)容由張瑤嬋完成,其余部分由唐繼賢完成。實驗電路板PCB版圖由陳海同設(shè)計繪制。楊曉平和郭鐵成提供了片式電阻器的有關(guān)資料。歐陽克勇、漢澤西、魏聚英、李守為、劉月旻幫助驗證了本書的部分例程。文字校對工作主要由劉樹祥、房俊、段石、王潔完成。另外,參與本書編寫和提供資料的還有楊明、王泰安、尚滌世、楊崇仁、王啟如和孫毓明等。
本人作為EDN博客上首位寫書的網(wǎng)友,得到了EDN網(wǎng)站的特別關(guān)注和支持,網(wǎng)站專門成立了本書的書友會小組,EDN代理本書的網(wǎng)上銷售業(yè)務(wù),免費為部分讀者提供PCB實驗板,代購實驗板所用套件,并將持續(xù)開展有關(guān)該書的一些活動。因此,我要特別感謝EDN網(wǎng)站,感謝網(wǎng)站上各位支持我的網(wǎng)友。書友會的網(wǎng)址是: http://group.ednchina.com/1023/。
最后感謝我的女兒唐娜,書中主要圖表,都是她幫助完成的。
由于本人水平有限,書中的瑕疵在所難免,歡迎專家和各位讀者批評指正。我的電子郵箱是: tang_jx@163.com。
唐繼賢,高級工程師,1982年畢業(yè)于西安交通大學(xué)信息與控制工程系無線電工程學(xué)士。長期在電子設(shè)備制造業(yè)工作,擔(dān)任過總工、副總經(jīng)理等。曾參加過秦山核電站北京正負(fù)電子對撞機(jī)等國家重點工程配套電子設(shè)備的研制工作近年來對單片機(jī)應(yīng)用技術(shù)具有濃厚的興趣,開發(fā)出多種基于單片機(jī)和微電腦的應(yīng)用產(chǎn)品。2006年底在EDN電子設(shè)計技術(shù)上開始博客寫作,全部為作者原創(chuàng)主要是單片機(jī)應(yīng)用技術(shù)以及電子電路、設(shè)備維修等方面的內(nèi)容受到了讀者的歡迎,多次入選EDN博客名人堂,并獲得最佳博客三等獎,是EDN博客首位寫書的網(wǎng)友。作者還是一位資深的業(yè)余無線電愛好者,個人呼號BD9AH,在新浪上有一個記錄個人業(yè)余生活的博客。
第1章 C51系列單片機(jī)的硬件結(jié)構(gòu)
1.1 AT89C51單片機(jī)
1.1.1 AT89C51單片機(jī)的內(nèi)部結(jié)構(gòu)
1.1.2 AT89C51單片機(jī)的封裝和引腳
1.1.3 AT89C51單片機(jī)的存儲器
1.1.4 AT89C51單片機(jī)定時/計數(shù)器
1.1.5 AT89C51單片機(jī)的串口
1.1.6 AT89C51單片機(jī)的中斷
1.1.7 AT89C51單片機(jī)的時鐘電路和時序
1.1.8 AT89C51的工作方式
1.1.9 AT89C51的程序封鎖位
1.2 AT89C2051單片機(jī)
1.3 STC51單片機(jī)
1.3.1 STC51單片機(jī)的特點
1.3.2 典型代表型號性能簡介
1.3.3 STC51單片機(jī)的編程
第2章 C51單片機(jī)的指令系統(tǒng)和匯編語言程序設(shè)計
2.1 指令組成
2.2 尋址方式
2.3 指令說明
2.4 匯編語言程序設(shè)計
2.4.1 匯編語言程序的格式
2.4.2 偽指令
2.4.3 匯編語言程序示例
2.5 集成開發(fā)環(huán)境μVision2
2.5.1 μVision2的窗口界面和功能
2.5.2 創(chuàng)建項目
2.5.3 調(diào)試
第3章 單片機(jī)的總線擴(kuò)展
3.1 并行總線的擴(kuò)展
3.1.1 用鎖存器擴(kuò)展并行口
3.1.2 用三態(tài)門擴(kuò)展并行口
3.1.3 用串行口擴(kuò)展并行口
3.2 IIC總線
3.2.1 IIC總線的工作原理
3.2.2 IIC總線的工作時序
3.2.3 IIC總線的數(shù)據(jù)傳送格式
3.2.4 IIC總線的尋址方式
3.2.5 在MCS-51單片機(jī)中軟件模擬IIC總線的方法
3.3 DALLAS公司的單總線
3.3.1 硬件結(jié)構(gòu)和連接
3.3.2 單總線的工作原理
3.3.3 單總線通信協(xié)議
3.3.4 單總線命令編程
3.4 SPI總線
3.4.1 SPI總線的接口信號
3.4.2 SPI總線的工作原理
3.4.3 SPI總線在8051單片機(jī)系統(tǒng)中的應(yīng)用
3.5 USB總線
3.5.1 USB系統(tǒng)硬件
3.5.2 USB系統(tǒng)的軟件設(shè)計
第4章 采用LED顯示的電子鐘
4.1 數(shù)字鐘的硬件組成
4.2 實時鐘電路PCF8563簡介
4.2.1 PCF8563的封裝和引腳功能
4.2.2 PCF8563的內(nèi)部資源和寄存器
4.2.3 PCF8563的應(yīng)用電路
4.2.4 PCF8563程序設(shè)計
4.3 設(shè)置當(dāng)前時間的方法
4.4 六位LED顯示器的工作原理
4.4.1 硬件電路
4.4.2 匯編程序
4.5 數(shù)字鐘編程
4.5.1 程序流程
4.5.2 匯編程序
第5章 電容電感測量儀
5.1 LCD1602液晶顯示器簡介
5.1.1 LCD1602的引腳功能
5.1.2 LcD1602與單片機(jī)的連接
5.1.3 LCD1602的指令集
5.1.4 LCD1602的應(yīng)用編程
5.2 用單片機(jī)測量頻率的方法
5.3 電容電感測量儀的測量原理
5.3.1 電容量測量的一般原理
5.3.2 本機(jī)的測量原理
5.4 電容電感測量儀的制作
5.4.1 測量儀的硬件原理
5.4.2 測量儀的編程
第6章 DDS波形發(fā)生器
6.1 DDS原理與特點
6.2 AD9835的應(yīng)用與編程
6.2.1 內(nèi)部原理
6.2.2 引腳及功能
6.2.3 內(nèi)部寄存器、控制字和編程
6.2.4 AD9835的基本應(yīng)用電路
6.3 矩陣鍵盤的使用
6.4 用AD9835和單片機(jī)制作的波形發(fā)生器
6.5 調(diào)試方法
6.5.1 硬件電路的調(diào)試
6.5.2 軟件調(diào)試
第7章 自制簡單的51編程器
7.1 8051系列單片機(jī)編程器的基本原理
7.2 編程器的硬件電路
7.3 上位機(jī)程序
7.3.1 串口通信控件MScomm的使用
7.3.2 上位機(jī)程序窗口說明
7.3.3 VB程序源碼及說明
7.4 監(jiān)控單片機(jī)程序
7.4.1 編程函數(shù)及編程方法
7.4.2 主函數(shù)流程圖
7.4.3 監(jiān)控單片機(jī)程序
7.5 使用USB接口的編程器
7.5.1 USB接口芯片CH341簡介
7.5.2 CH341的應(yīng)用電路
7.5.3 CH341在編程器中的應(yīng)用
第8章 溫度數(shù)據(jù)無線傳輸系統(tǒng)
8.1 DS18820數(shù)字溫度傳感器簡介
8.1.1 DS18820的引腳封裝和性能
8.1.2 DS18820的內(nèi)部結(jié)構(gòu)
8.1.3 DS18820在單片機(jī)系統(tǒng)中的應(yīng)用
8.1.4 DS18820的功能命令
8.1.5 DS18820的編程
8.2 nRF905無線數(shù)傳芯片
8.2.1 芯片內(nèi)部結(jié)構(gòu)
8.2.2 nRF905的封裝和引腳
8.2.3 工作模式
8.2.4 nRF905的配置
8.2.5 應(yīng)用電路
8.3 NewMsg-RF905SE無線收發(fā)模塊
8.3.1 用戶接口
8.3.2 NewMsg-RF905SE與單片機(jī)的連接
8.4 系統(tǒng)的硬件結(jié)構(gòu)
8.5 單片機(jī)編程
8.6 上位機(jī)編程
第9章 熔斷時間測試儀
9.1 慢熔型片式熔斷器
9.2 電流傳感器
9.3 測試儀的硬件結(jié)構(gòu)
9.4 測試儀的編程
第10章 FM收音機(jī)
10.1 FM廣播系統(tǒng)的基礎(chǔ)知識
10.1.1 調(diào)頻廣播系統(tǒng)
10.1.2 調(diào)頻廣播收音機(jī)的原理
10.2 TEA5767HN單片F(xiàn)M調(diào)諧器
10.2.1 TEA5767HN的性能
10.2.2 TEA5767HN的引腳和封裝
10.2.3 TEA5767HN的內(nèi)部結(jié)構(gòu)和功能
10.2.4 TEA5767HN的總線接口和控制寄存器
10.2.5 TEA5767HN的典型應(yīng)用電路
10.3 FM收音模塊
10.4 使用單片機(jī)和FM收音模塊制作FM收音機(jī)
10.4.1 收音機(jī)硬件電路的說明
10.4.2 收音機(jī)的編程
10.5 調(diào)試方法和有關(guān)問題
附錄
附錄A 51指令碼速查表
附錄B ASCII碼表
附錄C 實驗電路板
附錄D 英漢名詞對照
參考文獻(xiàn)
后記