內容簡介
本書是四川省省級示範性高職院校四川航天職業技術學院單片機套用技術教學團隊在多年教學改革經驗的基礎上,結合zui新的高等職業教育改革要求,通過10個學習情境及多個訓練項目,系統介紹了單片機硬體結構、C51語言、單片機中斷與定時系統、人機信息互動、單片機串列通信以及單片機系統功能擴展等內容。
本書所有學習情境先講解相關知識點,再通過“任務實施”和“能力擴展”培養學生的實踐能力,符合高職教學任務引導、逐層遞進的教學方式,具有很強的實用性和可讀性。
本書可作為高職高專院校電子信息類、自動化類、機電類等專業的單片機技術課程教材。
目錄
學習情境1 初識單片機………………………………………………………………………… 1
1.1 單片機基本知識………………………………………………………………………… 1
1.1.1 單片機定義………………………………………………………………………… 1
1.1.2 單片機的套用領域………………………………………………………………… 2
1.1.3 單片機的發展歷程………………………………………………………………… 3
1.1.4 單片機的發展趨勢………………………………………………………………… 3
1.1.5 單片機主流廠商與主流產品……………………………………………………… 4
1.2 單片機存儲器結構介紹………………………………………………………………… 7
1.2.1 存儲單元地址……………………………………………………………………… 7
1.2.2 80C51單片機存儲器結構………………………………………………………… 8
1.2.3 程式存儲器ROM 的使用方式…………………………………………………… 8
1.3 單片機的數據存儲器和特殊功能暫存器介紹………………………………………… 9
1.3.1 片內RAM 分區…………………………………………………………………… 9
1.3.2 特殊功能暫存器區………………………………………………………………… 10
1.4 單片機最小系統………………………………………………………………………… 11
1.4.1 時鐘電路…………………………………………………………………………… 12
1.4.2 復位電路…………………………………………………………………………… 12
1.5 任務實施———單片機建立項目………………………………………………………… 14
1.5.1 單片機開發環境的安裝…………………………………………………………… 14
1.5.2 KeilC51註冊……………………………………………………………………… 17
1.5.3 Keil開發環境基本介紹………………………………………………………… 18
1.5.4 單片機程式下載…………………………………………………………………… 19
1.6 能力拓展———單片機領域分類及學習方法…………………………………………… 22
1.6.1 單片機與普通PC的參數對比…………………………………………………… 22
1.6.2 單片機領域分類…………………………………………………………………… 22
1.6.3 單片機學習方法…………………………………………………………………… 25
學習情境2 流水燈的實現…………………………………………………………………… 26
2.1 進制間的轉換…………………………………………………………………………… 26
2.1.1 二進制與十進制間的轉換………………………………………………………… 26
2.1.2 二進制與十六進制間的轉換……………………………………………………… 27
2.2 單片機中的存儲單位…………………………………………………………………… 27
2.3 無符號數與有符號數…………………………………………………………………… 27
2.4 C51語言的基礎知識介紹……………………………………………………………… 29
2.4.1 C和C51語言的概述…………………………………………………………… 29
2.4.2 C51語言的數據類型和範圍……………………………………………………… 29
2.4.3 C51語言的基本運算符…………………………………………………………… 35
2.5 C51語言的循環結構語句……………………………………………………………… 38
2.5.1 while語句………………………………………………………………………… 39
2.5.2 do while語句…………………………………………………………………… 40
2.5.3 for語句…………………………………………………………………………… 41
2.5.4 循環的嵌套………………………………………………………………………… 43
2.5.5 表達式語句和複合語句…………………………………………………………… 43
2.6 C51語言的函式………………………………………………………………………… 44
2.6.1 函式的定義………………………………………………………………………… 45
2.6.2 函式的調用………………………………………………………………………… 46
2.6.3 被調函式的說明…………………………………………………………………… 46
2.6.4 函式的聲明………………………………………………………………………… 47
2.6.5 局部變數和全局變數……………………………………………………………… 48
2.7 任務實施———LED燈控制…………………………………………………………… 50
2.7.1 仿真硬體電路……………………………………………………………………… 50
2.7.2 仿真程式設計……………………………………………………………………… 50
2.8 能力拓展———LED燈花樣顯示……………………………………………………… 53
2.8.1 硬體電路…………………………………………………………………………… 53
2.8.2 軟體設計…………………………………………………………………………… 54
學習情境3 數碼管的顯示…………………………………………………………………… 56
3.1 數組的基本知識………………………………………………………………………… 56
3.1.1 數組的定義………………………………………………………………………… 56
3.1.2 數組的元素………………………………………………………………………… 57
3.1.3 數組的賦值………………………………………………………………………… 57
3.1.4 二維數組…………………………………………………………………………… 58
3.1.5 字元數組…………………………………………………………………………… 58
3.2 分支結構程式…………………………………………………………………………… 59
3.2.1 if語句的幾種形式………………………………………………………………… 59
3.2.2 if語句的嵌套……………………………………………………………………… 61
3.2.3 條件表達式………………………………………………………………………… 62
3.3 單片機中斷系統………………………………………………………………………… 63
3.3.1 中斷系統概念……………………………………………………………………… 63
3.3.2 中斷源及中斷請求標誌…………………………………………………………… 64
3.3.3 中斷系統的控制暫存器…………………………………………………………… 65
3.4 任務實施———數碼管的動態顯示……………………………………………………… 67
3.4.1 數碼管基礎………………………………………………………………………… 67
3.4.2 基本原理…………………………………………………………………………… 68
3.4.3 硬體電路…………………………………………………………………………… 69
3.4.4 軟體設計…………………………………………………………………………… 69
3.5 能力拓展———車流量統計器…………………………………………………………… 73
3.5.1 硬體電路及接口…………………………………………………………………… 73
3.5.2 車流量統計程式…………………………………………………………………… 74
學習情境4 定時器…………………………………………………………………………… 77
4.1 單片機的定時/計數器………………………………………………………………… 77
4.1.1 工作原理…………………………………………………………………………… 77
4.1.2 定時器暫存器……………………………………………………………………… 78
4.1.3 工作方式…………………………………………………………………………… 79
4.2 任務實施———數碼管的使用…………………………………………………………… 81
4.2.1 數碼管電路與單片機接口………………………………………………………… 81
4.2.2 數碼管顯示程式…………………………………………………………………… 82
4.3 能力拓展———定時器典型套用………………………………………………………… 84
4.3.1 PWM 的調光實驗………………………………………………………………… 84
4.3.2 數字頻率計的設計………………………………………………………………… 90
學習情境5 人機信息互動…………………………………………………………………… 94
5.1 C51語言分支結構程式………………………………………………………………… 94
5.1.1 break語句………………………………………………………………………… 94
5.1.2 continue語句……………………………………………………………………… 94
5.1.3 switch語句……………………………………………………………………… 96
5.2 任務實施———按鍵的套用……………………………………………………………… 97
5.2.1 獨立式按鍵………………………………………………………………………… 97
5.2.2 矩陣式按鍵……………………………………………………………………… 100
5.3 能力拓展———一鍵多功能…………………………………………………………… 104
5.3.1 硬體電路………………………………………………………………………… 104
5.3.2 程式設計………………………………………………………………………… 106
學習情境6 串列通信技術套用……………………………………………………………… 108
6.1 串列通信理論知識…………………………………………………………………… 108
6.1.1 串列通信的概念………………………………………………………………… 108
6.1.2 串列通信的分類………………………………………………………………… 109
6.1.3 通信方向分類…………………………………………………………………… 110
6.1.4 串列接口暫存器………………………………………………………………… 110
6.1.5 串列口的工作方式……………………………………………………………… 112
6.1.6 串列口波特率…………………………………………………………………… 113
6.2 串口通信硬體電路…………………………………………………………………… 114
6.2.1 單片機控制電路………………………………………………………………… 114
6.2.2 電平信號轉換電路……………………………………………………………… 114
6.3 任務實施———串口通信的基本套用………………………………………………… 115
6.4 能力拓展———基於串口的蜂鳴器控制……………………………………………… 117
學習情境7 液晶顯示實現…………………………………………………………………… 120
7.1 多C源檔案的初步認識……………………………………………………………… 120
7.2 液晶顯示器的介紹…………………………………………………………………… 121????????????????????????????????????????????????????????????
7.2.1 1602液晶顯示器………………………………………………………………… 122
7.2.2 12864液晶顯示器……………………………………………………………… 127
7.3 任務實施———LCD1602液晶顯示…………………………………………………… 132
7.4 能力拓展———LCD12864顯示圖片………………………………………………… 137
學習情境8 電子萬年曆套用………………………………………………………………… 148
8.1 BCD碼介紹…………………………………………………………………………… 148
8.1.1 基本概念………………………………………………………………………… 148
8.1.2 運算規則………………………………………………………………………… 148
8.2 SPI匯流排介紹………………………………………………………………………… 149
8.2.1 基本概念………………………………………………………………………… 149
8.2.2 工作模式………………………………………………………………………… 150
8.3 DS1302晶片介紹……………………………………………………………………… 152
8.3.1 DS1302晶片簡介………………………………………………………………… 152
8.3.2 DS1302的硬體信息……………………………………………………………… 152
8.3.3 DS1302暫存器介紹……………………………………………………………… 153
8.3.4 DS1302通信時序介紹…………………………………………………………… 155
8.4 任務實施———電子萬年曆套用……………………………………………………… 156
8.4.1 仿真硬體電路…………………………………………………………………… 156
8.4.2 仿真程式設計…………………………………………………………………… 157
8.5 能力拓展———可更改的電子萬年曆套用…………………………………………… 162
8.5.1 硬體電路………………………………………………………………………… 163
8.5.2 程式設計………………………………………………………………………… 163
學習情境9 簡易電壓表和信號發生器的套用……………………………………………… 169
9.1 A/D和D/A 轉換的基礎知識……………………………………………………… 169
9.1.1 DAC概念及工作原理…………………………………………………………… 169
9.1.2 DAC的主要指標………………………………………………………………… 170
9.1.3 ADC概念及工作原理…………………………………………………………… 171
9.1.4 ADC的主要指標………………………………………………………………… 172
9.2 PCF8591的ADC和DAC實現……………………………………………………… 174
9.2.1 PCF8591晶片介紹……………………………………………………………… 174
9.2.2 PCF8591的ADC和DAC使用流程…………………………………………… 175
9.3 任務實施———簡易電壓表仿真套用………………………………………………… 178
9.3.1 仿真硬體電路…………………………………………………………………… 178
9.3.2 仿真軟體設計…………………………………………………………………… 179
9.4 能力拓展———簡易信號發生器的套用……………………………………………… 185
9.4.1 硬體電路………………………………………………………………………… 185
9.4.2 軟體設計………………………………………………………………………… 187
學習情境10 斷電信息保存技術…………………………………………………………… 190
10.1 I2C匯流排基礎知識…………………………………………………………………… 190
10.1.1 I2C匯流排時序…………………………………………………………………… 190
10.1.2 I2C匯流排定址模式……………………………………………………………… 191
10.1.3 I2C匯流排工作過程……………………………………………………………… 193
10.2 EEPROM 晶片……………………………………………………………………… 194
10.2.1 EEPROM 基本知識…………………………………………………………… 194
10.2.2 EEPROM 晶片———AT24C02………………………………………………… 195
10.2.3 EEPROM 硬體電路及接口…………………………………………………… 196
10.3 任務實施———斷電信息保存技術…………………………………………………… 197
10.4 能力拓展———多個EEPROM 器件操作…………………………………………… 203
課後作業………………………………………………………………………………………… 209
附錄A KeilC51軟體使用…………………………………………………………………… 218
附錄B AT89S52 單片機燒寫軟體…………………………………………………………… 226
附錄C 常用的C51標準庫函式…………………………………………………………… 231
參考文獻………………………………………………………………………………………… 234