《單片機原理及接口技術》以流行單片機芯片AT89C51為主體介紹了單片機的原理、常用單片機接口技術及應用。全書共9章,在硬件基礎知識、匯編軟程序設計的基礎上,按照單片機產品的開發流程,介紹了調試工具軟件Keilc與調試仿真工具軟件Protues。用11個實訓將產品開發的流程理念充分貫穿于其中。達到在穩固掌握基礎原理的基礎上再應用與開發。融教、學、做一體于教材中。針對有些專業還專門設置了課程設計(或綜合訓練)。《單片機原理及接口技術》也特別編寫了8個課題,方便老師與同學們完成該項訓練。
《單片機原理及接口技術》內容精練,實例豐富,用實訓來強化原理的基礎知識,知識點與技能點相結合,既實現了知識的全面性和連貫性,又做NT理論與實踐內容的融合貫通,體現了應用性人才培養的特點。特別適合作為高職高專院校電子信息類、計算機類、自動化類、機電類及控制類各專業的單片機技術課程教材,也可作為職工大學、函授大學、中職學校的教材及單片機應用開發人員的參考書。
任務驅動,行動導向,工學結合,學生主體,過程考核。
目前單片機已經滲透到了人們生活中的各個領域,導彈的導航裝置、飛機上各種儀表的控制、計算機的網絡通信與數據傳輸、工業自動化過程的實時控制和數據處理、廣泛使用的各種智能IC卡、民用豪華轎車的安全保障系統、錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等,這些都離不開單片機,更不用說自動控制領域的機器人、智能儀表和醫療器械了。科技越發達,智能化的東西就越多,使用的單片機也就越多。因此,學習單片機技術越來越成為社會發展的需求。單片機原理及接口技術課程也成為高等學校重要的基礎課或專業課。
全書共9章,按照基礎理論-實訓操作-總結的順序,主要介紹AT89C5l單片機的硬件基礎知識、軟程序設計、調試工具軟件Keilc與軟硬結合的調試仿真工具軟件Protues的融合應用,將產品開發的流程理念充分貫穿于其中。第1章到第5章均是針對單片機最小應用系統的學習,第6章到第8章主要是針對常用接口部分的擴展應用學習,第9章專門介紹2個單片機應用的綜合實例。從專用芯片到Keil的調試,從而完成軟件設計,用工具軟件Protues先進行產品的仿真,再用面包板(實驗PCB或教學實驗板)進行制作。教學時可融合于前面的每一章節中。本書從原理到應用,以應用實例為主,每個例子均已實踐檢測。每一章節均體現“教、學、做”的思想在里面,符合當前工學結合的理念與思路。
本教材是針對學生重點學習單片機基礎并能快速入門產品開發,學會簡單應用制作相應的單片機產品,并能有一定的擴展學習的資源空間接口部分。引入調試軟件KeilC與單片機仿真軟件Protues的相關應用,產品開發的流程理念貫穿于其中,達到在穩固掌握基礎理念的基礎上再應用與開發。每一章節中都配有練習,小結中闡明講授重點,也就是學生學習的重點及方法指導。針對有些專業還專門設置了課程設計(或綜合訓練)。本書也特別編寫了8個課題,方便老師與同學們完成該項訓練。
通過對本教材的學習,將使讀者達到以下目標。
(1)了解單片機的組成、內部結構和特點,獲得其硬件和軟件的必要基礎知識;
(2)在初步掌握MCS-51單片機指令系統的基礎上,掌握匯編語言程序的分析,能根據實際工作要求進行一般的程序設計和應用;
(3)能基本掌握Keil(程序調試軟件)與Protues(虛擬軟件與硬件的連機仿真)兩個軟件界面操作與應用;
(4)基本掌握單片機內部硬件資源和常用外圍電路的初步應用方法;
(5)掌握中小型單片機應用電路的軟硬件設計和調試。通過很多實例的講解,能完全掌握整個單片機系統的開發過程。
本書可作為高職高專院校電子信息類、計算機類、自動化類、機電類及控制類各專業的單片機技術課程教材,也可作為職工大學、函授大學、中職學校的教材及單片機應用開發人員的參考書。
第1章 單片機的基礎知識
1.1 計算機中的數和編碼
1.1.1 計算機中的數制
1.1.2 符號數的表示法
1.1.3 二進制數的算術運算
1.1.4 二進制編碼
1.1.5 邏輯電路
1.2 單片機概論
1.2.1 嵌入式系統、單片機
1.2.2 單片機的發展概況
1.2.3 應用廣泛的AT89系列單片機
1.3 單片機應用研發工具和教學實驗裝置
1.3.1 單片機應用研發工具
1.3.2 單片機課程教學實驗裝置
1.3.3 AT89C5l單片機研發工具操作演示
小結
練習題1
第2章 AT89C51單片機芯片的硬件結構
2.1 AT89C:51單片機的邏輯結構及信號引腳
2.1.1 AT89C51單片機的結構框圖
2.1.2 AT89C51單片機芯片內部結構
2.1.3 Ar89C51的信號引腳
2.1.4 時鐘與復位電路
2.2 AT89C51的內部存儲器
2.2.1 內部數據存儲器低128單元
2.2.2 內部數據存儲器高128單元
2.2.3.MCS.5 1的堆棧
2.2.4 內部程序存儲器
2.3 實訓1:單片機復位、晶振、ALE信號的觀測
2.3.1 電路安裝
2.3.2 信號觀測
小結
練習題2
第3章 單片機的指令系統及程序設計
3.1 基本概念
3.1.1 指令、指令系統、機器代碼
3.1.2 程序、程序設計、機器語言
3.1.3 匯編語言、匯編語言指令格式
3.1.4 匯編(編譯)和編程(固化)
3.1.5 匯編語言常用符號
3.2 MCS.5 1單片機指令的尋址方式
3.2.1 MCS.5 1單片機指令的尋址方式
3.2.2 MCS.5 l單片機指令尋址方式小結
3.3 匯編語言的指令系統
3.3.1 數據傳送指令
3.3.2 算術運算指令
3.3.3 邏輯運算類及移位類指令
313.4 控制轉移類指令
3.3.5 位操作指令
3.4 MCS.5 1單片機偽指令
3.4 一常量和標號
3.4.2 常用偽指令
3.4.3 手工匯編和機器匯編
3.5 匯編語言程序設計
3.5.1 順序程序設計
3.5.2 分支程序設計
3.5.3 循環程序設計
3.5.4 子程序設計
3.6 經典功能模塊匯編語言程序設計實例
3.6.1 定時程序
3.6.2 查表程序
3.6.3 碼制轉換程序
3.6.4 算術運算程序
3.7 實訓2:軟件調試仿真器:KeiluVision及其應用
3.7.1 KeiluVision快速入門
3.7.2 用Keil設計延時子程序并仿真調試
3.7.3 用Keil設計分支結構程序并仿真調試
3.7.4 用Keil設計查表程序并仿真調試
3.8 實訓3:跑馬燈的:Proteus設計與仿真
3.8.1 ProteusISIS窗口與基本操作
3.8.2 ProteusISIS庫元件的認識
3.8.3 跑馬燈Proteus電路原理圖的設計
3.8.4 跑馬燈Proteus與KeiluVision的聯調與仿真
小結
練習題3
第4章 AT89C51l,O及其應用舉例
4.1 I/O口結構與負載能力
4.1.1 I/O口結構與工作原理
4.1.2 I/O口負載能力
4.2 實訓4:I/O,的簡單應用
4.2.1 單片機控制數碼管靜態顯示
4.2.2 單片機用開關控制的LED顯示
4.2.3 單片機用開關控制數碼管靜態顯示
4.3 單片機與矩陣式鍵盤的接口技術
4.3.1 基礎知識
4.3.2 接口電路與程序設計
4.3.3 運行與思考
4.4 實訓5I/O口應用
4.4.1 單片機與LED數碼管的動態顯示
4.4.2 單片機與LED數碼管的動態顯示Proteus仿真
4.4.3 編程器的使用
4.4.4 制作實訓及思考
小結
練習題4
第5章 AT89C51單片機的中斷與定時
5.1 中斷
5.1.1 數據傳送控制方式
5.1.2 中斷基本概念
5.2.MCS.5 1單片機中斷系統結構
5.2.1 MCS.5 1的中斷
5.2.2 與中斷控制有關的寄存器
5.2.3 中斷響應過程
5.2.4 中斷程序設計舉例
5.3 MCS.5 l的定時器/計數器
5.3.1 定時方法
5.3.2 定時和計數功能
5.3.3 定時/計數器的控制
5.3.4 定時器/計數器初值的計算
5.3.5 定時器/計數器的工作方式
5.3.6 定時器/計數器的應用舉例
5.4 實訓6:定時/計數器與中斷綜合應用舉例
5.4.1 基于AT89C51的60s倒計時裝置的設計與仿真
5.4.2 基于AT89C51的按鍵發聲裝置的設計與仿真
小結
練習題5
第6章 AT89C51單片機存儲器的擴展技術
6.1 存儲器概述
6.1.1 存儲器的類型
6.1.2 存儲器的性能指標與分級結構
6.1.3 常用的只讀存儲器芯片
6.1.4 常用的隨機讀/寫存儲器芯片
6.2 MCS.5 l單片機存儲器的擴展
6.2.1 AT89C51存儲器擴展的三總線
6.2.2 擴展存儲器的編址技術
6.2.3 程序存儲器的擴展
6.2.4 數據存儲器的擴展
6.2.5 存儲器的綜合擴展
6.3 實訓7:用E2PROM擴展AT89C5l單片機ROM、RAM
6.3.1 E2pROM存儲器2864A
6.3.2 E2PROM擴展ROM、RAM電路設計
6.3.3 E2PROM擴展ROM、RAM程序設計
6.3.4 運行與思考
小結
練習題6
第7章 AT89C51單片機的串行接口技術
7.1 AT89C51單片機之間的串行通信接口技術及仿真
7.1.1 串行通信的基本原理
7.1.2 AT89C51串行通信基礎知識
7.1.3 硬件接口電路設計
7.1.4 軟件接口程序設計
7.1.5 單片機之間的串行通信:Protues仿真
……
第8章 單片機I/O擴展及應用
第9章 單片機實際應用制作
(3)邏輯運算及移位指令
①邏輯運算有“與”、“或”和“異或”運算指令,逐位進行,目的寄存器可以是A或directo
②循環移位必須在A中進行,分為帶或不帶Cy的左移或右移指令。
③字節(8位)清零和取反必須在A中進行。
(4)控制轉移類指令
①無條件轉移指令可分為長轉移、絕對轉移、相對轉移和間接轉移4種。長轉移IdMP轉移范圍是64KB;絕對轉移AJMP轉移范圍是與當前PC值同一2KB范圍;相對轉移SJMP轉移范圍是當前PC為-128B-127B。使用AJMP和SJMP指令應該注意轉移目標地址是否在轉移范圍內,若超出范圍,程序將出錯。間接轉移也稱散轉指令,屬變址尋址,以DPTR為基址,由A的值來決定具體的轉移地址。
②條件轉移指令可分為判C轉移、判bit轉移、判A轉移、減1非0轉移和比較轉移指令。滿足條件,則轉移;不滿足條件,則程序順序執行。
③調用指令根據其調用子程序范圍分為長調用和絕對調用兩種,其特點類似于長轉移和絕對轉移指令。長調用可調用64KB范圍內的子程序;絕對調用只能調用與當前PC值同一2KB范圍內的子程序。
④返回指令對應于調用指令,分為子程序返回和中斷返回兩種,兩者不能混淆。其功能都是從堆棧中取出斷點地址,送入PC,使程序從主程序斷點處繼續執行。
⑤空操作指令的功能僅使PC加1,常用于在延時或等待程序中時間“微調”。
(5)位操作類指令
①位傳送只能在Cy與bit之間進行,bit與bit之間不能直接傳送。
②位修正分置1、清零和取反,只能由Cy或bit進行。
③位邏輯運算只有“與”、“或”兩種指令,無位“異或”指令。
4.偽指令不是指令,是對匯編語言源程序進行匯編時,提供有關匯編信息的輔助標記。其中最常用的有:起始偽指令ORG,用于規定指令起始地址;等值偽指令EQU,用于給字符賦值;定義字節偽指令DB,用于在程序存儲器中定義字節數據,定義字偽指令DW,用于在程序存儲器中定義字數據。
、
對于具體指令,要掌握格式和功能,但因為指令條數多,開始時不宜死記硬背,應在程序設計內容時,多加練習。
5.在進行程序設計時,首先需要明確單片機應用系統預計完成的設計任務、功能要求和硬件資源,然后確定算法并進行優化,接著畫程序流程圖,然后再編制和調試程序。程序流程圖是用各種圖形、符號、指向線等來描述程序的執行過程,可以幫助設計程序、閱讀程序和查找程序中的錯誤。讀者在編程的過程中要養成先畫流程圖的好習慣。
一個好的程序不僅要完成規定的功能任務,而且還應該執行速度快、占用內存少、條理清晰、閱讀方便、便于移植、巧妙而實用。采用循環結構和子程序可以使程序的容量大大減少,提高程序的效率,節省內存。
結構化程序設計方法具有明顯的優點,任何復雜的程序都可由順序結構、分支結構和循環結構構成。