《PIC單片機快速入門》是以目前流行的PIC系列單片機為主體,使用C語言來進行描述。全書分為單片機基礎(chǔ)知識、C程序設(shè)計知識、單片機入門基礎(chǔ)實例、單片機高級應(yīng)用實例和配套學(xué)習(xí)套件使用說明五大部分,采用理論與實踐相結(jié)合的方式進行講解。實例豐富,圖文并茂,并帶視頻演示!禤IC單片機快速入門》的配套光盤中包含所有實驗的源程序代碼、實驗過程照片、實驗演示視頻錄像以及一些常用資料。
《PIC單片機快速入門》可作為單片機愛好者自學(xué)PIC單片機的參考用書,也可作為中等職業(yè)學(xué)校、高等職業(yè)學(xué)校、電視大學(xué)等的教學(xué)用書。
《PIC單片機快速入門》是以目前流行的PIC系列單片機為主體,使用C語言來進行描述、全書分為單片機基礎(chǔ)知識、C程序設(shè)計知識、單片機入門基礎(chǔ)實例、單片機高級應(yīng)用實例和配套學(xué)習(xí)套件使用說明五大部分,采用理論與實踐相結(jié)合的方式來進行講解。實例豐富。圖文并茂,并帶視頻演示! 禤IC單片機快速入門》配套的PIC單片機開發(fā)套件是綜合多年教學(xué)經(jīng)驗開發(fā)出來的PIC單片機學(xué)習(xí)與研發(fā)平臺,包括ICD2仿真燒寫器、增強型PIC實驗板以及相關(guān)實驗附件..實驗板集成了常用的單片機外圍硬件電路,系統(tǒng)附帶了豐富的匯編/C語言源程序?qū)嵗梢宰屇谧疃痰臅r間內(nèi),全面地了解掌握單片機編程技術(shù),特別適合于PIC單片機初學(xué)者、大中專院校學(xué)生、單片機工程師和實驗室選用! 禤IC單片機快速入門》配套增強型PIC實驗板 硬件資源豐富,操作便捷,滿足深入學(xué)習(xí)的需要8路LED發(fā)光管、6位數(shù)碼管、16X2字符液晶接口、128X64點陣液晶接口、6路直控按鍵、實時時鐘、蜂鳴器、繼電器、IC總線、SPI總線、A/D轉(zhuǎn)換、串口通信、紅外線遙控、無線電遙控、溫度采樣、步進電機控制等, 《PIC單片機快速入門》的配套光盤中已含所有實驗的源程序代碼,同時。大量實驗過程照片和視頻錄像記錄了實驗的全過程及發(fā)生的現(xiàn)象。更加激發(fā)了讀者朋友對單片機的興趣愛好,讀者朋友也可以在我們的網(wǎng)站進行單片機知識的學(xué)習(xí)與交流.
當(dāng)今世界科學(xué)技術(shù)飛速發(fā)展,以前需要花費大量時間和精力來搭建一個需要大量兀器件的模擬電路;而現(xiàn)在只需要一塊小小的單片機芯片,再寫入相應(yīng)功能的程序,便可以代替以前分立元件組成的電路了。相信讀者掌握了單片機技術(shù)后,無論在今后開發(fā)或是工作上,都會帶來意想不到的驚喜。
本書作者著眼于“陜遞入門”、“通俗易懂”、“趣味學(xué)習(xí)”、“學(xué)以致用”的指導(dǎo)思想,以理論與實踐相結(jié)合為主線,能夠使讀者輕松地掌握單片機基礎(chǔ)知識,并使讀者朋友具有初步開發(fā)、設(shè)計單片機產(chǎn)品的能力。本書講解風(fēng)格通俗易懂,條理清晰,實例豐富,圖文并茂,同時配套光盤包含各程序?qū)嵗囊曨l演示錄像,使讀者的學(xué)習(xí)更為方便,查看演示效果更為直觀。即使讀者是一位單片機的門外漢,相信看了本書以后,也能運用單片機知識來解決一些實際問題,將知識轉(zhuǎn)為生產(chǎn)力。
全書總共分為五大部分:單片機基礎(chǔ)知識、C程序設(shè)計知識、單片機入門基礎(chǔ)實例、單片機高級應(yīng)用實例和配套學(xué)習(xí)套件使用說明。
。1)單片機基礎(chǔ)知識(第1~3章):首先,介紹單片機的發(fā)展歷史,揭開它的神秘之處。相信初學(xué)者朋友最關(guān)心的一個實際問題是:單片機到底能夠做哪些事?這也是我們要學(xué)習(xí)單片機技術(shù)的理由。當(dāng)明確了學(xué)習(xí)目標(biāo)后,肯定需要做好學(xué)習(xí)實踐平臺的準(zhǔn)備,在此,我們會一一進行講解,并給出學(xué)習(xí)單片機的有效方法與途徑。其次,講解單片機的內(nèi)部結(jié)構(gòu)、引腳定義、存儲器、寄存器、定時器/計數(shù)器、中斷系統(tǒng)和串行通信等相關(guān)知識,讓讀者對單片機有一個實質(zhì)性的了解。
。2)C程序設(shè)計知識(第4~8章):經(jīng)常會有人問,單片機應(yīng)用開發(fā)用C語言好,還是用匯編語言好,其實這兩種語言都有各自的特點。匯編語言的優(yōu)點是比較靈活,但程序不易理解,對產(chǎn)品的升級、維護不太有利;而C語言有非常豐富的庫函數(shù)供用戶所使用,因為它是高級語言,程序代碼的編寫也非常人性化,易于閱讀、理解,C語言已經(jīng)成為在整個計算機界普遍應(yīng)用的語言。因此,本書也是以C語言來進行描述的,介紹C語言的數(shù)據(jù)類型、運算符與表達式、分支與循環(huán)控制語句、編譯預(yù)處理與位運算、數(shù)組與函數(shù)、指針、結(jié)構(gòu)體與共用體等知識,使大家具有C語言程序設(shè)計的能力。
。3)單片機入門基礎(chǔ)實例(第10章):前面幾章講的都是理論知識內(nèi)容,由于單片機是一門實踐性非常強的學(xué)科,即使有再多的理論基礎(chǔ),也必須通過較多的實踐操作才能真正學(xué)好這門技術(shù)。因此,在第10章中,先引入一系列具有趣味性且簡單易懂的基礎(chǔ)實例,如點亮一個發(fā)光管,流水燈控制,按鍵、蜂鳴器、數(shù)碼管、繼電器的操作和使用,串行通信等。在此,暫時不求技術(shù)深,只求讓讀者明白單片機到底如何來實現(xiàn)我們所需要的特定功能,又如何通過軟件程序最終從硬件功能上反映出來。
第1章 什么是PIC單片機1
1.1 PIC單片機的概念及其特點1
1.1.1什么是PIC單片機1
1.1.2 PIC單片機有什么優(yōu)勢2
1.2 單片機能夠做哪些具體應(yīng)用3
1.3 PIC單片機學(xué)習(xí)的軟、硬件實驗設(shè)備7
1.3.1 增強型PIC實驗板7
1.3.2 PIC Pro編程器9
1.3.3 ICD2 PIC仿真燒寫器10
1.3.4 PIC實驗附件10
1.4 單片機學(xué)習(xí)的有效方法與途徑12
第2章 PIC系列單片機系統(tǒng)的結(jié)構(gòu)和工作原理13
2.1 PIC單片機概述13
2.2 PIC16F877硬件系統(tǒng)概況13
2.2.1內(nèi)部結(jié)構(gòu)15
2.2.2指令系統(tǒng)18
2.3 I/O端口的結(jié)構(gòu)及工作原理21
2.3.1 I/O端口基本特征21
2.3.2 PORTA端口的特點22
2.3.3 PORTB端口的特點25
2.3.4 PORTC端口的特點27
2.3.5 PORTD端口的特點28
2.3.6 PORTE端口的特點29
2.3.7 PSP并行從動端口31
2.4 中斷系統(tǒng)33
2.4.1 中斷概述33
2.4.2 PIC16F877中斷源33
2.4.3 中斷寄存器34
2.4.4 中斷處理38
2.5 定時器/計數(shù)器38
2.5.1 TMR0主要特征38
2.5.2 TMR1主要特征39
2.5.3 TMR2主要特征42
2.6 輸入捕捉/輸出比較/脈寬調(diào)制CCP45
2.6.1 輸入捕捉模式45
2.6.2 輸出比較工作模式48
2.6.3 脈寬調(diào)制輸出工作模式50
2.7 片內(nèi)EEPROM數(shù)據(jù)存儲器53
2.7.1 片內(nèi)EEPROM數(shù)據(jù)存儲器概述53
2.7.2 片內(nèi)EEPROM數(shù)據(jù)存儲器寄存器54
2.7.3 片內(nèi)EEPROM數(shù)據(jù)存儲器結(jié)構(gòu)和操作原理56
2.8 片內(nèi)模/數(shù)轉(zhuǎn)換器58
2.8.1 PIC16F877的片內(nèi)ADC模塊58
2.8.2 片內(nèi)ADC模塊相關(guān)寄存器58
2.8.3 片內(nèi)ADC模塊結(jié)構(gòu)和操作原理61
2.8.4 片內(nèi)ADC模塊的轉(zhuǎn)換過程62
2.8.5 片內(nèi)ADC模塊時鐘與參考電壓的選擇62
2.9 USART通信模塊及其使用63
2.9.1 USART通信模塊簡介64
2.9.2 USART通信模塊寄存器65
2.9.3 USART波特率設(shè)定68
2.9.4 USART模塊的異步通信69
2.9.5 USART模塊的同步通信73
2.10 主控同步串口端口MSSP及其應(yīng)用75
2.10.1 同步串行接口簡介75
2.10.2 同步串行端口的SPI模式76
2.10.3 同步串行端口的I2C模式82
第3章 軟件集成開發(fā)環(huán)境MPLABIDE88
3.1 MPLABIDE的組成88
3.2 MPLABIDE軟件的獲取89
3.3 MPLABIDE軟件的安裝與卸載89
3.4 PICC編譯器的安裝與使用方法93
3.5 初次使用PICC的設(shè)置96
第4章 C語言概論、數(shù)據(jù)類型、運算符與表達式98
4.1 C語言概論98
4.1.1 C語言的發(fā)展過程98
4.1.2 C語言的特點98
4.1.3 C源程序的結(jié)構(gòu)特點98
4.1.4 C語言的字符集100
4.1.5 C語言詞匯100
4.2 數(shù)據(jù)類型、運算符與表達式101
4.2.1 C語言的數(shù)據(jù)類型101
4.2.2 算術(shù)運算符和算術(shù)表達式110
4.2.3 關(guān)系運算符和表達式113
4.2.4 邏輯運算符和表達式115
第5章 分支與循環(huán)控制118
5.1 if語句118
5.1.1程序的三種基本結(jié)構(gòu)118
5.1.2 if語句的三種形式119
5.1.3 if語句的嵌套123
5.2 條件運算符和條件表達式125
5.3 switch語句126
5.4 循環(huán)控制129
5.4.1概述129
5.4.2 goto語句和if語句構(gòu)成循環(huán)129
5.4.3 while語句130
5.4.4 dowhile語句131
5.4.5 for語句133
5.4.6 循環(huán)的嵌套135
5.4.7 break和continue語句136
第6章 編譯預(yù)處理與位運算預(yù)處理命令139
6.1 概述139
6.2 宏定義139
6.2.1 不帶參數(shù)的宏定義139
6.2.2 帶參數(shù)的宏定義141
6.3 文件包含143
6.4 條件編譯143
6.5 位操作運算符145
第7章 數(shù)組與函數(shù)148
7.1 一維數(shù)組的定義和引用148
7.1.1 一維數(shù)組的定義148
7.1.2 一維數(shù)組元素的引用150
7.1.3 一維數(shù)組的初始化151
7.1.4 一維數(shù)組程序舉例152
7.2 二維數(shù)組的定義和引用153
7.2.1 二維數(shù)組的定義153
7.2.2 二維數(shù)組元素的引用153
7.2.3 二維數(shù)組的初始化155
7.3 字符數(shù)組155
7.3.1 字符數(shù)組的定義155
7.3.2 字符數(shù)組的初始化156
7.3.3 字符數(shù)組的引用156
7.3.4 字符串和字符串結(jié)束標(biāo)志157
7.4 函數(shù)概述157
7.4.1 函數(shù)定義的一般形式157
7.4.2 函數(shù)的參數(shù)和函數(shù)的值158
7.4.3 函數(shù)的返回值159
7.4.4 函數(shù)的調(diào)用160
7.4.5 被調(diào)用函數(shù)的聲明和函數(shù)原型160
7.4.6 函數(shù)的嵌套調(diào)用161
7.4.7 函數(shù)的遞歸調(diào)用162
7.4.8 數(shù)組作為函數(shù)參數(shù)163
7.5 局部變量和全局變量165
7.5.1 局部變量166
7.5.2 全局變量167
第8章 指針、結(jié)構(gòu)體與共用體169
8.1 指針和地址169
8.2 指針變量和指針運算符169
8.3 指針與函數(shù)參數(shù)173
8.4 指針、數(shù)組和字符串指針175
8.5 指針數(shù)組178
8.6 多級指針179
8.7 返回指針的函數(shù)181
8.8 函數(shù)指針181
8.9 結(jié)構(gòu)與聯(lián)合182
8.9.1 結(jié)構(gòu)的定義182
8.9.2 結(jié)構(gòu)數(shù)組184
8.9.3 結(jié)構(gòu)與函數(shù)185
8.9.4 結(jié)構(gòu)的初始化187
8.9.5 聯(lián)合187
第9章 PIC開發(fā)套件快速入門189
9.1 PIC開發(fā)套件入門說明189
9.1.1 增強型PIC實驗板189
9.1.2 增強型PIC實驗板各模塊說明192
9.1.3 PIC Pro編程器203
9.1.4 ICD2 PIC仿真燒寫器207
9.2 如何建立第一個工程項目208
9.2.1 開發(fā)環(huán)境和燒寫軟件的安裝208
9.2.2 實驗電路原理分析208
9.2.3 程序代碼編寫與工程創(chuàng)建209
9.2.4 燒寫芯片與程序驗證211
9.3 如何使用ICD2測試程序212
9.3.1 通過ICD2仿真程序方式執(zhí)行程序212
9.3.2 通過ICD2燒寫程序方式執(zhí)行程序216
9.4 PIC開發(fā)套件常見問題解答219
第10章 單片機基礎(chǔ)實例223
10.1發(fā)光二極管閃動實驗223
10.1.1 實例功能223
10.1.2 器件和原理223
10.1.3 硬件電路224
10.1.4 程序設(shè)計225
10.2 流水燈實驗226
10.2.1 實例功能226
10.2.2 器件和原理227
10.2.3 硬件電路228
10.2.4 程序設(shè)計229
10.3 按鍵實驗229
10.3.1 實例功能229
10.3.2 器件和原理230
10.3.3 硬件電路231
10.3.4 程序設(shè)計231
10.4 蜂鳴器實驗232
10.4.1 實例功能232
10.4.2 器件和原理233
10.4.3 硬件電路233
10.4.4 程序設(shè)計234
10.5 繼電器實驗234
10.5.1 實例功能234
10.5.2 器件和原理235
10.5.3 硬件電路236
10.5.4 程序設(shè)計237
10.6 數(shù)碼管實驗237
10.6.1 實例功能238
10.6.2 器件和原理238
10.6.3 硬件電路240
10.6.4 程序設(shè)計240
10.7 串行口實驗242
10.7.1 實例功能242
10.7.2 器件和原理244
10.7.3 硬件電路246
10.7.4 程序設(shè)計246
第11章 單片機高級應(yīng)用實例248
11.1 步進電機應(yīng)用實例248
11.1.1 步進電機簡介248
11.1.2 步進電機的控制256
11.1.3 步進電機的軟、硬件設(shè)計258
11.2 單總線數(shù)字溫度傳感器DS18B20應(yīng)用實例260
11.2.1 單總線技術(shù)簡介260
11.2.2 單總線溫度傳感器DS18B20簡介261
11.3 24CXX系列存儲器應(yīng)用實例276
11.3.1 I2C總線簡介276
11.3.2 I2C總線器件工作原理及時序278
11.3.3 AT24C系列存儲器的軟、硬件設(shè)計282
11.4 93CXX系列存儲器應(yīng)用實例290
11.4.1 SPI總線簡介291
11.4.2 93C46存儲器的軟、硬件設(shè)計293
11.5 DS1302時鐘芯片應(yīng)用實例304
11.5.1 實時時鐘簡介304
11.5.2 DS1302時鐘芯片簡介305
11.5.3 DS1302的軟、硬件設(shè)計308
11.6 A/D轉(zhuǎn)換應(yīng)用實例314
11.7 1602字符型LCD應(yīng)用實例319
11.7.1 液晶顯示簡介320
11.7.2 1602字符型LCD簡介321
11.7.3 1602字符型LCD的軟、硬件設(shè)計326
11.8 12864點陣型LCD應(yīng)用實例331
11.8.1 點陣LCD的顯示原理331
11.8.2 12864點陣型LCD簡介332
11.8.3 12864點陣型LCD軟、硬件設(shè)計338
11.9 紅外遙控軟件解碼應(yīng)用實例348
11.9.1 紅外遙控概述348
11.9.2 6121紅外接收的軟件解碼應(yīng)用實例354
11.10 無線通信模塊應(yīng)用363
11.10.1 無線通信概述363
11.10.2 PT2262/2272無線模塊簡介364
11.10.3 無線模塊的軟、硬件設(shè)計369
參考文獻374
1-1-1 什么是PIc單片機
PIC單片機(Pei·ipher-aIInterfaceController)是一種用來開發(fā)控制外圍設(shè)備的集成電路(IC),一種具有分散作用(多任務(wù))的CPU。與人類相比,CPU就是大腦,PIC共享的部分相當(dāng)于人的神經(jīng)系統(tǒng)。
PIC單片機有計算功能和記憶內(nèi)存,像CPU并由軟件控制執(zhí)行。然而,它的處理能力和存儲器容量卻很有限,這主要取決于PIC的類型。此系列單片機最高工作頻率都在20MHz左右,用做寫程序的存儲器容量約為1~4KB。
時鐘頻率與掃描程序的時間和執(zhí)行程序指令的時間有關(guān)系,但不能僅以時鐘頻率來判斷程序處理能力,它還會隨處理裝置的體系結(jié)構(gòu)而改變。當(dāng)體系結(jié)構(gòu)相同時,時鐘頻率較高的處理能力會較強。
這里用字來解釋程序容量,用一個指令表示一個字。通常用字節(jié)來表示存儲器容量。一個字節(jié)有8位,每位由1或0組成。PICl6F84A單片機的指令由14位構(gòu)成。1K字轉(zhuǎn)換成位:1x1024×14=14336位,再轉(zhuǎn)換為字節(jié):14336/(8×1024)=1.7 5KB。在計算存儲器的容量時,規(guī)定:1GB=1024MB,1MB=1024KB,1。KB=1024B。它們不是以1000為倍數(shù),因為這是用二進制計算。
據(jù)統(tǒng)計,我國的單片機年產(chǎn)量已達1~3億片,且每年以16%左右的速度增長,然而相對于世界市場我國的占有率還不到1%。這從一個側(cè)面也說明單片機應(yīng)用在我國才剛剛起步,有著非常廣闊的前景,培養(yǎng)單片機應(yīng)用人才,在工程技術(shù)人員中普及單片機知識有著重要的現(xiàn)實意義。
當(dāng)今單片機廠商琳瑯滿目,產(chǎn)品性能各異。針對具體情況,應(yīng)選何種型號呢?首先,需要弄清兩個概念:集中指令集(2ISC)和精簡指令集(RISC)。采用CISC結(jié)構(gòu)的單片機數(shù)據(jù)線和指令線分時復(fù)用,即馮·諾伊曼結(jié)構(gòu)。