單片機原理與應用設計(C51編程+Proteus模擬)(第3版)

張毅剛

  • 出版商: 電子工業
  • 出版日期: 2020-01-01
  • 定價: $359
  • 售價: 8.5$305
  • 語言: 簡體中文
  • ISBN: 7121374072
  • ISBN-13: 9787121374074
  • 相關分類: 8051C 程式語言
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

本書是普通高等教育“十一五”國家級規劃教材和國家精品課程主講教材。本書詳細介紹美國Atmel公司的AT89S51單片機的內部硬件資源及工作原理,採用C51語言編程,並以虛擬模擬平臺Proteus作為設計與開發工具,同時還簡要介紹了Keil ?Vision的使用方法。本書從應用角度出發,重點介紹單片機應用的各種技術實現,如信息的顯示與輸入、中斷、定時/計數、串行通信、模數與數模轉換、系統的並行/串行擴展、應用系統設計等,並且給出較多虛擬模擬設計實例。掃描前言中的二維碼可獲取實驗和課程設計題目。本書提供電子課件和習題參考答案,登錄華信教育資源網(www.hxedu.com.cn)註冊後即可免費下載。本書可作為各類工科高等學校和職業技術學院電氣工程、電子電氣信息技術、智能儀器儀表、機電一體化、電腦、自動化等專業單片機原理與應用課程的教材,也可供從事單片機應用設計的工程技術人員參考。

作者簡介

張毅剛,教授,哈爾濱工業大學電氣工程及自動化學院教學帶頭人,省教學名師。中國高等教育學會儀器科學及測控技術專業委員會委員、中國儀器儀表學會高級會員、中國電子學會高級會員。國家精品課程《單片機原理》課程負責人,黑龍江省普通高等學校教學名師獎,寶鋼優秀教師獎。省部級科技進步一等獎1項,二等獎3項,三等獎2項。

目錄大綱

 

第1章單片機概述\t1

1.1單片機簡介\t1

1.2單片機的發展歷史\t1

1.3單片機的特點\t2

1.4單片機的應用領域\t3

1.5單片機的發展趨勢\t3

1.6 MCS-51系列與AT89S5x系列單片機\t4

1.6.1 MCS-51系列單片機\t4

1.6.2 AT89S5x系列單片機\t5

1.7各種衍生的8051單片機\t6

1.7.1 STC系列單片機\t6

1.7.2 C8051Fxxx系列單片機\t7

1.7.3 ADμC812系列單片機\t8

1.7.4華邦W77系列、W78系列單片機\t8

1.8 PIC系列單片機與AVR系列單片機\t8

1.8.1 PIC系列單片機\t8

1.8.2 AVR系列單片機\t9

1.9其他嵌入式處理器簡介\t10

1.9.1 DSP\t10

1.9.2嵌入式微處理器\t11

思考題及習題1\t11

 

第2章AT89S51單片機的內部硬件結構\t12

2.1 AT89S51單片機的硬件組成\t12

2.2 AT89S51單片機的引腳功能\t13

2.2.1電源及時鐘引腳\t13

2.2.2控制引腳\t13

2.2.3並行I/O口引腳\t14

2.3 AT89S51單片機的CPU\t15

2.3.1運算器\t15

2.3.2控制器\t16

2.4 AT89S51單片機存儲器的結構\t17

2.4.1程序存儲器空間\t17

2.4.2數據存儲器空間\t18

2.4.3特殊功能寄存器\t18

2.4.4位地址空間\t21

2.5 AT89S51單片機的並行I/O口\t23

2.5.1 P0口\t23

2.5.2 P1口\t24

2.5.3 P2口\t24

2.5.4 P3口\t25

2.6時鐘電路與時序\t26

2.6.1時鐘電路設計\t26

2.6.2機器週期、指令周期與指令時序\t27

2.7復位操作和復位電路\t28

2.7.1復位操作\t28

2.7.2復位電路設計\t28

2.8 AT89S51單片機的最小應用系統\t29

2.9看門狗定時器的使用\t29

2.10低功耗節電模式\t30

2.10.1空閒模式\t31

2.10.2掉電模式\t31

思考題及習題2\t32

 

第3章C51語言編程基礎與Keil μVision \t34

3.1 C51語言概述\t34

3.1.1 C51語言與8051彙編語言的比較\t34

3.1.2 C51語言與標準C語言的比較\t34

3.2 C51程序設計基礎\t35

3.2.1 C51語言的數據類型與存儲類型\t35

3.2.2 C51語言的特殊功能寄存器及位變量定義\t39

3.2.3 C51語言的絕對地址訪問\t41

3.2.4 C51語言的基本運算\t43

3.2.5 C51語言的分支與循環程序結構\t45

3.2.6 C51語言的數組\t51

3.2.7 C51語言的指針\t53

3.3 C51語言的函數\t54

3.3.1函數的分類\t54

3.3.2函數的調用\t55

3.3.3中斷服務函數\t56

3.3.4變量及存儲方式\t56

3.3.5宏定義與文件包含\t57

3.3.6庫函數\t57

3.4使用Keil μVision開發C51程序\t58

3.4.1 Keil μVision的基本操作\t58

3.4.2添加用戶源程序文件\t60

3.4.3程序的編譯與調試\t61

3.4. 4工程的設置\t64

思考題及習題3\t66

 

第4章虛擬仿真平台Proteus的使用\t67

4.1 Proteus的基本功能\t67

4.2 Proteus ISIS的虛擬仿真\t68

4.3 Proteus ISIS環境簡介\t69

4.3.1原理圖編輯窗口\t69

4.3.2預覽窗口\t70

4.3.3對象選擇窗口\t70

4.3.4主菜單欄\t71

4.3.5主工具欄\t73

4.3.6工具箱\t74

4.3.7仿真工具欄\t75

4.3.8元件列表\t75

4.4 Proteus ISIS的編輯環境設置\t76

4.5 Proteus ISIS的系統運行環境設置\t77

4.6單片機系統的電路設計與虛擬仿真\t78

4.6.1電路設計與虛擬仿真的步驟\t78

4.6.2新建或打開一個設計文件\t78

4.6 .3選擇需要的元件到元件列表中\t79

4.6.4放置元件並連接電路\t81

4.6.5加載目標代碼文件、設置時鐘頻率及仿真運行\t85

4.7 Proteus的各種虛擬仿真工具\t85

4.7. 1虛擬激勵信號源\t85

4.7.2虛擬儀器\t90

4.7.3虛擬儀器的圖表仿真\t99

4.7.4硬件斷點的設置\t101

 

第5章單片機開關檢測、鍵盤輸入與顯示接口設計\t104

5.1用單片機控制發光二極管顯示\t104

5.1.1單片機與發光二極管的連接\t104

5.1.2 I/O口的編程控制\t105

5.2開關狀態檢測\t108

5.2.1開關檢測實例1\t108

5.2.2開關檢測實例2\t109

5.3用單片機控制LED數碼管顯示\t110

5.3.1 LED數碼管的顯示原理\t110

5.3.2 LED數碼管的靜態顯示與動態顯示\t112

5.4用單片機控制LED點陣顯示屏顯示\t115

5.4.1 LED點陣顯示屏的結構與顯示原理\t115

5.4.2 16×16 LED點陣顯示屏設計實例\ t116

5.5用單片機控制LCD 1602顯示\t119

5.5.1 LCD 1602簡介\t119

5.5.2 LCD 1602設計實例\t125

5.6用單片機控制LCD12864顯示\t128

5.6.1引腳功能與顯示原理\t129

5.6.2控制命令\t130

5.6.3 LCD12864設計實例\t131

5.7鍵盤接口設計\t136

5.7.1鍵盤接口設計需要解決的問題\t136

5.7.2獨立式鍵盤接口設計實例\t137

5.7.3矩陣式鍵盤接口設計實例\ t143

5.7.4非編碼鍵盤掃描方式的選擇\t146

5.7.5單片機與HD7279A的接口設計\t147

思考題及習題5\t156

 

第6章中斷系統的工作原理及應用\t158

6.1 AT89S51單片機中斷技術概述\t158

6.2 AT89S51單片機中斷系統結構\t158

6.2.1中斷源\t158

6.2.2中斷請求標誌寄存器\ t159

6.3中斷允許控制與中斷優先級控制\t160

6.3.1中斷允許寄存器IE\t160

6.3.2中斷優先級寄存器IP\t161

6.4響應中斷請求的條件\t162

6.5外部中斷請求的響應時間\t163

6.6外部中斷的觸發方式選擇\t163

6.7中斷請求的撤銷\t164

6.8中斷函數\t165

6.9中斷系統的應用\t166

6.9.1單一外部中斷的應用\t166

6.9.2兩個外部中斷的應用\t167

6.9.3中斷嵌套的應用\t169

思考題及習題6\t170

 

第7章定時/計數器的工作原理及應用\t171

7.1定時/計數器的結構\t171

7.1.1工作方式控制寄存器TMOD\t171

7.1.2定時/計數器控制寄存器TCON\t172

7.2定時/計數器的4種工作方式\t172

7.2.1方式0\t172

7.2.2方式1\t173

7.2.3方式2\t174

7.2.4方式3\t174

7.3定時/計數器對外部輸入信號的要求\t176

7.4定時/計數器的編程和應用\t176

7.4.1用P1口控制8個LED每0.5s閃亮一次\t176

7.4.2計數器的應用\t177

7.4.3控制P1.0引腳產生週期為2ms的方波\t179

7.4.4利用T1控制發出頻率為1kHz的音頻信號\t180

7.4.5製作LED數碼管秒錶\t182

7.4.6測量脈衝寬度——門控位的應用\t184

7.4.7 LCD時鐘的設計\t186

思考題及習題7\t188

 

第8章串行口的工作原理及應用\t190

8.1串行通信基礎\t190

8.1.1並行通信與串行通信\t190

8.1.2同步通信與異步通信\t191

8.1.3串行通信的傳輸模式\t191

8.1.4串行通信的錯誤校驗\t192

8.2串行口的結構\t192

8.2.1串行口控制寄存器SCON\t193

8.2.2特殊功能寄存器PCON\t194

8.3串行口的4種工作方式\t194

8.3.1方式0\t194

8.3.2方式1\t199

8.3.3方式2\t200

8.3.4方式3\t201

8.4多機通信\t201

8.5波特率的定義方法\t202

8.5.1波特率的定義\t203

8.5.2計算T1產生的波特率\t203

8.6串行口的應用\t204

8.6.1 RS-232C、RS-422A與RS-485簡介\ t204

8.6.2方式1的應用設計實例\t207

8.6.3方式2和方式3的應用設計實例\t213

8.6.4多機通信的應用設計實例\t215

8.6.5單片機與PC機串行通信的設計實例\t222

8.6.6 PC機與單片機或與多個單片機的串行通信\t226

思考題及習題8\t227

 

第9章單片機系統的並行擴展\t228

9.1系統並行擴展技術\t228

9.1.1系統並行擴展結構\t228

9.1.2地址空間分配\t229

9.1.3外部地址鎖存器\t231

9.2外部RAM的並行擴展\t233

9.2.1常用的靜態RAM芯片\t233

9.2.2讀/寫外部RAM的操作時序\t234

9.2.3並行擴展外部RAM設計實例\t235

9.2.4單片機擴展RAM 6264設計實例\t237

9.3內部Flash存儲器的編程\t238

9.3.1使用通用編程器\t239

9.3.2使用ISP下載線\t239

9.4 E2PROM的並行擴展\t240

9.4.1並行E2PROM芯片簡介\t240

9.4.2單片機擴展2864A設計實例\t241

9.5利用82C55擴展並行I/O口\t242

9.5. 1並行I/O口擴展概述\t242

9.5.2 82C55簡介\t243

9.5.3 82C55的三種工作方式\t246

9.5.4單片機與82C55的接口電路設計實例\t250

9.6利用74LSTTL電路擴展並行I/O口\t252

9.7利用單片機的串行口擴展並行I/O口\t253

9.7.1利用74LS165擴展並行輸入口設計實例\t253

9.7.2利用74LS164擴展並行輸出口設計實例\t254

思考題及習題9\ t255

 

第10章單片機系統的串行擴展\t257

10.1單總線串行擴展\t257

10.1.1數字溫度傳感器DS18B20簡介\t257

10.1.2單總線串行擴展DS18B20實現溫度測量系統設計實例\t260

10.2 SPI總線串行擴展\t263

10.3 I2C總線串行擴展\t264

10.3.1 I2C總線系統的基本結構\t264

10.3.2 I2C總線數據傳送的規定\t265

10.3.3單片機的I2C總線擴展系統\t267

10.3.4 I2C總線數據傳送的模擬\t268

10.3.5利用I2C總線擴展AT24C02的IC卡設計實例\t271

思考題及習題10\t277

 

第11章單片機與D/A轉換器、A/D轉換器的接口\t278

11.1單片機擴展D/A轉換器概述\t278

11.2單片機擴展8位並行D/A轉換器\t279

11.2.1 DAC0832簡介\t279

11.2.2單片機並行擴展DAC0832的程控電壓源設計實例\t280

11.2.3波形發生器設計實例\t281

11.3單片機擴展10位串行D/A轉換器\t286

11.3 .1 TLC5615簡介\t286

11.3.2單片機擴展TLC5615設計實例\t287

11.4單片機擴展A/D轉換器概述\t290

11.5單片機擴展8位並行A/D轉換器\t291