本書針對目前最通用的80C51單片機,在講述其匯編指令系統的基礎上,以C51編程語言為主,內容組織以項目導向為主,結合Keil編程環境,并在Proteus仿真平臺上進行仿真驗證。本書分為基礎篇、應用篇和提高篇。基礎篇(第1~3章)主要講述80C51單片機基本結構及其開發環境、指令系統、C51編程簡介,基礎篇以80C51單片機基本概念為主,力求簡潔。應用篇(第4~8章)則主要以80C51單片機的輸入/輸出接口、中斷、定時器、串口通信為主要內容,結合具體項目實施展開教學。提高篇(第9~12章),結合項目實施介紹A/D和D/A轉換,通過萬年歷、步進電機控制、簡易電子琴制作等項目作為80C51單片機知識綜合應用,在項目實施過程中進一步培養獨立思考和解決問題的能力。
本書以項目實施為導向,體現了工學結合特色,實用性強,既可作為高等院校、職業院校、電視大學等的教學用書,也是單片機愛好者自學單片機的合適教材,還可作為從事單片機應用的技術人員的參考書。
前言
單片機由于其體積小、功能強、功耗低、可靠性高和性價比高等優點,在過程控制、機電一體化產品、智能儀器、家用電器以及計算機網絡及通信等領域得到了廣泛應用。
隨著科學技術的日新月異,單片機的發展也經歷了從4位、8位到16位、32位的發展階段。在眾多廠商的支持下,如PHILIPS、SImemens、AMD、NEC、Atmel等,51系列單片機已發展出上百個品種的大家族。8051單片機功能更豐富、內存容量更大、運行速度更快,發展至今,其他任何一個單片機系列均未發展到如此的規模,因而8051是單片機教學的首選。
匯編語言作為一個符號化的機器語言,其代碼執行效率高,運行速度快,對8051單片機內核管理方便,可以充分發揮單片機的硬件性能,非常適合于編寫實時性要求較高的控制程序。但其開發的工作量大,程序的可讀性差。相比之下,作為高級語言的C語言具有可讀性強、編程簡單和調試方便的特點。本書在系統講述單片機硬件結構和8051匯編語言指令系統的基礎上,以C51語言為主,進行單片機內部資源及外部接口程序的開發。筆者認為,在對指令系統單片機內部結構基本了解的基礎上,應用C51編程更為高效。
在結構的組織上,針對基礎理論和實踐應用的不同,對理論知識的闡述力求全面、詳盡。對實踐應用部分的內容組織,以項目為導向,體現工學結合特色,在項目的組織實
前言
單片機由于其體積小、功能強、功耗低、可靠性高和性價比高等優點,在過程控制、機電一體化產品、智能儀器、家用電器以及計算機網絡及通信等領域得到了廣泛應用。
隨著科學技術的日新月異,單片機的發展也經歷了從4位、8位到16位、32位的發展階段。在眾多廠商的支持下,如PHILIPS、SImemens、AMD、NEC、Atmel等,51系列單片機已發展出上百個品種的大家族。8051單片機功能更豐富、內存容量更大、運行速度更快,發展至今,其他任何一個單片機系列均未發展到如此的規模,因而8051是單片機教學的首選。
匯編語言作為一個符號化的機器語言,其代碼執行效率高,運行速度快,對8051單片機內核管理方便,可以充分發揮單片機的硬件性能,非常適合于編寫實時性要求較高的控制程序。但其開發的工作量大,程序的可讀性差。相比之下,作為高級語言的C語言具有可讀性強、編程簡單和調試方便的特點。本書在系統講述單片機硬件結構和8051匯編語言指令系統的基礎上,以C51語言為主,進行單片機內部資源及外部接口程序的開發。筆者認為,在對指令系統單片機內部結構基本了解的基礎上,應用C51編程更為高效。
在結構的組織上,針對基礎理論和實踐應用的不同,對理論知識的闡述力求全面、詳盡。對實踐應用部分的內容組織,以項目為導向,體現工學結合特色,在項目的組織實施中穿插介紹有關知識點。項目實施體現實際電子產品的開發流程,在KeilμVersion4下編程,在Proteus仿真平臺下進行仿真,最后將代碼燒寫到單片機中。
作者
2014.12
第1章8051單片機最小系統設計
1.1單片機簡介
1.1.1單片機與單片微計算機系統
1.1.2單片機發展概述
1.1.3常用單片機系列
1.280C51單片機引腳及功能
1.38051單片機存儲器結構
1.3.1外部數據存儲器
1.3.2內部數據存儲器(內RAM)
1.4單片機最小系統設計
1.5KEIL編程環境
1.6Proteus仿真調試環境
1.6.1Proteus簡介
1.6.2Proteus仿真環境
1.6.38051單片機最小系統的Proteus設計與仿真 第1章8051單片機最小系統設計
1.1單片機簡介
1.1.1單片機與單片微計算機系統
1.1.2單片機發展概述
1.1.3常用單片機系列
1.280C51單片機引腳及功能
1.38051單片機存儲器結構
1.3.1外部數據存儲器
1.3.2內部數據存儲器(內RAM)
1.4單片機最小系統設計
1.5KEIL編程環境
1.6Proteus仿真調試環境
1.6.1Proteus簡介
1.6.2Proteus仿真環境
1.6.38051單片機最小系統的Proteus設計與仿真
習題
第2章指令系統及匯編語言程序設計――發光二極管的控制
2.18051指令格式
2.2尋址方式
2.3指令系統
2.3.1指令分類
2.3.2數據傳送類指令
2.3.3算術運算類指令
2.3.4邏輯運算及移位指令
2.3.5位操作類指令
2.3.6控制轉移類指令
2.4匯編語言程序設計
2.4.1偽指令
2.4.2匯編
2.4.3程序設計的基本方法
2.5程序設計舉例
2.5.1順序結構
2.5.2分支結構
2.5.3循環結構
2.5.4查表結構
習題
第3章C51語言基本結構
3.1C51關鍵字與標示符
3.2C51數據類型及運算符
3.2.1C51數據類型
3.2.2運算符及表達式
3.3流程控制
3.3.1順序結構
3.3.2分支結構
3.3.3循環結構
3.4函數
3.4.1C51函數簡介
3.4.2最簡單的C51程序
3.4.3C51程序實例及特點
習題
第4章輸出接口電路及控制――4位數碼管控制電路設計制作
4.1MCS?51的輸入/輸出端口
4.1.1P0口
4.1.2P1口
4.1.3P2口
4.1.4P3口
4.2輸出接口電路設計
4.2.1驅動LED
4.2.2驅動蜂鳴器
4.2.3驅動繼電器
4.3LED數碼管顯示
4.3.1七段LED數碼管的結構
4.3.2數碼管的顯示原理
4.3.3數碼管的顯示方式
4.44位數碼管控制電路設計制作
習題
第5章輸入接口電路及控制――4×4鍵盤設計制作
5.1MCS?51的輸入接口
5.2輸入設備及接口電路
5.2.1輸入設備
5.2.2輸入接口電路設計
5.34×4鍵盤設計制作
習題
第6章中斷系統――按鍵中斷電路設計制作
6.1中斷系統
6.1.1中斷概念
6.1.2中斷系統構成
6.1.3外部中斷
6.2外部中斷的應用
6.2.1中斷的響應
6.2.2外部中斷的初始化
6.2.3外部中斷的服務程序
6.3按鍵中斷電路設計制作實訓
習題
第7章定時器/計數器――時鐘設計制作
7.1單片機定時器/計數器
7.1.1定時器內部結構
7.1.2特殊功能寄存器
7.1.3工作方式0
7.1.4工作方式1
7.1.5工作方式2
7.1.6工作方式3
7.2設計信號發生器
7.3秒時鐘設計制作
習題
第8章串行口通信――上位機串行口控制LED
8.1單片機串行口
8.1.1串行通信的概念
8.1.2串行通信數據格式
8.1.3MCS51串行口的結構
8.1.4串行口的特殊功能寄存器
8.1.5波特率與串行口初始化
8.1.6串行口的服務程序
8.2上位機串行口控制LED
8.3利用串行口分析直流電機轉速
習題
第9章A/D應用――溫度檢測電路設計制作
9.1模/數轉換原理
9.1.1模/數轉換器及其原理
9.1.2模/數轉換的主要技術指標
9.2模/數轉換芯片ADC0809
9.3溫度檢測電路設計及制作
習題
第10章D/A應用――信號發生器設計制作
10.1數/模轉換原理
10.1.1倒T形電阻網絡
10.1.2數/模轉換器的主要技術指標
10.2模/數轉換芯片DAC0832
10.3信號發生器的設計及制作
習題
第11章單片機實用系統設計與制作
11.1萬年歷設計制作
11.1.1液晶顯示簡介
11.1.21602字符型LCD簡介
11.1.3DS1302簡介
11.1.4DS18B20簡介
11.1.5帶溫度顯示的可調式萬年歷
11.2步進電機控制電路的設計與制作
11.2.1步進電機的工作原理
11.2.2步進電機的種類
11.2.3步進電機的驅動原理
11.2.4速度、轉向和開停可控制的步進機
習題
第12章聲音的控制――簡易電子琴的設計制作
12.1聲音的控制原理
12.1.1聲音控制的硬件電路
12.1.2音調的確定
12.1.3節拍的確定
12.2應用實例
12.2.1演奏自然音
12.2.2按鍵“彈奏”音樂
12.2.3播放一首音樂
12.3簡易電子琴的設計及制作
習題
參考文獻