內容簡介
本書以PIC16系列單片機為例,詳細介紹了PIC16系列單片機的內部結構、C語言的基礎知識、C編譯器與MPLABX軟體的使用、程式的編寫與調試方法以及其他相關知識。
本書以硬體電路板及Proteus仿真軟體為教學工具,便於讀者在計算機上進行仿真練習,以提高學習效果。本書配套資料以動畫形式記錄了各個實驗的過程及現象,同時提供了作者所設計的仿真電路檔案、書中所有例子的源程式及工程檔案等。本書可作為中等職業學校、高等職業學校、電視大學的教學用書,也可作為單片機愛好者自學PIC單片機的教材。
圖書目錄
第1章 概 述………………………………………………………………………… 1
1.1 PIC單片機簡介……………………………………………………………… 1
1.2 PIC16F887單片機的特點…………………………………………………… 2
1.2.1 PIC16F88x系列單片機的引腳………………………………………… 4
1.2.2 PIC16F88x的振盪器、復位、看門狗及器件配置……………………… 9
1.3 C語言簡介…………………………………………………………………… 15
1.3.1 C 語言的產生與發展…………………………………………………… 15
1.3.2 C語言的特點…………………………………………………………… 15
1.4 C語言入門知識……………………………………………………………… 17
1.4.1 簡單的C程式介紹…………………………………………………… 18
1.4.2 C語言編程的特點……………………………………………………… 22
第2章 PIC單片機開發環境的建立……………………………………………… 24
2.1 軟體開發環境的建立………………………………………………………… 24
2.1.1 MPLABX軟體的安裝與使用………………………………………… 24
2.1.2 編譯軟體的安裝………………………………………………………… 26
2.1.3 Proteus軟體簡介……………………………………………………… 28
2.2 用PIC單片機控制一個LED ……………………………………………… 29
2.2.1 配置PIC16F887晶片………………………………………………… 30
2.2.2 任務分析………………………………………………………………… 32
2.3 Proteus仿真的實現………………………………………………………… 39
2.3.1 電路圖的設定…………………………………………………………… 39
2.3.2 電路圖的繪製…………………………………………………………… 43
2.4 硬體實驗環境的建立………………………………………………………… 46
2.4.1 實驗板簡介……………………………………………………………… 47
2.4.2 硬體結構………………………………………………………………… 48
第3章 數據類型、運算符與表達式………………………………………………… 58
3.1 數據類型概述………………………………………………………………… 58
3.2 常量與變數…………………………………………………………………… 59
3.2.1 常 量…………………………………………………………………… 59
3.2.2 變 量…………………………………………………………………… 61
3.3 整型數據……………………………………………………………………… 63
3.3.1 整型常量………………………………………………………………… 63
3.3.2 整型變數………………………………………………………………… 63
3.4 字元型數據…………………………………………………………………… 68
3.4.1 字元常量………………………………………………………………… 68
3.4.2 字元變數………………………………………………………………… 69
3.5 數的溢出……………………………………………………………………… 70
3.6 實型數據……………………………………………………………………… 71
3.6.1 實型常量………………………………………………………………… 71
3.6.2 實型變數………………………………………………………………… 72
3.7 PIC16F887單片機的數據存儲……………………………………………… 77
3.7.1 程式存儲器……………………………………………………………… 77
3.7.2 數據存儲器……………………………………………………………… 80
3.8 變數賦初值…………………………………………………………………… 82
3.9 運算符和表達式……………………………………………………………… 82
3.9.1 C運算符簡介…………………………………………………………… 82
3.9.2 算術運算符及其表達式………………………………………………… 83
3.9.3 各類數值型數據間的混合運算………………………………………… 84
3.9.4 賦值運算符及其表達式………………………………………………… 85
3.9.5 逗號運算符及其表達式………………………………………………… 89
3.9.6 位操作運算符及其表達式……………………………………………… 89
3.9.7 自增減運算符、複合運算符及其表達式……………………………… 91
第4章 C流程與控制……………………………………………………………… 92
4.1 順序結構程式………………………………………………………………… 92
4.2 選擇結構程式………………………………………………………………… 92
4.2.1 引 入…………………………………………………………………… 93
4.2.2 關係運算符和關係表達式……………………………………………… 95
4.2.3 邏輯運算符和邏輯表達式……………………………………………… 96
4.2.4 選擇語句if …………………………………………………………… 97
4.2.5 if語句的嵌套………………………………………………………… 101
4.2.6 條件運算符…………………………………………………………… 102
4.2.7 switch/case語句……………………………………………………… 103
4.3 循環結構程式……………………………………………………………… 106
4.3.1 循環結構程式簡介…………………………………………………… 107
4.3.2 while循環語句……………………………………………………… 108
4.3.3 do-while循環語句…………………………………………………… 109
4.3.4 for循環語句………………………………………………………… 112
4.3.5 break語句…………………………………………………………… 113
4.3.6 continue語句………………………………………………………… 114
4.4 使用硬體調試程式………………………………………………………… 116
第5章 C構造數據類型…………………………………………………………… 119
5.1 數 組……………………………………………………………………… 119
5.1.1 引 入………………………………………………………………… 119
5.1.2 一維數組……………………………………………………………… 121
5.1.3 二維數組……………………………………………………………… 122
5.1.4 字元型數組…………………………………………………………… 123
5.1.5 數組與存儲空間……………………………………………………… 125
5.2 指 針……………………………………………………………………… 127
5.2.1 指針的基本概念……………………………………………………… 127
5.2.2 定義一個指針變數…………………………………………………… 128
5.2.3 指針變數的引用……………………………………………………… 131
5.2.4 HI-TECHPICC的指針類型………………………………………… 134
5.3 結 構……………………………………………………………………… 136
5.3.1 結構的定義和引用…………………………………………………… 136
5.3.2 結構數組……………………………………………………………… 140
5.4 共用體……………………………………………………………………… 140
5.5 枚 舉……………………………………………………………………… 143
5.5.1 枚舉的定義和說明…………………………………………………… 144
5.5.2 枚舉變數的取值……………………………………………………… 144
5.6 用typedef定義類型……………………………………………………… 147
第6章 PIC單片機內部資源編程………………………………………………… 149
6.1 中 斷……………………………………………………………………… 149
6.1.1 中斷源………………………………………………………………… 149
6.1.2 PIC16F887的中斷邏輯……………………………………………… 150
6.1.3 外部中斷實例………………………………………………………… 152
6.2 定時/計數器……………………………………………………………… 153
6.2.1 定時/計數的基本概念……………………………………………… 153
6.2.2 定時/計數器TIMER0 ……………………………………………… 155
6.2.3 定時/計數器TIMER1 ……………………………………………… 161
6.2.4 定時/計數器TIMER2 ……………………………………………… 168
6.3 通用串列接口……………………………………………………………… 171
6.3.1 EUSART模組關鍵暫存器介紹……………………………………… 172
6.3.2 EUSART波特率設定………………………………………………… 176
6.3.3 EUSART工作過程分析……………………………………………… 177
6.3.4 EUSART實例分析…………………………………………………… 180
6.4 CCP模組…………………………………………………………………… 183
6.4.1 與CCP模組相關的控制暫存器……………………………………… 184
6.4.2 CCP模組的輸入捕捉模式…………………………………………… 186
6.4.3 CCP模組的比較輸出模式…………………………………………… 190
6.4.4 CCP模組的PWM 模式……………………………………………… 192
6.5 模/數轉換模組及使用…………………………………………………… 196
6.5.1 ADC模組概述………………………………………………………… 196
6.5.2 ADC模組相關控制暫存器…………………………………………… 197
6.5.3 模擬通道輸入口引腳的設定………………………………………… 200
6.5.4 A/D轉換實例分析…………………………………………………… 200
第7章 函 數……………………………………………………………………… 205
7.1 概 述……………………………………………………………………… 205
7.2 函式的定義………………………………………………………………… 207
7.3 函式參數和函式的值……………………………………………………… 209
7.4 函式調用…………………………………………………………………… 213
7.5 數組作為函式參數………………………………………………………… 220
7.6 局部變數和全局變數……………………………………………………… 221
7.6.1 局部變數……………………………………………………………… 221
7.6.2 全局變數……………………………………………………………… 222
7.7 變數的存儲類別…………………………………………………………… 223
第8章 單片機接口的C語言編程……………………………………………… 228
8.1 LED數碼管………………………………………………………………… 228
8.1.1 靜態顯示接口………………………………………………………… 229
8.1.2 動態顯示接口………………………………………………………… 233
8.2 鍵盤接口及套用…………………………………………………………… 237
8.2.1 鍵盤工作原理………………………………………………………… 237
8.2.2 鍵盤與單片機的連線………………………………………………… 238
8.3 I2C匯流排接口……………………………………………………………… 243
8.3.1 I2C匯流排接口概述…………………………………………………… 243
8.3.2 24系列EEPROM 的結構及特性…………………………………… 244
8.3.3 24系列EEPROM 的使用…………………………………………… 246
8.4 93Cxx系列EEPROM 的使用…………………………………………… 248
8.4.1 93Cxx系列EEPROM 的結構及特性……………………………… 248
8.4.2 93C46晶片的使用…………………………………………………… 249
8.5 DS1302實時時鐘及套用…………………………………………………… 253
8.5.1 DS1302的結構及特性………………………………………………… 253
8.5.2 DS1302晶片的使用…………………………………………………… 254
8.6 LED點陣顯示屏及其套用………………………………………………… 256
8.6.1 認識LED點陣顯示屏及字模………………………………………… 256
8.6.2 用LED點陣屏顯示漢字……………………………………………… 263
8.7 液晶顯示屏及其套用……………………………………………………… 271
8.7.1 使用字元型液晶顯示屏製作小小迎賓屏…………………………… 272
8.7.2 用點陣型液晶顯示屏顯示漢字和圖像……………………………… 279
第9章 套用設計舉例……………………………………………………………… 289
9.1 秒 表……………………………………………………………………… 289
9.2 可預置倒計時鐘…………………………………………………………… 293
9.3 使用DS1302晶片製作的時鐘…………………………………………… 299
9.4 AT24C02的綜合套用……………………………………………………… 305
9.5 93C46的綜合套用………………………………………………………… 311
9.6 交通燈控制………………………………………………………………… 321
9.7 模組化編程………………………………………………………………… 330
參考文獻……………………………………………………………………………… 341