本書以PIC16系列單片機為例,詳細介紹了PIC16系列單片機的內(nèi)部結(jié)構(gòu)、C語言的基礎(chǔ)知識、C編譯器與MPLABX軟件的使用、程序的編寫與調(diào)試方法以及其他相關(guān)知識。
本書以硬件電路板及Proteus仿真軟件為教學(xué)工具,便于讀者在計算機上進行仿真練習(xí),以提高學(xué)習(xí)效果。本書配套資料以動畫形式記錄了各個實驗的過程及現(xiàn)象,同時提供了作者所設(shè)計的
仿真電路文件、書中所有例子的源程序及工程文件等。
本書可作為中等職業(yè)學(xué)校、高等職業(yè)學(xué)校、電視大學(xué)的教學(xué)用書,也可作為單片機愛好者自學(xué)PIC單片機的教材。
第1章 概 述………………………………………………………………………… 1
1.1 PIC單片機簡介……………………………………………………………… 1
1.2 PIC16F887單片機的特點…………………………………………………… 2
1.2.1 PIC16F88x系列單片機的引腳………………………………………… 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單片機開發(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單片機控制一個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ù)類型、運算符與表達式………………………………………………… 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單片機的數(shù)據(jù)存儲……………………………………………… 77
3.7.1 程序存儲器……………………………………………………………… 77
3.7.2 數(shù)據(jù)存儲器……………………………………………………………… 80
3.8 變量賦初值…………………………………………………………………… 82
3.9 運算符和表達式……………………………………………………………… 82
3.9.1 C運算符簡介…………………………………………………………… 82
3.9.2 算術(shù)運算符及其表達式………………………………………………… 83
3.9.3 各類數(shù)值型數(shù)據(jù)間的混合運算………………………………………… 84
3.9.4 賦值運算符及其表達式………………………………………………… 85
3.9.5 逗號運算符及其表達式………………………………………………… 89
3.9.6 位操作運算符及其表達式……………………………………………… 89
3.9.7 自增減運算符、復(fù)合運算符及其表達式……………………………… 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)系運算符和關(guān)系表達式……………………………………………… 95
4.2.3 邏輯運算符和邏輯表達式……………………………………………… 96
4.2.4 選擇語句if …………………………………………………………… 97
4.2.5 if語句的嵌套………………………………………………………… 101
4.2.6 條件運算符…………………………………………………………… 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單片機內(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章 單片機接口的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 鍵盤與單片機的連接………………………………………………… 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 認識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
參考文獻……………………………………………………………………………… 341