本書主要針對工科類本科專業(yè)應用型人才培養(yǎng)編寫,內容強調理論與實際的結合,突出學以致用,特別適合以培養(yǎng)應用型人才為目標的學校使用。
本書分為11章,第1章主要介紹微控制器及應用技術的歷史、現狀和發(fā)展,微控制器的特點和應用;第2章主要介紹80C51微控制器的基本概念、組成結構及工作原理;第3章主要介紹微控制器的指令系統;第4章主要介紹匯編語言的程序設計思路和常用程序結構;第5章主要介紹MSC51微控制器定時/計數器和中斷系統及其應用;第6章主要介紹80C51微控制器串口通信的概念及其編程應用;第7章主要介紹80C51微控制器的系統擴展;第8章主要介紹80C51微控制器的模擬量接口;第9章主要介紹80C51微控制器的人機接口;第10章主要介紹微控制器系統C51語言的程序設計方法;第11章主要介紹微控制器的應用系統設計方法。此外,要求學生學會Keil軟件的程序調試、Proteus仿真軟件的應用及仿真儀的使用和開發(fā)。
本書可以作為本科電子信息、自動化、電氣工程、通信、機電類、計算機應用等專業(yè)的教材,也可供高等?圃盒!⒏叩嚷殬I(yè)技術學院及中等職業(yè)技術學校等院校的計算機專業(yè)學生使用,同時,可作為廣大計算機愛好者和相關技術人員的自學參考書。
近年來,隨著計算機技術日新月異,微控制器的檔次不斷提高,應用領域不斷擴大,特別是在工業(yè)測量與控制、智能儀器儀表、日用家電等領域技術,應用更為普遍。為了盡快推廣微控制器應用技術,使技術人員在微控制器軟、硬件的應用與開發(fā)方面打下堅實的基礎,編者編寫本書,旨在向讀者介紹有代表性的主流機型MCS51系列單片機。它作為微控制器大家庭中的一員,所擁有的用戶zui多、應用zui廣、功能zui完善。本書詳細地介紹了MCS51系列單片機的硬件結構、工作原理、指令系統、接口電路、中斷系統、定時/計數器、串口通信及單片機各功能部件的組成和應用,各章提供了大量的應用實例,以方便讀者進一步熟悉和掌握單片機應用與開發(fā)的基本方法和技巧。
微控制器誕生于20世紀70年代中期,經過數十年的發(fā)展,其成本越來越低,而性能越來越強大,這使其應用已經無處不在,遍及各個領域,例如電機控制、條碼閱讀器/掃描器、游戲設備、電話、HVAC(采暖通風與空調)、樓宇安全與門禁控制系統、工業(yè)控制與自動化系統和白色家電(洗衣機、微波爐)等。
近年來,隨著計算機技術日新月異,微控制器的檔次不斷提高,應用領域不斷擴大,特別是在工業(yè)測量與控制、智能儀器儀表、日用家電等領域技術,應用更為普遍。為了盡快推廣微控制器應用技術,使技術人員在微控制器軟、硬件的應用與開發(fā)方面打下堅實的基礎,我們編寫本書,旨在向讀者介紹有代表性的主流機型MCS51系列單片機。它作為微控制器大家庭中的一員,所擁有的用戶zui多、應用zui廣、功能zui完善。本書詳細地介紹了MCS51系列單片機的硬件結構、工作原理、指令系統、接口電路、中斷系統、定時/計數器、串口通信及單片機各功能部件的組成和應用,各章提供了大量的應用實例,以方便讀者進一步熟悉和掌握單片機應用與開發(fā)的基本方法和技巧。
本書由桂林航天工業(yè)學院的韓興國、羅文軍擔任主編,桂林航天工業(yè)學院的秦展田、鄒愛成、陳志、覃金昌、王燦、王為慶擔任副主編。全書由桂林航天工業(yè)學院的韓興國負責統一審核。
在本書編寫過程中,得到了華中科技大學出版社領導及相關編輯的大力支持及幫助;同時也得到了桂林航天工業(yè)學院機械工程學院領導和同人的關心,他們提出了極好的建議;還得到了桂林航天工業(yè)學院各級領導的關心及支持。在此,一并致以真誠的謝意。
由于編者水平有限,不當之處在所難免,懇請廣大讀者批評指正。
編者
2017年5月
第1章緒論(1)
1.1電子計算機概述(1)
1.1.1電子計算機的結構(1)
1.1.2微型計算機的組成(2)
1.1.3微控制器及其結構(2)
1.2微控制器的發(fā)展過程及趨勢(3)
1.2.1微控制器的發(fā)展過程(3)
1.2.2微控制器的發(fā)展趨勢(4)
1.351系列微控制器(4)
1.3.1MCS51微控制器按容量配置分類(4)
1.3.2MCS51微控制器按芯片的制造工藝分類(5)
1.3.3與MCS51微控制器兼容的微控制器(5)
1.4微控制器的特點及應用(6)
1.4.1微控制器的特點(6)
1.4.2微控制器的應用(6)
1.5數制與編碼(7)
1.5.1數制的常用類型(7)
1.5.2數制的轉換(8)
1.5.3編碼(9)
1.6微控制器應用系統開發(fā)簡述(12)
1.6.1微控制器應用系統開發(fā)介紹(12)
1.6.2Vision集成開發(fā)環(huán)境簡介(12)
第2章80C51的基本結構和工作原理
(14)
2.180C51的基本結構(14)
2.1.180C51的結構簡圖(14)
2.1.280C51的外部引腳(15)
2.280C51的CPU(16)
2.2.1運算器(17)
2.2.2控制器(18)
2.2.3其他寄存器(19)
2.380C51的存儲器(20)
2.3.180C51的ROM(20)
2.3.280C51的RAM(21)
2.3.380C51的特殊功能寄存器(SFR)(22)
2.480C51的并行I/O端口(24)
2.4.1P1口(24)
2.4.2P2口(25)
2.4.3P3口(26)
2.4.4P0口(27)
2.5時鐘電路和復位電路(28)
2.5.1時鐘電路(28)
2.5.2復位電路和復位狀態(tài)(28)
第3章MCS51微控制器的指令系統(31)
3.1指令系統概述(31)
3.1.1指令的書寫格式(31)
3.1.2指令符號(32)
3.1.3指令的字節(jié)數(33)
3.251單片機的尋址方式(34)
3.2.1寄存器尋址方式(34)
3.2.2直接尋址方式(35)
3.2.3立即尋址方式(35)
3.2.4寄存器間接尋址方式(36)
3.2.5基址加變址尋址方式(37)
3.2.6相對尋址方式(37)
3.2.7位尋址方式(38)
3.3數據傳送類指令(38)
3.3.1以累加器A為一方的傳送指令(38)
3.3.2不以累加器A為一方的傳送指令(39)
3.3.3用立即數置數的指令(39)
3.3.4訪問片外RAM的傳送指令(39)
3.3.5基址寄存器加變址寄存器間址指令(40)
3.3.6交換指令(40)
3.3.7進棧出棧指令(41)
3.4算術運算類指令(42)
3.4.1加法指令(42)
3.4.2減法指令(43)
3.4.3加1指令(43)
3.4.4減1指令(43)
3.4.5其他算術運算類指令(44)
3.5邏輯運算類指令(45)
3.5.1與指令(45)
3.5.2或指令(46)
3.5.3異或指令(46)
3.5.4A操作指令(46)
3.6控制轉移類指令(48)
3.6.1無條件轉移指令(48)
3.6.2條件轉移指令(50)
3.6.3子程序調用指令(53)
3.6.4返回指令(54)
3.6.5空操作指令(54)
3.7位操作類指令(55)
3.7.1位傳送指令(55)
3.7.2位邏輯操作指令(56)
3.7.3位條件轉移指令(56)
第4章MCS51微控制器的匯編語言程序設計(61)
4.1概述(61)
4.1.1程序設計語言(61)
4.1.2匯編語言的格式(62)
4.1.3偽指令(63)
4.2匯編語言程序設計步驟(65)
4.3基本程序結構(66)
4.3.1順序程序(66)
4.3.2查表程序(67)
4.3.3分支程序(68)
4.3.4循環(huán)程序(73)
4.3.5子程序(74)
4.3.6其他程序(76)
第5章MCS51微控制器的中斷系統及定時/計數器(80)
5.151單片機的中斷系統(80)
5.1.1中斷系統的結構(80)
5.1.251單片機的中斷源(81)
5.1.351單片機中斷的控制(83)
5.251單片機的中斷處理過程(84)
5.2.1中斷響應的條件和時間(84)
5.2.2中斷響應過程(86)
5.2.3中斷返回(86)
5.2.4中斷程序舉例(87)
5.351單片機的定時/計數器(89)
5.3.1定時/計數器的結構和工作原理(89)
5.3.2定時/計數器的控制(90)
5.451單片機定時/計數器的工作方式(91)
5.4.1工作方式0(92)
5.4.2工作方式1(92)
5.4.3工作方式2(93)
5.4.4工作方式3(94)
5.4.5定時/計數器用于外部中斷的擴展(94)
5.4.6定時/計數器應用舉例(95)
第6章80C51微控制器的串行通信(101)
6.1串行通信的基本概念(101)
6.1.1數據通信(101)
6.1.2串行通信的傳輸方式(102)
6.1.3同步通信和異步通信(102)
6.1.4波特率(103)
6.1.5三種標準串行通信接口(104)
6.2串行口結構及其寄存器(106)
6.3串行口工作方式(109)
6.3.1方式0(109)
6.3.2方式1(110)
6.3.3方式2和方式3(113)
6.4串行口4種工作方式波特率設置(115)
6.5串行口的編程和應用(116)
6.5.1串行口方式0的應用(117)
6.5.2串行口方式1的應用(118)
6.5.3串行口方式2和方式3的應用(120)
6.6串行口多機通信原理(121)
第7章80C51微控制器的系統擴展(125)
7.1系統擴展原理(125)
7.2擴展存儲器編址(128)
7.2.1線選法(128)
7.2.2全地址譯碼法(131)
7.2.3部分地址譯碼法(135)
7.3程序存儲器擴展(136)
7.3.1程序存儲器介紹(136)
7.3.2程序存儲器擴展中常使用的地址鎖存器(138)
7.3.3單片程序存儲器擴展(139)
7.3.4單片機訪問片外程序存儲器的時序(140)
7.4數據存儲器擴展(141)
7.4.1數據存儲器介紹(141)
7.4.2單片數據存儲器擴展(142)
7.4.3單片機訪問片外數據存儲器的時序(143)
7.5并行I/O口擴展(145)
7.5.1I/O口擴展概述(145)
7.5.28255A的結構及功能(145)
7.5.38255A的控制字(147)
7.5.48255A的工作方式選擇(148)
7.5.58255A與單片機的連接及其初始化編程(150)
7.6存儲器綜合擴展(151)
第8章80C51微控制器的模擬量接口(158)
8.1D/A轉換器及其與微控制器的接口(158)
8.1.1DAC0832芯片的主要特性與結構(158)
8.1.2DAC0832與微控制器的接口(160)
8.2A/D轉換器及其與微控制器的接口(162)
8.2.1ADC0809芯片及其與微控制器的接口(162)
8.2.2AD574A芯片及其與微控制器的接口(165)
8.2.3串行A/D轉換器TLC0831及其與微控制器的接口(169)
第9章80C51微控制器的人機接口(173)
9.180C51與LED的顯示電路設計(173)
9.1.1LED數碼管的顯示和接口(173)
9.1.2LED大屏幕點陣顯示器和接口(178)
9.280C51與鍵盤的接口電路設計(180)
9.2.1按鍵介紹(180)
9.2.2獨立式按鍵及其接口(181)
9.2.3矩陣式按鍵及其接口(183)
9.380C51與蜂鳴器的接口電路設計(185)
9.480C51與液晶顯示器的接口(186)
9.4.1LCD的分類(186)
9.4.21602點陣字符型液晶顯示器(186)
第10章80C51微控制器的C51語言程序設計(196)
10.1C51概述(196)
10.1.1單片機支持的高級語言(196)
10.1.2C51語言編程(197)
10.1.3C51語言程序的結構(198)
10.2C51語言的關鍵字與數據類型(199)
10.2.1C51語言的標識符和關鍵字(199)
10.2.2C51語言的數據類型(201)
10.3C51語言的存儲種類、存儲器類型和存儲器模式(203)
10.3.1變量的存儲種類(204)
10.3.2數據的存儲器類型(205)
10.3.3數據的存儲器模式(206)
10.4C51語言的表達式和程序結構(208)
10.4.1C51語言的運算符和表達式(208)
10.4.2C51語言程序的結構(209)
10.4.3C51語言的數據輸入/輸出(210)
10.5C51語言的函數(211)
10.5.1C51語言函數概述(211)
10.5.2C51語言的中斷服務函數(213)
10.5.3C51語言的庫函數(214)
10.6C51語言的指針與絕對地址訪問(217)
10.6.1指針與指針變量(217)
10.6.2指針變量的類型(217)
10.6.3指針的其他問題(219)
10.6.4C51語言的絕對地址訪問(221)
10.751單片機的混合編程(223)
10.7.1C51語言與匯編語言混合編程概述(223)
10.7.2在C51代碼中嵌入匯編代碼(223)
10.7.3C語言程序調用匯編語言程序(225)
10.7.4匯編語言程序和C語言程序相互調用變量(229)
10.8集成開發(fā)環(huán)境Keil Vision5(229)
10.8.1Keil Vision5簡介(229)
10.8.2軟件的啟動和運行(230)
10.8.3軟件的使用方法(231)
第11章微控制器的應用系統設計方法(239)
11.1單片機應用系統設計的步驟(239)
11.1.1總體設計(239)
11.1.2硬件設計(239)
11.1.3軟件設計(240)
11.1.4軟硬件聯合調試(240)
11.2單片機應用系統的可靠性(240)
11.2.1可靠性的概念(241)
11.2.2提高單片機應用系統可靠性的方法(241)
11.3單片機應用系統應用與開發(fā)實例(242)
11.3.1系統功能要求(242)
11.3.2系統硬件設計(242)
11.3.3軟件設計(246)
11.3.4報警子程序(248)
11.3.5打印機啟動和定時時鐘的產生(249)
附錄(250)
附錄AMCS51系列單片機指令系統表(250)
附錄BASCII表(255)
附錄C常用集成電路引腳圖(256)
參考文獻(261)