單片機原理及應用——基于C51和Proteus仿真(微課版)
定 價:¥59
中 教 價:¥34.81 (5.90折)促銷
庫 存 數(shù): 7
叢 書 名:計算機類技能型理實一體化新形態(tài)系列
本書堅持理論夠用、側(cè)重實用的原則,以Proteus虛擬仿真技術和Keil C51為基礎,用案例/示例來講解每個知識點,對8051單片機的軟、硬件做了較為詳細的闡述。全書內(nèi)容充實、結構清晰、通俗易懂,力爭做到使初學者充滿興趣地學習8051單片機技術。本書共11章,分別為: 8051單片機基本結構、單片機仿真環(huán)境、指令系統(tǒng)與匯編語言程序設計、C51語言程序設計、鍵盤與顯示器接口技術、中斷系統(tǒng)、定時器/計數(shù)器、串行口、數(shù)模與模數(shù)轉(zhuǎn)換接口技術、單片機系統(tǒng)擴展以及Proteus仿真設計實例。其中,第1章、第3章和第4章為本書最基礎和最重要的3章,全面而詳細地介紹了8051單片機硬件和軟件兩方面的知識;第2章介紹了Proteus仿真軟件和C51開發(fā)工具Keil Vision5;第5~11章介紹了各種常見I/O接口的原理與使用方法。本書所有示例均在Proteus上調(diào)試通過,可以直接運行。書中所有源代碼及各種配套資源可在清華大學出版社網(wǎng)站下載。 本書適合作為高等院校計算機類、電氣類、自動化類、通信類、電子信息類、機械類、儀器儀表類及其他相關專業(yè)的單片機教材使用,也可作為從事單片機應用系統(tǒng)開發(fā)的工程技術人員、單片機技術愛好者及各類自學人員的參考書。
本書內(nèi)容來自一線教師的多年教學成果,同時作者有多年的企業(yè)從業(yè)實際工作經(jīng)驗,所以教材定位準,內(nèi)容實用,書中有大量的實用案例,非常適合學生和從業(yè)人員學習。
隨著物聯(lián)網(wǎng)和人工智能等技術不斷向縱深發(fā)展,單片機的重要性更加凸顯。單片機是單片微型計算機的簡稱,是把組成微型計算機的各功能部件(中央處理單元CPU、隨機存取存儲器RAM、只讀存儲器ROM、并行I/O接口、串行通信接口、定時器/計數(shù)器、中斷系統(tǒng)、系統(tǒng)時鐘及系統(tǒng)總線等)封裝在一塊尺寸有限的集成電路芯片中。由于單片機具有可靠性高、體積小、性價比高和應用靈活性強等特點,因而在工業(yè)自動檢測與控制、機器人、數(shù)據(jù)采集、智能儀器儀表、機電一體化產(chǎn)品、汽車電子設備、武器裝備、辦公自動化設備、武器裝備、智能終端、通信設備、導航系統(tǒng)、智能家用電器、計算機外部設備、通信產(chǎn)品和玩具等領域獲得廣泛應用。單片機經(jīng)歷了8位機、16位機和32位機3個發(fā)展階段。8位機以Intel公司的MCS51為代表;16位機以Intel公司的MCS96為代表;32位機以意法半導體(ST)公司采用ARM核的STM32為代表。自從Intel公司于20世紀80年代初推出MCS51系列單片機以后,幾乎所有MCS51系列單片機都以Intel公司最早的典型產(chǎn)品8051為核心,而且增加了一定的功能部件,所以人們習慣于用8051來稱呼MCS51系列單片機。MCS51系列是最早進入我國且在我國得到廣泛應用的單片機主流品種。因為8051單片機結構簡單、指令易學,所以是單片機初學者的首選。如果不學8051單片機,而直接學STM32,通常會遇到很多難題和困惑,要費很大精力;如果學了8051單片機,則較容易對硬件架構、軟件設計、軟硬件結合等相關知識和技術進行總體把握與認知,此時再學STM32,會發(fā)現(xiàn)很容易上手,且能夠更深刻地理解和掌握STM32,可達到事半功倍的效果。因此,通過學習8051單片機可以為其他類型單片機的學習打下堅實的基礎。在目前的單片機應用市場中,8位機和32位機各有各的應用場合,會共存很長時間。為了提高讀者學習8051單片機的效率,本書以仿真實驗代替實物實驗,基于Proteus仿真軟件進行電路設計及程序仿真,使8051單片機的抽象概念直觀化、編程效果可視化。本書共包括11章,第1章介紹了8051單片機的內(nèi)部結構、存儲器結構、引腳功能和并行I/O口等硬件的主要知識點。第2章介紹了Proteus仿真軟件和C51開發(fā)工具Keil Vision5,為后續(xù)各個實驗打下基礎。第3章介紹了指令系統(tǒng)的基本概念、尋址方式和五大類共111條指令,并且通過多個示例介紹了51單片機匯編語言程序設計技術。第4章介紹了C51的數(shù)據(jù)類型和存儲器類型、將變量定義在不同類型存儲器中的方法、使用關鍵字_at_和預定義宏指定變量的絕對地址以及C51指針、C51函數(shù)定義的一般形式、C51與匯編混合編程。第5~11章介紹了各種常見I/O接口的原理與使用,如鍵盤與顯示器接口技術、中斷系統(tǒng)、定時器/計數(shù)器、串行口、數(shù)模與模數(shù)轉(zhuǎn)換接口技術、程序存儲器擴展、數(shù)據(jù)存儲器擴展、8155可編程并行I/O端口擴展以及利用I2C總線進行串行I/O端口擴展等。通過這11章的學習,可以提高讀者單片機軟、硬件系統(tǒng)的整體設計意識和設計能力,為以后深入學習嵌入式技術打下堅實的基礎。本書由北京郵電大學計算機專業(yè)博士、高校副教授張同光擔任主編,河南師范大學洪雙喜和劉春紅、電能易購(北京)科技有限公司王曉兵、鄭州輕工業(yè)大學陳明、新鄉(xiāng)學院田喬梅擔任副主編。其中,洪雙喜、劉春紅、王曉兵和陳明編寫第5~11章,田喬梅編寫第4章,張同光編寫第1~3章及其余部分。全書最后由張同光統(tǒng)稿和定稿。本書得到了河南省高等教育教學改革研究與實踐重點項目(No.2021SJGLX106)、河南省科技攻關項目(No.202102210146)、網(wǎng)絡與交換技術國家重點實驗室開放課題(SKLNST2020101)以及高效能服務器和存儲技術國家重點實驗室的支持,在此表示感謝。本書對應的電子課件、源代碼文件、Proteus仿真電路文件和虛擬機文件等各種配套教學資源可在清華大學出版社網(wǎng)站(https://www.tup.com.cn)下載。本書配套提供了近70個教學視頻,讀者在學習的過程中,可掃描教學視頻二維碼觀看與學習。由于編者水平有限,書中欠妥之處,敬請廣大讀者批評、指正。
編者2023年8月
張同光,副教授,計算機博士,畢業(yè)于北京郵電大學。主要從事計算機方面的教學及科研工作,發(fā)表SCI、EI等學術論文30余篇,主編教材近20本,主持或參與省部級以上項目6個。對Linux操作系統(tǒng)有深入且全面的研究和應用。使用C/C 等語言開發(fā)過若干個橫向項目。講授過的計算機專業(yè)課程有:《Linux 0.11內(nèi)核分析》、《Linux操作系統(tǒng)》、《嵌入式軟件開發(fā)基礎》、《Linux C編程》、《Linux網(wǎng)絡服務與編程》、《Linux驅(qū)動程序設計》、《嵌入式軟件開發(fā)高級》、《軟件工程》、《C 程序設計》、《微機原理》、《計算機網(wǎng)絡原理》、《計算機專業(yè)英語》、《操作系統(tǒng)原理》、《離散數(shù)學》、《計算機組成原理》、《單片機原理》、《C程序設計》、《數(shù)據(jù)結構》、《匯編語言》、《網(wǎng)絡安全技術》等。
第1章8051單片機基本結構11.1單片機概述11.28051單片機的內(nèi)部結構41.3CPU51.3.1運算器51.3.2控制器51.3.3位處理器61.48051單片機的存儲器結構61.4.18051存儲器結構61.4.2程序存儲器71.4.3片內(nèi)數(shù)據(jù)存儲器81.4.4片外數(shù)據(jù)存儲器91.4.5特殊功能寄存器101.58051單片機的引腳功能121.5.18051單片機的引腳121.5.2電源及外接晶振121.5.3控制引腳131.5.4單片機最小系統(tǒng)141.6并行I/O口151.6.1P0口151.6.2P1口161.6.3P2口171.6.4P3口181.7時鐘電路與時序191.7.1時鐘電路191.7.2CPU時序191.8單片機應用系統(tǒng)的開發(fā)過程211.9習題23第2章單片機仿真環(huán)境252.1Proteus和Keil Vision5252.1.1Proteus簡介252.1.2Keil Vision5簡介262.1.3本書實驗環(huán)境262.2流水燈272.2.1使用Proteus設計電路原理圖272.2.2使用Keil Vision5建立工程文件(匯編語言)302.2.3使用Keil Vision5建立工程文件(C語言)342.3Proteus與Keil Vision5聯(lián)合仿真調(diào)試352.4習題36第3章指令系統(tǒng)與匯編語言程序設計373.1指令系統(tǒng)概述373.1.1指令格式373.1.2指令分類383.1.3執(zhí)行指令的過程383.2尋址方式393.2.1寄存器尋址393.2.2直接尋址403.2.3立即尋址403.2.4寄存器間接尋址413.2.5基址變址尋址413.2.6相對尋址423.2.7位尋址433.2.8七種尋址方式總結443.3指令分類詳解443.3.1指令中的符號及其含義443.3.2數(shù)據(jù)傳送類指令453.3.3算術運算類指令483.3.4邏輯運算及移位類指令513.3.5控制轉(zhuǎn)移類指令533.3.6位操作類指令553.451單片機匯編語言程序設計573.4.1匯編語言的特點573.4.2匯編語言的語句格式573.4.3匯編語言的偽指令583.4.4電路原理圖613.4.5順序程序設計613.4.6分支程序設計643.4.7循環(huán)程序設計653.4.8查表程序設計683.4.9匯編語言程序的框架693.5習題70第4章C51語言程序設計734.1C51編程語言簡介734.2本章所有示例使用的電路原理圖744.3C51程序設計基礎744.3.1數(shù)據(jù)類型754.3.2存儲器類型754.3.3bit、sbit、sfr和sfr16數(shù)據(jù)類型774.3.4存儲模式(編譯模式)和存儲器類型804.3.5使用關鍵字_at_指定變量的絕對地址824.3.6使用預定義宏指定變量的絕對地址834.3.7C51指針844.4C51函數(shù)854.4.1函數(shù)定義的一般形式854.4.2函數(shù)的調(diào)用864.4.3本征庫函數(shù)864.5C51程序的一般結構874.6C51與匯編混合編程884.6.1混合編程的必要性884.6.2混合編程的要點884.6.3C51程序中直接嵌入?yún)R編代碼894.6.4C51程序調(diào)用匯編子程序無參數(shù)傳遞的函數(shù)調(diào)用914.6.5C51程序帶1個參數(shù)調(diào)用匯編子程序自動產(chǎn)生匯編源文件924.6.6C51程序帶2個參數(shù)調(diào)用匯編子程序自動產(chǎn)生匯編源文件954.7習題97第5章鍵盤與顯示器接口技術995.1LED數(shù)碼管顯示器接口技術995.1.1LED數(shù)碼管顯示器995.1.2LED數(shù)碼管顯示器的工作方式1005.1.3使用LED數(shù)碼管顯示器1015.1.4使用74HC595驅(qū)動8位LED數(shù)碼管1045.1.5使用MAX7219驅(qū)動多位LED數(shù)碼管1085.2鍵盤接口技術1135.2.1編碼鍵盤接口技術1145.2.2非編碼鍵盤接口技術1155.38279可編程鍵盤/顯示器芯片接口技術1185.3.18279內(nèi)部結構及工作原理1185.3.28279的寄存器1205.3.3使用8279芯片1245.4LCD接口技術1275.4.1LCD工作原理1275.4.2LM016L液晶顯示屏簡介1275.4.3點陣字符型液晶模塊的直接訪問方式1335.4.4點陣字符型液晶模塊的間接訪問方式1365.4.54位數(shù)據(jù)總線接口1385.4.6使用12864點陣圖形LCD顯示模塊1405.5習題144第6章中斷系統(tǒng)1456.1中斷簡介1456.2中斷系統(tǒng)結構與中斷控制1466.2.1中斷系統(tǒng)結構圖1466.2.2中斷控制1476.3中斷函數(shù)1506.4中斷應用舉例1506.4.1中斷源擴展1516.4.2中斷嵌套1526.5習題154第7章定時器/計數(shù)器1567.1定時器/計數(shù)器的工作方式與控制1567.1.1定時器/計數(shù)器的功能1567.1.2工作方式控制寄存器TMOD1567.1.3定時器/計數(shù)器控制寄存器TCON1577.2定時器/計數(shù)器的工作方式1587.2.1工作方式0和工作方式11587.2.2工作方式21607.2.3工作方式31617.3定時器/計數(shù)器應用舉例1627.3.1定時功能1627.3.2計數(shù)功能1687.4習題171第8章串行口1738.1異步串行通信1738.1.1字符的幀格式1738.1.2數(shù)據(jù)傳送速率1748.1.3數(shù)據(jù)通路方式1748.1.4串行口結構1758.2串行通信控制寄存器1768.2.1SCON1768.2.2PCON和波特率1778.2.3IE和IP1788.2.4中斷請求的撤銷1788.3串行口的工作方式1788.3.1工作方式01788.3.2工作方式11818.3.3工作方式2和工作方式31838.4習題191第9章數(shù)模與模數(shù)轉(zhuǎn)換接口技術1939.1ADC及DAC的主要性能指標1939.2DAC接口技術1949.2.1DAC0832與8051單片機的接口方法1949.2.2DAC1208與8051單片機的接口方法2009.2.3串行DAC與8051單片機的接口方法2029.2.4利用DAC接口實現(xiàn)波形發(fā)生器2059.3ADC接口技術2079.3.1比較式ADC0809與8051單片機的接口方法2079.3.2串行ADC與8051單片機的接口方法2119.4習題214第10章單片機系統(tǒng)擴展21510.1線選法和譯碼法21510.2程序存儲器擴展21610.3數(shù)據(jù)存儲器擴展21910.48155可編程并行I/O端口擴展22210.4.18155引腳和內(nèi)部結構22210.4.28155控制字及其工作方式22410.4.38155外部擴展舉例22510.5利用I2C總線進行串行I/O端口擴展22910.5.1I2C串行總線系統(tǒng)的基本結構22910.5.2I2C總線的數(shù)據(jù)傳送規(guī)定23010.5.3I2C接口存儲器芯片24C0423310.5.4I2C接口A/DD/A芯片PCF859123710.6習題243第11章Proteus仿真設計實例24511.1DS18B20多點溫度監(jiān)測系統(tǒng)設計24511.1.1功能要求24511.1.2硬件電路設計24511.1.3軟件程序設計24911.2帶農(nóng)歷的電子萬年歷設計25511.2.1功能要求25511.2.2硬件電路設計25611.2.3軟件程序設計25811.3電子密碼鎖設計26711.3.1功能要求26711.3.2硬件電路設計26711.3.3軟件程序設計267附錄AASCII碼表281附錄B運算符的優(yōu)先級和結合性282參考文獻283