本書以PIC16系列單片機(jī)為例,詳細(xì)介紹了PIC16系列單片機(jī)的內(nèi)部結(jié)構(gòu)、C語言的基礎(chǔ)知識、C編譯器與MPLABX軟件的使用、程序的編寫與調(diào)試方法以及其他相關(guān)知識。
本書以硬件電路板及Proteus仿真軟件為教學(xué)工具,便于讀者在計算機(jī)上進(jìn)行仿真練習(xí),以提高學(xué)習(xí)效果。本書配套資料以動畫形式記錄了各個實驗的過程及現(xiàn)象,同時提供了作者所設(shè)計的
仿真電路文件、書中所有例子的源程序及工程文件等。
本書可作為中等職業(yè)學(xué)校、高等職業(yè)學(xué)校、電視大學(xué)的教學(xué)用書,也可作為單片機(jī)愛好者自學(xué)PIC單片機(jī)的教材。
第1章 概 述………………………………………………………………………… 1
1.1 PIC單片機(jī)簡介……………………………………………………………… 1
1.2 PIC16F887單片機(jī)的特點…………………………………………………… 2
1.2.1 PIC16F88x系列單片機(jī)的引腳………………………………………… 4
1.2.2 PIC16F88x的振蕩器、復(fù)位、看門狗及器件配置……………………… 9
1.3 C語言簡介…………………………………………………………………… 15
1.3.1 C 語言的產(chǎn)生與發(fā)展…………………………………………………… 15
1.3.2 C語言的特點…………………………………………………………… 15
1.4 C語言入門知識……………………………………………………………… 17
1.4.1 簡單的C程序介紹…………………………………………………… 18
1.4.2 C語言編程的特點……………………………………………………… 22
第2章 PIC單片機(jī)開發(fā)環(huán)境的建立……………………………………………… 24
2.1 軟件開發(fā)環(huán)境的建立………………………………………………………… 24
2.1.1 MPLABX軟件的安裝與使用………………………………………… 24
2.1.2 編譯軟件的安裝………………………………………………………… 26
2.1.3 Proteus軟件簡介……………………………………………………… 28
2.2 用PIC單片機(jī)控制一個LED ……………………………………………… 29
2.2.1 配置PIC16F887芯片………………………………………………… 30
2.2.2 任務(wù)分析………………………………………………………………… 32
2.3 Proteus仿真的實現(xiàn)………………………………………………………… 39
2.3.1 電路圖的設(shè)置…………………………………………………………… 39
2.3.2 電路圖的繪制…………………………………………………………… 43
2.4 硬件實驗環(huán)境的建立………………………………………………………… 46
2.4.1 實驗板簡介……………………………………………………………… 47
2.4.2 硬件結(jié)構(gòu)………………………………………………………………… 48
第3章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式………………………………………………… 58
3.1 數(shù)據(jù)類型概述………………………………………………………………… 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ù)據(jù)……………………………………………………………………… 71
3.6.1 實型常量………………………………………………………………… 71
3.6.2 實型變量………………………………………………………………… 72
3.7 PIC16F887單片機(jī)的數(shù)據(jù)存儲……………………………………………… 77
3.7.1 程序存儲器……………………………………………………………… 77
3.7.2 數(shù)據(jù)存儲器……………………………………………………………… 80
3.8 變量賦初值…………………………………………………………………… 82
3.9 運(yùn)算符和表達(dá)式……………………………………………………………… 82
3.9.1 C運(yùn)算符簡介…………………………………………………………… 82
3.9.2 算術(shù)運(yùn)算符及其表達(dá)式………………………………………………… 83
3.9.3 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算………………………………………… 84
3.9.4 賦值運(yùn)算符及其表達(dá)式………………………………………………… 85
3.9.5 逗號運(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 選擇語句if …………………………………………………………… 97
4.2.5 if語句的嵌套………………………………………………………… 101
4.2.6 條件運(yùn)算符…………………………………………………………… 102
4.2.7 switch/case語句……………………………………………………… 103
4.3 循環(huán)結(jié)構(gòu)程序……………………………………………………………… 106
4.3.1 循環(huán)結(jié)構(gòu)程序簡介…………………………………………………… 107
4.3.2 while循環(huán)語句……………………………………………………… 108
4.3.3 do-while循環(huán)語句…………………………………………………… 109
4.3.4 for循環(huán)語句………………………………………………………… 112
4.3.5 break語句…………………………………………………………… 113
4.3.6 continue語句………………………………………………………… 114
4.4 使用硬件調(diào)試程序………………………………………………………… 116
第5章 C構(gòu)造數(shù)據(jù)類型…………………………………………………………… 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ù)組與存儲空間……………………………………………………… 125
5.2 指 針……………………………………………………………………… 127
5.2.1 指針的基本概念……………………………………………………… 127
5.2.2 定義一個指針變量…………………………………………………… 128
5.2.3 指針變量的引用……………………………………………………… 131
5.2.4 HI-TECHPICC的指針類型………………………………………… 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 枚舉的定義和說明…………………………………………………… 144
5.5.2 枚舉變量的取值……………………………………………………… 144
5.6 用typedef定義類型……………………………………………………… 147
第6章 PIC單片機(jī)內(nèi)部資源編程………………………………………………… 149
6.1 中 斷……………………………………………………………………… 149
6.1.1 中斷源………………………………………………………………… 149
6.1.2 PIC16F887的中斷邏輯……………………………………………… 150
6.1.3 外部中斷實例………………………………………………………… 152
6.2 定時/計數(shù)器……………………………………………………………… 153
6.2.1 定時/計數(shù)的基本概念……………………………………………… 153
6.2.2 定時/計數(shù)器TIMER0 ……………………………………………… 155
6.2.3 定時/計數(shù)器TIMER1 ……………………………………………… 161
6.2.4 定時/計數(shù)器TIMER2 ……………………………………………… 168
6.3 通用串行接口……………………………………………………………… 171
6.3.1 EUSART模塊關(guān)鍵寄存器介紹……………………………………… 172
6.3.2 EUSART波特率設(shè)定………………………………………………… 176
6.3.3 EUSART工作過程分析……………………………………………… 177
6.3.4 EUSART實例分析…………………………………………………… 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)換實例分析…………………………………………………… 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 變量的存儲類別…………………………………………………………… 223
第8章 單片機(jī)接口的C語言編程……………………………………………… 228
8.1 LED數(shù)碼管………………………………………………………………… 228
8.1.1 靜態(tài)顯示接口………………………………………………………… 229
8.1.2 動態(tài)顯示接口………………………………………………………… 233
8.2 鍵盤接口及應(yīng)用…………………………………………………………… 237
8.2.1 鍵盤工作原理………………………………………………………… 237
8.2.2 鍵盤與單片機(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實時時鐘及應(yīng)用…………………………………………………… 253
8.5.1 DS1302的結(jié)構(gòu)及特性………………………………………………… 253
8.5.2 DS1302芯片的使用…………………………………………………… 254
8.6 LED點陣顯示屏及其應(yīng)用………………………………………………… 256
8.6.1 認(rèn)識LED點陣顯示屏及字模………………………………………… 256
8.6.2 用LED點陣屏顯示漢字……………………………………………… 263
8.7 液晶顯示屏及其應(yīng)用……………………………………………………… 271
8.7.1 使用字符型液晶顯示屏制作小小迎賓屏…………………………… 272
8.7.2 用點陣型液晶顯示屏顯示漢字和圖像……………………………… 279
第9章 應(yīng)用設(shè)計舉例……………………………………………………………… 289
9.1 秒 表……………………………………………………………………… 289
9.2 可預(yù)置倒計時鐘…………………………………………………………… 293
9.3 使用DS1302芯片制作的時鐘…………………………………………… 299
9.4 AT24C02的綜合應(yīng)用……………………………………………………… 305
9.5 93C46的綜合應(yīng)用………………………………………………………… 311
9.6 交通燈控制………………………………………………………………… 321
9.7 模塊化編程………………………………………………………………… 330
參考文獻(xiàn)……………………………………………………………………………… 341