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