目 錄
第1篇 單片機KEIL開發環境
第1章 點亮LED實例與經典延時程序介紹(看不懂就從第2章動手)
1.1 51單片機最小系統與芯片引腳圖
1.2 點亮LED的多個常用實例
1.3 C語言各種延時程序詳解
1.3.1 經典匯編延時程序時間計算(設晶振頻率12Mz)
1.3.2 單片機C語言延時程序(大范圍精確計算法:晶振頻率任意)
1.3.3 單片機C語言延時程序(小范圍精確計算法:晶振頻率任意)
1.3.4 單片機C語言延時程序(利用庫函數實現短暫精確延時)
1.3.5 使用定時器/計數器實現精確延時
1.4 main()、void main()和int main() 的區別
1.5 printf 格式化輸出函數
第2章 建立Keil開發環境
2.1 快速建立工程和調試程序
2.1.1 安裝Keil軟件
2.1.2 第1個硬件實驗
2.1.3工程的簡單設置
2.1.4編譯鏈接生成Hex目標文件
2.1.5 初步軟件調試
2.2 程序燒錄下載:
2.3 實用的硬件仿真
2.3.1 普通51單片機(如89C51,89C52)的硬件仿真。
2.3.2 STC高速51單片機的硬件仿真。
2.3.3 各種仿真方法對比
2.4 在keil中添加STC型號的3種方法
2.5 KEIL編輯器設置
2.6 代碼調試與軟件仿真
2.6.1 Keil 工程的詳細設置
2.6.2 常用調試命令、在線匯編與斷點設置
2.6.2.1 常用調試命令
2.6.2.2 在線匯編
2.6.2.3 斷點設置
2.6.2.4 實例調試
2.6.3 Keil 程序調試窗口
2.6.3.1 存儲器窗口
2.6.3.2 工程窗口寄存器頁窗口
2.6.3.3 變量觀察窗口
2.6.3.4 各種窗口在程序調試中的用途
2.6.4 Keil 的輔助工具和部份高級技巧
2.6.4.1 外圍接口
2.6.4.2 性能分析窗口
2.6.4.3 變量來源瀏覽窗口
2.6.4.4 代碼作用范圍分析窗口
2.6.4.5 串行窗口與實際硬件相連
2.6.4.6 向普通IO端口送入信號
2.6.4.7 直接更改內存值
2.7 硬件實驗環境的建立
第3章 KEIL環境的深入理解(難度較大)
3.1 Keil中的*.M51文件詳解
3.1.1 完整的M51文件
3.1.2 KEIL編譯器的編譯過程
3.2 Keil中的STARTUP.A51文件詳解
3.3 Keil優化技巧
3.3.1 KEILC的優化級別選項
3.3.2 volatile關鍵字
3.3.3 編寫代碼時的優化
3.4 Keil中的變量和函數的絕對地址定位詳解
3.4.1 變量絕對地址定位
3.4.2 函數絕對地址定位
3.5 Keil中的C語言與匯編語言混合編程
3.5.1 直接在C語言中嵌入匯編程序
3.5.2 在C語言中調用匯編程序
3.6 Keil中的錯誤警告集
第2篇 單片機中的C語言
第4章 數據類型與運算符
4.1 原碼、反碼、補碼
4.2 BCD碼詳細介紹
4.3 二進制格雷碼
4.4 常量
4.5 變量的數據類型
4.5.1 字符型數據
4.5.2 整型數據
4.5.3 實數(單片機上盡量不用以免大幅度降低程序速度)
4.5.4 空類型(void)
4.5.5 指針型
4.5.6 keil特有類型(位變量)
4.5.7 類型轉換與強制類型轉換技巧
4.6 變量存儲空間
4.7 變量存儲類型Auto、static、extern、register
4.7.1 Auto 自動存儲類型變量(局部變量存儲類型默認為auto型)
4.7.2 static靜態存儲類型變量
4.7.3 Extern(外部)變量
4.7.4 register(寄存器)變量
4.8 變量作用域
4.9 #define typedef const的差別
4.10 運算符(總 結)
4.10.1 算術運算符
4.10.2 關系運算符
4.10.3 邏輯運算符
4.10.4 賦值運算符
4.10.5 位操作運算符
4.10.6 條件運算符
4.10.7 特殊運算符
4.10.8 分隔符
4.11 各種運算符的優先級與結合性
第5章 C51構造數據類型
5.1 數組:將相同類型數據組合在一起就構成數組(如數碼管顯示緩沖區)
5.2 結構體:將不同類型數據組合在一起就構成結構體(如年月日2011-01-10)
5.3 共用體:不同變量占用相同內存地址就是共用體
5.4 枚舉:把變量允許的取值一 一列舉出來就構成了枚舉
5.5 指針:用于直接讀取或修改內存值
第6章 流程與控制
6.1 分支結構
6.2 循環結構
第7章 函 數
7.1 函數定義
7.2 調用格式
7.3 傳值調用與傳地址調用2種方式對比
7.4 用函數指針變量調用函數(本質是用函數入口地址調用函數)
7.5 函數作用域
第8章 模塊化編程
8.1 頭文件的編寫
8.2 預處理指令
8.3 多文件程序
第3篇 單片機基本模塊單元
第9章 定時計數器
第10章 中 斷
9.1 使用中斷最簡單的方法
9.2 外中斷代碼調試(按鍵的防抖技術)
第11章 串 行 口
10.1 最基本的串口通信
10.2 虛擬串口
10.3 利用MAX232芯片產生正負電源
10.4 USB 轉串口
10.4.1 CH341A
10.4.2 CH340G(帶光耦隔離)
10.4.3 PL2303HX
10.5 串口隔離電路
10.6 RS485串行通信
10.7 SSI通信
10.8 校驗和(CheckSum)
10.9 CRC校驗(全稱:循環冗余碼校驗)
10.9.1 CRC原理
10.9.2 CRC8查表法和計算法在18b20中的運用
10.9.3 Visual Basic中實現CRC校驗
10.10 串口輸出漢字
第12章 IIC 通信
11.1 I2C總線數據傳輸格式
11.2 硬件仿真觀察24C01讀寫結果
例11-1 有頁面限制,只適合讀寫單字節
例11-2 無頁面限制,慢速,適合連續讀寫多個字節,優先選用
例11-3 無頁面限制,快速,適合連續讀寫多個字節, 要根據芯片型號對代碼
一個常數值作修改
11.3 24C01運用實例
例11-4 使用計算機串口助手控制單片機讀寫24C01的數據。
例 11-5 利用24C01記錄單片機上電次數
例 11-6 利用24C01斷電瞬間存儲數據
11.4 24C64硬件仿真與運用實例
第13章 SPI 通信
12.2 SPI總線數據傳輸格式
12.2 STC單片機的SPI硬接口
12.2.1 SPI相關的特殊功能寄存器
12.2.2 STC單片機SPI硬接口運用實例
例12-1 STC-SPI硬接口(單主單從_忽略片選)
例12-2 STC-SPI硬接口(單主單從_從機片選)
例12-3 STC-SPI硬接口(單主多從)
例12-4 STC-SPI硬接口(互為主從)
12.3 X5045存儲器讀寫操作
12.3.1 X5045引腳功能描述
12.3.2 X5045內部原理
12.3.3 X5045存儲器讀寫實例(模擬SPI方式)
第4篇 編 程 實 例
第14章 常用單片機接口程序
14.1 數碼管顯示程序設計與輸入輸出IO口擴展
14.2 74LS165并入串出實驗
14.3 獨立鍵盤
14.4 矩陣鍵盤
14.5 LED點陣(8×8)
第15章 1602液晶
第16章 模數轉換ADC
15.1 8位AD轉換芯片TLC0831(或ADC0831)
15.2 使用STC12C5A60S2內部的10位模/數轉換器
15.3 12位AD轉換芯片MCP3202
15.4 單通道16位AD轉換芯片ADS1110
15.5 單通道18位AD轉換芯片MCP3421
第17章 數模轉換DAC
17.1 TLC5615數/模轉換電路圖與簡單測試程序
17.2 TLC5615產生鋸齒波
17.3 TLC5615的高級運用(播放歌曲)
17.4 TLC5615輸出正弦波或其它函數信號
第18章 單總線18B20 通信
17.1 DS18B20運用基礎(引腳排列與通信時序)
17.2 單只DS18B20的溫度檢測
17.3 多只DS18B20的溫度檢測
17.3.1 讀取傳感器代碼
17.3.2 讀取傳感器溫度
第19章 DS1302時鐘芯片
第20章 紅外通信
第21章 步進電機測試
第22章 頻率檢測
第23章 通用顯示器制作
第24章 2M字節FLASH存儲器W25Q16 (W25X16)
第25章 SD卡
25.1 認識SD卡與SD卡讀寫測試
25.2 MMC + SD1.0 + SD2.0卡的初始化
25.3 SD卡的單扇區讀寫
25.4 SD卡的多扇區讀寫擦除
25.2 znFAT文件系統
25.2.1 znFAT文件系統總體結構
25.2.2 znFAT 10.89的移植方法
25.2.3 znFAT移植基礎實例
25.2.3.1 文件系統初始化
25.2.3.2 打開根目錄下的短名文件
25.2.3.3 打開深層目錄下的短名文件
25.2.3.4 打開根目錄下的文件(長名,無中文)
25.2.3.5 打開深層長名目錄下的文件(長名,無中文)
25.2.3.6 打開深層目錄下的文件(長名,含中文)
25.2.3.7 打開文件時使用帶有通配符的文件名
25.2.3.8 文件定位讀取數據( A )
25.2.3.8 文件定位讀取數據( B )
25.2.3.9 讀取文件(數據重定向)
25.2.3.10 在根目錄下創建文件(短名)
25.2.3.11 在深層目錄下創建文件(短名)
25.2.3.12 在根目錄下創建文件(長名,無中文)
25.2.3.13 在根目錄下創建文件(長名,含中文)
25.2.3.14 在深層目錄下創建文件(長名,含中文)
25.2.3.15 在根目錄下創建子目錄(短名)
25.2.3.16 創建多級子目錄(短名)
25.2.3.17 在根目錄下創建多級子目錄(長名,含中文)
25.2.3.18 打開根目錄下的子目錄(短名)
25.2.3.19 打開根目錄下的子目錄(長名,含中文)
25.2.3.20 打開根目錄下的通配子目錄(長名,含中文)
25.2.3.21 文件數據寫入(新建文件寫入數據)
25.2.3.21 文件數據寫入(添加數據)
25.2.3.22 文件拷貝
25.2.3.23 文件數據截斷
25.2.3.24 刪除文件
25.2.3.25 刪除通配文件
25.2.3.26 刪除目錄
25.2.3.27 刪除通配目錄
25.2.3.28 磁盤格式化
第26章 MP3播放器實驗(znFAT運用實例)
26.1 MP3介紹與電路講解
26.2 正弦測試
26.3 播放簡易的MP3文件
26.4 其它音頻格式的支持
26.5 讀取解碼時間
26.6 VS1003的頻譜功能
26.7 通過SD卡播放MP3文件
第27章 TFT彩色觸摸屏運用(znFAT運用實例)
27.1 TFT液晶簡介
27.2 TFT模塊的坐標系統
第28章 單片機擴展32K外部數據存儲器62256
28.1 電路講解
28.2 軟件實例
第29章 USB 通信
第30章 網絡通信
第31章 常用電源電路與單片機外圍元件
第32章 數字存儲示波器技巧與邏輯分析儀的操作
第33章 數制轉換(含小數部分)與ASCII表
參 考 文 獻