單片機開發從入門到實踐
郭學提
相關主題
商品描述
本書通過典型、實用的操作項目講解單片機開發工具、單片機編程基礎、單片機硬件基礎、知識競賽數字搶答器、數字電子時鐘、多功能數字頻率計、手持GPS定位器,使讀者初步建立對單片機的整體認知,然後帶領讀者對操作結果及出現的問題進行討論、分析、研究,進而得出結論。這樣有利於讀者在“做”中“學”,漸進式地理解知識點,逐步提高自身的單片機開發能力。希望讀者通過學習本書,能夠根據不同型號單片機及單片機系統的開發要求,獨立完成單片機系統的設計與開發。
本書可作為高校電子信息技術、電子工程技術或電氣自動化等相關專業及職業學校、培訓機構的嵌入式開發、單片機開發課程的教材,也可供有一定編程基礎的單片機學習者、對單片機開發感興趣的愛好者自學。
作者簡介
郭学提:2008年毕业于江西科技师范学院(今江西科技师范大学),毕业后一直从事嵌入式系统开发及教学相关的工作,拥有多年的嵌入式产品开发及设计经验。曾在江西省电子信息工程学校担任电子系单片机实训讲师;在深圳某职业培训机构担任嵌入式开发讲师。现就职于深圳鼎然信息科技有限公司并担任高级嵌入式开发工程师一职。先后发表论文、文章16篇。申请5项发明、实用新型、外观专利。
目錄大綱
目錄
第1章 單片機開發工具 1
1.1 UltraEdit 1
1.1.1 UltraEdit用戶界面 1
1.1.2 創建工程 5
1.1.3 新建文件 6
1.1.4 添加文件至工程 7
1.2 Keil 5集成開發環境 8
1.2.1 Keil 5簡介 8
1.2.2 創建應用程序 10
1.2.3 調試工程 16
1.2.4 創建“Hello World”項目 17
1.3 小結 18
1.4 習題 19
第2章 單片機編程基礎 20
2.1 函數概述 20
2.1.1 函數無參的一般形式 20
2.1.2 函數有參的一般形式 21
2.1.3 函數的形式參數 22
2.1.4 函數的實際參數 22
2.1.5 函數的形參和實參的特點 23
2.1.6 函數的返回值 23
2.2 函數的調用 24
2.2.1 函數調用的一般形式 24
2.2.2 函數調用需要註意的事項 25
2.2.3 函數的嵌套調用 25
2.3 數組概述 26
2.3.1 一維數組的定義 27
2.3.2 一維數組元素的引用 28
2.3.3 一維數組的初始化 28
2.3.4 二維數組的定義 29
2.3.5 二維數組元素的引用 29
2.3.6 二維數組的初始化 30
2.4 字符數組 31
2.4.1 字符數組的定義 31
2.4.2 字符數組的初始化 31
2.4.3 字符數組的引用 31
2.4.4 字符串和字符串結束標志 31
2.4.5 字符串處理函數 31
2.5 指針概述 33
2.5.1 什麽是指針 33
2.5.2 指針變量的類型說明 34
2.5.3 指針變量的賦值 34
2.5.4 指針變量的運算 34
2.6 指針與數組 36
2.6.1 一維數組與指針 37
2.6.2 指針數組 38
2.7 指針與函數 38
2.7.1 函數指針 39
2.7.2 指針型函數 39
2.8 結構體 41
2.8.1 結構體的定義 41
2.8.2 結構體類型的說明 42
2.8.3 結構體變量成員的表示 43
2.8.4 結構體變量的賦值 43
2.8.5 結構體變量的初始化 44
2.9 結構體指針變量 46
2.9.1 結構體指針變量概述 46
2.9.2 結構體指針變量的定義 46
2.9.3 結構體指針變量的引用 47
2.10 聯合體 47
2.10.1 聯合體的定義 47
2.10.2 聯合體的使用 48
2.11 枚舉類型 49
2.11.1 枚舉類型聲明 49
2.11.2 枚舉變量的定義 49
2.11.3 枚舉變量應用舉例 49
2.12 自定義類型 50
2.13 小結 50
2.14 習題 51
第3章 單片機硬件基礎 53
3.1 單片機I/O口 53
3.1.1 P0口概述 53
3.1.2 P1口概述 53
3.1.3 P2口概述 54
3.1.4 P3口概述 54
3.2 定時器/計數器 55
3.2.1 定時器/計數器概述 55
3.2.2 定時器/計數器結構 56
3.2.3 與定時器/計數器控制相關的寄存器 56
3.2.4 工作方式0 58
3.2.5 工作方式1 59
3.2.6 工作方式2 59
3.2.7 工作方式3 59
3.3 單片機串行口 60
3.3.1 串行口概述 60
3.3.2 串行口結構 60
3.3.3 與串行口相關的寄存器 61
3.3.4 波特率 62
3.3.5 工作方式0 64
3.3.6 工作方式1 66
3.3.7 工作方式2、3 66
3.4 中斷 66
3.4.1 單片機中斷概述 67
3.4.2 中斷結構 69
3.4.3 與中斷相關的寄存器 69
3.4.4 中斷的使用方法 71
3.5 綜合應用 72
3.5.1 基於CD4094的四位數碼管驅動電路 72
3.5.2 單片機與PC通信 74
3.6 小結 78
3.7 習題 78
第4章 知識競賽數字搶答器 79
4.1 數碼管驅動 79
4.1.1 數碼管分類 79
4.1.2 數碼管驅動方式 79
4.1.3 數碼管字符編碼 80
4.1.4 數碼管靜態驅動 82
4.1.5 數碼管動態驅動 83
4.2 鍵盤接口技術 85
4.2.1 獨立式開關按鍵 85
4.2.2 開關按鍵的去抖動措施 86
4.2.3 按鍵檢測 86
4.2.4 矩陣鍵盤原理 89
4.2.5 矩陣鍵盤檢測 89
4.3 搶答器硬件設計 91
4.3.1 主控系統 92
4.3.2 顯示模塊 93
4.3.3 聲音提示電路 94
4.3.4 搶答電路 94
4.3.5 通信電路 96
4.4 搶答器軟件設計 99
4.4.1 軟件架構 100
4.4.2 系統初始化 100
4.4.3 硬件中斷服務 101
4.4.4 外部通信接口 103
4.4.5 應用程序 104
4.4.6 相關數據結構定義 106
4.5 小結 108
4.6 習題 108
第5章 數字電子時鐘 109
5.1 單總線 109
5.1.1 單總線的結構原理 109
5.1.2 DS18B20概述 110
5.2 I2C總線 114
5.2.1 I2C總線的特點 114
5.2.2 I2C總線的工作原理 114
5.2.3 I2C總線基本操作 115
5.2.4 PCF8563概述 116
5.3 LCD 121
5.3.1 LCD顯示器介紹 121
5.3.2 HD44780概述 122
5.4 數字電子時鐘硬件設計 126
5.4.1 主控系統 126
5.4.2 顯示模塊 127
5.4.3 聲音提示電路 129
5.4.4 日歷/時鐘電路 129
5.4.5 通信電路 129
5.4.6 溫濕度檢測電路 130
5.5 數字電子時鐘軟件設計 132
5.5.1 軟件架構 133
5.5.2 系統初始化 133
5.5.3 硬件中斷服務 134
5.5.4 I2C總線驅動 135
5.5.5 基於單總線的溫濕度接口 139
5.5.6 硬件接口 140
5.5.7 外部通信接口 144
5.5.8 應用程序 144
5.5.9 相關數據結構定義 149
5.6 小結 151
5.7 習題 151
第6章 多功能數字頻率計 152
6.1 多功能數字頻率計硬件設計 152
6.1.1 主控系統 152
6.1.2 設置電路 153
6.1.3 顯示模塊 153
6.1.4 聲音提示電路 154
6.1.5 通信電路 154
6.1.6 信號處理電路 154
6.1.7 信號分頻電路 156
6.2 多功能數字頻率計軟件設計 159
6.2.1 軟件架構 159
6.2.2 系統初始化 159
6.2.3 硬件中斷服務 160
6.2.4 硬件接口 161
6.2.5 外部通信和系統調試接口 163
6.2.6 應用程序 164
6.2.7 相關數據結構定義 168
6.3 小結 169
6.4 習題 169
第7章 手持GPS定位器 170
7.1 AT89S51單片機存儲器擴展基礎 170
7.1.1 存儲器分類 170
7.1.2 AT89S51單片機擴展系統 171
7.2 SPI總線 177
7.2.1 SPI總線的結構原理 177
7.2.2 SPI總線的數據傳輸 177
7.2.3 SPI總線的接口 178
7.2.4 X25045概述 178
7.3 手持GPS定位器硬件設計 182
7.3.1 主控系統 183
7.3.2 顯示模塊 183
7.3.3 聲音提示電路 184
7.3.4 通信電路 184
7.3.5 擴展SRAM電路 184
7.3.6 串行口復用電路 186
7.3.7 地址選擇電路 187
7.3.8 Flash存儲電路 187
7.3.9 GPS模塊電路 188
7.3.10 3.3V電源電路 189
7.4 手持GPS定位器軟件設計 190
7.4.1 軟件架構 190
7.4.2 系統初始化 190
7.4.3 硬件中斷服務 191
7.4.4 硬件接口 194
7.4.5 外部通信和系統調試接口 196
7.4.6 應用程序 196
7.4.7 相關數據結構定義 208
7.5 小結 210
7.6 習題 210
附錄A ASCII字符集 211
附錄B 8051單片機指令表 213
附錄C Keil C51常用庫函數原型 216