《單片機原理實用教程:基于Proteus虛擬仿真(第2版)》是湖北省省級精品課程《單片機原理與應用》教材,并獲得全國電子信息優秀教材二等獎。教材系統地闡述了基于Proteus虛擬仿真技術的8051單片機原理與接口技術,以及其應用系統設計的原理和方法;主要包括8051單片機基本結構、中斷系統、定時器/計數器,以及串行口的工作原理,8051指令系統,匯編語言及高級語言Keil C51應用程序設計技術,DAC與ADC接口技術,鍵盤與顯示器接口技術等;以實例方式介紹了在Proteus平臺上進行單片機應用系統虛擬仿真設計的方法,給出了大量在Proteus集成環境ISIS中繪制的原理電路圖和仿真程序。
為方便讀者學習,本教材隨書附贈光盤一張,光盤內容包括書中全部應用實例、一個完整的Proteus設計仿真演示視頻和一個Proteus DEMO安裝軟件,其中所有實例均可在Proteus軟件平臺上直接運行。
讀者對象:本書可作為高等學校工業自動化、電子信息工程、電子測量儀器、計算機應用等相關專業單片機原理與應用課程的教材,也可供廣大從事單片機應用系統開發的工程技術人員閱讀。
近年來單片機技術得到了突飛猛進的發展,以單片機為核心設計各種智能化電子設備,周期短、成本低、易于更新換代、維修方便,已成為電子設計中最為普遍的應用手段。目前各種單片機開發工具層出不窮,英國Labcenter公司推出的Proteus軟件是一款極好的單片機開發平臺,它以其特有的虛擬仿真技術很好地解決了單片機及其外圍電路的設計和協同仿真問題,可以在沒有單片機實際硬件的條件下,利用PC進行虛擬仿真實現單片機系統的軟、硬件協同設計。采用Proteus虛擬仿真技術,可以在原理圖設計階段對系統性能進行評估,驗證所設計電路是否達到技術指標要求,使設計過程變得簡單容易。
Proteus軟件涵蓋了PIC、AVR、MCS8051、68HC11、ARM等微處理器模型,以及多種常用電子元器件,包括74系列、CMOS4000系列集成電路、A/D和D/A轉換器、鍵盤、LCD顯示器、LED顯示器,還提供示波器、邏輯分析儀、通信終端、電壓/電流表、I2C/SPI終端等各種虛擬儀表,這些都可以直接用于仿真設計,極大地提高了設計效率和設計水平。
Proteus軟件已有20多年的歷史,在國外應用較為普遍,尤其在教育界的口碑極佳。Proteus軟件被引入國內,在多所高等工科院校中獲得成功應用。單片機教學中采用Proteus軟件,使單片機的學習過程變得直觀形象。可以直接在基于原理圖的虛擬模型上進行編程,并實現源碼級的程序仿真調試。例如,有顯示及輸出,還能看到程序運行后的輸入、輸出效果,配合各種虛擬儀表來展現整個單片機系統的運行過程,很好地解決了長期以來困擾單片機教學過程中軟件和硬件無法很好結合的難題。采用PC進行虛擬仿真實驗要比采用單片機實驗箱更為有效,可以根據需要隨時對原理電路圖進行修改,并立即獲得仿真結果。由于在PC上修改原理電路圖要比在實驗箱上修改硬件電路容易得多,而且還可以根據設計要求采用不同元器件,或者修改元器件參數以獲得不同輸出結果。在成功進行虛擬仿真并獲得期望結果的條件下,再制作實際硬件進行在線調試,可以獲得事半功倍的效果。學生普遍反映,在Proteus軟件平臺上學習單片機知識,比以往單純學習書本知識更易于接受,以原理圖虛擬模型進行程序仿真調試更易于提高單片機編程能力,還可以通過繪制和修改原理電路圖增加很多實踐經驗。
本書是湖北省省級精品課程《單片機原理與應用》教材,并獲得全國電子信息優秀教材二等獎,教程在構思及選材上,注意盡量符合單片機應用系統的發展要求,并給出了在Proteus軟件平臺上予以實現的設計實例。2009年出版以來已3次重印,得到讀者廣泛好評。這次再版進行了修訂,將原書內容安排做了調整以更利于學習,同時增加單片機高級語言程序設計的內容。
全書共分為10章:
第1章闡述8051單片機的基本組成、存儲器結構及CPU時序。
第2章闡述8051單片機的指令系統與匯編語言程序設計。
第3章~第5章分別闡述8051單片機的中斷系統、定時器/計數器,以及串行口的工作原理與應用方法。
第6章闡述8051單片機系統擴展的方法。
第7章闡述DAC及ADC接口技術,介紹了傳統并行接口及新型串行接口D/A、A/D轉換器芯片與單片機的接口方法。
第8章闡述鍵盤與顯示器接口技術,介紹了LED/LCD顯示器、矩陣鍵盤與單片機的接口方法。
第9章闡述單片機高級語言Keil C51應用程序設計,介紹了C51的基本語句、數據類型、Keil C51對ANSI C的擴展及庫函數等。
第10章闡述Proteus虛擬仿真技術,介紹了在ISIS集成環境中繪制原理電路圖、匯編語言源代碼調試,以及與Keil環境聯機仿真,給出了6個完整的Proteus虛擬仿真設計實例及其匯編和C51源程序。
本教程每一章都配有Proteus設計范例,并隨本書配套光盤提供給讀者,配套光盤中還包括一個完整的Proteus設計仿真演示視頻和一個Proteus DEMO安裝軟件。通過本教程的學習,可以較快地掌握單片機基本原理及接口應用技術,為實際工作打下堅實的基礎。在編寫過程中得到廣州風標電子技術有限公司(Proteus中國大陸總代理)匡載華總經理的大力支持和熱情幫助,還得到朱镕濤、楊青勝、彭秀華、徐陽、劉冰、賀媛、許雪怡、陳夔蛟、方小玲、吳雄慧、鄭鵬鵬、秦波、黃存堅、朱艷麗等的協助,在此一并表示感謝。
徐愛鈞 于長江大學
2011年2月
第1章 8051單片機的基本組成
1.1 8051單片機的特點與基本結構
1.2 8051單片機的存儲器結構
1.3 CPU時序
1.4 復位信號與復位電路
1.5 并行I/O端口結構
復習思考題1
第2章 指令系統與匯編語言程序設計
2.1 指令助記符和字節數
2.2 尋址方式
2.2.1 寄存器尋址
2.2.2 直接尋址
2.2.3 立即尋址
2.2.4 寄存器間接尋址
2.2.5 變址尋址
2.2.6 相對尋址
2.2.7 位尋址
2.3 指令分類詳解
2.3.1 算術運算指令
2.3.2 邏輯運算指令
2.3.3 數據傳送指令
2.3.4 控制轉移指令
2.3.5 位操作指令
2.4 匯編語言程序格式與偽指令
2.5 應用程序設計
2.6 定點數運算子程序
復習思考題2
第3章 8051單片機的中斷系統
3.1 中斷的概念
3.2 中斷系統結構與中斷控制
3.3 中斷響應
3.4 中斷系統應用舉例
3.4.1 中斷源擴展
3.4.2 中斷嵌套
復習思考題3
第4章 定時器/計數器及其應用
4.1 定時器/計數器的工作方式與控制
4.2 定時器/計數器應用舉例
4.2.1 初值和最大定時時間計算
4.2.2 定時器方式應用
4.2.3 計數器方式應用
4.3 利用定時器產生音樂
復習思考題4
第5章 串行口及其應用
5.1 串行通信方式
5.2 串行口的工作方式與控制
5.3 串行口應用舉例
5.3.1 串口/并口轉換
5.3.2 單片機之間的通信
5.3.3 單片機與PC之間的通信
復習思考題5
第6章 8051單片機系統擴展
6.1 程序存儲器擴展
6.2 數據存儲器擴展
6.3 并行I/O端口擴展
6.4 利用I2C總線進行系統擴展
6.5 新型Flash單片機簡介
6.5.1 Atmel公司的AT89x51
6.5.2 SST公司的89E564RD
6.6 8051單片機的節電工作方式
6.6.1 空閑和掉電工作方式
6.6.2 節電方式的應用
復習思考題6
第7章 DAC及ADC接口技術
7.1 A/D及D/A轉換器的主要技術指標
7.2 DAC接口技術
7.2.1 無內部鎖存器的DAC接口方法
7.2.2 DAC0832與8051單片機的接口方法
7.2.3 DAC1208與8051單片機的接口方法
7.2.4 串行DAC與8051單片機的接口方法
7.2.5 利用DAC接口實現波形發生器
7.3 ADC接口技術
7.3.1 比較式ADC 0809與8051單片機的接口方法
7.3.2 積分式ADC 7135與8051單片機的接口方法
7.3.3 串行ADC與8051單片機的接口方法
復習思考題7
第8章 鍵盤與顯示器接口技術
8.1 LED顯示器接口技術
8.1.1 七段LED數碼顯示器
8.1.2 串行接口8位共陰極LED驅動器MAX7219
8.2 鍵盤接口技術
8.2.1 編碼鍵盤接口技術
8.2.2 非編碼鍵盤接口技術
8.2.3 鍵值分析
8.3 8279可編程鍵盤/顯示器芯片接口技術
8.3.1 8279的工作原理
8.3.2 8279的數據輸入、顯示輸出及命令格式
8.3.3 8279的接口方法
8.4 液晶顯示器LCD接口技術
8.4.1 LCD顯示器的工作原理和驅動方式
8.4.2 點陣字符液晶顯示模塊接口技術
8.4.3 點陣圖形液晶顯示模塊接口技術
復習思考題8
第9章 單片機高級語言Keil C51應用程序設計
9.1 Keil C51程序設計的基本語法
9.1.1 Keil C51程序的一般結構
9.1.2 數據類型
9.1.3 常量、變量及其存儲模式
9.1.4 運算符與表達式
9.2 C51程序的基本語句
9.2.1 表達式語句
9.2.2 復合語句
9.2.3 條件語句
9.2.4 開關語句
9.2.5 循環語句
9.2.6 goto、break、continue語句
9.2.7 返回語句
9.3 函數
9.3.1 函數的定義與調用
9.3.2 中斷服務函數與寄存器組定義
9.4 Keil C51編譯器對ANSI C的擴展
9.4.1 存儲器類型與編譯模式
9.4.2 關于bit,sbit,sfr和sfr數據類型
9.4.3 一般指針與基于存儲器的指針及其之間轉換
9.4.4 C51編譯器對ANSI C函數定義的擴展
9.5 C51編譯器的數據調用協議
9.5.1 數據在內存中的存儲格式
9.5.2 目標代碼的段管理
9.6 與匯編語言程序的接口
9.7 絕對地址訪問
9.7.1 采用擴展關鍵字_at_或指針定義變量的絕對地址
9.7.2 采用預定義宏指定變量的絕對地址
9.8 Keil C51庫函數
9.8.1 本征庫函數
9.8.2 字符判斷轉換庫函數
9.8.3 輸入/輸出庫函數
9.8.4 字符串處理庫函數
9.8.5 類型轉換及內存分配庫函數
9.8.6 數學計算庫函數
復習思考題9
第10章 Proteus虛擬仿真設計實例
10.1 集成環境ISIS
10.2 繪制原理圖
10.3 創建源代碼仿真文件
10.4 在原理圖中進行源代碼仿真調試
10.5 原理圖與Keil環境聯機仿真調試
10.6 數字多用表設計
10.6.1 功能要求
10.6.2 硬件電路設計
10.6.3 軟件程序設計
10.7 數字溫度計設計
10.7.1 功能要求
10.7.2 硬件電路設計
10.7.3 軟件程序設計
10.8 紅外遙控系統設計
10.8.1 功能要求
10.8.2 硬件電路設計
10.8.3 軟件程序設計
10.9 簡易電子琴設計
10.9.1 功能要求
10.9.2 硬件電路設計
10.9.3 軟件程序設計
10.10 電子萬年歷設計
10.10.1 功能要求
10.10.2 硬件電路設計
10.10.3 軟件程序設計
復習思考題10
附錄A 8051指令表