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