我和PIC單片機:基于PIC18 ( 簡體 字) |
作者:高顯生 編著 | 類別:1. -> 電腦組織與體系結構 -> 單晶片 -> PIC |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 36291 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:7/1/2013 |
頁數:295 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
【不接受訂購】 |
ISBN:9787111426530 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:無論你是51單片機的鐵桿粉絲,還是立志電子研發的有為青年,抑或是發燒友型的宅男技術控,PIC單片機都是值得你花時間和精力去仔細研究的一種微控制器。縱觀國內8位單片機市場,PIC在性能指標、開發環境、產品線結構以及性價比方面都不遜色于任何一個競爭對手。而與PIC豐富的產品形成鮮明對比的是,介紹PIC的書籍稍顯匱乏,大部分書籍還是以PIC16中檔機為例配合匯編語言進行介紹。其實,目前PIC18高檔機的價格與中檔機相比已經沒有明顯的差距了,但性能卻比后者提高了很多,本書就是以PIC的高檔系列PIC18F4520單片機作為代表,結合C語言的使用,對PIC18系列單片機的片內功能、開發環境、單元模塊以及接口電路等進行全面的介紹。書中教你從動手搭建最小系統板開始,隨著學習的深入,不斷地豐富系統板的功能,逐步為其添加所需的單元電路,最后實現用一塊系統板完成PIC18的全部學習內容和代碼測試工作,讓你用最小的成本獲得最大的收獲。
全書分三篇,共計22章,所有章節都配有動手實踐環節,每一種資源、每一個模塊都給出了相應的實驗電路和C語言實驗代碼。第一篇(第1∼7章)主要是帶領大家認識PIC單片機并且說明開發PIC所需要的軟硬件資源配備;第二篇(第8∼17章)從介紹PIC模塊化的資源配置入手,詳細地介紹PIC單片機的中斷、定時器、AD轉換器、MSSP模塊、CCP模塊、模擬比較器以及串行口等片內功能,同時介紹了如何使用PIC單片機的I2C及SPI接口實現與DS1307實時時鐘及存儲器93C46的通信;第三篇(第18∼22章)主要是學習PIC單片機的擴展應用,主要包括如何使用PIC單片機驅動步進電機、實現紅外線的解碼及發射、與單一總線的數字溫度傳感器DS18B20通信以及驅動1602字符型液晶顯示器和基于COG技術的新型12864點陣型液晶顯示器。
本書是一本零基礎學單片機和C語言的入門教程,也是一本學習PIC開發的實戰型入門圖書。本書倡導的是學以致用,重在實踐,不拘泥于概念和原理,力求簡潔生動,在輕松愉快的氛圍下傳達一種無限DIY的研發理念。全書從制作一個PIC18最小系統板開始,一章一實踐,一個模塊配套一套代碼,用自己DIY的PIC系統板,低成本地完成PIC所有功能模塊的代碼測試任務,帶領你快速掌握PIC單片機的開發方法。學習本書不需要額外的背景知識,只要按照章節順序學習,勤于動手實踐,在短時間內就可以開發出具有個性的電子產品。
本書的前身是《我的PIC日記》視頻教程,自該教程在“優酷網”推出以來,受到了眾多網友的關注和支持,本書既是對原視頻教程的歸納和整理,也是對其的精練和升華。由于作者本人水平所限,書中難免存在錯誤和不足,在此懇請有識之士多給予批評斧正,作者的E-mail:710878209@qq.com。
本書得以出版,要特別感謝的是機械工業出版社策劃編輯張國強,他對本書的立意和編纂給予了持續的支持和指導。另外要感謝我的哥哥高顯功,作為高級電氣工程師,他在百忙的研發工作中抽出了寶貴的時間,擔任了本書初稿的審校工作,并提出了很多有價值的指導意見。最后還要感謝我的家人,在我奮筆疾書的日日夜夜,替我分擔了刷碗、擇菜等生活中的諸多瑣事,讓我能更加專注于本書的創作。
尺有所短,寸有所長。如果你發現在你的頭腦中時常會對電子設備萌發出一些新奇的想法或創意,請一定將其捕捉下來,并且通過本書的閱讀和實踐,努力地將其變為現實,這也許就是你走上研發之路的起點,你的人生也許會因此而變得更加精彩。再次感謝您對本書的支持,祝學業進步,事業有成!
高顯生
2013年2月28日于哈爾濱 |
內容簡介:本書是一本讓讀者快速掌握PIC單片機及C語言開發的向導式“傻瓜書”。書中以PIC18F4520單片機為例,介紹了PIC單片機的開發環境、PIC單片機最小系統板的搭建方法、ICSP燒寫方式、軟硬件仿真調試以及片內幾乎全部資源的使用和開發方法。本書以新穎的思路闡述PIC的開發全過程,不拘泥于枯燥的理論和概念,立足實踐,力求使讀者在輕松愉悅的氛圍下,簡單而快速地掌握PIC的開發方法。
本書語言簡練幽默,內容通俗易懂,圖文并茂,代碼豐富,操作性強,非常適合于單片機的初學者,也可作為專業從事PIC單片機開發的技術人員以及PIC單片機愛好者的參考用書。
在8位單片機的時代,學習單片機開發是一個痛苦的過程,學習PIC單片機尤其痛苦。面對PIC,匯編就是一座翻不過去的大山,讓大部分載興而來的初學者折戟沉沙,敗興而歸。C語言的出現,挽救了很多險些由先驅變成先烈的初學者。盡管如此,學習8位單片機對于很多零基礎的初學者仍然是一件很艱難的事情。這種情況一直沒有得到明顯的改善,因此,這門技術注定只能在少數掌握它的工程師手中發揮作用。 如何降低難度?如何讓更多人上手使用PIC單片機?讀完本書,你可以找到這兩個問題的答案。本書語言簡潔、幽默,不拘泥于概念和原理。全書以PIC單片機的最小系統貫穿始終,一章一實踐,讓讀者在DIY的過程中掌握PIC單片機的原理和開發技術。通過自己DIY最小系統,低成本地完成所有功能模塊的代碼測試,從而快速掌握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 靈活使用TIMER1 119
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 存儲器93C46 156
12.2.1 93C46引腳功能 156
12.2.2 93C46操作指令 157
12.2.3 93C46數據傳輸時序 159
12.3 SPI模式編程實例 159
12.3.1 SPI主控模式編程向導 159
12.3.2 93C46斷電接力顯示 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.2 28BYJ48型步進電機 237
18.2.1 28BYJ48電機性能指標 237
18.2.2 28BYJ48電機繞組結構 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.1 64位光刻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.1 1602液晶概述 268
21.1.1 1602液晶的特點 268
21.1.2 1602液晶的引腳功能 268
21.1.3 1602液晶與單片機的接口 269
21.2 1602液晶的功能 269
21.2.1 1602液晶的顯示數據RAM 269
21.2.2 1602液晶的字符發生器 270
21.2.3 1602液晶的操作時序 272
21.2.4 1602液晶的操作指令 273
21.2.5 1602液晶的初始化 275
21.3 1602液晶編程實例 275
第22章 12864點陣型液晶 顯示器 278
22.1 12864點陣型液晶概述 278
22.1.1 JLX12864G-086液晶的特點 278
22.1.2 JLX12864G-086液晶的引腳功能 279
22.2 12864點陣型液晶顯示方式 280
22.2.1 顯示屏與顯存的對應關系 280
22.2.2 顯存的組織結構 281
22.2.3 讀寫時序 281
22.2.4 UC1701X指令集 282
22.3 12864點陣型液晶編程實例 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 |
序: |