第1章 概 述………………………………………………………………………… 1
1.1 PIC單片機簡介……………………………………………………………… 1
1.2 PIC16F887單片機的特點…………………………………………………… 2
1.2.1 PIC16F88x系列單片機的引腳………………………………………… 4
1.2.2 PIC16F88x的振蕩器、復位、看門狗及器件配置……………………… 9
1.3 C語言簡介…………………………………………………………………… 15
1.3.1 C 語言的產生與發(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 任務分析………………………………………………………………… 32
2.3 Proteus仿真的實現………………………………………………………… 39
2.3.1 電路圖的設置…………………………………………………………… 39
2.3.2 電路圖的繪制…………………………………………………………… 43
2.4 硬件實驗環(huán)境的建立………………………………………………………… 46
2.4.1 實驗板簡介……………………………………………………………… 47
2.4.2 硬件結構………………………………………………………………… 48
第3章 數據類型、運算符與表達式………………………………………………… 58
3.1 數據類型概述………………………………………………………………… 58
3.2 常量與變量…………………………………………………………………… 59
3.2.1 常 量…………………………………………………………………… 59
3.2.2 變 量…………………………………………………………………… 61
3.3 整型數據……………………………………………………………………… 63
3.3.1 整型常量………………………………………………………………… 63
3.3.2 整型變量………………………………………………………………… 63
3.4 字符型數據…………………………………………………………………… 68
3.4.1 字符常量………………………………………………………………… 68
3.4.2 字符變量………………………………………………………………… 69
3.5 數的溢出……………………………………………………………………… 70
3.6 實型數據……………………………………………………………………… 71
3.6.1 實型常量………………………………………………………………… 71
3.6.2 實型變量………………………………………………………………… 72
3.7 PIC16F887單片機的數據存儲……………………………………………… 77
3.7.1 程序存儲器……………………………………………………………… 77
3.7.2 數據存儲器……………………………………………………………… 80
3.8 變量賦初值…………………………………………………………………… 82
3.9 運算符和表達式……………………………………………………………… 82
3.9.1 C運算符簡介…………………………………………………………… 82
3.9.2 算術運算符及其表達式………………………………………………… 83
3.9.3 各類數值型數據間的混合運算………………………………………… 84
3.9.4 賦值運算符及其表達式………………………………………………… 85
3.9.5 逗號運算符及其表達式………………………………………………… 89
3.9.6 位操作運算符及其表達式……………………………………………… 89
3.9.7 自增減運算符、復合運算符及其表達式……………………………… 91
第4章 C流程與控制……………………………………………………………… 92
4.1 順序結構程序………………………………………………………………… 92
4.2 選擇結構程序………………………………………………………………… 92
4.2.1 引 入…………………………………………………………………… 93
4.2.2 關系運算符和關系表達式……………………………………………… 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)結構程序……………………………………………………………… 106
4.3.1 循環(huán)結構程序簡介…………………………………………………… 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 使用硬件調試程序………………………………………………………… 116
第5章 C構造數據類型…………………………………………………………… 119
5.1 數 組……………………………………………………………………… 119
5.1.1 引 入………………………………………………………………… 119
5.1.2 一維數組……………………………………………………………… 121
5.1.3 二維數組……………………………………………………………… 122
5.1.4 字符型數組…………………………………………………………… 123
5.1.5 數組與存儲空間……………………………………………………… 125
5.2 指 針……………………………………………………………………… 127
5.2.1 指針的基本概念……………………………………………………… 127
5.2.2 定義一個指針變量…………………………………………………… 128
5.2.3 指針變量的引用……………………………………………………… 131
5.2.4 HI-TECHPICC的指針類型………………………………………… 134
5.3 結 構……………………………………………………………………… 136
5.3.1 結構的定義和引用…………………………………………………… 136
5.3.2 結構數組……………………………………………………………… 140
5.4 共用體……………………………………………………………………… 140
5.5 枚 舉……………………………………………………………………… 143
5.5.1 枚舉的定義和說明…………………………………………………… 144
5.5.2 枚舉變量的取值……………………………………………………… 144
5.6 用typedef定義類型……………………………………………………… 147
第6章 PIC單片機內部資源編程………………………………………………… 149
6.1 中 斷……………………………………………………………………… 149
6.1.1 中斷源………………………………………………………………… 149
6.1.2 PIC16F887的中斷邏輯……………………………………………… 150
6.1.3 外部中斷實例………………………………………………………… 152
6.2 定時/計數器……………………………………………………………… 153
6.2.1 定時/計數的基本概念……………………………………………… 153
6.2.2 定時/計數器TIMER0 ……………………………………………… 155
6.2.3 定時/計數器TIMER1 ……………………………………………… 161
6.2.4 定時/計數器TIMER2 ……………………………………………… 168
6.3 通用串行接口……………………………………………………………… 171
6.3.1 EUSART模塊關鍵寄存器介紹……………………………………… 172
6.3.2 EUSART波特率設定………………………………………………… 176
6.3.3 EUSART工作過程分析……………………………………………… 177
6.3.4 EUSART實例分析…………………………………………………… 180
6.4 CCP模塊…………………………………………………………………… 183
6.4.1 與CCP模塊相關的控制寄存器……………………………………… 184
6.4.2 CCP模塊的輸入捕捉模式…………………………………………… 186
6.4.3 CCP模塊的比較輸出模式…………………………………………… 190
6.4.4 CCP模塊的PWM 模式……………………………………………… 192
6.5 模/數轉換模塊及使用…………………………………………………… 196
6.5.1 ADC模塊概述………………………………………………………… 196
6.5.2 ADC模塊相關控制寄存器…………………………………………… 197
6.5.3 模擬通道輸入口引腳的設置………………………………………… 200
6.5.4 A/D轉換實例分析…………………………………………………… 200
第7章 函 數……………………………………………………………………… 205
7.1 概 述……………………………………………………………………… 205
7.2 函數的定義………………………………………………………………… 207
7.3 函數參數和函數的值……………………………………………………… 209
7.4 函數調用…………………………………………………………………… 213
7.5 數組作為函數參數………………………………………………………… 220
7.6 局部變量和全局變量……………………………………………………… 221
7.6.1 局部變量……………………………………………………………… 221
7.6.2 全局變量……………………………………………………………… 222
7.7 變量的存儲類別…………………………………………………………… 223
第8章 單片機接口的C語言編程……………………………………………… 228
8.1 LED數碼管………………………………………………………………… 228
8.1.1 靜態(tài)顯示接口………………………………………………………… 229
8.1.2 動態(tài)顯示接口………………………………………………………… 233
8.2 鍵盤接口及應用…………………………………………………………… 237
8.2.1 鍵盤工作原理………………………………………………………… 237
8.2.2 鍵盤與單片機的連接………………………………………………… 238
8.3 I2C總線接口……………………………………………………………… 243
8.3.1 I2C總線接口概述…………………………………………………… 243
8.3.2 24系列EEPROM 的結構及特性…………………………………… 244
8.3.3 24系列EEPROM 的使用…………………………………………… 246
8.4 93Cxx系列EEPROM 的使用…………………………………………… 248
8.4.1 93Cxx系列EEPROM 的結構及特性……………………………… 248
8.4.2 93C46芯片的使用…………………………………………………… 249
8.5 DS1302實時時鐘及應用…………………………………………………… 253
8.5.1 DS1302的結構及特性………………………………………………… 253
8.5.2 DS1302芯片的使用…………………………………………………… 254
8.6 LED點陣顯示屏及其應用………………………………………………… 256
8.6.1 認識LED點陣顯示屏及字?!?256
8.6.2 用LED點陣屏顯示漢字……………………………………………… 263
8.7 液晶顯示屏及其應用……………………………………………………… 271
8.7.1 使用字符型液晶顯示屏制作小小迎賓屏…………………………… 272
8.7.2 用點陣型液晶顯示屏顯示漢字和圖像……………………………… 279
第9章 應用設計舉例……………………………………………………………… 289
9.1 秒 表……………………………………………………………………… 289
9.2 可預置倒計時鐘…………………………………………………………… 293
9.3 使用DS1302芯片制作的時鐘…………………………………………… 299
9.4 AT24C02的綜合應用……………………………………………………… 305
9.5 93C46的綜合應用………………………………………………………… 311
9.6 交通燈控制………………………………………………………………… 321
9.7 模塊化編程………………………………………………………………… 330
參考文獻……………………………………………………………………………… 341