本書以MCS-51系列單片機80C51為例介紹單片機的工作原理、基本應用與開發技術。主要內容包括單片機基礎知識、內外系統結構、匯編與C51語言、中斷與定時/計數器、串口通信、系統接口、應用系統設計等。 本書在單片機傳統教學體系的基礎上進行了較大改進,以C51編程語言作為貫穿全書各章節的主線,并將單片機仿真軟件Proteus和C51編譯軟件Keil的用法與之緊密銜接。為方便讀者學習,每章都有小結和習題,書末附有與教學進度相呼應的8個實驗指導及相關閱讀材料。
十二五*規劃教材;電腦版和手機版課程網站;提供PPT、仿真視頻、閱讀材料、實驗指南、教學小結、習題及答案等資源。
本書于2009年出版,2012年出版第2版,2014年出版第3版。每次出版后都得到了廣大讀者的好評與支持,被許多學校選為教材用書。2014年本書入選十二五普通高等教育本科國家級規劃教材,還被評為全國電子信息類優秀教材一等獎。目前本書已重印20余次,成為常年暢銷教科書。不少讀者和任課教師對本書寄予厚望,以各種方式提出了許多寶貴意見。正因如此,作者更加感到責任重大,決心及時修正本書存在的問題,用更完善的教材回饋讀者。
1.改版解決的問題
(1)關于教材配套習題問題
本書以往的習題內容與教材內容在銜接上不夠密切,教學輔助環節的作用發揮不夠理想,這是前3版中一直存在的老問題,也是許多教師和讀者反饋意見較為集中的地方。為此,本書對這塊內容進行了較大改進,具體做法如下:
根據教材內容重新編排和編寫了課后習題,加強了習題與教材內容的呼應性,其中許多新增習題都是針對本書教學知識點設計的,也有許多是針對書中應用實例的要點編寫的。每章習題都設有單項選擇和問答思考兩種題型,各有20余題可供選做。考慮到讀者自學需要,單項選擇題附有標準答案,問答思考題附有參考提示(答案和提示都放在本書的課程網站里供選用)。
(2)關于立體化教學資源問題
為配合第4版教材內容,我們對已有課程網站進行了全面升級,采用了新的網頁結構,添加了新的課件內容,尤其是新增了與電腦版并行的手機版課程網站。讀者只需使用相同網址http://www.51mcu.cn,系統就能區分上網設備并自動切換到相應版本網站,以獲得最佳瀏覽效果。目前,課程網站可提供多種立體化教學資源,包括PPT講義、仿真實例課件、閱讀材料、實驗指南、教學小結、仿真視頻、習題及答案、單片機學習軟件等內容(其中,課件下載僅能通過電腦登錄課程網站進行,文件解壓密碼為cmee3871)。華信教育資源網www.hxedu.com.cn也有本書部分配套課件可供讀者注冊后下載。
我們還在第4版中加入了課程網站二維碼信息。通過手機掃描本書封面二維碼,讀者就能快捷地打開課程網站頁面;掃描書中二維碼,則可以打開相應課程仿真視頻頁面,實現隨時隨地查閱教學資料的要求。
衷心希望上述改進能為讀者帶來更好的學習效果。
2.本書主要特色
(1)從工程實用性角度出發,將C51定位為單片機教材的基本編程語言,匯編語言只作簡單介紹,從而解決了以往匯編語言學習后仍難以開展工程應用的問題。為降低C51作為基本編程語言的教學難度,本教材采取了4項優化措施:一是將與標準C語言差別最大的C51數據結構內容作為重點內容介紹;二是將中斷函數等難點內容分散到單片機相關原理章節中介紹;三是結合應用實例進行編程原理介紹;四是借助軟件仿真調試進行實踐操作介紹。這些改進措施降低了C51語言學習難度,教與學的效果都有顯著改善。
(2)將單片機仿真軟件Proteus和Keil的內容引入教材并與傳統知識有機融合,使得單片機教材難教、難學的問題得到顯著改善。通過仿真調試和運行,不僅可加深對語法的理解,也可使枯燥抽象的編程學習變得生動有趣。
(3)教材中全部電路圖都采用仿真軟件繪制,確保清晰規范,所有教學實例程序都通過了編譯調試,確保零差錯。
(4)特別設計了一組與教學內容配套的仿真實驗大綱和相應閱讀材料。仿真實驗以其功能全、效率高、成本低等特點開始取代沿用多年的實物實驗。仿真實驗不受實際儀器的限制,可根據教學需要隨意設計實驗,沒有課堂學時限制,無須考慮元器件損壞問題,可大膽進行電路設計、軟件編程和系統開發訓練,在虛擬環境下提高實踐動手能力。
(5)設有與教材內容相呼應的課后習題,許多習題都是針對本書教學知識點設計的,也有許多是針對書中應用實例的要點編寫的。每章習題都設有單項選擇和問答思考兩種題型(習題答案和提示放在本書的課程教學網站里,供讀者參考)。
(6)配套教學網站(http://www.51mcu.cn)可提供與教材配套的PPT講義、實例課件、仿真視頻、要點復習、實驗指南、閱讀材料、習題解答等電子材料。
此次再版工作由林立和張俊亮共同完成。本書再版期間,汪洋和林一樹承擔了全書的習題設計與解答工作,田堃和林澤群承擔了教材配套網站的設計開發,李楊芳負責全書仿真實例的更新與校核。本書再版過程中又一次得到了電子工業出版社的大力支持和幫助,特別是高等教育分社的凌毅編輯,對本書的再版做了大量細致的工作,在此謹致以誠摯的謝意。
再版后的教材一定還有許多不妥之處,書中漏誤在所難免,殷切地期望讀者給予批評指正(請發郵件至cmee0@163.com)。
林立,中國石油大學機電學院教授,博士生導師,從事機械電子工程進展、智能儀器儀表技術和單片機原理及應用等研究生和本科生課程的教學工作。
第1章 單片機基礎知識概述
1.1 單片機概述
1.1.1 單片機及其發展概況
1.1.2 單片機的特點和應用
1.1.3 單片機的發展趨勢
1.1.4 MCS-51單片機的學習
1.2 單片機學習的預備知識
1.2.1 數制及其轉換
1.2.2 有符號數的表示方法
1.2.3 位、字節和字
1.2.4 BCD碼
1.2.5 ASCII碼
1.2.6 基本邏輯門電路
1.3 Proteus應用簡介
1.3.1 ISIS模塊應用舉例
1.3.2 ARES模塊應用舉例
本章小結
思考與練習題1
第2章 MCS-51單片機的結構及原理
2.1 MCS-51單片機的結構
2.1.1 MCS-51單片機的內部結構
2.1.2 MCS-51外部引腳及功能
2.2 MCS-51的存儲器結構
2.2.1 存儲器劃分方法
2.2.2 程序存儲器
2.2.3 數據存儲器
2.3 單片機的復位、時鐘與時序
2.3.1 復位與復位電路
2.3.2 時鐘電路
2.3.3 單片機時序
2.4 并行I/O口
2.4.1 P1口
2.4.2 P3口
2.4.3 P0口
2.4.4 P2口
本章小結
思考與練習題2
第3章 單片機的匯編語言與程序設計
3.1 匯編語言概述
3.1.1 匯編語言指令格式
3.1.2 描述操作數的簡記符號
3.2 MCS-51指令系統簡介
3.2.1 數據傳送與交換類指令
3.2.2 算術運算類指令
3.2.3 邏輯運算及移位類指令
3.2.4 控制轉移類指令
3.2.5 尋址方法
3.2.6 偽指令
3.3 匯編語言的編程方法
3.3.1 匯編語言程序設計步驟
3.3.2 匯編程序應用舉例
本章小結
思考與練習題3
第4章 單片機的C51語言
4.1 C51的程序結構
4.1.1 C51語言概述
4.1.2 C51的程序結構
4.2 C51的數據結構
4.2.1 C51的變量
4.2.2 C51的指針
4.3 C51與匯編語言的混合編程
4.3.1 在C51中調用匯編程序
4.3.2 在C51中嵌入匯編代碼
4.4 C51仿真開發環境
4.4.1 Keil的編譯環境Vision3
4.4.2 基于Proteus和Keil C的程序開發過程
4.5 C51應用編程初步
4.5.1 I/O端口的簡單應用
4.5.2 I/O端口的進階實踐
本章小結
思考與練習題4
第5章 單片機的中斷系統
5.1 中斷的概念
5.2 中斷控制系統
5.2.1 中斷系統的結構
5.2.2 中斷控制
5.3 中斷處理過程
5.4 中斷的編程和應用舉例
5.4.1 中斷程序設計舉例
5.4.2 擴充外部中斷源
本章小結
思考與練習題5
第6章 單片機的定時/計數器
6.1 定時/計數器的結構與工作原理
6.1.1 定時/計數器的基本原理
6.1.2 定時/計數器的結構
6.2 定時/計數器的控制
6.2.1 TMOD寄存器
6.2.2 TCON寄存器
6.3 定時/計數器的工作方式
6.3.1 方式1
6.3.2 方式2
6.3.3 方式0
6.3.4 方式3
6.4 定時/計數器的編程和應用
本章小結
思考與練習題6
第7章 單片機的串行口及應用
7.1 串行通信概述
7.2 MCS-51的串行口控制器
7.2.1 串行口內部結構
7.2.2 串行口控制寄存器
7.3 串行工作方式0及其應用
7.4 串行工作方式1及其應用
7.5 串行工作方式2及其應用
7.6 串行工作方式3及其應用
本章小結
思考與練習題7
第8章 單片機接口技術
8.1 單片機的系統總線
8.1.1 三總線結構
8.1.2 地址鎖存原理及實現
8.2 簡單并行I/O口擴展
8.2.1 訪問擴展端口的軟件方法
8.2.2 簡單并行輸出接口的擴展
8.2.3 簡單并行輸入接口的擴展
8.3 可編程并行I/O口擴展
8.3.1 8255A的內部結構、引腳及地址
8.3.2 8255A的控制字
8.4 D/A轉換與DAC0832應用
8.4.1 DAC0832的工作原理
8.4.2 DAC0832與單片機的接口及編程
8.5 A/D轉換與ADC0809應用
8.5.1 逐次逼近式模數轉換器的 工作原理
8.5.2 ADC0809與單片機的接口及編程
8.6 開關量功率接口技術
8.6.1 開關量功率驅動接口
8.6.2 開關量功率驅動接口應用舉例
本章小結
思考與練習題8
第9章 單片機應用系統的設計與開發
9.1 單片機系統的設計開發過程
9.1.1 單片機典型應用系統
9.1.2 單片機應用系統的開發過程
9.2 單片機系統的可靠性技術
9.2.1 硬件抗干擾技術概述
9.2.2 軟件抗干擾技術概述
9.3 單片機系統設計開發應用 舉例智能儀器
9.3.1 功能概述
9.3.2 硬件電路設計
9.3.3 軟件系統設計
9.3.4 仿真開發過程
9.4 單片機串行擴展單元介紹
9.4.1 串行A/D轉換芯片MAX124X及應用
9.4.2 串行D/A轉換芯片LTC145X及應用
9.4.3 串行E2PROM存儲器AT24CXX及應用
9.4.4 字符型液晶顯示模塊LM1602及應用
9.4.5 串行日歷時鐘芯片DS1302及應用
本章小結
思考與練習題9
附錄A 實驗指導
實驗1 計數顯示器
【閱讀材料1】ISIS模塊的電路繪圖與仿真運行方法
實驗2 指示燈/開關控制器
【閱讀材料2】ISIS模塊的匯編程序 創建與調試方法
實驗3 指示燈循環控制
【閱讀材料3】在Vision3中創建C51程序的方法
實驗4 指示燈/數碼管的中斷控制
【閱讀材料4】C51程序調試方法
實驗5 電子秒表顯示器
【閱讀材料5】Vision3與ISIS的 聯合仿真
實驗6 雙機通信及PCB設計
【閱讀材料6】基于ARES模塊的 PCB設計方法
實驗7 直流數字電壓表設計
【閱讀材料7】ISIS中的虛擬信號 發生器
實驗8 步進電機控制設計
【閱讀材料8】步進電機控制方法
參考文獻