AVR單片機原理及測控工程應用——基于ATmega48/ATmega16(第2版)以AVR系列中極具優(yōu)勢的ATmega48和ATmega16單片機為對象,在詳細講述AVR單片機應用原理的基礎上構建時域測量、頻域測量、單片機控制系統(tǒng)設計和分布式測控系統(tǒng)四大測控工程應用板塊,深入剖析和融合相關知識,梳理知識脈絡,抓住共性問題。通過詳述大量應用實例的設計思路、原理、方法和步驟,將AVR單片機資源和應用技巧與具體工程實踐有機結合,力求典型、實用,講明嵌入式系統(tǒng)中的模擬電路設計要點,使讀者建立起嵌入式系統(tǒng)設計的概念。全書以C語言(GCCAVR)作為編程設計語言展開AVR單片機應用原理的講述,深入淺出,高度概括GCCAVR的應用特點和技巧,以增強讀者嵌入式系統(tǒng)應用的軟件設計能力,改變以匯編語言講述單片機原理的現(xiàn)狀。
《AVR單片機原理及測控工程應用:基于ATmega48/ATmega16(第2版)》可以作為電氣、信息和儀表類專業(yè)單片機及儀器儀表類課程的本科或碩士研究生的教材和參考書,也可供工程技術人員參考。
單片機作為計算機的一個重要分支,隨著信息技術的發(fā)展,其應用需求日益增多,應用范圍越來越廣,促使其新的架構不斷出現(xiàn),性能不斷改進.AVR單片機采用哈佛結構,廢除了機器周期,拋棄了復雜指令計算機(CISC)追求指令完備的做法,采用精簡指令集(RISC),以字作為指令長度單位,將內(nèi)容豐富的操作數(shù)與操作碼安排在一字之中(指令集中占大多數(shù)的單周期指令均如此),取指周期短,又可預取指令,實現(xiàn)了流水作業(yè),可高速執(zhí)行指令.另外,AVR 系列單片機片上都集成了豐富且性能優(yōu)異的外圍電路元件,使得低價位的AVR系列單片機贏得了更多的市場.
本書重點介紹AVR系列中的ATmega48/ATmega16單片機,同時介紹具有同樣結構存儲器且容量稍大的ATmega88、ATmega168/ATmega32,以測控工程應用為背景深入細致講解.全書的編寫主要基于以下幾點考慮:(1)AVR 系列單片機是8位機中的佼佼者.作為高端產(chǎn)品,其中ATmega48/ATmega16單片機資源豐富,性能優(yōu)異,具有良好的抗干擾特性,價格低廉,吸引了很多用戶,廣泛應用于工業(yè)現(xiàn)場、家電和消費電子等領域,然而專門講述ATmega48/88/168單片機及ATmega16/32單片機的書籍很少.基于ATmega48/ATmega16物美價廉的特點,在介紹極具性價比且已被工程界廣泛應用的ATmega48的同時,講解具有JTAG調(diào)試接口的高性能、廉價的ATmega16,既考慮了工程師的需求,又滿足了AVR初學者的愿望.
。2)雖然單片機相關課程一直作為電氣、信息及儀器儀表類專業(yè)的重點課程,是電子系統(tǒng)綜合應用的平臺課程,然而很多教材往往注重的是CPU 本身結構的分析講解,側重匯編指令的分析和記憶,卻很少提及單片機系統(tǒng)的開發(fā)過程和開發(fā)方法;通常只是說明針對某一工程應用該如何分析,以及給出硬件電路和程序流程,而沒有具體講述到底如何動手編寫程序,怎樣把程序下載進行軟硬件聯(lián)合調(diào)試等,使學生一直停留在理論設計水平.尤其是實驗環(huán)節(jié),多為以匯編編程的驗證性實驗,且大都是片斷代碼的驗證,然而目前所面對的多為復雜的嵌入式系統(tǒng)工程設計,代碼龐大,綜合性強.另外,C程序設計早已成為主流,C程序的簡單應用系統(tǒng)設計實驗將成為實驗環(huán)節(jié)的發(fā)展趨向.本書在強化單片機工作原理講述的同時,以C語言(GCCAVR)作為編程設計語言,并將嵌入式C程序設計的技巧貫穿進去,增強讀者嵌入式系統(tǒng)應用的軟件設計能力,改變以匯編語言講述單片機原理的現(xiàn)狀.
。3)目前,很多單片機書籍缺乏工程應用背景,內(nèi)容組織上對嵌入式計算機的系統(tǒng)資源調(diào)配及各種接口技術的應用講述較少,更沒有站在工程實踐角度構建單片機應用系統(tǒng)的設計思想和方法.學生沒有形成學好一種機型是為了方便學習和應用其他機型的意識,致使很多學生面對實際應用無從下手,甚至產(chǎn)生不知道為什么要學,學了又能用來干什么的疑問,學生學習該課程的興致不高.另外一些書籍所講述的內(nèi)容,尤其是接口器件,既陳舊,又不切合實際,不但增加了學生負擔,而且使學生接觸到的并非新知識和新器件,不能跟蹤主流技術.一些應用實例的書籍跳躍性大,實例起點不一,不適于自學提高.本書在符合認知規(guī)律的前提下,優(yōu)化教材結構,與主流技術接軌,結合工程背景,從具體設計實例中進行循序漸進的總結性學習,使讀者獲得事半功倍的效果.
。4)目前,很多課程和技術較混亂,比如“單片機接口技術”、“計算機控制系統(tǒng)”、“傳感器與檢測技術”、“智能化測控儀表”等相關課程,都是以單片機為系統(tǒng)核心,進行信號檢測采集處理、顯示、傳輸和控制,包括器件接口技術和人機接口等,大量內(nèi)容重復且缺乏系統(tǒng)性.其實,這些課程存在一些共性的技術問題,深入研究和系統(tǒng)介紹這些共性技術,無疑將對設計、研制和使用自動檢測系統(tǒng)起到重要的作用,也可為打算進入該領域的讀者尋找到一條捷徑.目前,國內(nèi)測控儀表方面的教科書不少,但是,大多數(shù)是一般性原理、方法和裝置簡介,較為系統(tǒng)地論述測控儀表中共性技術的書籍很少,尤其多以MCS 51為藍本,設計方法落后且器件陳舊.本書在詳細講述AVR單片機應用原理的基礎上,構建時域測量、頻域測量、單片機控制系統(tǒng)設計和分布式測控系統(tǒng)四大應用板塊,詳述設計思路、原理、方法和步驟,給出常用傳感器及儀器儀表設計實例和典型控制系統(tǒng)設計實例,將課程體系深度融合,抓住共性問題,力圖在講述ATmega48/ATmega16單片機原理的同時,通過單片機的應用來講述單片機的相關應用技術及應用領域,使讀者建立起嵌入式的概念,從而架起電氣、信息和儀器儀表類工程領域與計算機應用的橋梁.
全書由劉海成主持編寫統(tǒng)稿,許亮、劉柏森、高旭東、楊春光、李艷蘋任副主編.劉海成編寫第1、5、7章,許亮編寫第4章,劉柏森編寫第2章,高旭東編寫第8章,楊春光編寫第6章和附錄,李艷蘋編寫第3章.秦進平教授、葉樹江教授和韓喜春教授審閱了全稿并提出了很多寶貴意見,在此對他們表示由衷的感謝.書中參考和應用了許多學者和專家的著作和研究成果,還有一些網(wǎng)友的作品,在此也向他們表示誠摯的敬意和感謝.北京航空航天大學出版社的胡曉柏主任一直關心本書的出版,在此表示深深的謝意.最后,感謝我的妻子和女兒對我的支持和鼓勵!
該書敘述簡潔,涵蓋內(nèi)容廣,知識容量大,涉及的應用實例多,適于高等院校電子、電氣、通信及自動化等專業(yè)學生單片機及接口類、計算機控制及智能測控儀表類等課程使用,也適合作為電子設計競賽自學或培訓的教材,同時,也可以作為工程技術人員的參考書.
本書雖然力求完美,但是水平有限,錯誤之處在所難免.敬請讀者不吝指正和賜教,不勝感激!
作者
2015年6月
第1章 ATmega48/ATmega16單片機概述
1.1 AVR系列單片機概述
1.1.1 單片機與嵌入式系統(tǒng)知識問答
1.1.2 當代單片機內(nèi)核結構的發(fā)展趨勢
1.1.3 AVR單片機概述
1.1.4 AVR系列單片機選型
1.2 ATmega48/ATmega16單片機及其存儲器結構
1.2.1 ATmega48/88/168與ATmega16/32單片機性能概述
1.2.2 ATmega48/ATmega16存儲器結構
1.3 ATmega48/ATmega16最小系統(tǒng)與系統(tǒng)初始配置
1.3.1 ATmega48/ATmega16的引腳排列
1.3.2 ATmega48和ATmega16最小系統(tǒng)設計
1.3.3 ATmega48/ATmega16的系統(tǒng)時鐘源及單片機熔絲配置
1.3.4 AVR單片機ISP全攻略及熔絲補救方法
1.3.5 ATmega48/ATmega16的掉電檢測電路(BOD)
1.4 嵌入式C編程與AVR
1.4.1 AVR的C語言開發(fā)環(huán)境
1.4.2 C語言環(huán)境訪問MCU 寄存器
1.4.3 GCC編譯器下E2PROM 和Flash存儲器的訪問
1.4.4 C語言下E2PROM 存儲器的通用訪問方法
1.4.5 AVRC編譯器的在線匯編
1.4.6 標準C下位操作實現(xiàn)綜述
1.4.7 GCCAVR的delay.h文件與延時
1.4.8 如何優(yōu)化單片機系統(tǒng)設計的C代碼
1.4.9 C語言宏定義技巧及常用宏定義總結
1.4.10 從C51到AVR的C編程
1.4.11 前后臺式嵌入式軟件結構
1.4.12 基于時間觸發(fā)模式的軟件系統(tǒng)設計簡介
1.5 AVR的開發(fā)工具與開發(fā)技巧
1.5.1 AVR單片機嵌入式系統(tǒng)的軟件開發(fā)平臺———AVRStudio
1.5.2 AVR的JTAG仿真調(diào)試與ISP
1.5.3 基于AVRStudio和GCCAVR的AVR單片機仿真調(diào)試
1.5.4 只具備ISP調(diào)試條件下的AVR單片機的調(diào)試技巧
1.5.5 單片機系統(tǒng)開發(fā)流程及要點
第2章 ATmega48/ATmega16單片機I/O 接口、中斷系統(tǒng)與人機接口技術
2.1 AVR單片機的GPIO
2.1.1 AVR的GPIO概述
2.1.2 AVR的GPIO應用技術要點
2.1.3 GPIO上下拉電阻的應用總結
2.2 人機接口———按鍵及其識別技術
2.2.1 機械觸點按鍵常識
2.2.2 矩陣式鍵盤接口技術及編程
2.2.3 智能查詢鍵盤程序設計與單片機測控系統(tǒng)的人機操作界面
2.3 LED顯示技術原理與實現(xiàn)
2.3.1 數(shù)碼管的譯碼顯示
2.3.2 LED數(shù)碼管驅(qū)動之靜態(tài)顯示和動態(tài)(掃描)顯示及實例
2.3.3 LED點陣屏技術
2.4 ATmega48/ATmega16的中斷系統(tǒng)
2.4.1 中斷與中斷系統(tǒng)
2.4.2 ATmega48/ATmega16中斷源和中斷向量
2.4.3 AVR單片機中斷響應過程
2.4.4 AVR單片機中斷優(yōu)先級
2.4.5 AVR中斷響應的時間
2.4.6 高級語言開發(fā)環(huán)境中中斷服務程序的編寫
2.5 ATmega48/ATmega16外中斷及應用實例
2.5.1 INT0、INT1和INT2中斷控制相關寄存器
2.5.2 ATmega48引腳電平變化中斷寄存器
2.5.3 外中斷實例
2.6 AVR的SPI通信接口及其應用
2.6.1 SPI串行總線接口
2.6.2 AVR單片機的硬件SPI通信接口
2.6.3 AVR單片機SPI通信相關寄存器結構
2.6.4 AVR單片機SPI通信驅(qū)動程序設計
2.6.5 基于SPI總線實現(xiàn)74HC595驅(qū)動多共陽數(shù)碼管
靜態(tài)顯示實例
2.6.6 AVR實現(xiàn)硬件SPI從機器件驅(qū)動8個數(shù)碼管
2.7 AVR兩線串行通信接口TWI(兼容I2C)及其應用
2.7.1 I2C總線概述
2.7.2 AVR兼容I2C的兩線通信接口TWI及其相關寄存器
2.7.3 TWI的使用方法
2.7.4 通過TWI(I2C)主機接口操作AT24C02
2.7.5 軟件模擬I2C主機讀寫AT24C02
2.7.6 ATmega48通過I2C從機模式模擬AT24C02
2.8 1602字符液晶顯示器及其接口技術
2.8.1 1602總線方式驅(qū)動接口及讀/寫時序
2.8.2 操作1602的11條指令詳解
2.8.3 1602液晶驅(qū)動程序設計
2.9 ST7920(128×64點)圖形液晶顯示器及其接口技術
2.9.1 ST7920引腳及接口時序
2.9.2 ST7920顯示RAM 及坐標關系
2.9.3 ST7920指令集
2.9.4 ST7920的C例程
2.10 128×64點陣SPLC501液晶控制器及應用
2.10.1 128×64點陣圖形液晶驅(qū)動芯片SPLC501
2.10.2 SPLC501程序設計舉例
第3章 ATmega48/ATmega16單片機的定時器及相關技術應用
3.1 ATmega48/ATmega16的定時/計數(shù)器概述
3.2 ATmega48/ATmega16的定時/計數(shù)器0———T/C0
3.2.1 T/C0概述
3.2.2 ATmega48/ATmega16的T/C0相關寄存器
3.2.3 ATmega48/ATmega16的T/C0的定時應用舉例
3.3 ATmega48/ATmega16的定時/計數(shù)器1———T/C1
3.3.1 T/C1概述
3.3.2 T/C1的輸入捕捉單元
3.3.3 ATmega48/ATmega16的T/C1相關寄存器
3.3.4 利用ICP測量方波的周期
3.4 ATmega48/ATmega16的定時器/計數(shù)器2———T/C2
3.4.1 T/C2概述
3.4.2 ATmega48/ATmega16的T/C2相關寄存器
3.4.3 基于T/C2的RTC系統(tǒng)設計
3.5 頻率測量及應用
3.5.1 頻率的直接測量方法———定時計數(shù)
3.5.2 通過測量周期測量頻率
3.5.3 等精度測頻法
3.5.4 頻率/電壓(F/V)轉(zhuǎn)換法測量頻率
3.6 PWM 技術及應用系統(tǒng)設計
3.6.1 PWM 技術概述
3.6.2 PWM 的頻率控制應用
3.6.3 PWM 的功率控制應用
3.6.4 基于PWM 實現(xiàn)D/A
3.7 超聲波測距儀的設計
3.7.1 超聲波測距原理
3.7.2 基于單片機的超聲波測距儀的設計
3.8 正交編碼器的原理及設計
3.8.1 光電編碼器
3.8.2 正交編碼器
第4章 單片機測控系統(tǒng)與智能儀器
4.1 單片機測控系統(tǒng)與智能儀器概述
4.1.1 單片機測控系統(tǒng)及構成
4.1.2 傳感器、檢測技術、電子測量與智能化測量儀表
4.1.3 智能化測量儀表的自檢功能及實現(xiàn)
4.2 信號調(diào)理與量程自動轉(zhuǎn)換技術
4.2.1 信號調(diào)理技術
4.2.2 量程自動轉(zhuǎn)換技術
4.3 智能多路數(shù)據(jù)采集系統(tǒng)
4.3.1 多路數(shù)據(jù)采集系統(tǒng)的基本構成
4.3.2 智能化多路數(shù)據(jù)采集系統(tǒng)原理
4.3.3 模擬開關、參考源與多路輸入程控增益放大電路
4.4 ATmega48/ATmega16片上A/D轉(zhuǎn)換器及其應用
4.4.1 A/D噪聲抑制
4.4.2 片內(nèi)基準電壓
4.4.3 ATmega48/ATmega16與A/D轉(zhuǎn)換器有關的寄存器詳述
4.4.4 AVR的A/D轉(zhuǎn)換應用舉例
4.4.5 A/D鍵盤
4.5 高性能外圍A/D器件———TLC2543、ICL7135和AD7705
4.5.1 具有11通道的12位串行模擬輸入A/D轉(zhuǎn)換器———TLC2543
4.5.2 高精度4???位CMOS雙積分型A/D轉(zhuǎn)換器———ICL7135
4.5.3 內(nèi)置PGA 的16位Σ ΔA/D轉(zhuǎn)換器———AD7705
4.6 單片機外圍D/A 器件———DAC0832和TLV5618
4.6.1 T型電阻網(wǎng)絡與DAC0832
4.6.2 12位雙路D/A———TLV5618
4.7 ATmega48/ATmega16片上模擬比較器與綜合應用
4.7.1 片上模擬比較器的相關寄存器
4.7.2 片上模擬比較器軟件設計
4.7.3 模擬比較器應用———超限監(jiān)測
4.7.4 模擬比較器及ICP1綜合應用———正弦波周期測量
4.8 單片機測控系統(tǒng)的抗干擾設計
4.8.1 單片機應用系統(tǒng)抗干擾設計的基本原則
4.8.2 單片機應用系統(tǒng)PCB布線的基本原則
4.8.3 單片機軟件抗干擾技術———看門狗技術
4.8.4 單片機睡眠工作方式在抗干擾中的應用
4.8.5 軟件抗干擾的健壯性設計
4.9 便攜式設備的低功耗設計
4.9.1 延長單片機系統(tǒng)電池供電時間的幾項措施
4.9.2 利用單片機的休眠與喚醒功能降低單片機系統(tǒng)功耗
4.10 智能測控系統(tǒng)的典型數(shù)據(jù)處理技術
4.10.1 概 述
4.10.2 測量數(shù)據(jù)的標度變換
4.10.3 數(shù)字濾波技術
4.10.4 系統(tǒng)誤差校正技術
4.10.5 測量結果的非數(shù)值處理方法———查表法
第5章 智能傳感器與智能儀器設計———時域測量技術及應用
5.1 電阻電橋基礎
5.1.1 基本直流電阻電橋配置
5.1.2 電阻電橋應用電路的幾個關鍵技術
5.1.3 高精度Σ ΔA/D轉(zhuǎn)換器與直流電橋
5.1.4 雙電源供電電阻電橋?qū)嶋H應用技巧
5.1.5 硅應變計
5.1.6 電壓驅(qū)動硅應變計
5.1.7 電流驅(qū)動硅應變計
5.2 基于恒流源的鉑電阻智能測溫儀表的設計
5.2.1 鉑電阻溫度傳感器
5.2.2 鉑電阻測溫的基本電路
5.2.3 Pt100恒壓分壓式三線制測溫電路
5.2.4 基于雙恒流源的三線式鉑電阻測溫探頭設計
5.2.5 基于ICL7135和雙恒流源的鉑電阻智能測溫儀表的設計
5.3 精密數(shù)控電源的設計
5.3.1 精密數(shù)控對稱雙極性輸出直流穩(wěn)壓電源的設計
5.3.2 精密數(shù)控恒流源技術
5.4 晶體三極管參數(shù)測試儀的設計
5.4.1 三極管β 參數(shù)的測試
5.4.2 三極管輸入、輸出特性曲線的測量
第6章 智能傳感器與智能儀器設計———頻域測量相關技術及應用
第7章 基于模糊PID 控制的計算機控制系統(tǒng)設計與應用
第8章 分布式智能測控系統(tǒng)及其應用
附錄 ASCII表
參考文獻