本書從工程實踐角度出發(fā),全面、 系統(tǒng)地講解了 AVR 單片機的基礎知識、 硬件結構、 各典型接口應用以及多 個綜合系統(tǒng)應用的設計和分析等。 本書共分為 11章 ,第 1 章介紹了 AVR 單 片 機 的 基 礎 知 識; 第 2 章 ~ 第 8 章 以 ATmega128單 片機為例講解了 AVR 單片機的系統(tǒng)開發(fā) 工 具、 硬 件 結 構、 指 令 系 統(tǒng) 和 各 典 型 接 口 的 應 用 等, 其 中 還穿插講解了 C語言編程基礎;第 9章講解了 AVR 單片機在電氣控制系統(tǒng)中的應用實例; 第 10 章講解 了 各 種 傳 感器的應用實例;第 11章 的內容講解了 AVR 單片機的綜合應用設計實例。本書內容豐富、 深入淺出、 圖文并茂,書中收集了大量的 AVR 單片機設計實例電路圖及程序案例, 并配以詳 盡的文字講解,適合從事單片機技術的開發(fā)人員使用,同時可作為相關專業(yè)在校師生的參考用書。
AVR 單片機是于1997年由 Atmel公司研發(fā)出的, 增強型內置 Flash的 RISC (ReducedIn- structionSetCPU)精簡指令集高速8 位單片機。 AVR 單片機具有可靠性高、 功能強、 高速 度、 低功耗等優(yōu)點, 廣泛應用于計算機外部設備、 工業(yè)實時控制、 儀器儀表、 通信設備、 家用電器等各個領域。 本書以 AVR 單片 機 中 的 高 檔 系 列ATmega128 單 片 機 為 藍 本, 全 面、 系 統(tǒng) 地 講 解 了 AVR 單片機的基礎知識、 系統(tǒng)開發(fā)工具、 硬件結構、 各典型接口應用以及多個綜合系統(tǒng)應 用的設計和分析等知識。 本書以實例為主, 偏重于實用性, 書中每個案例都經過了實踐驗 證, 具有很強的工程實踐指導性, 使讀者能舉一反三, 從而掌握 AVR 單片機的開發(fā)與應用 技術。 本書由張校銘主編, 參 加 本 書 編 寫 的 還 有 寇 志 萬、 楊 歡、 趙 春 霞、 王 建 薇、 李 娟、 崔穎、 張 國 發(fā)、 崔 二 立、 王 志 永、 袁 建 國、 李 維 忠、 許 振 興、 裴 廣 龍、 王 彥 倫、 鄭 號、 張珺、 周波、 周俞、 李亞旭、 劉興 杰、 馬 緒 濱、 張 穎 偉、 張 伯 虎 等。 本 書 在 編 寫 過程中還參考了相關書籍和資料, 在此對以上編寫人員及文獻作者一并表示感謝! 由于作者水 平 有 限, 加 之 時 間 倉 促, 本 書 難 免 有 錯 誤 和 不 足 之 處, 望 廣 大 讀 者 批 評 指正。編者
前言第1章 AVR 單片機的基礎知識 11.1 AVR 單片機特點與種類 11.1.1 AVR 單片機的特點 11.1.2 封裝和引腳功能 31.1.3 AVR 種類與標識 61.1.4 AVR 單片機的基本結構 71.2 ATmega16/32/128系列單片機 91.2.1 ATmega16單 片內部結構 91.2.2 封裝與引腳功能 111.2.3 ATmega128系 列單片機 131.2.4 AVR 程序下載 181.2.5 ATmega128單 片機熔絲位 19第2章 AVR 單片機的系統(tǒng)開發(fā)工具 232.1 AVR 單片機系統(tǒng)的軟硬件開發(fā)工具 232.1.1 AVR 單片機系統(tǒng)的硬件開發(fā)工具 232.1.2 AVR 單片機系統(tǒng)的軟件開發(fā)平臺 262.1.3 AVR 單片機的開發(fā)板及下載線 302.2 AVR 單片機 C語言編程基礎 332.2.1 C語言的構成及特點 342.2.2 運算符和表達式 362.2.3 C語言的語句及程序結構 382.2.4 數(shù)組 432.2.5 指針變量和指針運算符 442.2.6 函數(shù)與參數(shù)傳遞 452.2.7 編譯預處理 482.2.8 結構體與鏈表 522.2.9 運算符 542.3 CVAVR 編譯器開發(fā)環(huán)境 552.3.1 開發(fā)環(huán)境簡介 562.3.2 開發(fā)環(huán)境的應用 562.3.3 代碼生成器 66ICCAVR 集成開發(fā)環(huán)境 712.4.1 概述 72ICCAVR 的安裝與注冊ICCAVR 的IDE 環(huán)境ICCAVR 的設置與使用 79ICCAVR 的函數(shù)庫 88AVR 的編程 942.5 AVRStudio集成開發(fā)環(huán)境 101AVRStudio概 述 101AVRStudio的IDE 108設置 AVRStudio 1162.5.4 查看和修改狀態(tài) 122AVR 匯編器AVR 下載線 126第3章 ATmega128單片機的指令系統(tǒng) 1313.1 AVR 單片機指令系統(tǒng)的特點與指令種類 1313.2 AVR 系列單片機的指令格式 1323.2.1 指令符號 1323.2.2 函數(shù)表達式 1363.2.3 AVR 指令與標志位的關系 1373.3 AVR 單片機的尋址方式 1373.3.1 程序直接尋址3.3.2 程序間接尋址3.3.3 程序相對尋址 1383.3.4 程序取常量尋址 1393.3.5 單寄存器直接尋址 1403.3.6 雙寄存器直接尋址 1403.3.7 堆棧寄存器間接尋址 1403.3.8 I/O 寄存器直接尋址 1413.3.9 數(shù)據(jù)存儲器直接尋址 1413.3.10 數(shù)據(jù)存儲器間接尋址 141錄3.3.11 程序存儲器數(shù)據(jù)尋址3.3.12 數(shù)據(jù)存儲器間接尋址 1423.3.13 程序存儲器帶后增量的空間取常量尋址 1433.4 數(shù)據(jù)傳輸指令 1443.4.1 數(shù)據(jù)傳輸至寄存器的指令 1453.4.2 數(shù)據(jù)傳輸至 SRAM 中的指令 1523.4.3 寫程序存儲器指令 1563.4.4 堆棧操作指令3.5 算術和邏輯指令 1573.5.1 加法指令3.5.2 減法指令3.5.3 乘法指令 1613.5.4 邏輯與指令3.5.5 邏輯或指令3.5.6 邏輯異或指令3.5.7 取反碼指令3.5.8 取補碼指令 1693.6 轉移和跳轉指令 1703.6.1 無條件跳轉指令 1713.6.2 調用和返回指令 1723.6.3 條件跳轉指令 1743.7 位指令和位測試指令 1833.7.1 位變量修改指令 1843.7.2 帶進位邏輯操作指令 1893.7.3 位變量傳送指令 1913.8 MCU 控制指令3.9 匯編語言的應用3.9.1 匯編語言格式 1933.9.2 匯編語言應用實例 194第4章 ATmega128單片機I/O 端口的應用 2074.1 ATmega128單片機的I/O 端口 2074.1.1 ATmega128單 片機I/O 端口結構與特點 2074.1.2 各端口說明 2114.2 I/O 寄存器的設置與編程 2214.2.1 I/O 寄存器的操作特點 2214.2.2 I/O 寄存器的 C語言程序 2214.2.3 特殊功能I/O 寄存器 SFIOR 2224.2.4 通用I/O 口的設置與編程 2224.3 I/O 口控制應用實例 2244.3.1 I/O 口控制 LED 發(fā)光二極管應用實例 2244.3.2 I/O 口控制 LED 數(shù)碼管應用實例 2284.3.3 I/O 口控制 LED 點陣應用實例 2324.3.4 I/O 口鍵盤掃描電路應用實例 2374.3.5 I/O 口控制 1602液 晶顯示應用實例 2414.3.6 I/O 口控制 12864中 文液晶顯示應用實例 245第5章 ATmega128單片機定時/計數(shù)器的應用 2505.1 定時/計數(shù)器作用與使用注意事項 2505.1.1 定時器的作用 2505.1.2 使用定 時/計 數(shù)器時需要注意的問題 2505.2 預分頻器 2515.2.1 T/C0的 預分頻器 2525.2.2 T/C1、T/C2和 T/C3的 預分頻器 2525.2.3 特殊功能寄存器 2525.3 8位定時/計數(shù)器 T/C0 2535.3.1 8位定 時/計 數(shù)器 T/C0的 結構 2535.3.2 T/C0定 時/計 數(shù)器的相關寄存器 2565.3.3 T/C0定 時/計 數(shù)器的工作模式 2595.3.4 T/C0定 時/計 數(shù)器的時序圖 2635.4 8位定時/計數(shù)器 T/C2 2645.4.1 T/C2定 時/計 數(shù)器的結構 2645.4.2 定 時/計 數(shù)器 T/C2的 相關寄存器 2665.4.3 T/C2定 時/計 數(shù)器的工作模式 2675.5 16位定時/計數(shù)器 T/C1和 T/C3 2685.5.1 T/C1和 T/C3定 時/計 數(shù)器的結構 2695.5.2 T/C1和 T/C3定 時/計 數(shù)器的相關寄存器 2735.5.3 T/C1和 T/C3定 時/計 數(shù)器的工作模式 2815.5.4 T/C1和 T/C3定 時/計 數(shù)器的時序圖 2875.6 定時/計數(shù)器的應用 2885.6.1 利用定 時/計 數(shù)器實現(xiàn)秒表的應用實例 2885.6.2 利用定 時/計 數(shù)器實現(xiàn) PWM 輸出的應用實例 293第6章 ATmega128單片機模數(shù)轉換器和模擬比較器的應用 2966.1 模數(shù)轉換器 2966.1.1 模數(shù)轉換器種類與特點 2966.1.2 ATmega128單 片機模數(shù)轉換器的結構和特點 2986.1.3 A/D 轉換器相關寄存器 3066.2 模擬比較器 3106.2.1 模擬比較器概述 3106.2.2 模擬比較器相關寄存器 3106.2.3 多路輸入 3126.3 A/D 轉換器應用實例 3126.3.1 利用 A/D 轉換器構成簡易電壓表的應用實例 3126.3.2 雙通道 A/D 采樣應用在液晶顯示器上實例 3156.4 模擬比較器應用實例 3236.4.1 模擬信號的比較應用實例 (一) 3236.4.2 模擬信號的比較應用實例 (二) 3246.4.3 模擬比較器應用實例 (三) 324第7章 ATmega128單片機中斷系統(tǒng)的基本應用 3277.1 中斷系統(tǒng)工作原理 3277.1.1 中斷系統(tǒng)的定義與中斷過程 3277.1.2 控制寄存器 3347.2 外部中斷 3357.2.1 外部中斷觸發(fā)方式 3357.2.2 外部中斷寄存器 3357.3 中斷程序編寫與應用實例 3377.3.1 使用ICCAVR 開發(fā)環(huán)境編寫中斷程序 3377.3.2 外部中斷系統(tǒng)應用實例 339第8章 ATmega128單片機串行接口的應用 3428.1 同步串行接口 SPI 3428.1.1 同步串行通信 3428.1.2 ATmega128單 片機的同步串行接口 SPI 3458.1.3 ATmega128單 片機 SPI相 關寄存器 3488.1.4 SPI的 編程 3508.1.5 SPI應 用實例 352USART 接口8.2.1 異步通信基礎 355ATmega128單 片機的 USART 接口 357訪問 USART 361USART 相關寄存器 3698.3 ATmega128單片機 USART 接口的應用實例 3748.3.1 串口通信應用實例 3748.3.2 利用串口控制微型打印機應用實例 3788.4 兩線串行接口 TWI 3858.4.1 串行通信基礎知識 3858.4.2 I2C 總線協(xié)議 3858.4.3 ATmega128單 片機的 TWI接 口 3888.5 ATmega128單片機 TWI接口應用實例 4038.5.1 利用 TWI口 對存儲器進行操作的應用實例 4038.5.2 I2C 總線接口日歷時鐘芯片應用實例 407第9章 AVR 單片機在電氣控制系統(tǒng)中的應用實例 4169.1 電動機類控制電路的應用實例 4169.1.1 步進電動機的應用實例 4169.1.2 舵機的應用實例 4199.1.3 電動機調速系統(tǒng)設計實例9.2 人機對話控制電路的應用 4259.2.1 鍵盤的應用實例 4259.2.2 觸摸屏人機接口的應用實例 432第10章 各種傳感器的應用實例 43610.1 紅外遙控器的解碼應用 43610.1.1 紅外線 43610.1.2 紅外遙控系統(tǒng)原理 43610.1.3 紅外遙控器的解碼實例 43810.2 紅外測距傳感器的應用 44210.2.1 硬件設計 44210.2.2 程序設計 44310.3 超聲測距傳感器的應用 44610.3.1 硬件設計 44610.3.2 程序設計 44710.4 氣體傳感器的應用 44910.4.1 氣體傳感器模塊 44910.4.2 氣體傳感器應用實例 45010.5 加速度傳感器的應用 45310.5.1 型加速度傳感器模塊 45310.5.2 加速度傳感器應用實例 45410.6 光照傳感器的應用 45610.6.1 硬件設計 45710.6.2 程序設計 45710.7 溫度傳感器應用實例 45910.7.1 硬件設計 45910.7.2 軟件設計 459第11章 AVR 單片機的綜合應用設計實例 46411.1 基于 ATmega128單片機的輪式機器人設計 46411.1.1 硬件設計 46411.1.2 軟件設計 46611.2 基于 ATmega128單片機的交通信號機設計 47111.2.1 硬件設計 47111.2.2 軟件設計 474