《MCS-51單片機原理及介面技術(第2版)》

《MCS-51單片機原理及介面技術(第2版)》

《8051單片機原理及介面技術(第2版)》


GITHUB: https://github.com/jash-git/Jash-good-idea-20220101-001/tree/main/HW/8051


內 容 簡 介; 2

前  言; 3
目  錄; 4
第1章  MCS-51系列單片機的組成; 9
    1.1  單片機概述; 9
        1.1.1  單片機的發展歷史; 9
        1.1.2  目前主流單片機; 10
            1. MCS-51單片機及其相容產品; 10
            2. 其他單片機介紹; 11
        1.1.3  單片機的應用領域; 12
            1. 工業控制; 13
            2. 智慧型儀器器儀錶; 13
            3. 資料獲取與處理; 13
            4. 家用電器; 13
    1.2  MCS-51系列單片機的內部結構; 13
        1.2.1  微處理器結構; 13
        1.2.2  振盪與時鐘; 15
        1.2.3  時鐘週期、狀態週期和機器週期; 15
            1. 時鐘週期; 15
            2. 狀態週期; 15
            3. 機器週期; 15
        1.2.4  重定及重定電路; 16
            1.重定模式; 16
            2.重定電路; 16
        1.2.5  MCS-51系列單片機的引腳特性; 17
    1.3  MCS-51系列單片機的記憶體組織; 18
        1.3.1  程式記憶體; 19
        1.3.2  片內資料記憶體; 20
            1.工作寄存器區; 20
            2.位定址區; 21
            3.數據緩衝區; 21
        1.3.3  特殊功能寄存器; 22
        1.3.4  片外資料記憶體; 23
    1.4  MSC-51系列單片機的基本I/O口; 23
        1.4.1  P0口的結構與特性; 23
        1.4.2  P1口的結構與特性; 24
        1.4.3  P2口的結構與特性; 25
        1.4.4  P3口的結構與特性; 25
    1.5  MCS-51系列單片機的工作方式; 26
        1. 待機方式; 27
        2. 掉電方式; 27
    本 章 小 結; 28
    習  題  1; 28
第2章  MCS-51系列單片機的指令      系統及組合語言程式設計; 29
    2.1  指令格式與定址方式; 29
        2.1.1  指令格式; 29
        2.1.2  MCS-51單片機定址方式; 30
            1. 即時定位; 31
            2. 直接定址; 31
            3. 寄存器定址; 31
            4. 寄存器間接定址; 31
            5. 變址定址; 31
            6. 相對定址; 32
            7. 位定址; 32
    2.2  MCS-51單片機指令系統; 33
        2.2.1  資料傳送和交換類指令; 33
            1. 內部資料傳送指令; 33
            2. 資料指標賦值指令(16bit資料傳送指令); 35
            3. 片外資料傳送指令; 35
            4. ROM資料訪問指令(查表指令); 36
            5. 堆疊操作指令; 36
            6. 資料交換指令; 37
        2.2.2  算數運算類指令; 38
            1. 加法指令; 38
            2. 減法指令; 40
            3. 乘除指令; 41
            4. 十進位元調整指令; 42
        2.2.3  邏輯運算指令; 43
            1. 邏輯與運算指令; 43
            2. 邏輯或運算指令; 44
            3. 邏輯異或運算指令; 44
            4. 累加器清0和取反指令; 45
            5. 累加器移位元元指令; 45
        2.2.4  控制轉移指令; 46
            1. 無條件轉移指令; 46
            2. 條件轉移指令; 47
            3. 副程式調用和返回指令; 48
            4. 空操作指令; 49
        2.2.5  位元元操作類指令; 49
            1. 位元元傳送指令; 50
            2. 位置位元元和重定指令; 50
            3. 位元元運算指令; 50
            4. 位元元測試轉移指令; 51
    2.3  組合語言程式設計; 51
        2.3.1  MCS-51單片機組合語言的虛擬指令; 52
            1. ORG(Origin)定位虛擬指令; 52
            2. END(End of assembly)結束彙編虛擬指令; 52
            3. EQU(Equate)賦值虛擬指令; 52
            4. DB(Define Byte)定義位元元組指令; 52
            5. DW(Define Word)定義資料字指令; 53
            6. DS(Define Storage)定義存儲區指令; 53
            7. BIT位元元定義指令; 53
        2.3.2  程式結構; 53
            1. 順序結構; 53
            2. 分支結構; 53
            3. 迴圈結構; 55
        2.3.3  組合語言程式設計方法; 57
    2.4  實用程式設計舉例; 58
        2.4.1  數制轉換程式; 58
            1. 二進位轉換成BCD碼十進位; 58
            2. BCD碼十進位轉換成二進位; 58
        2.4.2  資料處理程式設計; 59
            1. 多位元組BCD碼十進位數字相加; 59
            2. 求平均值; 60
            3. 極值查找; 61
            4. 關鍵字查找; 61
            5. 數據排序; 62
        2.4.3  查表程式設計; 63
        2.4.4  副程式設計; 65
            1. 副程式參數傳遞; 65
        2.4.5  延時程式設計; 67
            1. 單重迴圈延時程式; 67
            2. 多重迴圈延時程式; 67
    本 章 小 結; 68
    習  題  2; 69
        一、填空題; 69
        二、程式閱讀題; 70
        三、程式設計題; 71
第3章  MCS-51系列單片機中斷系統; 73
    3.1  中斷系統概述; 73
        3.1.1  中斷系統的概念; 73
            1.中斷源; 74
            2.中斷優先順序; 74
            3.中斷識別方式; 74
            4.中斷回應; 75
        3.1.2  中斷的作用; 75
            1.實現CPU與外部設備的速度配合; 75
            2.實現即時處理; 75
            3.實現故障處理; 75
    3.2  MCS-51系列單片機中斷源與插斷要求; 75
        3.2.1  計時器/計數器控制寄存器TCON; 76
        3.2.2  串列口控制寄存器SCON; 77
    3.3  MCS-51系列單片機中斷控制; 77
        3.3.1  中斷允許控制; 77
        3.3.2  中斷優先權管理; 78
    3.4  中斷回應; 79
        3.4.1  中斷回應條件; 79
        3.4.2  中斷回應過程; 80
        3.4.3  中斷回應的時間; 80
    3.5  插斷要求的撤除; 80
    3.6  中斷應用舉例; 81
        3.6.1  中斷程式設計基礎; 81
            1.中斷初始化; 81
            2.中斷服務程式; 82
        3.6.2  外部中斷應用舉例; 82
        3.6.3  外部中斷的擴展; 83
    3.7  中斷應用注意事項; 85
    本 章 小 結; 86
    習  題  3; 86
第4章  MCS-51系列單片機計時器/計數器; 87
    4.1  MCS-51系列單片機計時器/計數器的結構; 87
    4.2  MCS-51系列單片機計時器/計數器的控制; 88
        4.2.1  計時器/計數器工作方式寄存器TMOD; 88
        4.2.2  計時器/計數器控制寄存器TCON; 89
    4.3  計時器/計數器的工作方式及應用; 89
        4.3.1  計時器/計數器方式0及應用; 89
        4.3.2  計時器/計數器方式1及應用; 92
        4.3.3  計時器/計數器方式2及應用; 94
        4.3.4  計時器/計數器方式3及應用; 96
        4.3.5  計時器/計數器的其他應用舉例; 97
    本 章 小 結; 98
    習  題  4; 99
第5章  MCS-51系列單片機的擴展; 100
    5.1  單片機三匯流排的形成及編址; 100
        5.1.1  單片機三匯流排的形成; 100
            1. 位址匯流排(Address Bus,AB); 100
            2. 資料匯流排(Data Bus,DB); 100
            3. 控制匯流排(Control Bus,CB); 101
        5.1.2  編址及解碼; 101
            1. 線選法; 102
            2. 解碼法; 103
    5.2  記憶體的擴展; 104
        5.2.1  程式記憶體擴展; 104
            1. 常用的程式記憶體; 104
            2. 程式記憶體擴展實例; 107
        5.2.2  資料記憶體的擴展; 109
            1. 常用的資料記憶體; 109
            2. 擴展實例; 111
    5.3  輸入/輸出口的擴展; 111
        5.3.1  簡單介面晶片的擴展; 112
            1. 用緩衝器擴展輸入口; 112
            2. 用鎖存器擴展輸出口; 113
        5.3.2  可程式設計晶片8155的擴展; 114
            1. 8155的結構; 114
            2. 8155的RAM和I/O口位址編碼; 115
            3. 8155的命令字和狀態字; 115
            4. 8155的計時器/計數器; 117
            5. MCS-51單片機與8155的介面; 118
        5.3.3  可程式設計晶片8255A的擴展; 120
            1. 8255A的結構; 120
            2. 8255A的引腳功能; 121
            3. 8255A與單片機連接; 122
            4. 8255A的控制字; 123
            5. 8255A的工作方式; 124
    本 章 小 結; 126
    習  題  5; 126
第6章  MCS-51系列單片機的介面技術; 127
    6.1  鍵盤介面技術; 127
        6.1.1  鍵的特性; 127
        6.1.2  獨立鍵盤介面技術; 128
            1.獨立鍵盤的結構; 128
            2.獨立鍵盤與單片機介面; 128
        6.1.3  矩陣鍵盤介面技術; 130
            1.矩陣鍵盤的結構; 130
            2.矩陣鍵盤工作方式; 130
    6.2  數碼顯示介面技術; 135
        6.2.1  數碼顯示原理; 135
            1.LED顯示器的結構與原理; 135
            2.數碼管段選碼; 136
        6.2.2  靜態顯示技術; 136
        6.2.3  動態顯示技術; 138
    6.3  液晶顯示技術; 139
        6.3.1  液晶顯示器簡介; 139
        6.3.2  液晶顯示器與單片機介面; 139
            1.HD44780液晶顯示控制驅動器; 140
            2.HD44780與MCS-51單片機介面; 140
    6.4  A/D轉換器與單片機的介面技術; 141
        6.4.1  A/D轉換器的性能參數與選型; 141
            1.A/D轉換器的主要參數和意義; 141
            2.A/D轉換器的選取原則; 142
        6.4.2  ADC0809與單片機介面; 142
            1.ADC0809的結構及引腳特性; 142
            2.ADC0809與MCS-51系列單片機介面; 144
        6.4.3  AD574A與單片機介面; 146
            1.AD574A的結構及引腳特性; 146
            2.AD574A與MCS-51系列單片機介面; 148
    6.5  D/A轉換器與單片機的介面技術; 150
        6.5.1  D/A轉換器的性能參數與選型; 150
            1.D/A轉換器的主要參數和意義; 150
            2.D/A轉換器的選取原則; 150
        6.5.2  DAC0832與單片機介面; 150
            1.DAC0832介紹; 150
            2.DAC0832與MCS-51系列單片機介面; 151
        6.5.3  DAC1210與單片機介面; 152
            1. DAC1210介紹; 152
            2. DAC1210與MCS-51系列單片機介面; 152
        6.5.4  V/I變換電路; 153
    6.6  序列介面技術; 154
        6.6.1  SPI串列匯流排; 154
        6.6.2  SPI A/D、D/A轉換器與MCS-51單片機介面; 155
            1. MAX1247簡介; 155
            2. MAX525介紹; 157
            3. MAX1247、MAX525與MCS-51介面; 158
        6.6.3  I2C串列匯流排; 161
            1. I2C匯流排簡介; 161
            2. I2C匯流排協定; 162
            3. I2C匯流排的介面技術; 162
        6.6.4  I2C器件與MCS-51介面; 162
            1. 24C01簡介; 162
            2. 24C01時序; 163
            3. 24C01與MCS-51介面; 163
    6.7  開關量輸入/輸出介面技術; 167
        6.7.1  光電隔離技術和器件; 167
        6.7.2  開關量輸入介面; 167
        6.6.3  開關量輸出介面; 167
    本 章 小 結; 169
    習  題  6; 169
第7章  MCS-51系列單片機串列通信; 170
    7.1  串列通信的基本概念; 170
        7.1.1  資料通信; 170
        7.1.2  串列通信的傳輸方式; 170
        7.1.3  非同步通信和同步通信; 170
            1.非同步通信; 170
            2.同步通信; 171
            3.串列傳輸速率; 171
    7.2  MCS-51系列單片機串列通信介面; 172
        7.2.1  串列口的結構與組成; 172
            1.串列資料緩衝器(SBUF); 172
            2.串列口控制寄存器(SCON); 173
            3.電源控制寄存器(PCON); 173
        7.2.2  串列口的工作方式; 173
            1.方式0; 173
            2.方式1; 174
            3.方式2和方式3; 175
        7.2.3  串列傳輸速率的設置; 175
        7.2.4  串列通信介面標準; 177
            1.RS-232C通信介面; 177
            2.RS-422A通信介面; 177
            3.RS-485通信介面; 178
            4.RS232C、RS-422A/485通信介面的性能比較; 179
    7.3  PC機與單片機通信; 179
        7.3.1  PC機串口資源及程式設計使用方法; 179
            1.設置串列傳輸速率; 180
            2.設置資料格式; 180
            3.設置操作方式; 180
            4.設置中斷允許寄存器; 180
        7.3.2  PC機與單片機雙機通信; 181
            1.PC機的通信軟體; 182
            2.MCS-51單片機通信軟體; 182
        7.3.3  PC機與單片機多機通信; 184
            1.PC機軟體設計; 185
            2.單片機軟體設計; 186
    本 章 小 結; 187
    習  題  7; 187
第8章  C51程式設計語言及程式設計; 188
    8.1  C51資料類型與運算; 188
        8.1.1  C51資料類型; 188
            1.char字元類型; 188
            2.int整型; 189
            3.long長整型; 189
            4.float浮點型; 189
            5.指針型; 189
            6.bit位元變數; 189
            7.sfr特殊功能寄存器; 190
            8.sfr16 16位特殊功能寄存器; 190
            9.sbit 可定址位; 190
        8.1.2  C51資料存儲類型; 190
        8.1.3  C51定義SFR; 191
        8.1.4  C51定義並行口; 192
        8.1.5  C51定義位元變數; 193
            1.位元變數的定義; 193
            2.函數可以有bit類型的參數,也可以有bit類型的返回值; 193
            3.對位元變數定義的限制; 193
        8.1.6  C51運運算元、運算式及其規則; 193
            1.算術運運算元和算術運算式; 193
            2.關係運運算元和關聯運算式; 194
            3.邏輯運運算元和邏輯運算式; 195
            4.位運運算元及其運算式; 195
            5.設定運運算元和賦值運算式; 195
            6.複合設定運運算元; 196
    8.2  C51流程控制語句; 196
        8.2.1  選擇語句; 196
            1.if語句; 196
            2.switch/case語句; 198
        8.2.2  迴圈語句; 199
            1.if語句和goto語句; 199
            2.while語句; 200
            3.do-while語句; 200
            4.for語句; 201
    8.3  C51構造資料類型; 202
        8.3.1  陣列; 202
            1.一維陣列; 202
            2.二維陣列; 202
            3.字元陣列; 203
            4.查表; 203
        8.3.2  指針; 203
    8.4  C51函數; 204
        8.4.1  函數的定義與分類; 204
            1.函數的分類; 204
            2.函數的定義; 205
        8.4.2  函數的調用; 205
        8.4.3  函數的嵌套調用與遞迴呼叫; 206
        8.4.4  指向函數的指標變數; 207
        8.4.5  C51的庫函數; 208
            1.字元函式程式庫ctype.h; 208
            2.標準函式程式庫stdlib.h; 209
            3.數學函式程式庫math.h; 209
            4.絕對位址訪問標頭檔absacc.h; 210
            5.內建函式庫intrins.h; 210
            6.訪問SFR和SFR_bit位址標頭檔reg××.h; 210
    8.5  C51應用程式設計實例; 210
        8.5.1  MCS-51系列單片機內部資源程式設計; 210
            1.外部中斷服務程式及常式; 210
            2.計時器/計數器程式設計; 211
        8.5.2  MCS-51系列單片機擴展資源程式設計; 212
        8.5.3  MCS-51系列單片機介面技術程式設計; 214
    本 章 小 結; 223
    習  題  8; 223
第9章  單片機應用系統設計與開發; 224
    9.1  單片機應用系統設計的一般步驟和方法; 224
        9.1.1  對單片機應用系統的性能要求; 224
        9.1.2  設計步驟; 224
            1.需求分析; 224
            2.總體設計; 225
            3.硬體設計; 226
            4.軟體設計; 226
            5.單片機應用系統的調試; 226
            6.產品驗收與維護; 226
            7.檔編制與技術歸檔; 226
    9.2  單片機應用系統的抗幹擾技術; 227
        9.2.1  硬體抗幹擾技術; 227
            1.抑制幹擾源常用措施; 227
            2.切斷幹擾傳播途徑措施; 228
            3.提高敏感器件的抗幹擾性能; 228
        9.2.2  軟體抗幹擾技術; 228
            1.數位濾波技術; 228
            2.指令冗餘技術; 229
            3.軟體陷阱技術; 229
            4.輸入口信號重複檢測; 230
            5.輸出埠資料刷新; 230
            6.程式自檢; 230
    9.3  簡易電腦時鐘設計; 231
        9.3.1  功能要求; 231
        9.3.2  總體設計; 231
        9.3.3  硬體設計; 231
            1.微處理器選擇; 231
            2.電路設計; 231
        9.3.4  軟體設計; 232
            1.操作功能設計; 232
            2.程式設計思路; 233
            3.程式原始程式碼; 233
    9.4  數位電壓表設計; 239
        9.4.1  功能要求; 239
        9.4.2  總體設計; 239
        9.4.3  硬體設計; 239
            1.器件選擇; 239
            2.原理圖設計; 240
            3.Proteus與Keil模擬平臺建立; 240
        9.4.4  軟體設計; 240
    9.5  電動小車動態平衡系統; 243
        9.5.1  功能要求; 243
        9.5.2  總體設計; 244
            1.車型選擇; 244
            2.車體行駛設計; 245
            3.系統平衡設計; 245
            4.其他功能設計; 245
        9.5.3  硬體設計; 245
            1.獨立供電模組; 245
            2.軌跡檢測模組; 246
            3.傾角檢測模組; 247
            4.電機驅動電路; 247
            5.顯示模組; 249
            6.聲光報警模組; 249
            7.單片機系統; 249
        9.5.2  軟體設計; 249
    本 章 小 結; 274
    習  題  9; 274
    附錄A  ASCII碼字元表; 275
    附錄B  MCS-51單片機指令表; 276
    參 考 文 獻; 281

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *