本書(shū)以80C51系列中的89系列單片機(jī)為例介紹單片機(jī)的硬件結(jié)構(gòu)、工作原理、指令系統(tǒng)、匯編語(yǔ)言及C語(yǔ)言程序設(shè)計(jì)、接口技術(shù)、中斷系統(tǒng)及單片機(jī)應(yīng)用等內(nèi)容。主要內(nèi)容包括:概況、單片機(jī)結(jié)構(gòu)及原理、指令系統(tǒng)、匯編語(yǔ)言程序設(shè)計(jì)、C51語(yǔ)言程序及開(kāi)發(fā)環(huán)境、定時(shí)/計(jì)數(shù)器、80C51的串行接口、中斷系統(tǒng)、單片機(jī)的系統(tǒng)擴(kuò)展、接口技術(shù)、單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)等。本書(shū)在各章中對(duì)關(guān)鍵性?xún)?nèi)容都結(jié)合實(shí)例予以說(shuō)明,并附大量思考題和習(xí)題,配套電子課件、程序代碼、參考答案等。
提供配套電子課件、習(xí)題參考答案、程序代碼 - 實(shí)例采用匯編語(yǔ)言與C51語(yǔ)言對(duì)比講解 - 實(shí)例進(jìn)行Keil C51和Proteus仿真
張迎新,解放軍裝備指揮技術(shù)學(xué)院教授,長(zhǎng)期從事電子系統(tǒng)設(shè)計(jì)領(lǐng)域的教學(xué)和科研工作,擁有三十余年一線教學(xué)經(jīng)驗(yàn),負(fù)責(zé)了多項(xiàng)***、全軍、省部級(jí)科研和教研項(xiàng)目,出版過(guò)多部著作,教學(xué)和寫(xiě)作經(jīng)驗(yàn)豐富。
目 錄
第1章 概述 (1)
1.1 單片機(jī)發(fā)展概況 (1)
1.1.1 單片機(jī)的發(fā)展歷史 (1)
1.1.2 單片機(jī)的組成及特點(diǎn) (3)
1.1.3 單片機(jī)與嵌入式系統(tǒng) (4)
1.2 80C51系列單片機(jī)簡(jiǎn)介 (5)
1.2.1 80C51系列單片機(jī)的發(fā)展 (5)
1.2.2 AT89系列單片機(jī)的特點(diǎn)及分類(lèi) (6)
1.3 其它常用單片機(jī)系列簡(jiǎn)介 (7)
1.3.1 低端產(chǎn)品概述 (7)
1.3.2 高端產(chǎn)品概述 (8)
1.3 單片機(jī)基礎(chǔ)知識(shí) (9)
1.3.1 數(shù)制與編碼 (9)
1.3.2 計(jì)算機(jī)的基本組成電路 (12)
1.3.3 存儲(chǔ)器簡(jiǎn)介 (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的存儲(chǔ)器 (26)
2.2.1 存儲(chǔ)器結(jié)構(gòu)和地址空間 (26)
2.2.2 程序存儲(chǔ)器 (27)
2.2.3 數(shù)據(jù)存儲(chǔ)器 (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í)行程序過(guò)程 (38)
2.5 輸入/輸出端口結(jié)構(gòu) (40)
2.5.1 4個(gè)I/O端口的主要異同點(diǎn) (40)
2.5.2 P0口 (41)
2.5.3 P1口 (42)
2.5.4 P2口 (43)
2.5.5 P3口 (44)
2.6 時(shí)序及時(shí)鐘電路 (45)
2.6.1 CPU時(shí)序及有關(guān)概念 (45)
2.6.2 振蕩器和時(shí)鐘電路 (46)
2.6.3 80C51的指令時(shí)序 (47)
2.7 復(fù)位和復(fù)位電路 (48)
2.7.1 內(nèi)部復(fù)位信號(hào)的產(chǎn)生 (48)
2.7.2 復(fù)位狀態(tài) (48)
2.7.3 外部復(fù)位電路設(shè)計(jì) (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)簡(jiǎn)介 (53)
3.2 尋 址 方 式 (54)
3.2.1 符號(hào)約定 (54)
3.2.2 尋址方式說(shuō)明 (55)
3.3 指令系統(tǒng)分類(lèi)介紹 (60)
3.3.1 數(shù)據(jù)傳送類(lèi)指令 (60)
3.3.2 算術(shù)運(yùn)算類(lèi)指令 (65)
3.3.3 邏輯操作類(lèi)指令 (69)
3.3.4 控制轉(zhuǎn)移類(lèi)指令 (71)
3.3.5 位操作類(lèi)指令 (75)
思考與練習(xí) (77)
第4章 匯編語(yǔ)言程序設(shè)計(jì) (81)
4.1 概述 (81)
4.1.1 程序設(shè)計(jì)語(yǔ)言 (81)
4.1.2 匯編語(yǔ)言規(guī)范 (82)
4.1.3 匯編語(yǔ)言程序設(shè)計(jì)步驟 (85)
4.2 匯編語(yǔ)言程序設(shè)計(jì)舉例 (86)
4.2.1 順序程序設(shè)計(jì) (86)
4.2.2 循環(huán)程序設(shè)計(jì) (87)
4.2.3 分支程序設(shè)計(jì) (88)
4.2.4 查表程序設(shè)計(jì) (92)
4.2.5 子程序設(shè)計(jì) (94)
思考與練習(xí) (98)
第5章 C51語(yǔ)言程序及開(kāi)發(fā)環(huán)境 (101)
5.1 C51語(yǔ)言基礎(chǔ)知識(shí) (101)
5.1.1 C51語(yǔ)言簡(jiǎn)介 (101)
5.1.2 C51語(yǔ)言的運(yùn)算符及表達(dá)式 (101)
5.1.3 C51語(yǔ)言的程序結(jié)構(gòu) (103)
5.1.4 C51語(yǔ)言的流程控制語(yǔ)句 (104)
5.2 C51語(yǔ)言對(duì)通用C語(yǔ)言的擴(kuò)展 (106)
5.2.1 數(shù)據(jù)類(lèi)型 (106)
5.2.2 數(shù)據(jù)的存儲(chǔ)類(lèi)型 (108)
5.2.3 指針 (110)
5.2.4 函數(shù) (111)
5.2.5 C51語(yǔ)言對(duì)單片機(jī)硬件的訪問(wèn) (113)
5.3 C51語(yǔ)言編程舉例 (115)
5.4 KEIL C51軟件開(kāi)發(fā)環(huán)境 (119)
5.4.1 Keil軟件簡(jiǎn)介 (119)
5.4.2 項(xiàng)目的建立與設(shè)置 (121)
5.4.3 運(yùn)行調(diào)試 (124)
5.5 PROTEUS 硬件仿真環(huán)境 (126)
5.5.1 Proteus軟件簡(jiǎn)介 (126)
5.5.2 Proteus ISIS窗口功能 (126)
5.5.3 Proteus ISIS的基本操作 (128)
思考題與練習(xí)題 (134)
第6章 定時(shí)/計(jì)數(shù)器 (135)
6.1 定時(shí)/計(jì)數(shù)器T0、T1概述 (135)
6.1.1 定時(shí)器/計(jì)數(shù)器T0、T1的結(jié)構(gòu) (135)
6.1.2 定時(shí)/計(jì)數(shù)器的原理 (136)
6.2 定時(shí)/計(jì)數(shù)器的控制方法 (136)
6.2.1 定時(shí)/計(jì)數(shù)器寄存器 (136)
6.2.2 定時(shí)/計(jì)數(shù)器的初始化 (138)
6.2.3 定時(shí)/計(jì)數(shù)器初值的確定方法 (138)
6.3 定時(shí)/計(jì)數(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 定時(shí)器T0、T1應(yīng)用舉例 (142)
6.4.1 定時(shí)器應(yīng)用舉例 (142)
6.4.2 計(jì)數(shù)器應(yīng)用舉例 (143)
6.4.3 門(mén)控位應(yīng)用舉例 (145)
6.5 定時(shí)/計(jì)數(shù)器T2 (147)
6.5.1 T2的寄存器 (147)
6.5.2 定時(shí)器T2的工作方式 (149)
6.5.3 應(yīng)用例題 (153)
6.6 定時(shí)器T3― WDT監(jiān)視定時(shí)器 (155)
6.6.1 WDT的功能及應(yīng)用特點(diǎn) (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串行口簡(jiǎn)介 (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)點(diǎn) (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 中斷處理過(guò)程 (186)
8.3.1 中斷響應(yīng) (186)
8.3.2 中斷處理 (187)
8.3.3 中斷返回 (188)
8.3.4 中斷請(qǐng)求的撤除 (188)
8.3.5 中斷響應(yīng)時(shí)間 (189)
8.3.6 擴(kuò)充外中斷源 (189)
8.4 中斷程序的設(shè)計(jì)與應(yīng)用 (191)
8.4.1 中斷程序的一般設(shè)計(jì)方法 (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 存儲(chǔ)器的并行擴(kuò)展 (206)
9.2.1 數(shù)據(jù)存儲(chǔ)器擴(kuò)展概述 (206)
9.2.2 訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器的操作時(shí)序 (206)
9.2.3 數(shù)據(jù)存儲(chǔ)器擴(kuò)展舉例 (207)
9.3 并行I/O接口的擴(kuò)展 (208)
9.3.1 擴(kuò)展并行I/O口簡(jiǎn)述 (208)
9.3.2 簡(jiǎn)單并行I /O口的擴(kuò)展 (209)
9.4 串行擴(kuò)展概述 (210)
9.4.1 常用串行總線與串行接口簡(jiǎn)介 (211)
9.4.2 單片機(jī)串行擴(kuò)展的模擬技術(shù) (214)
9.4.3 串行擴(kuò)展的主要特點(diǎn) (214)
9.5 I2C總線 (215)
9.5.1 I2C總線的組成及基本工作原理 (215)
9.5.2 I2C總線的傳輸時(shí)序 (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)換器簡(jiǎ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)換器簡(jiǎ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 鍵盤(pán)接口 (247)
10.1.1 鍵盤(pán)工作原理 (247)
10.1.2 獨(dú)立式按鍵 (248)
10.1.3 行列式鍵盤(pán) (251)
10.2 顯示器接口 (258)
10.2.1 LED顯示器的結(jié)構(gòu)與原理 (258)
10.2.2 LED靜態(tài)顯示方式 (259)
10.2.3 LED動(dòng)態(tài)顯示方式 (260)
10.2.4 液晶顯示器概述 (263)
10.2.5 字符型液晶顯示模塊LCM的組成及原理 (264)
10.2.6 字符型液晶顯示模塊LCM的引腳及說(shuō)明 (265)
10.2.7 LCM的指令 (266)
10.2.8 LCM的復(fù)位及初始化 (268)
10.2.9 LCM的接口及應(yīng)用舉例 (269)
10.3 功率驅(qū)動(dòng)器件及接口電路 (277)
10.3.1 輸出接口的隔離技術(shù) (277)
10.3.2 直流負(fù)載驅(qū)動(dòng)電路 (278)
10.3.3 晶閘管負(fù)載驅(qū)動(dòng)電路 (279)
10.3.4 繼電器接口電路 (280)
10.3.5 固態(tài)繼電器接口電路 (281)
10.4 打印機(jī)接口 (281)
10.4.1 微型打印機(jī)簡(jiǎn)介 (282)
10.4.2 字符代碼及打印命令 (283)
10.4.3 打印機(jī)與單片機(jī)接口舉例 (284)
思考與練習(xí) (286)
第11章 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā) (287)
11.1 應(yīng)用系統(tǒng)研制過(guò)程 (287)
11.1.1 總體方案設(shè)計(jì) (287)
11.1.2 硬件設(shè)計(jì) (288)
11.1.3 軟件設(shè)計(jì) (290)
11.2 開(kāi)發(fā)工具和開(kāi)發(fā)方法 (292)
11.2.1 開(kāi)發(fā)工具 (292)
11.2.2 開(kāi)發(fā)方法 (294)
11.3 恒溫箱溫度控制監(jiān)測(cè)系統(tǒng) (295)
11.3.1 題目分析 (296)
11.3.2 硬件設(shè)計(jì) (296)
11.4.3 軟件設(shè)計(jì) (297)
11.4 PC機(jī)與單片機(jī)間的串行通信設(shè)計(jì) (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)用實(shí)例 (302)
11.5 步進(jìn)電機(jī)控制設(shè)計(jì) (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ù)制對(duì)照表 (321)
附錄C ASCII(美國(guó)標(biāo)準(zhǔn)信息交換碼)表 (322)
附錄D 二進(jìn)制邏輯單元圖形符號(hào)對(duì)照表 (316)
附錄E 常用芯片引腳圖 (324)
參考文獻(xiàn) (326)