本書選用的STC89C52單片機是51系列單片機的增強型,它完全兼容傳統51系列單片機,具有可在線編程、開發方便的特點。
書中系統、全面地介紹STC89C52單片機的基本原理、硬件結構,并從應用的角度介紹C51語言程序設計、單片機外部電路的擴展,以及與鍵盤、LED顯示器、LCD顯示器、打印機等多種硬件接口的設計方法,詳細介紹串行接口以及A/D、D/A轉換器的功能特點和典型應用,增加了單片機應用系統設計、Proteus仿真和實驗等內容。
本書內容豐富實用,層次清晰,敘述詳盡,方便教學與自學,可作為高等院校電子信息工程、通信工程、電氣自動化、自動控制、智能儀器儀表、電氣工程、機電一體化、計算機科學與技術等專業單片機原理及應用課程的教材,也可作為工程技術人員進行單片機系統開發的參考書。
《單片機原理、應用及Proteus仿真》以讓讀者掌握單片機應用技能為目標,將單片機仿真軟件Proteus和Keil-Vision引入到單片機課程教學和實踐教學中,并使之與現行教學大綱和實驗大綱基本內容緊密融合。基于STC89C52單片機,講述單片機基本原理、硬件結構、指令系統、單片機外部電路、硬件接口等內容,還介紹了如何使用Proteus進行單片機仿真,并精選了10個單片機編程實驗項目。
前言20世紀90年代,單片機在我國迅速普及。如今,由單片機作為主控制器的全自動洗衣機、高檔電風扇、電子廚具、變頻空調、遙控彩電、攝像機、VCD/DVD機、組合音響、電子琴等產品早已遍布人們的生活。從家用消費類電器到復印機、打印機、掃描儀、傳真機等辦公自動化產品,從智能儀表、工業測控裝置到CT、MRI等醫療設備,從數碼相機、攝錄一體機到航天技術、導航設備、現代軍事設備,從形形色色的電子貨幣(如電話卡、水電氣卡)到身份識別卡、門禁控制卡、檔案管理卡以及相關讀/寫卡終端機等,單片機都在里面扮演重要角色。因此有人說單片機無處不在,無所不能。從學習的角度看,單片機作為一個完整的數字處理系統,具備構成計算機的主要單元部件,在這個意義上稱之為單片微機并不過分。通過學習和應用單片機進入計算機硬件設備之門,可達到事半功倍的效果。從應用的角度看,單片機是一種大規模集成電路,可自成一體,相對于其他微處理器所需的大量外部器件的連接都在單片機內部完成,各種信息傳遞的時序關系變得非常簡單,易于理解和接受。用單片機實現某個特定的控制功能十分方便。從設計思想看,單片機的應用意味著從以硬件電路設計為主的傳統設計方法向以軟件設計為主的、對單片機內部資源及外部引腳功能加以利用的設計方法的轉變,從而使硬件成本大大降低,設計工作靈活多樣。往往只需改動部分程序,就可以增加產品的功能,提高產品的性能。總之,單片機不同于通用微型計算機,它能夠靈活地嵌入到各類電子產品中,使電子產品具備智能化和傻瓜化操作,已經成為電子自動化技術的核心基礎。因此,學習單片機非常有必要。本書選用STC89C52單片機,它以MCS51為內核。選用該單片機最主要的原因是其具有在系統可編程功能(ISP),無須專用編程器,可通過串口直接下載用戶程序,便于開發,因此受到初學者特別是學生的青睞。同時,由于該單片機可有效縮短系統開發時間,因此亦可被開發人員所使用。本書以讀者掌握單片機應用技能為目標,將單片機仿真軟件Proteus和Keil Vision引入單片機課程教學和實踐教學中,并使之與現行教學大綱和實驗大綱的基本內容緊密融合。通過單片機仿真實驗,在模擬的應用環境下培養學生的單片機專業技能,不再受實驗器材和實驗學時的限制,并解決了以往基于電路實驗箱教學驗證性實驗偏多帶來的學生難以得到足夠動手機會和教學實踐效果不理想的問題。這種虛擬仿真平臺便于學習者靈活、大膽地進行單片機電路設計、軟件開發和系統調試的訓練,能夠極大程度地激發學生的學習興趣,提高其學習效果。本書共分為13章。第1章是概述,介紹單片機的發展歷程、應用領域和各種常用的低功耗單片機、增強型單片機的性能特點,并介紹國產STC系列單片機的選型; 第2章針對STC89C52單片機的硬件結構進行詳細說明,特別是STC89C52的存儲器結構、I/O端口、時鐘復位方式和省電工作模式,指出了該單片機與傳統51單片機的不同之處; 第3章介紹單片機設計中普遍采用的C51編程語言,并且特別指出C51語言與標準C的區別,即C語言在單片機設計中應注意的地方; 第4章介紹STC89C52單片機中斷基本概念、中斷響應及處理方法等; 第5章介紹STC89C52單片機的定時/計數器T0、T1和T2; 第6章介紹STC89C52單片機串行口的內部結構、串行口的4種工作方式以及4種工作方式下波特率的計算方法、串行口多機通信的工作原理以及雙機串行通信的軟件編程; 第7章介紹STC89C52單片機的系統擴展,如外擴ROM、RAM以及串行總線等; 第8章介紹STC89C52單片機應用系統的人機接口,配置輸入外設和輸出外設; 第9章介紹典型的ADC、DAC集成電路芯片,以及與STC89C52單片機的硬件接口設計及軟件設計; 第10章介紹如何根據需求進行系統設計; 第11、12章以STC89C52單片機應用實驗為主,介紹使用Proteus進行單片機仿真,精選了10個單片機編程實驗項目。本書內容豐富,體系完整,編寫工作由多位作者共同完成,具體分工為: 李傳娣編寫第1章和第8章,趙常松編寫第2章和第9章,李繼超編寫第3章和第4章,王慧瑩編寫第5章和第6章,魏娜編寫第10章,吳顯義編寫第7章,第11章由李傳娣、趙常松、李繼超和魏娜共同編寫,第12章由王慧瑩、魏娜和吳顯義共同編寫。參加本書編寫工作的還有賈春鳳、楊興全和吳登娥,在此對他們付出的辛勤工作表示衷心感謝!由于本書涉及的知識點較多,并且編寫時間倉促,難免有不足和疏漏之處,歡迎廣大讀者提出寶貴意見和建議,以便進一步改進和提高,使之滿足實際教學的需要。
作者2016年8月
目錄
第1章概述
1.1計算機的發展
1.2單片機的定義
1.3單片機的發展概況
1.3.1單片機的發展歷史
1.3.2單片機的發展趨勢
1.4單片機的特點及分類
1.4.1單片機的特點
1.4.2單片機的分類
1.5單片機的應用
1.6常用單片機系列
1.6.18051內核的單片機
1.6.2PIC內核的單片機
1.6.3其他公司8位單片機
本章小結
思考題
第2章STC89C52系列單片機體系結構
2.1STC89C52單片機的內部結構及特點
2.2STC89C52單片機的外部引腳及功能
2.3中央處理器
2.3.1運算器
2.3.2控制器
2.3.3程序執行過程
2.4STC89C52單片機存儲器結構
2.4.1STC89C52單片機程序存儲器
2.4.2STC89C52單片機數據存儲器
2.4.3STC89C52單片機特殊功能寄存器
2.5STC89C52單片機I/O口
2.5.1P0端口
2.5.2P1/P2/P3/P4端口
2.5.35V單片機連接3V器件
2.6STC89C52單片機的時鐘
2.6.1傳統51單片機時序
2.6.2STC89C52單片機時序
2.6.3STC89C52單片機時鐘電路
2.7STC89C52單片機的復位
2.7.1STC89C52單片機的復位電路
2.7.2STC89C52單片機的復位狀態
2.8STC89C52單片機的省電工作模式
本章小結
思考題
第3章C51語言編程基礎
3.1編程語言Keil C51簡介
3.1.1Keil C51簡介
3.1.2C51與標準C的比較
3.2Keil C51語言基礎知識
3.2.1關鍵字
3.2.2數據類型
3.2.3數據的存儲類型
3.2.4數據的存儲模式
3.2.5C51語言的特殊功能寄存器及位變量定義
3.2.6C51語言的絕對地址訪問
3.2.7C51的運算符
3.2.8C51的數組
3.2.9C51的指針
3.3C51語言的函數
3.3.1函數的分類
3.3.2函數的參數與返回值
3.3.3函數的調用
3.3.4中斷服務函數
3.3.5變量及存儲方式
3.3.6宏定義與文件包含
3.3.7庫函數
3.4C51程序設計舉例
3.4.1分支結構程序
3.4.2循環結構程序
本章小結
思考題
第4章STC89C52單片機的中斷系統
4.1概述
4.1.1中斷的概念
4.1.2引進中斷技術的優點
4.1.3中斷源
4.1.4中斷系統的功能
4.2STC89C52單片機的中斷系統
4.2.1中斷系統結構
4.2.2中斷源
4.2.3中斷請求標志
4.2.4中斷控制寄存器
4.3中斷處理過程
4.3.1中斷響應
4.3.2中斷處理
4.3.3中斷返回
4.3.4中斷請求的撤除
4.3.5中斷響應時間
4.4中斷程序的設計
4.4.1單一外中斷的應用
4.4.2兩個外中斷的應用
4.4.3中斷嵌套
本章小結
思考題
第5章STC89C52單片機定時/計數器接口及應用
5.1STC89C52定時/計數器的組成
5.1.1定時/計數器0和1
5.1.2與T0/T1相關的寄存器
5.2定時/計數器的工作方式
5.2.1方式0
5.2.2方式1
5.2.3方式2
5.2.4方式3
5.3定時/計數器0/1的編程
5.4定時/計數器0/1的應用
5.5定時/計數器2
5.5.1與定時/計數器2相關的寄存器
5.5.2定時/計數器2的三種工作方式
5.5.3定時/計數器2的應用
本章小結
思考題
第6章STC89C52單片機串行通信
6.1串行通信概述
6.1.1同步通信和異步通信方式
6.1.2串行通信的數據傳送速率
6.1.3串行通信的制式
6.1.4信號的調制與解調
6.1.5通信協議
6.2STC89C52單片機串行口的結構
6.2.1內部硬件結構
6.2.2串行口特殊功能寄存器
6.3串行口的4種工作方式
6.3.1方式0
6.3.2方式1
6.3.3方式2
6.3.4方式3
6.4波特率的設定與計算
6.5串行口的應用
6.5.1串行口作串/并轉換的應用
6.5.2串行口作雙機通信接口的應用
6.5.3串行口多機通信接口
6.6PC與多個單片機間通信
6.6.1采用RS232C標準總線通信
6.6.2采用RS422A標準總線通信
本章小結
思考題
第7章STC89C52單片機系統擴展
7.1系統擴展概述
7.1.1單片機的外部擴展總線
7.1.2系統擴展常用芯片
7.1.3系統擴展的尋址方法
7.2存儲器的擴展
7.2.1程序存儲器擴展概述
7.2.2數據存儲器擴展概述
7.2.3E2PROM和RAM的綜合擴展
7.3并行I/O接口的擴展
7.3.1I/O接口概述
7.3.2簡單的I/O擴展
7.3.3可編程接口芯片8255擴展并行接口
7.4串行總線擴展
7.4.1單總線串行擴展
7.4.2I2C總線
7.4.3SPI總線串行擴展
本章小結
思考題
第8章單片機接口技術應用
8.1鍵盤接口電路
8.1.1獨立式鍵盤
8.1.2矩陣式鍵盤
8.2LED顯示接口電路
8.2.1LED顯示器
8.2.2LED數碼管顯示器接口設計舉例
8.3鍵盤與LED顯示器綜合設計電路
8.3.1利用并行I/O芯片82C55實現的鍵盤/顯示器接口
8.3.2利用串行口實現的鍵盤/顯示器接口
8.3.38279鍵盤、顯示器接口電路
8.4LCD顯示接口電路
8.4.112864點陣液晶顯示模塊的原理
8.4.212864驅動程序
8.4.312864的應用
8.5STC89C52單片機與微型打印機TPP40A/16A的接口
本章小結
思考題
第9章STC89C52單片機與A/D、D/A轉換器的接口
9.1STC89C52單片機與A/D轉換器的接口
9.1.1A/D轉換器簡介
9.1.2STC89C52單片機與并行8位A/D轉換器ADC0809的接口
9.1.3STC89C52與并行12位A/D轉換器AD1674的接口
9.1.4STC89C52單片機與V/F轉換器的接口
9.2STC89C52單片機與D/A轉換器的接口
9.2.1D/A轉換器簡介
9.2.2STC89C52單片機與8位D/A轉換器DAC0832的接口設計
本章小結
思考題
第10章STC89C52單片機應用系統設計
10.1概述
10.2MCS51單片機應用系統設計
10.2.1總體設計
10.2.2硬件設計
10.2.3軟件設計
10.2.4可靠性設計
10.2.5單片機應用系統的調試與測試
10.3單片機應用系統舉例
10.3.1單片機在控制系統中的應用
10.3.2單片機在里程和速度計量中的應用
10.3.3單片機在家用電器中的應用
10.3.4基于STC89C52單片機的萬年歷的設計
本章小結
思考題
第11章單片機應用系統開發簡介
11.1集成開發環境Keil C51簡介
11.1.1Keil Vision2運行環境介紹
11.1.2Keil C51的安裝
11.1.3Keil C51的使用
11.2集成開發工具Proteus簡介
11.2.1Proteus概述
11.2.2Proteus的運行環境
11.2.3Proteus VSM的資源庫和仿真工具
11.2.4Proteus ISIS初識
11.2.5Proteus設計與仿真基礎
11.3Keil C與Proteus連接調試
本章小結
思考題
第12章STC89C52單片機實驗與指導
12.1實驗一P1口輸入/輸出實驗
12.2實驗二繼電器控制實驗
12.3實驗三8255輸入/輸出實驗
12.4實驗四計數器實驗
12.5實驗五外部中斷實驗
12.6實驗六定時器實驗
12.7實驗七A/D轉換實驗
12.8實驗八外部中斷實驗(急救車與信號燈)
12.9實驗九交通燈控制實驗
12.10實驗十直流電機實驗
本章小結
思考題
附錄ASTC89C52單片機程序ISP燒錄
參考文獻