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