基本介紹
內容簡介
《我和PIC單片機:基於PIC18(入門卷)》語言簡練幽默,內容通俗易懂,圖文並茂,代碼豐富,操作性強,非常適合於單片機的初學者,也可作為專業從事PIC單片機開發的技術人員以及PIC單片機愛好者的參考用書。
作者簡介
高顯生,男,1972年出生,是一名骨灰級業餘電子愛好者,長期熱衷於單片機的公益培訓推廣工作,倡導簡捷易懂、立足實踐的單片機學習方法。先後錄製了《我和單片機的21天之旅》和《我的PIC日記》等多部視頻教程,深受大學生朋友及PIC單片機初學者的喜愛和好評。
圖書目錄
前言
第一篇 片內功能和開發環境
第1章 初識PIC 2
1.1 與眾不同的PIC 2
1.1.1 PIC單片機大家族 2
1.1.2 哈佛核心結構 3
1.1.3 PIC的功能概要 4
1.2 主題晶片介紹 7
1.2.1 片內資源配置 7
1.2.2 PIC的I/O口 7
1.2.3 I/O口的方向設定 9
1.2.4 I/O口的套用 9
1.2.5 I/O口的內部結構 10
第2章 PIC的開發環境 12
2.1 PIC開發的硬體資源 12
2.1.1 動手搭建系統板 12
2.1.2 ICSP接口 13
2.2 MPLAB IDE集成開發環境 13
2.2.1 單片機系統開發過程 14
2.2.2 MPLAB IDE及其內置組件 14
2.2.3 MPLAB IDE的工具鏈 16
2.3 開發前的準備 17
2.3.1 PICC支持的基本數據類型 17
2.3.2 安裝MPLAB IDE軟體 18
2.3.3 安裝PICC18編譯器軟體 21
2.4 我的第一個PIC程式 23
2.4.1 建立開發項目 23
2.4.2 新建源檔案並添加到項目中 30
2.4.3 原始碼的編寫 33
2.4.4 代碼的編譯和燒寫 34
2.4.5 PIC入門編程實例 39
第3章 仿真 40
3.1 MPLAB SIM軟體模擬器 40
3.1.1 使用軟體模擬器 40
3.1.2 設定斷點 44
3.1.3 設定觀察視窗 45
3.2 PICkit 2硬體調試器 46
第4章 位操作 51
4.1 PICC中的高級變數 51
4.2 PICC中的變數修飾關鍵字 52
4.3 PIC18的頭檔案 53
4.4 位操作 57
4.4.1 位操作的方法 57
4.4.2 不容忽視的“讀—修改—寫”問題 59
第5章 時鐘源 62
5.1 數碼管 62
5.1.1 數碼管的內部結構 62
5.1.2 數碼管的驅動 63
5.2 時鐘源簡介 64
5.2.1 時鐘的來源 64
5.2.2 時鐘源的分類 64
5.3 主時鐘源 65
5.3.1 與時鐘源相關的配置位 65
5.3.2 主時鐘源配置 66
5.4 內部及輔助時鐘源 68
5.4.1 內部時鐘源配置 68
5.4.2 內部及輔助時鐘源的構成 69
5.4.3 時鐘源的控制暫存器 69
5.5 時鐘源編程實例 71
5.5.1 時鐘源的設定嚮導 71
5.5.2 主時鐘源的套用 72
5.5.3 內部時鐘源的套用 75
第6章 PIC的特色功能 77
6.1 功耗管理模式 77
6.1.1 運行模式 77
6.1.2 空閒模式 77
6.1.3 休眠模式 78
6.2 復位 79
6.2.1 外部復位 79
6.2.2 上電復位 79
6.2.3 上電延時定時器復位 79
6.2.4 振盪器起振定時器復位 80
6.2.5 欠壓復位 81
6.2.6 看門狗定時器復位 81
6.2.7 跟蹤復位事件 83
6.3 雙速啟動 83
6.4 故障保護時鐘監視器 84
第7章 配置位 85
7.1 配置位簡介 85
7.1.1 配置位的使用方法 85
7.1.2 配置暫存器 86
7.2 配置位的相關設定 91
第二篇 單元模組及驅動
第8章 中斷 94
8.1 中斷系統 94
8.1.1 中斷的類型 94
8.1.2 中斷的處理 95
8.1.3 中斷控制暫存器 95
8.2 外部中斷 100
8.2.1 外部中斷的過程 101
8.2.2 特殊的PORTB連線埠 101
8.2.3 外部中斷編程實例 102
8.2.4 PIC的中斷服務函式 105
8.3 電平變化中斷 105
8.3.1 電平變化中斷的特點 105
8.3.2 電平變化中斷的套用 106
第9章 定時/計數器(上) 109
9.1 TIMER0模組 109
9.1.1 TMIER0的內部結構 109
9.1.2 TIMER0的控制暫存器 110
9.1.3 TIMER0的16位讀寫方式 110
9.1.4 TIMER0的預分頻器 111
9.1.5 TIMER0的中斷 112
9.2 TIMER0編程實例 112
9.3 TIMER1模組 115
9.3.1 TMIER1的內部結構 115
9.3.2 TMIER1的控制暫存器 116
9.3.3 TIMER1的16位讀寫模式 117
9.3.4 TIMER1的振盪器 118
9.3.5 TIMER1的中斷 118
9.3.6 靈活使用TIMER1119
9.4 TIMER1編程實例 119
第10章 定時/計數器(下) 124
10.1 TIMER2模組 124
10.1.1 TMIER2的內部結構 124
10.1.2 TMIER2的控制暫存器 125
10.2 TIMER2編程實例 125
10.3 TIMER3模組 130
10.3.1 TMIER3的內部結構 130
10.3.2 TMIER3的控制暫存器 131
10.3.3 TIMER3的16位讀寫方式 131
10.3.4 TIMER3的中斷 132
10.4 TIMER3編程實例 132
第11章 A/D轉換器 137
11.1 A/D轉換器的原理 137
11.1.1 模數轉換 137
11.1.2 逐次逼近型A/D轉換器原理 138
11.2 PIC的ADC模組 138
11.2.1 ADC模組的結構 138
11.2.2 A/D轉換的解析度 139
11.2.3 ADC模組的控制暫存器 140
11.3 設定ADC模組 143
11.3.1 模擬輸入通道 143
11.3.2 A/D轉換周期 143
11.3.3 A/D轉換過程 144
11.3.4 A/D轉換時鐘 144
11.4 使用ADC模組 145
11.4.1 ADC模組編程嚮導 145
11.4.2 ADC模組編程實例 145
第12章 主控同步串列接口(SPI模式) 149
12.1 MSSP模組 149
12.1.1 SPI匯流排 149
12.1.2 MSSP模組的SPI模式 150
12.1.3 SPI模式控制暫存器 151
12.1.4 SPI主控模式通信時序 153
12.1.5 SPI模式連線埠配置 154
12.1.6 SPI的通信過程 154
12.1.7 SPI模式通信要點 155
12.2 存儲器93C46156
12.2.193C46引腳功能 156
12.2.293C46操作指令 157
12.2.393C46數據傳輸時序 159
12.3 SPI模式編程實例 159
12.3.1 SPI主控模式編程嚮導 159
12.3.293C46斷電接力顯示 159
第13章 主控同步串列接口(I2C模式) 165
13.1 I2C匯流排 165
13.2 I2C匯流排通信協定 166
13.2.1 起始和停止條件 166
13.2.2 I2C匯流排的位傳輸 167
13.2.3 I2C器件的定址 167
13.3 MSSP模組的I2C模式 168
13.3.1 I2C模式簡介 168
13.3.2 I2C模式的控制暫存器 169
13.3.3 I2C模式的編程嚮導 171
13.4 I2C模式通信 171
13.4.1 I2C模式數據傳送時序 171
13.4.2 I2C模式數據接收時序 173
13.4.3 波特率 174
13.5 DS1307實時時鐘 175
13.5.1 DS1307的功能 175
13.5.2 DS1307的暫存器 176
13.5.3 DS1307的數據格式 177
13.6 I2C模式編程實例 178
第14章 CCP模組 184
14.1 CCP模組概述 184
14.1.1 CCP模組的功能 184
14.1.2 CCP模組的控制暫存器 184
14.1.3 定時器資源配置 185
14.1.4 CCP模組引腳分配 186
14.2 捕捉模式 186
14.2.1 捕捉模式原理 186
14.2.2 捕捉模式的時間值 187
14.2.3 捕捉模式的配置 188
14.2.4 理解捕捉模式 188
14.2.5 捕捉的精度 189
14.3 比較模式 189
14.3.1 比較模式的原理 189
14.3.2 比較模式的套用 190
14.4 PWM模式 190
14.4.1 PWM的相關參數 191
14.4.2 PWM模式的原理 191
14.4.3 PWM參數的計算 193
14.4.4 PWM模式設定嚮導 193
14.4.5 增強型PWM方式 194
14.5 CCP模組編程實例 194
14.5.1 基於CCP模組的信號發生器和頻率計 194
14.5.2 PWM調光燈 198
第15章 模擬比較器 203
15.1 模擬比較器模組 203
15.1.1 比較器的作用 203
15.1.2 比較器模組配置 204
15.1.3 比較器的控制暫存器 205
15.1.4 比較器的工作原理 206
15.1.5 比較器的中斷 206
15.2 參考電壓模組 207
15.2.1 參考電壓模組的控制暫存器 207
15.2.2 參考電壓源 208
15.2.3 參考電壓模組的套用 209
15.3 比較器編程實例 209
第16章 片記憶體儲器 212
16.1 FLASH的讀寫 212
16.1.1 存儲器的結構 212
16.1.2 表讀和表寫 212
16.2 EEPROM的讀寫 214
16.2.1 EEPROM的相關暫存器 215
16.2.2 讀EEPROM存儲器 216
16.2.3 寫EEPROM存儲器 216
16.3 EEPROM編程實例 216
第17章 串列通信模組 220
17.1 串列通信模組概述 220
17.1.1 EUSART的工作模式 220
17.1.2 EUSART的連線埠配置 220
17.1.3 EUSART的相關暫存器 221
17.1.4 異步通信數據格式 224
17.1.5 EUSART的中斷 224
17.2 波特率發生器 224
17.2.1 波特率 224
17.2.2 波特率的產生 225
17.3 EUSART數據傳送 225
17.3.1 異步傳送原理 225
17.3.2 異步傳送時序 226
17.3.3 異步傳送編程嚮導 227
17.4 EUSART數據接收 227
17.4.1 異步接收原理 227
17.4.2 異步接收時序 229
17.4.3 異步接收編程嚮導 230
17.4.4 地址檢測接收編程嚮導 230
17.5 EUSART編程實例 231
17.5.1 間隔字元和同步字元的傳送 231
17.5.2 串列通信收發器 231
第三篇 擴展套用實例
第18章 步進電機的驅動 236
18.1 步進電機的特點 236
18.1.1 步進電機的分類 236
18.1.2 步進電機的工作原理 237
18.1.3 步距角的計算方法 237
18.228BYJ48型步進電機 237
18.2.128BYJ48電機性能指標 237
18.2.228BYJ48電機繞組結構 238
18.3 步進電機的驅動 238
18.3.1 步進電機的勵磁方式 238
18.3.2 步進電機的驅動電路 239
18.3.3 步進電機編程實例 239
第19章 紅外線解碼及發射 243
19.1 紅外線遙控的編碼方式 243
19.1.1 編碼的幀結構 243
19.1.2 編碼的方式 243
19.1.3 編碼的調製與解調 244
19.2 紅外線解碼與發射 245
19.2.1 紅外線解碼的方法 245
19.2.2 紅外線發射的方法 245
19.3 紅外線遙控編程實例 246
19.3.1 紅外線解碼器 246
19.3.2 紅外線發射器 251
第20章 DS18B20數字溫度感測器 254
20.1 DS18B20的功能介紹 254
20.1.1 DS18B20的特點 254
20.1.2 DS18B20的引腳定義 255
20.2 DS18B20的內部結構 255
20.2.164位光刻ROM 255
20.2.2 存儲器 255
20.2.3 配置暫存器 256
20.2.4 溫度值的存儲方式 257
20.3 DS18B20的讀寫方式 258
20.3.1 DS18B20的初始化時序 258
20.3.2 DS18B20的寫時序 258
20.3.3 DS18B20的讀時序 259
20.4 DS18B20的通信協定 259
20.4.1 ROM指令 260
20.4.2 RAM指令 260
20.5 DS18B20的套用 261
20.5.1 DS18B20的供電方式 261
20.5.2 DS18B20的編程嚮導 262
20.5.3 DS18B20的使用要點 262
20.6 DS18B20編程實例 262
第21章 1602字元型液晶顯示器 268
21.11602液晶概述 268
21.1.11602液晶的特點 268
21.1.21602液晶的引腳功能 268
21.1.31602液晶與單片機的接口 269
21.21602液晶的功能 269
21.2.11602液晶的顯示數據RAM 269
21.2.21602液晶的字元發生器 270
21.2.31602液晶的操作時序 272
21.2.41602液晶的操作指令 273
21.2.51602液晶的初始化 275
21.31602液晶編程實例 275
第22章 12864點陣型液晶顯示器 278
22.112864點陣型液晶概述 278
22.1.1 JLX12864G—086液晶的特點 278
22.1.2 JLX12864G—086液晶的引腳功能 279
22.212864點陣型液晶顯示方式 280
22.2.1 顯示屏與顯存的對應關係 280
22.2.2 顯存的組織結構 281
22.2.3 讀寫時序 281
22.2.4 UC1701X指令集 282
22.312864點陣型液晶編程實例 283
22.3.1 液晶顯示器的接口電路 283
22.3.2 漢字的取模方法 284
22.3.3 圖像的取模方法 284
22.3.4 漢字和圖形顯示 285
附錄A PIC18F4520單片機的引腳功能 294
附錄B 搭建系統板所需材料清單 296
附錄C 最小系統板電路原理圖 297
附錄D ebox2049實驗板 298