《單片機原理與應用項目式教程》采用基于工作過程系統化的課程開發方法,通過具有典型代表性的9個項目,以項目為載體,詳細講解了AT89C51單片機的基本應用及接口電路的擴展方法,較好地體現了應用型人才的培養要求。《單片機原理與應用項目式教程》具有以下特點:
1)著力片上資源、強化單片機應用系統的開發訓練。盡管新型單片機不斷推出,但片上資源仍保持穩定發展。《單片機原理與應用項目式教程》仍以匯編語言為主要編程工具,注重單片機應用系統的整個開發過程,突出軟、硬件聯合調試訓練。
2)適合教師講授,易于學生閱讀。《單片機原理與應用項目式教程》所采用的9個項目都具有較強的實踐性和趣味性,通俗易懂,有利于提高學生的學習興趣。
《單片機原理與應用項目式教程》可以作為高職高專電氣自動化、計算機、應用電子以及機電一體化等專業的教材。
目前,51系列單片機在我國的各行各業都得到了廣泛應用。譬如,導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通信與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,全自動洗衣機的控制,機器人,智能儀表,醫療器械以及程控交換,玩具、電子寵物等,這些都離不開單片機。為此,培養單片機應用人才,特別是在工程技術中普及單片機知識有著重要的現實意義。學習和使用單片機是社會發展的必然需求。
在我國職業技術院校的應用電子技術、電氣自動化技術、機電一體化技術、智能控制等專業,都開設了單片機課程。這是一門理論性、實踐性和綜合性都很強的課程,它需要模擬電子技術、數字電子技術、電氣控制技術、電力電子技術和傳感器技術應用等知識作為背景,同時也是一門計算機軟、硬件有機結合的課程。
本書以美國ATMEL公司的AT89C51標準型8位單片機為控制主體,打破傳統的知識體系,結合9個項目,融入理論教學的全過程,十分適合“教-學-做”的教學方法。理論教學與實訓教學融為一體的“一體化技能性教學”是本教材的顯著特點。本書通過所設置的項目分別介紹了單片機的結構原理、指令系統、中斷系統、定時器/計數器、串行接口、擴展技術和接口技術。通過系統的學習,使讀者盡快地掌握單片機應用系統的整個開發流程,為將來從事系統開發奠定堅實的基礎。
前言
緒論1
一、概述1
(一)微型計算機簡介1
(二)單片機的組成2
(三)單片機的發展概況3
(四)單片機的特點4
二、單片機的應用領域4
(一)智能化產品4
(二)智能化接口5
(三)智能化測控系統5
(四)智能化儀表5
三、單片機的發展方向5
(一)CMOS化5
(二)低電壓、低功耗化5
(三)大容量化6
(四)串行擴展技術6
四、計算機數據表示6
(一)常用的進位計數制6
(二)二進制的算術運算7
(三)數制間的轉換8
(四)邏輯數據的表示11
(五)單片機中數的表示形式12
(六)二進制編碼14
(七)微型計算機的常用術語14
五、自測題15
項目一 了解AT89C51單片機及其開發環境16
一、項目引入16
二、相關理論知識17
(一)單片機應用開發環境17
(二)偉福H51/L仿真器20
(三)西爾特SUPERPRO/L+編程器26
(四)AT89C51單片機的結構與引腳30
(五)AT89C51的內部存儲器31
(六)AT89C51單片機并行I/O口輸入/輸出36
(七)AT89C51單片機時鐘與時序38
(八)AT89C51單片機復位40
三、項目實施42
(一)偉福6000仿真軟件使用方法42
(二)編程器SUPERPRO/L+的應用49
(三)AT89C51單片機最小應用系統的設計、安裝及調試53
四、項目小結57
五、自測題57
項目二 會“眨眼睛”的LED電路分析與實踐58
一、項目引入58
二、相關理論知識59
(一)指令系統59
(二)尋址方式61
(三)內部RAM數據傳送類指令64
(四)16位數據傳送指令65
(五)位傳送類指令65
(六)位狀態控制類指令66
(七)無條件控制轉移類指令66
(八)偽指令一67
三、項目實施67
(一)硬件電路原理圖設計67
(二)系統所用元器件、設備及工具68
(三)系統所用匯編源程序的編制68
(四)硬件及軟件的聯合調試70
(五)脫離仿真器后的獨立運行75
四、拓展知識80
(一)堆棧操作PUSH與POP指令80
(二)互換類指令81
(三)外部數據傳送指令82
(四)查表指令82
(五)位邏輯指令83
(六)偽指令二83
五、項目小結85
六、自測題85
項目三 會“流動”及“碰撞”的LED分析與實踐86
一、項目引入86
二、相關理論知識87
(一)邏輯運算類指令87
(二)減1條件轉移、調用、返回與空操作指令89
三、項目實施92
(一)硬件電路設計92
(二)系統所用匯編源程序的編制93
(三)系統所用元器件、設備及工具96
(四)硬件及軟件的聯合調試96
(五)脫離仿真器后的獨立運行101
四、拓展知識106
(一)與、或、異或指令106
(二)位條件判斷指令108
(三)累加器判0轉移指令和比較轉移指令110
五、項目小結114
六、自測題115
項目四 “能掐會算”的單片機分析與實踐117
一、項目引入117
二、相關理論知識118
(一)單片機的算術運算118
(二)單片機的算術運算類指令118
三、項目實施120
(一)硬件電路原理圖設計120
(二)系統所用匯編源程序的編制121
(三)系統所用元器件、設備及工具122
(四)硬件及軟件的聯合調試122
(五)脫離仿真器后的獨立運行126
四、拓展知識127
(一)乘法指令127
(二)除法指令129
(三)十進制調整指令130
五、項目小結131
六、自測題132
項目五 “流速”可控的LED分析與實踐133
一、項目引入133
二、相關理論知識133
(一)AT89C51單片機的中斷系統133
(二)AT89C51單片機的定時器/計數器139
三、項目實施144
(一)硬件電路原理圖設計144
(二)系統所用元器件、設備及工具145
(三)系統所用匯編源程序的編制146
(四)硬件及軟件的聯合調試148
(五)脫離仿真器后的獨立運行149
四、拓展知識150
(一)定時器/計數器初值TC的計算150
(二)外部中斷源的擴展152
五、項目小結153
六、自測題154
項目六 開關信號狀態讀取與顯示電路的制作155
一、項目引入155
二、相關理論知識155
(一)使用8255擴展I/O端口155
(二)LED 數碼管顯示接口165
三、項目實施168
(一)硬件電路原理圖設計168
(二)系統所用元器件、設備及工具168
(三)系統所用匯編源程序的編制170
(四)硬件及軟件的聯合調試171
(五)脫離仿真器后的獨立運行172
四、拓展知識172
(一)單片機程序存儲器的擴展173
(二)單片機數據存儲器的擴展180
(三)簡單的I/O口擴展182
(四)8155可編程并行I/O口擴展183
五、項目小結189
六、自測題189
項目七 交通信號燈(含急救與應急)電路的分析與實踐190
一、項目引入190
二、相關理論知識190
(一)鍵盤電路工作原理190
(二)獨立式按鍵192
三、項目實施193
(一)硬件電路原理圖設計193
(二)系統所用元器件、設備及工具194
(三)系統所用匯編源程序的編制195
(四)硬件及軟件的聯合調試198
(五)脫離仿真器后的獨立運行199
四、拓展知識200
五、項目小結202
六、自測題202
項目八 單片機系統中“通信與聯絡”的分析與實踐203
一、項目引入203
二、相關理論知識203
(一)單片機通信基礎203
(二)串行通信接口205
三、項目實施211
(一)硬件電路原理圖設計211
(二)系統所用元器件、設備及工具211
(三)系統所用匯編源程序的編制212
(四)硬件及軟件的聯合調試213
(五)脫離仿真器后的獨立運行214
四、拓展知識215
(一)RS232C串行接口標準215
(二)I2C總線接口217
五、項目小結219
六、自測題220
項目九 數字溫度計的制作221
一、項目引入221
二、相關理論知識221
(一)A/D轉換器與AT89C51單片機的接口和應用221
(二)D/A轉換器與AT89C51單片機的接口和應用226
(三)認識AD590溫度傳感器230
三、項目實施232
(一)硬件電路原理圖設計232
(二)系統所用元器件、設備及工具233
(三)系統所用匯編源程序的編制233
(四)硬件及軟件的聯合調試235
(五)脫離仿真器后的獨立運行236
四、拓展知識237
(一)DS18B20溫度傳感器237
(二)DS18B20溫度傳感器的通信協議240
(三)DS18B20溫度傳感器的供電方式241
五、項目小結242
六、自測題242
附錄243
附錄A ASCII表243
附錄B AT89C51單片機指令表244
參考文獻251
(一)指令系統
一個單片機所需執行指令的集合即為單片機的指令系統。單片機使用機器語言、匯編語言及高級語言,因此,指令系統對單片機用戶來說顯得格外重要。因為不管是機器語言、匯編語言還是高級語言,都是直接使用指令編寫程序。另外,不管使用何種語言,最終還是要“翻譯”成為機器語言,單片機才能執行。現在有很多半導體廠商都推出了自己的單片機,使得單片機種類繁多,值得注意的是,不同單片機的指令系統不一定相同,或不完全相同。
所謂機器語言即指令的二進制編碼,而匯編語言則是指令的表示符號。
因為單片機只能識別二進制數,因此,用二進制編碼表示的機器語言,單片機能夠直接執行。但直接使用二進制編碼書寫指令很不方便,因此,常用其十六進制的形式。直接使用機器語言編寫的程序稱為手編程序。
鑒于機器語言具有程序長、不易書寫、難于閱讀和調試、容易出錯,而且出錯不易查找等缺點,使用符號指令就顯得十分必要,通常把表示指令的符號稱為助記符。以助記符表示的指令就是單片機的匯編語言,使用匯編語言編寫的程序稱為匯編語言程序。為起到助記作用,指令常以其英文名稱或縮寫形式來作助記符。
每種單片機都有自己獨特的指令系統,指令系統是開發商和生產廠商定義的,如要使用其單片機,用戶就必須理解和遵循這些指令標準。要掌握某種(類)單片機,指令系統的學習是必需的。
……