產品詳情
手把手教你學AVR單片機C程序設計目錄
?
前言
?
第1章? 概述
1.1? 提高編制單片機應用程序效率最好的辦法是采用C語言編程
1.2? C語言具有突出的優點
1.3 ?AVR單片機簡介
1.4? AVR單片機的C編譯器簡介
?
第2章 學習AVR單片機C程序設計所用的軟件及實驗器材介紹
2.1? IAR? Embedded? Workbench? IDE? C語言編譯器
2.2? ??AVR Studio集成開發環境
2.3? PonyProg2000下載軟件及SL-ISP下載軟件
2.4? AVR DEMO單片機綜合試驗板
2.5? AVR單片機JTAG仿真器
2.6? 并口下載器
2.7? 通用型多功能USB編程器
?
第3章? AVR單片機開發軟件的安裝及第一個入門程序
3.1? 安裝IAR for AVR 4.30集成開發環境
3.2? 安裝AVR Studio集成開發環境
3.3? 安裝PonyProg2000下載軟件
3.4? 安裝SLISP下載軟件
3.5? AVR單片機開發過程
3.6? 第一個AVR入門程序
3.6.1? 建立一個工作區及創建一個新工程項目
3.6.2. 設置IAREW工程項目的選項
3.6.3 輸入C源文件
3.6.4? 向工程項目中添加源文件
3.6.5? 編譯源文件
3.6.6 在IAREW中進行軟件模擬仿真
3.6.7? 使用PonyProg2000軟件或SLISP將HEX文件下載到單片機中
3.6.8? 應用
3.6.9 在IAREW中進行實時在線仿真
3.6.10 在AVR Studio中進行軟件模擬仿真
3.6.11 在AVR Studio中進行實時在線仿真
?
第4章? AVR單片機的主要特性及基本結構
4.1? ATMEGA16(L)單片機的產品特性
4.1.1? 高性能、低功耗的 8 位微處理器
4.1.2? 非易失性程序和數據存儲器
4.1.3??JTAG 接口 ( 與 IEEE 1149.1 標準兼容 )
4.1.4? 片上 豐富的外設
4.1.5? 處理器的特殊點
4.1.6 ?I/O 和封裝
4.1.7? 工作電壓
4.1.8??速度等級
4.1.9?? ATMEGA16L的功耗(1MHz,3V,25°C)
4.2? ATmega16(L)單片機的基本組成及引腳配置
4.2.1? ATmega16(L)單片機的基本組成
4.2.2? ATmega16(L)單片機的引腳功能
4.3? AVR的CPU內核
4.3.1? AVR結構棕述
4.3.2? ALU算術邏輯單元
4.3.3? 狀態寄存器
4.3.4? 通用寄存器文件
4.3.5? X、Y、Z寄存器
4.3.6? 堆棧指針
4.3.7? 指令執行時序
4.3.8? 復位與中斷處理
4.4? AVR的存儲器
4.4.1? 程序存儲器
4.4.2? SRAM 數據存儲器
4.4.3? 數據存儲器訪問時序
4.4.4? EEPROM 數據存儲器
4.4.5? I/O 存儲器
4.5? 系統時鐘及時鐘選項
4.5.1? 時鐘系統及其分布
4.5.2? 時鐘源
4.5.3? 缺省時鐘源
4.5.4? 晶體振蕩器
4.5.5? 低頻晶體振蕩器
4.5.6? 外部RC振蕩器
4.5.7? 標定的片內 RC 振蕩器
4.5.8? 振蕩器標定寄存器(OSCCAL)
4.5.9? 外部時鐘
4.5.10? 定時器/計數器振蕩器
4.6? 電源管理及睡眠模式
4.6.1? MCU控制寄存器(MCUCR)
4.6.2? 空閑模式
4.6.3? ADC 噪聲抑制模式
4.6.4? 掉電模式
4.6.5? 省電模式
4.6.6? Standby(待機)模式
4.6.7? 擴展Standby(待機)模式
4.6.8? 最小化功耗
4.7? 系統控制和復位
4.7.1? 復位AVR
4.7.2? 復位源
4.7.3? 上電復位
4.7.4? 外部復位
4.7.5? 掉電檢測
4.7.6? 看門狗復位
4.7.7? MCU 控制和狀態寄存器(MCUCSR)
4.7.8片內基準電壓
4.7.9? 看門狗定時器
4.8? 中斷
4.8.1? ATMEGA16(L)的中斷向量
4.8.2? 通用中斷控制寄存器(GICR)
?
第5章? C語言基礎知識
????? 5.1? C語言的標識符與關鍵字
5.2? 數據類型
5.3? AVR單片機的數據存儲空間
5.4? 常量、變量及存儲方式
5.5? 數組
5.5.1? 一維數組的定義
5.5.2? 二維及多維數組的定義
5.5.3? 字符數組
5.5.4? 數組元素賦初值
5.5.5? 數組作為函數的參數
5.6? C語言的運算
5.6.1? 算術運算符
5.6.2? 關系運算符
5.6.3? 邏輯運算符
5.6.4? 賦值運算符
????? 5.6.5? 自增和自減運算符
?????? 5.6.6? 逗號運算符
?????? 5.6.7? 條件運算符
?????? 5.6.8? 位運算符
?????? 5.6.9? sizeof運算符
?????? 5.7? 流程控制
?????? 5.7.1? 條件語句與控制結構
?????? 5.7.2? 循環語句
5.8? 函數
5.8.1? 函數定義的一般形式
5.8.2? 函數的參數和函數返回值
5.8.3? 函數調用的三種方式
5.9? 指針
5.9.1? 指針與地址
5.9.2? 指針變量的定義
5.9.3? 指針變量的引用
5.9.4? 數組指針與指向數組的指針變量
5.9.5? 指針變量的運算
5.9.6? 指向多維數組的指針和指針變量
5.10? 結構體
5.10.1? 結構體的概念
5.10.2? 結構體類型變量的定義
5.10.3? 關于結構體類型有幾點需要注意的地方
5.10.4? 結構體變量的引用
5.10.5? 結構體變量的初始化
5.10.6? 結構體數組
5.10.7? 指向結構體類型數據的指針
5.10.8? 用指向結構體變量的指針引用結構體成員
5.10.9? 指向結構體數組的指針
5.10.10? 將結構體變量和指向結構體的指針作函數參數
5.11? 共用體
5.11.1? 共用體類型變量的定義
5.11.2? 共用體變量的引用
5.12? 中斷函數
5.12.1? 什么是中斷
5.12.2? 編寫AVR單片機中斷函數時應嚴格遵循的規則
?
第6章? ATMEGA16(L)的I/O端口使用
6.1? ATMEGA16(L)的IO端口
6.1.1作為通用數字I/O端口
6.1.2? 配置引腳
6.1.3? 數字輸入使能和休眠模式
6.1.4? 未連接引腳的處理
6.1.5? 端口的第二功能
6.2? ATMEGA16(L)四組通用數字I/O端口的應用設置
6.3? ATMEGA16(L)的I/O端口使用注意事項
6.4? ATMEGA16(L) PB口交替輸出0xaa、0x55實驗
6.4.1實現方法
6.4.2?? 源程序文件
6.4.3?? 程序分析解釋
6.5? 測試8位數碼管
6.5.1實現方法
6.5.2?? 源程序文件
6.5.3?? 程序分析解釋
6.6? 獨立式按鍵開關(撥碼開關)的使用
6.6.1 實現方法
6.6.2?? 源程序文件
6.6.3?? 程序分析解釋
6.7? 發光二極管的移動控制(跑馬燈實驗)
6.7.1實現方法
6.7.2?? 源程序文件
6.7.3?? 程序分析解釋
6.8? 0~99數字的加減控制
6.8.1實現方法
6.8.2?? 源程序文件
6.8.3?? 程序分析解釋
6.9? 4x4行列式按鍵開關的使用
6.9.1實現方法及效果
6.9.2?? 源程序文件
6.9.3?? 程序分析解釋
?
第7章? ATMEGA16(L)的中斷系統使用
7.1? ATMEGA16(L)的中斷系統
7.2? 相關的中斷控制寄存器
7.2.1? MCU控制寄存器(MCUCR)
7.2.2? MCU控制與狀態寄存器(MCUCSR)
7.2.3? 通用中斷控制寄存器(GICR)
7.2.4? 通用中斷標志寄存器(GIFR)
7.3? INT1外部中斷實驗
7.3.1? 實現方法
7.3.2?? 源程序文件
7.3.3?? 程序分析解釋
7.4? INT0、INT1中斷計數的實驗
7.4.1? 實現方法
7.4.2?? 源程序文件
7.4.3?? 程序分析解釋
7.5? INT0、INT1中斷嵌套實驗
7.5.1? 實現方法
7.5.2? 源程序文件
7.5.3?? 程序分析解釋
7.6? 2路防盜報警器實驗
7.6.1? 實現方法
7.6.2?? 源程序文件
7.6.3?? 程序分析解釋
7.7? 低功耗睡眠模式下的按鍵中斷
7.7.1? 實現方法
7.7.2?? 源程序文件
7.7.3?? 程序分析解釋
7.8? 4x4行列式按鍵的睡眠模式中斷喚醒設計
7.8.1? 實現方法
7.8.2?? 源程序文件
7.8.3?? 程序分析解釋
?
第8章? ATMEGA16(L)驅動16x2點陣字符液晶模塊
8.1? 16x2點陣字符液晶顯示器概述
8.2? 液晶顯示器的突出優點
8.3? 16x2字符型液晶顯示模塊(LCM)特性
8.4? 16x2字符型液晶顯示模塊(LCM)引腳及功能
8.5? 16x2字符型液晶顯示模塊(LCM)的內部結構
8.6?? 液晶顯示控制驅動集成電路HD44780特點
8.7?? HD44780工作原理
8.7.1?? DDRAM—數據顯示用RAM
8.7.2?? CGROM—字符產生器ROM
8.7.3?? CGRAM—字型、字符產生器RAM
8.7.4?? IR—指令寄存器
8.7.5?? DR—數據寄存器
8.7.6?? BF—忙碌標志信號
8.7.7?? AC—地址計數器
8.8?? LCD控制器的指令
8.8.1?? 清除顯示器
8.8.2?? 光標歸位設定
8.8.3?? 設定字符進入模式
8.8.4 ??顯示器開關
8.8.5?? 顯示光標移位
8.8.6?? 功能設定
8.8.7?? CGRAM地址設定
8.8.8?? DDRAM地址設定
8.8.9?? 忙碌標志BF或AC地址讀取
8.8.10?? 寫數據到CGRAM或DDRAM中
8.8.11?? 從CGRAM或DDRAM中讀取數據
8.9?? LCM工作時序
8.10? ATMEGA16(L)驅動16x2點陣字符液晶模塊的子函數(8位數據傳送)
8.10.1? 寫命令到LCM子函數
8.10.2? 寫數據到LCM子函數
8.10.3? 檢測LCD忙信號子函數
8.10.4? 顯示光標定位子函數
8.10.5? 顯示指定座標的一個字符(x=0~15,y=0~1)子函數
8.10.6? 演示第二行移動字符串子函數
8.10.7? 顯示指定座標的一串字符子函數
8.11?? 8位數據傳送的16x2LCM演示程序1
8.11.1?? 實現方法
8.11.2?? 源程序文件
8.11.3?? 程序分析解釋
8.12??? 8位數據傳送的16x2LCM演示程序2
8.12.1?? 實現方法
8.12.2?? 源程序文件
8.12.3?? 程序分析解釋
8.13? ATMEGA16(L)驅動16x2點陣字符液晶模塊的子函數(4位數據傳送)
8.13.1? 寫命令到LCM子函數
8.13.2? 寫數據到LCM子函數
8.14??? 4位數據傳送的16x2LCM演示程序1
8.14.1?? 實現方法
8.14.2?? 源程序文件
8.14.3?? 程序分析解釋
?
第9章 ATMEGA16(L)的定時計數器使用
9.1? 預分頻器和多路選擇器
9.2? 8位定時器/計時器T/C0
9.3? 8位定時器/計數器0的寄存器
9.3.1? T/C0 控制寄存器(TCCR0)
9.3.2? T/C0計數寄存器(TCNT0)
9.3.3? 輸出比較寄存器(OCR0)
9.3.4? 中斷屏蔽寄存器(TIMSK)
9.3.5? 定時/計數器中斷標志寄存器(TIFR)
9.4? 16位定時器/計數器T/C1
9.5? 16位定時器/計數器1的寄存器
9.5.1? T/C1控制寄存器A(TCCR1A)
9.5.2? T/C1控制寄存器B(TCCR1B)
9.5.3? T/C1計數寄存器(TCNT1H和TCN1L)
9.5.4? 輸出比較寄存器(OCR1A和OCR1B)
9.5.5? 輸入捕捉寄存器 (ICR1H和ICR1L)
9.5.6? 中斷屏蔽寄存器 (TIMSK)
9.5.7? 定時/計數器中斷標志寄存器 (TIFR)
9.6? 8位定時器/計時器T/C2
9.7? 8位T/C2的寄存器
9.7.1? T/C2控制寄存器 (TCCR2)
9.7.2? T/C2計數寄存器 (TCNT2)
9.7.3? 輸出比較寄存器 (OCR2)
9.7.4? 異步狀態寄存器(ASSR)
9.7.5? 定時器 / 計數器 2 的異步操作
9.7.6? 定時/計數器中斷屏蔽寄存器 (TIMSK)
9.7.7? 定時/計數器中斷標志寄存器 (TIFR)
9.7.8? 特殊功能I/O寄存器(SFIOR)
9.8? ICC6.31A? C語言編譯器安裝
9.9? 定時/計數器1的計時實驗
9.9.1?? 實現方法
9.9.2?? 源程序文件
9.9.3?? 程序分析解釋
9.10? 定時/計數器0的中斷實驗
9.10.1?? 實現方法
9.10.2?? 源程序文件
9.10.3?? 程序分析解釋
9.11? 4位顯示秒表實驗
9.11.1?? 實現方法
9.11.2?? 源程序文件
9.11.3?? 程序分析解釋
9.12??? 比較匹配中斷及定時溢出中斷的測試實驗
9.12.1?? 實現方法
9.12.2?? 源程序文件
9.12.3?? 程序分析解釋
9.13??? PWM測試實驗
9.13.1?? 實現方法
9.13.2?? 源程序文件
9.13.3?? 程序分析解釋
9.14??? 0~5 V 數字電壓調整器
9.14.1?? 實現方法
9.14.2?? 源程序文件
9.14.3?? 程序分析解釋
9.15? 定時器(計數器)0的計數實驗
9.15.1?? 實現方法
9.15.2?? 源程序文件
9.15.3?? 程序分析解釋
9.16? 定時器(計數器)1的輸入捕獲實驗
9.16.1?? 實現方法
9.16.2?? 源程序文件
9.16.3?? 程序分析解釋
?
第10章 ATMEGA16(L)的USART與PC機串行通信
10.1? ATMEGA16(L)的異步串行收發器
10.2? USART的主要特點
10.3? 時鐘產生
10.3.1? USART 支持 4 種模式的時鐘
10.3.2? 信號說明
10.3.3? 內部時鐘用于異步模式與同步主機模式
10.3.4? 倍速工作模式 (U2X)
10.3.5? 外部時鐘
10.3.6? 同步時鐘操作
10.4? 幀格式
10.4.1? 數據幀格式
10.4.2? 校驗位的計算
10.5? USART的寄存器及設置
10.5.1? USART I/O 數據寄存器(UDR)
10.5.2? USART 控制和狀態寄存器A(UCSRA)
10.5.3? USART 控制和狀態寄存器B(UCSRB)
10.5.4? USART 控制和狀態寄存器C(UCSRC)
10.5.5? USART 波特率寄存器(UBRRL和UBRRH)
10.6? USART 的初始化
10.7? 數據發送-USART 發送器
10.7.1? 發送5到8位數據位的幀
10.7.2? 發送9位數據位的幀
10.7.3? 傳送標志位與中斷
10.7.4? 奇偶校驗產生電路
10.7.5? 禁止發送器
10.8? 數據接收-USART 接收器
10.8.1? 以5到8個數據位的方式接收數據幀
10.8.2? 以 9 個數據位的方式接收幀
10.8.3? 接收結束標志及中斷
10.8.4? 接收器錯誤標志
10.8.5? 奇偶校驗器
10.8.6? 禁止接收器
10.8.7? 刷新接收緩沖器
10.9? ATMEGA16(L)與PC機(個人電腦)的通信試驗1(用查詢法實現單個字符的通信)
10.9.1?? 實現方法
10.9.2?? 源程序文件
10.9.3?? 程序分析解釋
10.10? ATMEGA16(L)與PC機(個人電腦)的通信試驗2(用查詢法實現多個字符的通信)
10.10.1?? 實現方法
10.10.2?? 源程序文件
10.10.3?? 程序分析解釋
10.11? ATMEGA16(L)與PC機(個人電腦)的通信試驗3(接收用中斷法實現一組16進制數的通信)
10.11.1?? 實現方法
10.11.2?? 源程序文件
10.11.3?? 程序分析解釋
10.12? ATMEGA16(L)與PC機(個人電腦)的通信試驗4(實現PC機控制單片機的PWM輸出)
10.12.1?? 實現方法
10.12.2? 控制指令的定義
10.12.3?? 源程序文件
10.12.4?? 程序分析解釋
?
第11章? ATMEGA16(L)的兩線串行接口TWI使用
11.1???? AVR單片機兩線串行接口 TWI的特點
11.2? 兩線串行接口總線定義
11.3? TWI 模塊綜述
11.3.1? SCL 和 SDA 引腳
11.3.2? 比特率發生器單元
11.3.3? 總線接口單元
11.3.4? 地址匹配單元
11.3.5? 控制單元
??? 11.4? ATMEGA16(L)的TWI 寄存器
11.4.1? TWI 比特率寄存器(TWBR)
11.4.2? TWI 控制寄存器(TWCR)
11.4.3? TWI 狀態寄存器(TWSR)
11.4.4? TWI 數據寄存器(TWDR)
11.4.5? TWI( 從機 ) 地址寄存器(TWAR)
?????? 11.5? 使用 TWI
11.6? ATMEAG16(L)的內部EEPROM
11.7? 與EEPROM相關的寄存器
11.7.l? EEPROM地址寄存器(EEARH、EEARL)
11.7.2? EEPROM數據寄存器(EEDR)
11.7.3? EEPROM控制寄存器(EECR)
11.8? 在ATMEGAl6(L)內部EEPROM寫入一個數,然后讀出在數碼管上顯示
11.8.1?? 實現方法
11.8.2?? 源程序文件
11.8.3?? 程序分析解釋
11.9? 自己選擇ATMEGAl6(L)內部EEPROM的一個地址單元,自己選擇一個數,然后進行寫入與讀出實驗并在16*2液晶上顯示
11.9.1?? 實現方法
11.9.2?? 源程序文件
11.9.3?? 程序分析解釋
11.10? 設計一個能長期保存預置定時的電子鐘
11.10.1?? 實現方法
11.10.2?? 源程序文件
11.10.3? 程序分析解釋
11.11? EEPROM? AT24CXX的性能特點
11.12? AT24CXX引腳定義
11.13? AT24CXX系列存儲器特點
11.14? AT24CXX系列EEPROM的內部結構
11.15 ?AT24CXX系列EEPROM 芯片的尋址
11.15.1? 從器件地址
11.15.2? 應答信號
11.15.3? 數據地址分配
11.16? 寫操作方式
11.16.1? 字節寫
11.16.2? 頁寫
11.16.3? 應答查詢
11.16.4? 寫保護
11.17? 讀操作方式
11.17.1? 立即地址讀取
11.17.2? 隨機地址讀取
11.17.3? 順序地址讀取
11.18? ATMEGA16(L)對AT24C01A的讀寫實驗
11.18.1?? 實現方法
11.18.2?? 源程序文件
11.18.3? 程序分析解釋
11.19? 使用庫函數讀寫內部的EEPROM
11.19.1?? 實現方法
11.19.2?? 源程序文件
11.19.3程序分析解釋
11.20? 利用ATMEGA16(L)的內部EEPROM設計電子密碼鎖
11.20.1?? 實現方法
11.20.2?? 源程序文件
11.20.3? 程序分析解釋
?
第12章? ATMEGA16(L)的模擬比較器使用
12.1? 模擬比較器
12.1.1? 特殊功能 IO 寄存器(SFIOR)
12.1.2? 模擬比較器控制和狀態寄存器(ACSR)
12.1.3? 模擬比較器多工輸入
12.2? 用模擬比較器做輸入電壓的狀態指示(查詢法)
12.2.1?? 實現方法
12.2.2?? 源程序文件
12.2.3? 程序分析解釋
12.3? 用模擬比較器做輸入電壓的狀態指示(中斷法1)
12.3.1?? 實現方法
12.3.2?? 源程序文件
12.3.3? 程序分析解釋
12.4? 用模擬比較器做輸入電壓的狀態指示(中斷法2)
12.4.1?? 實現方法
12.4.2?? 源程序文件
12.4.3? 程序分析解釋
?
第13章? ATMEGA16(L)的模數轉換器使用
13.1? ATMEAG16(L)的模/數轉換器
13.2? ADC工作過程
13.3? 啟動一次轉換
13.4? 預分頻及 ADC 轉換時序
13.5? 差分增益信道
13.6? 改變通道或基準源
13.7? ADC 輸入通道
13.8? ADC 基準電壓源
13.9? 模/數轉換器相關寄存器
13.9.1? ADMUX
13.9.2? ADCSRA
13.9.3? ADCH和ADCL
13.9.4? 特殊功能IO寄存器(SFIOR)
13.10? 模/數轉換器的使用
13.11? 0~5V數字式直流電壓表實驗
13.11.1?? 實現方法
13.11.2?? 源程序文件
13.11.3? 程序分析解釋
13.12? “施密特”電壓比較器實驗
13.12.1?? 實現方法
13.12.2?? 源程序文件
13.12.3? 程序分析解釋
13.13? 用模/數轉換器測量PWM輸出的電壓值
13.13.1?? 實現方法
13.13.2?? 源程序文件
13.13.3? 程序分析解釋
?
第14章? ATMEGA16(L)的同步串行接口SPI使用
14.1? ATMEGA16(L)的SPI特點
14.2? 主機和從機之間的 SPI 連接及原理
14.3? SPI的配置及使用
14.3.1? 從機模式
14.3.2? 主機模式
14.4? SPI 的相關寄存器
14.4.1? SPI 控制寄存器(SPCR)
14.4.2? SPI 狀態寄存器(SPSR)
?????? 14.4.3? SPI 數據寄存器(SPDR)
?????? 14.5? 兩片ATMEGA16(L) 的同步串口數據高速通信實驗1
??????14.5.1?? 實現方法
14.5.2?? 源程序文件
14.5.3? 程序分析解釋
14.6? 兩片ATMEGA16(L) 的同步串口數據高速通信實驗2
14.6.1?? 實現方法
14.6.2?? 源程序文件
14.6.3? 程序分析解釋
14.7? 兩片ATMEGA16(L) 的同步串口數據高速通信實驗3
14.7.1?? 實現方法
14.7.2?? 源程序文件
14.7.3? 程序分析解釋
14.8? 同步串行EEPROM? AT93CXX的性能特點
14.9? AT93CXX引腳定義
14.10? AT93CXX系列存儲器特點
14.11? AT93CXX系列EEPROM的內部結構
14.12 ?AT93CXX系列EEPROM 的指令集
14.13? 器件操作
14.13.1? 讀操作指令
14.13.2? 寫操作指令
14.13.3? 擦除
14.13.4? 擦除/寫使能和禁止
14.13.5? 擦除全部
14.13.6? 寫全部
14.14? ATMEGA16(L)驅動AT93C46的子函數
14.14.1? 啟動AT93C46子函數
14.14.2? 檢測擦寫AT93C46是否成功的子函數
14.14.3? 在AT93C46的指定地址讀取一字節數據的子函數
14.14.4? 在AT93C46的指定地址寫入一字節數據的子函數
14.14.5? 寫使能子函數
14.14.6? 在AT93C46的指定地址Address擦除一字節數據的子函數
14.14.7? 擦除AT93C46全部內容的子函數
14.14.8? 將數據data寫入AT93C46全部單元的子函數
14.14.9? 寫禁止子函數
14.14.10? 將16位數據data中的len位發送出去的子函數
14.15? ATMEGA16(L)對AT93C46的讀寫實驗
14.15.1?? 實現方法
14.15.2?? 源程序文件
14.15.3? 程序分析解釋
?
第15章? ATMEGA16(L)驅動128x64點陣圖形液晶模塊
15.1? 128x64點陣圖形液晶模塊特性
15.2? 128x64點陣圖形液晶模塊引腳及功能
15.3? 128x64點陣圖形液晶模塊的內部結構
15.4? HD61203特點
15.5? HD61202特點
15.6? HD61202工作原理
15.6.1?? I/O緩沖器
15.6.2? 輸入寄存器
15.6.3? 輸出寄存器
15.6.4? 顯示存儲器電路
15.6.5?? XY地址計數器
15.6.6? 顯示起始行寄存器
15.6.7? Z地址計數器
15.6.8? 顯示開/關觸發器
15.6.9? 指令寄存器
15.6.10? 狀態字寄存器
15.6.11? 顯示數據鎖存器
15.7? HD61202的工作過程
15.8? 點陣圖形液晶模塊的控制器指令
15.8.1顯示器開關
15.8.2?????? 設置頁(x地址)
15.8.3?????? 讀狀態
15.8.4?????? 顯示開始行
15.8.5?????? 設置Y地址
15.8.6?????? 寫顯示數據
15.8.7?????? 讀顯示數據
15.9? HD61202的操作時序圖
15.10? ATMEGA16(L)驅動128x64點陣圖形液晶模塊的子函數
15.10.1? 判LCM忙子函數
15.10.2? 寫指令到LCM子函數
15.10.3? 寫數據到LCM子函數
15.10.4? 設定起始行子函數
15.10.5? 定位x方向、y方向的子函數
15.10.6? 屏幕開啟、關閉子函數
15.10.7? 復位子函數
15.10.8? 根據x、y地址定位,將數據寫入LCM左半屏或右半屏的子函數
15.10.9? 顯示漢字子函數
15.10.10? 顯示一幅圖片子函數
15.11?? 在AVR單片機綜合試驗板上實現液晶的漢字顯示
15.11.1? ?實驗效果
15.11.2?? 源程序文件
15.11.3? 制作漢字點陣碼表
15.11.4? 程序分析解釋
15.12?? 在AVR單片機綜合試驗板上實現液晶的漢字滾屏顯示
15.12.1?? 實驗效果
15.12.2?? 源程序文件
15.12.3? 程序分析解釋
15.13?? 在AVR單片機綜合試驗板上實現液晶的圖片顯示
15.13.1? ?實驗效果
15.13.2?? 源程序文件
15.13.3? 制作圖片的點陣碼表
15.13.4? 程序分析解釋
?
第16章 ATMEGA16(L)的系統控制、復位和看門狗定時器使用
16.1? ATMEGA16(L)的系統控制和復位
16.1.1? 控制和狀態寄存器(MCUCSR)
16.2? ATMEGA16(L)的復位源
16.2.1? 上電復位
16.2.2? 外部復位
16.2.3? 掉電檢測復位
16.2.4? JTAG AVR復位
????????? 16.2.5? 看門狗復位
16.2.6? 看門狗定時器控制寄存器(WDTCR)
16.3? 看門狗定時器的使用
16.4 ??在AVR DEMO單片機綜合試驗板上,進行看門狗實驗1(看門狗啟動后在程序中定時清除它):D1~D8的8個LED(發光管)依次流水點亮,形成“流水燈”實驗
16.4.1實現方法
16.4.2?? 源程序文件
16.4.3?? 程序分析解釋
16.5 ??在AVR DEMO單片機綜合試驗板上,進行看門狗實驗2(看門狗啟動后在程序中不再清除它,模擬程序失控的情況):D1~D8的8個LED(發光管)依次流水點亮,形成“流水燈”實驗
16.5.1 實現方法
16.5.2? 源程序文件
16.5.3?? 程序分析解釋
16.6? 熔絲位的設置
?
第17章 多功能測溫漢字時鐘實驗
17.1? 實驗目的
17.2? 實驗要求
17.3? 控制指令的定義
17.3.1? 傳送計時時間的控制指令規定
17.3.2? 定時時間的控制指令規定
17.3.3? 定時時間啟動/關閉的控制指令規定
17.4? 單線數字溫度傳感器DS18B20
17.4.1? DS18B20內部結構與原理
17.4.2? DS18B20特點
17.4.3? 1-Wire總線操作
17.4.4? DS18B20初始化流程
17.4.5? DS18B20溫度轉換及讀取流程
17.5? 程序設計
17.5.1程序設計思路
17.5.2? 建立一個新的工程項目
17.5.3? 設置ICC6.31A
17.5.4icc17-1.c源程序
17.5.5ds18b20.c源程序
17.5.6recever.c源程序
17.5.7display_time.c源程序
17.5.8lcd.c源程序
17.5.9head.h源程序
17.5.10? 向工程項目中添加源文件
17.5.11? 編譯文件
17.6? 實驗操作
?
第18章 C++語言開發AVR單片機初步
18.1 ?C++語言簡介
18.2? 對象和類
18.3? 類的定義
18.4? 對象的創建
18.5? 對象的初始化和構造函數
18.6? 析構函數
18.7? C++語言開發AVR單片機的一個實例
18.7.1?? 實現方法
18.7.2?? 源程序文件
18.7.3? 程序分析解釋
?