本書以80C51系列中的89系列單片機(jī)為例介紹單片機(jī)的硬件結(jié)構(gòu)、工作原理、指令系統(tǒng)、匯編語言及C語言程序設(shè)計、接口技術(shù)、中斷系統(tǒng)及單片機(jī)應(yīng)用等內(nèi)容。主要內(nèi)容包括:概況、單片機(jī)結(jié)構(gòu)及原理、指令系統(tǒng)、匯編語言程序設(shè)計、C51語言程序及開發(fā)環(huán)境、定時/計數(shù)器、80C51的串行接口、中斷系統(tǒng)、單片機(jī)的系統(tǒng)擴(kuò)展、接口技術(shù)、單片機(jī)應(yīng)用系統(tǒng)的設(shè)計與開發(fā)等。本書在各章中對關(guān)鍵性內(nèi)容都結(jié)合實例予以說明,并附大量思考題和習(xí)題,配套電子課件、程序代碼、參考答案等。
提供配套電子課件、習(xí)題參考答案、程序代碼 - 實例采用匯編語言與C51語言對比講解 - 實例進(jìn)行Keil C51和Proteus仿真
張迎新,解放軍裝備指揮技術(shù)學(xué)院教授,長期從事電子系統(tǒng)設(shè)計領(lǐng)域的教學(xué)和科研工作,擁有三十余年一線教學(xué)經(jīng)驗,負(fù)責(zé)了多項***、全軍、省部級科研和教研項目,出版過多部著作,教學(xué)和寫作經(jīng)驗豐富。
目 錄
第1章 概述 (1)
1.1 單片機(jī)發(fā)展概況 (1)
1.1.1 單片機(jī)的發(fā)展歷史 (1)
1.1.2 單片機(jī)的組成及特點 (3)
1.1.3 單片機(jī)與嵌入式系統(tǒng) (4)
1.2 80C51系列單片機(jī)簡介 (5)
1.2.1 80C51系列單片機(jī)的發(fā)展 (5)
1.2.2 AT89系列單片機(jī)的特點及分類 (6)
1.3 其它常用單片機(jī)系列簡介 (7)
1.3.1 低端產(chǎn)品概述 (7)
1.3.2 高端產(chǎn)品概述 (8)
1.3 單片機(jī)基礎(chǔ)知識 (9)
1.3.1 數(shù)制與編碼 (9)
1.3.2 計算機(jī)的基本組成電路 (12)
1.3.3 存儲器簡介 (15)
思考與練習(xí) (19)
第2章 單片機(jī)結(jié)構(gòu)及原理 (20)
2.1 單片機(jī)結(jié)構(gòu) (20)
2.1.1 單片機(jī)組成及結(jié)構(gòu) (20)
2.1.2 引腳定義及功能 (23)
2.2 80C51的存儲器 (26)
2.2.1 存儲器結(jié)構(gòu)和地址空間 (26)
2.2.2 程序存儲器 (27)
2.2.3 數(shù)據(jù)存儲器 (28)
2.3 特殊功能寄存器SFR (30)
2.3.1 80C51系列的SFR (30)
2.3.2 SFR地址分布及尋址 (31)
2.3.3 SFR的功能與作用 (33)
2.4 單片機(jī)的工作原理 (36)
2.4.1 指令與程序概述 (36)
2.4.2 CPU的工作原理 (36)
2.4.3 單片機(jī)執(zhí)行程序過程 (38)
2.5 輸入/輸出端口結(jié)構(gòu) (40)
2.5.1 4個I/O端口的主要異同點 (40)
2.5.2 P0口 (41)
2.5.3 P1口 (42)
2.5.4 P2口 (43)
2.5.5 P3口 (44)
2.6 時序及時鐘電路 (45)
2.6.1 CPU時序及有關(guān)概念 (45)
2.6.2 振蕩器和時鐘電路 (46)
2.6.3 80C51的指令時序 (47)
2.7 復(fù)位和復(fù)位電路 (48)
2.7.1 內(nèi)部復(fù)位信號的產(chǎn)生 (48)
2.7.2 復(fù)位狀態(tài) (48)
2.7.3 外部復(fù)位電路設(shè)計 (49)
2.8 80C51系列單片機(jī)的低功耗方式 (50)
2.8.1 電源控制寄存器PCON (50)
2.8.2 待機(jī)方式 (50)
2.8.3 掉電方式 (51)
思考與練習(xí) (52)
第3章 指令系統(tǒng) (53)
3.1 指令系統(tǒng)簡介 (53)
3.2 尋 址 方 式 (54)
3.2.1 符號約定 (54)
3.2.2 尋址方式說明 (55)
3.3 指令系統(tǒng)分類介紹 (60)
3.3.1 數(shù)據(jù)傳送類指令 (60)
3.3.2 算術(shù)運算類指令 (65)
3.3.3 邏輯操作類指令 (69)
3.3.4 控制轉(zhuǎn)移類指令 (71)
3.3.5 位操作類指令 (75)
思考與練習(xí) (77)
第4章 匯編語言程序設(shè)計 (81)
4.1 概述 (81)
4.1.1 程序設(shè)計語言 (81)
4.1.2 匯編語言規(guī)范 (82)
4.1.3 匯編語言程序設(shè)計步驟 (85)
4.2 匯編語言程序設(shè)計舉例 (86)
4.2.1 順序程序設(shè)計 (86)
4.2.2 循環(huán)程序設(shè)計 (87)
4.2.3 分支程序設(shè)計 (88)
4.2.4 查表程序設(shè)計 (92)
4.2.5 子程序設(shè)計 (94)
思考與練習(xí) (98)
第5章 C51語言程序及開發(fā)環(huán)境 (101)
5.1 C51語言基礎(chǔ)知識 (101)
5.1.1 C51語言簡介 (101)
5.1.2 C51語言的運算符及表達(dá)式 (101)
5.1.3 C51語言的程序結(jié)構(gòu) (103)
5.1.4 C51語言的流程控制語句 (104)
5.2 C51語言對通用C語言的擴(kuò)展 (106)
5.2.1 數(shù)據(jù)類型 (106)
5.2.2 數(shù)據(jù)的存儲類型 (108)
5.2.3 指針 (110)
5.2.4 函數(shù) (111)
5.2.5 C51語言對單片機(jī)硬件的訪問 (113)
5.3 C51語言編程舉例 (115)
5.4 KEIL C51軟件開發(fā)環(huán)境 (119)
5.4.1 Keil軟件簡介 (119)
5.4.2 項目的建立與設(shè)置 (121)
5.4.3 運行調(diào)試 (124)
5.5 PROTEUS 硬件仿真環(huán)境 (126)
5.5.1 Proteus軟件簡介 (126)
5.5.2 Proteus ISIS窗口功能 (126)
5.5.3 Proteus ISIS的基本操作 (128)
思考題與練習(xí)題 (134)
第6章 定時/計數(shù)器 (135)
6.1 定時/計數(shù)器T0、T1概述 (135)
6.1.1 定時器/計數(shù)器T0、T1的結(jié)構(gòu) (135)
6.1.2 定時/計數(shù)器的原理 (136)
6.2 定時/計數(shù)器的控制方法 (136)
6.2.1 定時/計數(shù)器寄存器 (136)
6.2.2 定時/計數(shù)器的初始化 (138)
6.2.3 定時/計數(shù)器初值的確定方法 (138)
6.3 定時/計數(shù)器T0、T1的工作方式 (139)
6.3.1 方式0 (139)
6.3.2 方式1 (139)
6.3.3 方式2 (140)
6.3.4 方式3 (140)
6.4 定時器T0、T1應(yīng)用舉例 (142)
6.4.1 定時器應(yīng)用舉例 (142)
6.4.2 計數(shù)器應(yīng)用舉例 (143)
6.4.3 門控位應(yīng)用舉例 (145)
6.5 定時/計數(shù)器T2 (147)
6.5.1 T2的寄存器 (147)
6.5.2 定時器T2的工作方式 (149)
6.5.3 應(yīng)用例題 (153)
6.6 定時器T3― WDT監(jiān)視定時器 (155)
6.6.1 WDT的功能及應(yīng)用特點 (155)
6.6.2 輔助寄存器AUXR (155)
思考與練習(xí) (156)
第7章 80C51的串行接口 (157)
7.1 串行通信概述 (157)
7.1.1 同步通信和異步通信方式 (157)
7.1.2 串行通信的數(shù)據(jù)傳送速率 (158)
7.1.3 串行通信的方式 (158)
7.1.4 通信協(xié)議 (159)
7.2 80C51串行口簡介 (159)
7.2.1 串行口結(jié)構(gòu)與工作原理 (159)
7.2.2 串行口控制寄存器SCON (160)
7.2.3 80C51的幀格式 (161)
7.2.4 波特率的設(shè)置 (162)
7.3 串行通信工作方式 (163)
7.3.1 方式0 (164)
7.3.2 方式1 (164)
7.3.3 方式2和方式3 (165)
7.3.4 多機(jī)通信 (165)
7.4 串行口應(yīng)用舉例 (166)
7.4.1 用串行口擴(kuò)展I/O口 (167)
7.4.2 用串行口進(jìn)行異步通信 (170)
思考與練習(xí) (177)
第8章 中斷系統(tǒng) (178)
8.1 概述 (178)
8.1.1 中斷的概念 (178)
8.1.2 引進(jìn)中斷技術(shù)的優(yōu)點 (178)
8.1.3 中斷源 (179)
8.1.4 中斷系統(tǒng)的功能 (179)
8.2 AT89S51單片機(jī)的中斷系統(tǒng) (181)
8.2.1 中斷系統(tǒng)的結(jié)構(gòu) (181)
8.2.2 中斷源及中斷入口 (181)
8.2.3 與中斷控制有關(guān)的寄存器 (183)
8.3 中斷處理過程 (186)
8.3.1 中斷響應(yīng) (186)
8.3.2 中斷處理 (187)
8.3.3 中斷返回 (188)
8.3.4 中斷請求的撤除 (188)
8.3.5 中斷響應(yīng)時間 (189)
8.3.6 擴(kuò)充外中斷源 (189)
8.4 中斷程序的設(shè)計與應(yīng)用 (191)
8.4.1 中斷程序的一般設(shè)計方法 (191)
8.4.2 中斷程序應(yīng)用舉例 (193)
思考與練習(xí) (201)
第9章 單片機(jī)的系統(tǒng)擴(kuò)展 (202)
9.1 并行擴(kuò)展概述 (202)
9.1.1 系統(tǒng)擴(kuò)展常用接口芯片 (202)
9.1.2 外部并行擴(kuò)展總線 (204)
9.1.3 并行擴(kuò)展的尋址方法 (205)
9.2 存儲器的并行擴(kuò)展 (206)
9.2.1 數(shù)據(jù)存儲器擴(kuò)展概述 (206)
9.2.2 訪問片外數(shù)據(jù)存儲器的操作時序 (206)
9.2.3 數(shù)據(jù)存儲器擴(kuò)展舉例 (207)
9.3 并行I/O接口的擴(kuò)展 (208)
9.3.1 擴(kuò)展并行I/O口簡述 (208)
9.3.2 簡單并行I /O口的擴(kuò)展 (209)
9.4 串行擴(kuò)展概述 (210)
9.4.1 常用串行總線與串行接口簡介 (211)
9.4.2 單片機(jī)串行擴(kuò)展的模擬技術(shù) (214)
9.4.3 串行擴(kuò)展的主要特點 (214)
9.5 I2C總線 (215)
9.5.1 I2C總線的組成及基本工作原理 (215)
9.5.2 I2C總線的傳輸時序 (215)
9.5.3 I2C總線的通用模擬軟件包 (217)
9.5.4 I2C總線應(yīng)用舉例 (223)
9.6 擴(kuò)展數(shù)/模轉(zhuǎn)換器 (227)
9.6.1 數(shù)/模轉(zhuǎn)換器簡介 (228)
9.6.2 數(shù)/模轉(zhuǎn)換電路原理 (228)
9.6.3 D/A轉(zhuǎn)換器的主要技術(shù)指標(biāo) (229)
9.6.4 并行D/A轉(zhuǎn)換器 (230)
9.7 擴(kuò)展模/數(shù)轉(zhuǎn)換器 (233)
9.7.1 模/數(shù)轉(zhuǎn)換器簡介 (233)
9.7.2 模/數(shù)轉(zhuǎn)換器的主要技術(shù)指標(biāo) (234)
9.7.3 逐次逼近式A/D轉(zhuǎn)換器 (235)
9.7.4 雙積分A/D轉(zhuǎn)換器 (238)
9.7.5 串行A/D轉(zhuǎn)換器 (242)
思考與練習(xí) (245)
第10章 接口技術(shù) (247)
10.1 鍵盤接口 (247)
10.1.1 鍵盤工作原理 (247)
10.1.2 獨立式按鍵 (248)
10.1.3 行列式鍵盤 (251)
10.2 顯示器接口 (258)
10.2.1 LED顯示器的結(jié)構(gòu)與原理 (258)
10.2.2 LED靜態(tài)顯示方式 (259)
10.2.3 LED動態(tài)顯示方式 (260)
10.2.4 液晶顯示器概述 (263)
10.2.5 字符型液晶顯示模塊LCM的組成及原理 (264)
10.2.6 字符型液晶顯示模塊LCM的引腳及說明 (265)
10.2.7 LCM的指令 (266)
10.2.8 LCM的復(fù)位及初始化 (268)
10.2.9 LCM的接口及應(yīng)用舉例 (269)
10.3 功率驅(qū)動器件及接口電路 (277)
10.3.1 輸出接口的隔離技術(shù) (277)
10.3.2 直流負(fù)載驅(qū)動電路 (278)
10.3.3 晶閘管負(fù)載驅(qū)動電路 (279)
10.3.4 繼電器接口電路 (280)
10.3.5 固態(tài)繼電器接口電路 (281)
10.4 打印機(jī)接口 (281)
10.4.1 微型打印機(jī)簡介 (282)
10.4.2 字符代碼及打印命令 (283)
10.4.3 打印機(jī)與單片機(jī)接口舉例 (284)
思考與練習(xí) (286)
第11章 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計與開發(fā) (287)
11.1 應(yīng)用系統(tǒng)研制過程 (287)
11.1.1 總體方案設(shè)計 (287)
11.1.2 硬件設(shè)計 (288)
11.1.3 軟件設(shè)計 (290)
11.2 開發(fā)工具和開發(fā)方法 (292)
11.2.1 開發(fā)工具 (292)
11.2.2 開發(fā)方法 (294)
11.3 恒溫箱溫度控制監(jiān)測系統(tǒng) (295)
11.3.1 題目分析 (296)
11.3.2 硬件設(shè)計 (296)
11.4.3 軟件設(shè)計 (297)
11.4 PC機(jī)與單片機(jī)間的串行通信設(shè)計 (301)
11.4.1 RS-232C標(biāo)準(zhǔn)接口 (301)
11.4.2 單片機(jī)與PC機(jī)之間的電平轉(zhuǎn)換芯片 (302)
11.4.3 PC機(jī)與單片機(jī)串行通信應(yīng)用實例 (302)
11.5 步進(jìn)電機(jī)控制設(shè)計 (309)
11.5.1 步進(jìn)電機(jī)的工作原理 (309)
11.5.2 步進(jìn)電機(jī)的控制方法 (309)
11.5.3 步進(jìn)電機(jī)控制應(yīng)用舉例 (310)
思考與練習(xí) (316)
附錄A 80C51指令表 (316)
附錄B 各數(shù)制對照表 (321)
附錄C ASCII(美國標(biāo)準(zhǔn)信息交換碼)表 (322)
附錄D 二進(jìn)制邏輯單元圖形符號對照表 (316)
附錄E 常用芯片引腳圖 (324)
參考文獻(xiàn) (326)