單片機原理及應用(電子類相關專業(yè))全套教學課件_第1頁
單片機原理及應用(電子類相關專業(yè))全套教學課件_第2頁
單片機原理及應用(電子類相關專業(yè))全套教學課件_第3頁
單片機原理及應用(電子類相關專業(yè))全套教學課件_第4頁
單片機原理及應用(電子類相關專業(yè))全套教學課件_第5頁
已閱讀5頁,還剩861頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

——單片機入門篇單片機原理及應用全套可編輯PPT課件共13章,包括如何學習單片機,常用軟件介紹,單片機基礎知識介紹,指令系統(tǒng),單片機匯編指令應用實例,中斷、定時/計數(shù)器及串口的匯編語言編程,單片機C語言編程基礎知識,I/O口的C語言編程,中斷、定時/計數(shù)器及串口的C語言編程,AD/DA轉換,LCD顯示屏,總線,傳感器如何學習單片機HowtoLearnMicrocontroller本章將主要介紹什么是單片機以及如何才能更好地學習單片機2目錄1.2單片機有何用途1.1什么是單片機1.4怎么學習單片機1.3為什么要學習單片機如何學習單片機3單片機(SingleChipMicrocomputer,簡稱SCM)是一種集成電路芯片,是采用超大規(guī)模集成電路技術將具有數(shù)據(jù)處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統(tǒng),在工業(yè)控制領域廣泛應用。同時,單片機也被稱為微控制器,因為它最早被用在工業(yè)控制領域?,F(xiàn)在的單片機由芯片內僅有CPU的專用處理器發(fā)展而來。早期的單片機都是4位或8位,其中最成功的是Intel的8031,因為簡單可靠而且性能不錯獲得了很多好評。此后,Intel公司又在8031基礎上發(fā)展出了MCS-51系列單片機,基于這一系列單片機的系統(tǒng)直到現(xiàn)在還在廣泛使用。1.1什么是單片機4隨著工業(yè)控制領域要求的提高,16位單片機開始出現(xiàn),但因其性價比不理想,當時并未得到廣泛應用。90年代后期,單片機的性能得到了跨越式的發(fā)展。隨著Inteli960系列特別是后來的ARM系列的廣泛應用,32位單片機迅速取代了16位單片機成為市場主流產品。目前,高端32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器。大量專用的嵌入式操作系統(tǒng)被廣泛應用在各系列的單片機上,掌上電腦和手機里的高端單片機甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。與此同時,單片機的價格也大幅下降,普通型號的單片機出廠價格跌至1美元,最高端的型號也只有10美元。單片機是世界上數(shù)量最多的微控制器?,F(xiàn)在,幾乎每件電子產品中都會有單片機系統(tǒng)。例如,手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都有單片機。個人電腦中也有為數(shù)不少的單片機在工作,汽車上一般配備40多個單片機,復雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百個單片機。1.1什么是單片機5目錄1.2單片機有何用途1.1什么是單片機1.4怎么學習單片機1.3為什么要學習單片機如何學習單片機61.2單片機有何用途7單片機經歷了40多年的發(fā)展,其蹤跡遍布各個領域。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通信與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動洗衣機,以及程控玩具、電子寵物等,這些都離不開單片機;更不用說自動控制領域的機器人、智能儀表、醫(yī)療器械以及各種智能機械了。工業(yè)控制:廣泛應用于工業(yè)控制中的數(shù)據(jù)采集系統(tǒng)、通信系統(tǒng)、信號檢測系統(tǒng)、無線感知系統(tǒng)、測控系統(tǒng)、機器人等,以及常見的工廠流水線的智能化管理系統(tǒng)、電梯智能化控制系統(tǒng)、各種報警系統(tǒng)等。智能儀器:廣泛應用于儀器儀表中,例如電壓表、功率計、示波器、各種分析儀等。單片機的使用使得儀器儀表實現(xiàn)了數(shù)字化和智能化,且功能比起采用單純的數(shù)字電路更為強大。網絡和通信:現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信。這為設備之間通信的實現(xiàn)和計算機網絡的廣泛使用提供了極好的物質條件。廣泛應用于電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信,移動電話、集群移動通信、無線電對講機等,及各種需要進行通信的設備中。家用電器:廣泛應用于電飯煲、洗衣機、電冰箱、空調機、彩電、其他音響視頻器材,再到電子秤量設備等。8模塊化系統(tǒng):某些單片機系統(tǒng)用于實現(xiàn)特定功能,它們可以在各種電路中作為其中一個模塊來使用。這種模塊化的微小系統(tǒng)一般不要求使用人員了解其內部結構,而只需了解其輸入輸出信號及系統(tǒng)能夠實現(xiàn)的功能即可。例如,音樂集成單片機可將音樂信號以數(shù)字的形式存于存儲器中,工作時可由微控制器讀出數(shù)據(jù),然后轉化為模擬音樂電信號。在大型電路中,這種模塊化應用極大地縮小了設備的體積,簡化了電路設計,降低了錯誤率,同時也便于更換。醫(yī)用設備:廣泛應用于醫(yī)用呼吸機、各種分析儀、監(jiān)護儀、超聲診斷設備及病床呼叫系統(tǒng)等。汽車電子:廣泛應用于汽車中的發(fā)動機控制器、基于CAN總線的汽車發(fā)動機智能電子控制器、GPS導航系統(tǒng)、ABS防抱死制動系統(tǒng)、胎壓檢測等。9目錄1.2單片機有何用途1.1什么是單片機1.4怎么學習單片機1.3為什么要學習單片機如何學習單片機10(1)(2)(3)單片機應用領域非常廣泛單片機技術是學習高端電子技術的基礎學習單片機不僅有前途而且有錢途1.3為什么要學習單片機11(1)單片機應用領域非常廣泛從農業(yè)電子產品到工業(yè)電子產品醫(yī)用電子產品到軍用電子產品民用電子產品到商用電子產品12單片機具有電路設計簡單、成本低、性能穩(wěn)定、經久耐用等優(yōu)點,這些優(yōu)點使其備受設計者的青睞。單片機的魅力還在于隨著電子技術的飛速發(fā)展,芯片資源更加豐富,它們能夠實現(xiàn)的功能越發(fā)強大,從而使外圍電路更加簡單,使用起來也更加方便。因此,學習單片機和應用單片機的群體越來越大。

單片機技術

嵌入式系統(tǒng)

DSP

FPGA(2)單片機技術是學習高端電子技術的基礎13嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,因此適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。他一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統(tǒng)以及用戶的應用程序等四個部分組成。DSP即數(shù)字信號處理,是將信號以數(shù)字方式表示并進行相應處理的技術,是單片機技術的拓展和功能的增強,專門用于數(shù)字信號處理的超高速單片機。FPGA即現(xiàn)場可編程門陣列,和單片機有相同的外圍資源,也有時鐘電路、FLASH和RAM,配置文件相當于單片機的程序,硬件描述語言Verilog和C語言是一樣的。找到稱心如意的工作自主創(chuàng)業(yè)研發(fā)智能電子產品挺進電子技術更高端的領域前途錢途(3)學習單片機不僅有前途而且有錢途14目錄1.2單片機有何用途1.1什么是單片機1.4怎么學習單片機1.3為什么要學習單片機如何學習單片機151.4.1基礎理論1.4.2實驗實踐1.4.3硬件設計1.4怎么學習單片機16基礎理論電路模擬電路數(shù)字電路語言匯編語言C語言1.4.1基礎理論17181.4.1基礎理論模擬電路是電子技術最基礎的學科,它讓你知道什么是電阻、電容、電感、二極管、三極管、場效應管、放大器等等以及它們的工作原理和在電路中的作用,這是學習電子技術必須掌握的基礎知識。扎實的模擬電路基礎不僅讓你容易看懂別人設計的電路,而且讓你的設計的電路更可靠。模擬電路單片機屬于數(shù)字電路,其概念、術語、硬件結構和原理都源自數(shù)字電路,如果數(shù)字電路基礎扎實,對復雜的單片機硬件結構和原理就容易理解。如果覺得單片機很難,那就應該先放下單片機教材,去重溫數(shù)字電路,搞清楚觸發(fā)器、寄存器、門電路、COMS電路、時序邏輯和時序圖、進制轉換等理論知識。數(shù)字電路191.4.1基礎理論匯編語言是一種用于電子計算機、微處理器、微控制器或其他可編程器件的低級語言。在匯編語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或操作數(shù)的地址。匯編語言的學習可以對深刻理解和熟練運用單片機有重要的幫助。匯編語言C語言知識并不難,沒有任何編程基礎的人都可以學。C語言重點需要掌握的知識就3個條件判斷語句、3個循環(huán)語句、3個跳轉語句和1個開關語句。學習時要一條語句一條語句的學,學一條活用一條,全部學過用過這些關鍵語句后,相信你的C基礎建立了。C語言實驗實踐刻苦學習的決心一套完整的學習開發(fā)工具理論和實踐相結合201.4.2實驗實踐刻苦學習的決心刻苦學習的決心1.明確學習目的2.端正學習心態(tài)3.要多動腦勤動手4.虛心交流21完整的學習開發(fā)工具一臺電腦一塊單片機開發(fā)板一套視頻教程一本單片機教材一本C語言教材理論和實踐相結合編程思路和算法決定一個程序的優(yōu)劣,只有在實際動手編寫的時候才會有深切地感悟。1.4.2實驗實踐編程思路和算法決定一個程序的優(yōu)劣,只有在實際動手編寫的時候才會有深切地感悟。構思看到例程題目先試著構思自己的編程思路研究看教材或視頻教程里的代碼,研究人家的編程思路,注意與自己思路的差異動手照搬人家的思路親自動手編寫這個程序,領會其中每一條語句的作用修改對有疑問的地方試著按照自己的思路修改程序,比較程序運行效果,領會其中的奧妙學習編寫程序過程221.4.2實驗實踐231.4.3硬件設計設計需求分析原理圖設計工藝文件處理PCB設計設計者經過深入細致的調研和分析,準確理解項目的功能、性能、可靠性等具體要求,將用戶非形式的需求表述轉化為完整的需求定義,從而確定系統(tǒng)必須達成什么功能。是硬件電路設計的核心,合適的器件選型、必要的計算分析以及參數(shù)搭配、仿真工具的運用與驗證等是其常用工作流程,最終通過繪制原理圖將這些技術用圖形化語言表達出來。以電路原理圖為依據(jù)實現(xiàn)硬件電路的功能。設計過程包括制作物理邊框、引入元器件和網絡、元器件布局、電路板布線等步驟。通常設計者可以使用Protel軟件或AltiumDesigner軟件來完成PCB設計。布線完成后,需要對個別元器件、布線、文字的位置和大小等進行調整完善,以便進行生產、調試和維修。最后進行覆銅,完成印制板的制造。數(shù)據(jù)手冊謝謝觀看2627使用單片機作為開發(fā)平臺,具體的開發(fā)流程如下:(1)在Keil軟件中使用匯編語言或C語言編寫程序。(2)程序編譯通過后,生成目標文件(HEX文件)。(3)使用串口線或USB轉串口線連接單片機硬件電路和計算機,連接完成后,安裝相應的驅動程序。(4)使用下載軟件將目標文件寫入單片機中。(5)運行程序。若運行結果未能達到預期目標,可以通過人工檢查、仿真軟件Protues、串口調試等方法逐一排查錯誤并修改程序,然后再重新編譯、下載和運行。重復該過程直至單片機上的程序能夠完成既定的功能。282.1.1Keil環(huán)境簡介2.1.2串行口的設置與驅動程序安裝2.1.3STC程序下載軟件29①訪問/,下載KeilμVision4軟件(Keil3或Keil5均可)進行安裝,安裝后桌面出現(xiàn)Keil圖標。301.啟動Keil②為了能夠在創(chuàng)建工程時選用STC系列芯片,我們需要先對STC程序下載軟件進行配置,以便將該系列芯片添加到Keil中。配置過程如下:在STC提供的下載工具中選擇“Keil仿真設置”選項卡,單擊按鈕(見圖2-1),打開“瀏覽文件夾”對話框。。圖2-1添加STC仿真器驅動圖2-2“瀏覽文件夾”對話框③選擇Keil的安裝目錄“C:\Keil”,單擊“確定”按鈕(見圖2-2),即可將STC系列芯片添加到Keil工程中。31④雙擊桌面上的Keil圖標,打開工作界面,如圖2-3所示。窗口的頂部為主菜單欄。圖2-3Keil工程界面1.啟動Keil⑤Keil菜單簡介File為文件菜單Edit為編輯菜單View菜單為視圖菜單,主要為狀態(tài)欄,工具欄、工程窗口、存儲輸出窗口Project為工程欄,具有創(chuàng)建工程、打開工程等功能Flash欄主要包含F(xiàn)lash的下載、擦除、配置等功能Debug為調試欄,主要包含斷點設置、單步運行、全速運行等功能Peripherals主要在仿真調試時使用,用于觀察輸出口及中斷、串行口數(shù)據(jù)傳輸時相關寄存器的數(shù)值Tools為工具欄SVCS主要為Keil的版本信息Window主要為窗口欄Help為幫助菜單欄,提供關于Keil的用法信息321.啟動Keil①單擊“Project→NewProject”選項,在彈出的對話框中選擇工程保持路徑及工程名,如圖2-4所示。圖2-4創(chuàng)建一個Keil工程圖2-5

選擇單片機型號為STCMCU332.創(chuàng)建Keil工程②然后單擊“保存”按鈕后出現(xiàn)如圖2-5所示對話框,單擊其中的下拉菜單按鈕,選擇“STCMCUDatabase”選項。③打開“SelectDeviceforTarget‘Target1’…”對話框,在對話框左側的列表中選擇STC89C52RC芯片,單擊“OK”按鈕,如圖2-6所示。34圖2-6

芯片選擇窗口圖2-7

是否拷貝啟動代碼到工程選擇窗口④打開“μVision”對話框,該對話框用于選擇是否將啟動代碼拷貝到工程中。一般情況下,采用匯編語言編程時選擇“否”,采用C語言編程時選擇“是”。此處單擊“否(N)”按鈕,完成Keil工程的創(chuàng)建,如圖2-7所示。2.創(chuàng)建Keil工程圖2-8

文件保存窗口①選擇“File”→“New…”菜單,創(chuàng)建文件,然后單擊工具欄中的“保存”按鈕打開“SaveAs”對話框,在“文件名”編輯框中輸入“第一個單片機例子.asm”,單擊“保存”按鈕,如圖2-8所示。353.創(chuàng)建文件此過程是為了將空白文件保存為指定的匯編格式文件,以便將其添加到工程中。②右擊“Project”工程欄中的“SourceGroup”文件夾,在彈出的快捷菜單中選擇“AddFilestoGroup‘SourceGroup1’”選項(見圖2-9),打開“AddFilestoGroup‘SourceGroup1’”對話框,在“文件類型”下拉列表中選擇“AsmSourcefile(*.s*;*.src;*.a*)”選項,在“名稱”列表中選擇“第一個單片機例子.asm”文件,單擊“Add”按鈕,即可將匯編文件添加至工程中,如圖2-10所示。36圖2-9

添加文件到工程欄窗口圖2-10

選擇添加的文件3.創(chuàng)建文件①雙擊工程下的“第一個單片機例子.asm”文件,打開程序編輯界面(見圖2-11),在代碼編輯區(qū)輸入程序代碼。圖2-11

輸入程序代碼374.設置工程代碼編輯區(qū)②程序編輯完成后,先保存文件,然后右擊“Project”工程導航欄中的“Target1”文件夾圖標,在彈出的快捷菜單中選擇“OptionforTarget‘Target1’...”選項(見圖2-12)。圖2-12工程設置菜單384.設置工程圖2-13Target選項卡③此時打開“OptionforTarget‘Target1’”對話框,選擇“Target”選項卡,在“Xtal”編輯框內輸入開發(fā)板的晶振頻率12.0(此處假定使用的單片機開發(fā)板晶振頻率為12MHz),如圖2-13所示。④切換到“Output”選項卡,選中“CreatHEXFile”復選框,單擊“OK”按鈕(見圖2-14)返回Keil工程界面。圖2-14Output選項卡394.設置工程圖2-15編譯信息輸出窗口⑤單擊Keil快捷工具欄中的第3個按鈕,即Rebuild按鈕(或選擇“Project”→“Rebuildalltargetfiles”菜單)編譯程序,編譯通過后的輸出信息如圖2-15所示。此時已經創(chuàng)建了一個名為“第一個單片機例子.hex”的HEX文件。。選擇“Debug”→“Start/StopDebugSession”菜單(見圖2-16)進入調試模式,如圖2-17所示。405.調試運行圖2-16調試命令菜單圖2-17如下頁所示。界面上方左側的調試工具欄圖標(這些調試命令在Debug菜單中)是程序調試時非常有用的工具,具體見下頁圖。調試工具欄中的圖標依次表示設置斷點、使斷點生效或失效、關閉所有斷點及清除所有斷點。界面左側的樹狀列表顯示了若干寄存器及其狀態(tài)值,例如,寄存器r0~r7,a,b,sp,pc,auxr,dptr,以及psw等。此外,還可以通過此處的sec寄存器觀察到運行時間(單位為秒)。復位全速運行停止單步運行不進入函數(shù)內部運行從函數(shù)內部跳出運行到415.調試運行⑦圖2-17調試界面若想觀察程序運行過程中存儲單元的數(shù)據(jù)情況,可以選擇“View”→“MemoryWindow”→“Memory1”菜單,此時在工作界面下方會顯示出程序存儲器觀察窗口,如圖2-18所示。圖2-18

程序存儲器觀察窗口圖2-19觀察內部數(shù)據(jù)存儲器中內容圖2-20觀察外部數(shù)據(jù)存儲器中內容426.存儲器觀察不同類型的存儲器單元需要使用不同的大寫字母加以區(qū)分。觀察程序存儲器內容,可以在Address后的編輯框中輸入“C:”,冒號后緊跟地址單元。例如,輸入“C:0000H”,如圖2-18所示。觀察內部數(shù)據(jù)存儲器內容,可以在Address后的編輯框中輸入“D:”,冒號后緊跟地址單元。例如,輸入“D:90H”,如圖2-19所示。觀察外部數(shù)據(jù)存儲器內容,可以在Address后的編輯框中輸入“X:”,冒號后緊跟地址單元。例如,輸入“X:0x1fff”,如圖2-20所示。程序運行期間,通過選擇Peripherals菜單中的相關菜單項(見圖2-21),可以實時查看I/O口、串口、中斷和定時器等信息。

例如,要觀察P1口的狀態(tài),可以選擇“Peripherals”→“I/O-Ports”→“Port1”菜單,此時系統(tǒng)將打開“ParallelPort1”對話框,其中顯示了P1口各個引腳的值,如圖2-22所示。圖2-21

Peripherals菜單437.輸入輸出窗口觀察圖2-22顯示P1口數(shù)值情況

如要將程序下載到單片機中,通常采用串行口,在早期的電腦主板上有串行口,可以直接與開發(fā)板相連進行下載,但是現(xiàn)在大部分編程人員采用的筆記本電腦都沒有串行口,要解決用串口下載程序到單片機的問題,通??梢赃x擇USB轉串行口線,該下載線內部集成了USB與串行口數(shù)據(jù)轉換芯片,如圖2-23所示。USB轉串口線屬于一種硬件設備,需要安裝好驅動程序才能正常工作,目前這類設備的商家大多會在線發(fā)送驅動文件給用戶,用戶可以直接點擊“下一步”即可完成安裝,用戶也可以通過“魯大師”或“驅動精靈”檢測硬件更新情況,然后選擇列表中對應的驅動,一般該類設備的驅動會出現(xiàn)“Usb-Serial”字樣,直接選擇“安裝”即可。圖2-23

USB轉串口線44

在進行單片機程序下載過程中,經常會出現(xiàn)下載軟件的串口與電腦設備管理器中的串口不一致的情況,從而導致程序無法下載進去,此時,用戶可以通過以下步驟進行設置(以電腦操作系統(tǒng)是Win7旗艦版為例):右擊桌面上“我的電腦”圖標,在彈出的快捷菜單中選擇“屬性”選項,進入控制面板主頁界面,如圖2-24所示(下圖)。執(zhí)行“設備管理器”命令,進入設備管理器界面。單擊界面中“端口”左側的三角形,展開端口列表,如圖2-25所示(下圖)。查看含有“USB-SERIAL××(COM××)”字樣的端口,確定電腦當前所使用的串口號。例如,圖2-25中顯示當前串口是COM4。查看(3)中的串口號與STC下載軟件中的串口號(見圖2-26)是否一致。如果二者一致,即可正確下載程序到單片機上;如不一致則返回(3),并完成電腦串口的更改。操作如下:將鼠標放置在當前“USB-SERIAL××(COM××)”上,右擊打開“屬性”對話框,單擊“端口設置”頁中的“高級”按鈕,在“COM端口號”下拉列表中選擇合適的端口,使其與STC下載軟件中的串口號保持一致。。45生成HEX文件并設置好串口之后,就可以將程序下載到STC單片機中了。訪問/,下載STC-ISP軟件。打開該軟件時,軟件會自動將驅動文件復制到相關的系統(tǒng)目錄中,其界面如圖2-26所示。圖2-26

STC程序下載軟件界面46該軟件的操作步驟如下:①選擇單片機型號。在“單片機型號”的下拉列表中選擇STC89C52RC/LE52RC芯片。②選擇串口。若已經連接好USB轉串口線,單擊“掃描”按鈕會自動出現(xiàn)已連接的串口。如未出現(xiàn),則需要更改串口號(更改方法見2.1.2節(jié)),再重新掃描即可。

③單擊“打開程序文件”按鈕,選擇要加載的HEX文件。

④單擊左下方的“下載/編程”按鈕(在單擊該按鈕之前確保單片機未上電,因為該啟動方式屬于冷啟動),等待一段時間。

⑤給單片機上電,此時,在窗口的右下方出現(xiàn)下載進度條,下載完成后,即可在單片機上運行程序了。47482.2.1Protues電路仿真軟件簡介2.2.2Protues創(chuàng)建實例49Proteus軟件是英國LabCenterElectronics公司出版的EDA工具軟件。

Proteus是將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺。

它可以完成原理圖布圖、代碼調試及單片機與外圍電路的協(xié)同仿真,還可以一鍵切換到PCB設計,真正實現(xiàn)從概念到產品的完整設計。50該軟件的處理器模型支持8051,HC11,PIC10/12/16/18/24/30/DsPIC33,AVR,ARM,8086和MSP430等處理器,2010年又增加了Cortex和DSP系列處理器。隨著芯片的不斷發(fā)展,它也在不斷增加其他系列的處理器模型。在編譯方面,它支持IAR、Keil和MPLAB等多種編譯器。Protues軟件的最新版本可以從/網站下載,下面以單片機控制流水燈為例說明Protues8的使用方法。51安裝Protues8軟件后,雙擊圖標打開軟件,初始界面如圖2-27所示。圖2-27

Protues8啟動界面File為該軟件的相應操作欄,與大多數(shù)軟件功能類似System為該軟件的相應設置Help為該軟件相應的幫助欄52

第一步:選擇“File”→“NewProject”菜單,打開“NewProjectWizards:Start”對話框,在“Name”編輯框輸入工程名“單片機流水燈仿真實例.pdsprj”;在“Path”編輯框輸入工程的保存路徑(也可以通過“Browse”按鈕選擇保存路徑),這里路徑設定為桌面上名為“Protues單片機流水燈仿真實例”的空文件夾;工程類型設置區(qū)選擇“NewProject”單選鈕,單擊“Next”按鈕,如圖2-28所示。圖2-28創(chuàng)建工程窗口——工程命名與路徑保存53

第二步:打開“NewProjectWizards:SchematicDesign”對話框,選擇“Createaschematic

fromtheselectedtemplate”單選鈕,在“DesignTemplate”列表中選擇“DEFAULT”選項,它表示創(chuàng)建一個默認的原理圖模板,然后單擊“Next”按鈕,如圖2-29所示。圖2-29原理圖模板選擇窗口54

第三步:打開“NewProjectWizards:PCBLayout”對話框,選擇是否創(chuàng)建一個PCB

設計圖。本例只需創(chuàng)建一個單片機的仿真原理圖,不需要創(chuàng)建PCB,故選擇“DonotcreateaPCBlayout”單選鈕。單擊“Next”按鈕,如圖2-30所示。圖2-30PCB模板選擇窗口55

第四步:打開“NewProjectWizards:Firmware”對話框,選擇“CreateFirmwareProject”

單選鈕,表示創(chuàng)建一個單片機工程。在“Family”下拉列表中選擇單片機類型為“8051”;在“Contoller”下拉列表中選擇單片機子類為“80C51”;在“Compiler”下拉列表中選擇編譯軟件為“Keilfor8051(notconfigured)”,單擊“Next”按鈕,如圖2-31所示。圖2-31選擇是否創(chuàng)建一個單片機工程56

第五步:打開下一個對話框后,單擊“Finish”按鈕進入原理圖繪制界面,單擊左側導航欄中的“P”按鈕,如圖2-32所示。圖2-32

Protues單片機原理圖繪制界面57仿真運行按鈕

第六步:打開“PickDevices”對話框,在“Keywords”編輯框中輸入關鍵詞“LED”,對話框中部將出現(xiàn)關于LED的搜索結果,選擇“LED-RED”選項,右側上方即可出現(xiàn)該器件的預覽圖,單擊“OK”按鈕,如圖2-33所示。圖2-33選擇元器件對話框58

第七步:使用步驟6中同樣的方法在Keywords編輯框中分別輸入關鍵詞“CRYSTAL”“CAP”“RES”,選擇相應的晶振、電容和電阻。添加完元器件后,修改各元器件參數(shù),并按圖連接各元器件,如圖2-34所示。圖2-34基于單片機的LED流水燈原理圖59

第八步:雙擊原理圖中的80C51芯片,打開“EditComponent”對話框。單擊“ProgramFile”右側的文件夾按鈕,選擇需要導入的HEX文件(此處借助本章2.1.1節(jié)生成的HEX文件進行導入),單擊“OK”按鈕,如圖2-35所示。圖2-35導入HEX文件60

第九步:返回原理圖界面,單擊仿真運行按鈕(見圖2-32),即可進行單片機控制流水燈的仿真,仿真效果如圖2-36所示。圖2-36流水燈從上到下依次點亮的仿真界面61進入仿真狀態(tài)后,我們可以看到,D1~D8流水燈元器件中會交替出現(xiàn)亮、滅兩種顯示效果。622.3.1串口調試助手2.3.2單片機編程小精靈2.3.3數(shù)碼管代碼生成工具2.3.4點陣數(shù)據(jù)生成工具2.3.5液晶漢字模提取軟件LcmLimo2.3.6簡譜譜寫工具MusicEncode63在單片機的編程和調試過程中,串口的使用比較頻繁。讀者可以使用STC下載軟件自帶的調試功能查看串口數(shù)據(jù),也可以使用串口調試助手進行查看,如圖2-37所示。

該軟件可設置串口、比特率、校驗位、數(shù)據(jù)位及停止位,同時具有自動發(fā)送和十六進制發(fā)送功能。單擊“保存顯示數(shù)據(jù)”按鈕還可以保存串口接收到的數(shù)據(jù)。它是通信測試中的有力工具。圖2-37

串口調試助手64單片機技術已經比較成熟,某些簡單功能的編寫可以使用現(xiàn)成的代碼,如延時函數(shù)的編寫、定時器/計數(shù)器的設定、串口比特率和中斷/控制字的設置等。有不少單片機編程工具已經集成了上述功能,只要填上對應的參數(shù)就可以自動生成相應的程序。這里介紹一款可以實現(xiàn)此功能的軟件——單片機編程小精靈,其界面如圖2-38所示。以生成延時子函數(shù)為例,在軟件中填寫單片機的晶振和延時時間,選擇需要生成的代碼類型,單擊“計算”按鈕即可生成延時子函數(shù)代碼。圖2-38

單片機編程小精靈界面65單片機的顯示器件中,數(shù)碼管的使用也是十分常見的。目前,已經有不少自動生成數(shù)碼管啟動代碼的工具,LED段碼數(shù)據(jù)生成軟件就是其中的一款,其界面如圖2-39所示。在這類軟件中,可以選擇數(shù)碼管的類型(共陰極或者共陽極)和生成的代碼類型,單擊“自動”按鈕即可生成相應的啟動代碼,復制到程序中就可以直接使用,非常方便。圖2-39

LED段碼數(shù)據(jù)生成軟件界面66點陣也是常用的屏幕顯示工具。字模提取軟件可以按照“文字輸入?yún)^(qū)”中輸入的漢字和字符生成圖像及點陣代碼,還可以模擬動畫等,其界面如圖2-40所示。圖2-40

點陣代碼生成工具界面67液晶字模提取軟件能夠將輸入的漢字或字符(見圖2-41)生成相應的代碼(見圖2-42),使用LCD1602或LCD12864液晶屏幕可以將這些代碼再轉換成漢字顯示出來。圖2-41液晶漢字模提取軟件LcmZimo參數(shù)設置與數(shù)據(jù)輸入界面圖2-42

液晶漢字模提取軟件LcmZimo代碼生成界面68利用單片機可以制作電子音樂播放器,選擇一款比較好的譜曲工具關系到編程的效率。MusicEncode工具在譜曲轉換方面有獨到之處。例如,將樂曲“小蘋果”的開頭曲譜寫成C語言代碼(見圖2-43),對照樂譜,從右側選擇相應的音符,左上方就會出現(xiàn)對應的樂譜符號,單擊“開始轉換”按鈕,即可將音符轉換成C語言數(shù)組。圖2-43

MusicEncode譜曲工具697273在單片機出現(xiàn)之前,電腦的功能部件(如CPU、內存、I/O接口等)大都安裝在一塊主板上,通常將這樣的主板稱為單板機。

隨著工業(yè)應用的不斷深入,要求在一塊芯片上集成上述多種功能,于是,單片機應運而生了。單板機與單片機的主要結構如圖3-1所示。

單片機是指在一塊芯片內部集成了中央處理器、存儲器、定時/計數(shù)器和I/O接口電路等計算機中的主要功能部件的微型計算機,也稱為微控制器。單片機具有功能強大、價格低廉、抗干擾能力強等優(yōu)點,在單片機的外圍配置合適的器件就可以組成各具特色的應用系統(tǒng)。因此,它被廣泛應用于工業(yè)、農業(yè)、國防、科研及日常生活當中。圖3-1單板機與單片機(a)單板機(b)單片機743.1.1單片機的發(fā)展歷程3.1.2單片機的發(fā)展趨勢75第一個單片機出現(xiàn)在1974年,它是由美國的FairChild公司研制出來的。單片機的發(fā)展經歷了4位機、8位機、16位機和32位機幾個階段。76①第一代單片機(1974—1976年):該時期為單片機的起步階段。此時的單片機主要為4位機,典型的代表產品是Intel公司的4位單片機4004,主要應用于家用電器領域。77②

第二代單片機(1976—1978年):該時期為單片機的發(fā)展階段。這個時期生產的單片機主要為中低檔的8位單片機,片內集成了CPU、I/O接口電路、定時器和ROM程序存儲器等,這一階段的8位機存儲容量小、性能低,目前已經很少使用。當時的主流產品是MCS-48系列單片機。78③

第三代單片機(1979—1982年):這一代單片機的存儲容量和尋址范圍都有較大的提升,片內不僅增加了中斷源、并行I/O口和定時/計數(shù)器,還集成了全雙工串行通信接口電路。當時的主流型號為MCS-51系列單片機。79④

第四代單片機(1982—1990年):這是16位單片機和8位高性能單片機并行發(fā)展的時代。16位單片機的功能比8位單片機功能更加強大,該時期的主流型號為MCS-96系列單片機。我國對單片機的研究主要從第四代單片機開始。全國首屆單片機開發(fā)與應用交流會于1986年在上海召開,單片機在其后的短短五年時間里發(fā)展極為迅速,那是關于單片機的第一次研究高潮。80⑤

第五代單片機(1990年至今):微控制器的全面發(fā)展階段。隨著單片機在各個領域全面而深入的應用,這個時期出現(xiàn)了高速、大尋址范圍、強運算能力的8位/16位/32位通用型單片機,如32位的ARM系列處理器和用于智能電子玩具的小型廉價單片機等。81在要求單片機性能提高的同時,人們還要求單片機的功耗越來越低。MCS-51系列的8031單片機在推出時功耗高達630mW,而現(xiàn)在的單片機功耗普遍都在100mW左右?,F(xiàn)在的單片機制造商基本都采用了CMOS工藝(互補金屬氧化物半導體工藝)。例如,80C51就采用了HMOS(即高密度金屬氧化物半導體工藝)和CHMOS工藝(互補高密度金屬氧化物半導體工藝)以降低功耗。CHMOS同時具備了高速和低功耗的特點,這些特征使其更適合電池供電的低功耗應用場合。所以,這種工藝將是今后一段時期內單片機工藝發(fā)展的主要方向。1.低功耗化82常規(guī)的單片機都是將中央處理器(CPU)、隨機存取數(shù)據(jù)存儲器(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口、中斷系統(tǒng)、定時電路、時鐘電路等功能集成在一塊芯片上。增強型的單片機還集成了如A/D轉換器、PWM(脈寬調制電路)、WDT(看門狗)等功能,單片機廠商甚至可以根據(jù)用戶的要求量身定做單片機。例如,有些單片機將LCD(液晶)驅動電路集成在芯片上。越來越多的功能集成在一塊芯片上使單片機具有強大的擴展和控制能力。現(xiàn)在的產品普遍要求體積小、重量輕、功能強,這就要求單片機除了功能強、功耗低以外,還要求其體積要小。當前單片機的SMD封裝(見圖3-2)越來越受歡迎,它同時滿足了功能強、體積小的要求,使得單片機構成的系統(tǒng)正朝微型化方向發(fā)展。2.微型單片化83圖3-2微型化的ARM芯片目前的單片機雖然品種繁多,但以8051為核心的單片機仍占市場主導地位,兼容其結構和指令系統(tǒng)的有PHILIPS公司生產的單片機、ATMEL公司的單片機以及中國臺灣的Winbond系列單片機。MICROCHIP公司的PIC單片機也有著強勁的發(fā)展勢頭。中國臺灣的HOLTEK公司近年的單片機產量與日俱增,它憑借價低質優(yōu)的特點占據(jù)了一定的市場份額。此外,還有MOTOROLA公司、日本幾家大公司生產的單片機都活躍在單片機市場上。在一定時期內,這種多產品共存的情形將繼續(xù)保持。單片機的發(fā)展走的是依存互補、共同發(fā)展的道路,不存在某個單片機一統(tǒng)天下的壟斷局面。3.主流產品與多品種共存84853.2.1典型產品簡介3.2.2STC單片機86單片機與通用計算機的發(fā)展不同,通用計算機追求的是多功能化,而單片機追求的是專用性,量體裁衣地滿足應用需求才是單片機發(fā)展的目的。因此,市場上各類單片機可以在不同的應用場合大展身手。87

STC系列單片機是由深圳宏晶科技公司研發(fā)的。該系列單片機完全兼容MCS-51單片機,其主流型號包括STC89系列、STC90系列、STC12系列、STC60系列、STC11系列、IAP12系列,以及STC15系列單片機等。在這些系列中,有些單片機內部集成了常用功能模塊(如定時器、串行口、中斷、I/O口等),還有些單片機集成了ADC、PCA/PWM/CCP/DAC、SPI、看門狗、內部復位、掉電喚醒專用定時器等功能模塊。STC系列單片機在工業(yè)測控領域有大量的應用,它是開發(fā)人員必須掌握的一款單片機。1.STC系列單片機88

MICROCHIP是全球領先的單片機和模擬半導體供應商,它于2016年收購了ATMEL(該公司生產的主流單片機是AT89C51)。其主要產品是16C系列8位單片機,該系列單片機的CPU采用RISC(精簡指令集)結構,僅33條指令,運行速度快,且以低價位著稱,一般單片機價格都在一美元以下。該公司生產的PIC單片機的突出特點是體積小、功耗低、可靠性高以及抗干擾性能好,且大部分芯片都有其兼容的FLASH程序存儲器。2.MICROCHIP公司單片機89PHILIPS公司的單片機是基于8051內核的單片機,其內部嵌入了掉電檢測、片內RC振蕩器等功能,這使51LPC系列單片機在高集成度、低成本、低功耗的應用設計中可以滿足多方面的性能要求。2006年末,從飛利浦公司獨立出來的半導體公司NXP(恩智浦),目前主要提供各種半導體產品與軟件,其生產的32位單片機為移動通信、消費類電子、非接觸式付費與連線以及車內娛樂等產品帶來了更優(yōu)質的感知體驗。3.

PHLIPIS51LPC系列單片機90德州儀器提供了TMS370和MSP430兩大系列通用單片機。TMS370系列單片機是8位CMOS單片機,具有多種存儲模式和多種外圍接口,適用于復雜的實時控制場合。MSP430系列單片機是一種超低功耗、功能集成度較高的16位單片機,它又被稱為混合信號處理器。它將多個不同功能的模擬電路、數(shù)字電路和微處理器集成在一個芯片上,以提供滿足實際應用需求的單片機解決方案。該系列單片機多用于低功耗場合,如需要電池供電的便攜式儀器儀表等。4.

TI公司單片機91凌陽單片機主要用于需要處理大量數(shù)字信號的場合。凌陽單片機的種類比較多,按照CPU的類型和數(shù)據(jù)總線的位數(shù)基本可以分為8位機和16位機系列。8位機主要用于高級電子玩具、各種檔次的電子琴、玩具、計算器、語音識別數(shù)據(jù)庫系統(tǒng)、游戲機、嵌入式計算機系統(tǒng)等。凌陽16位單片機的CPU內核是凌陽推出的μ’nSPTM16位微處理器芯片,它是構成SPCE系列單片機的基礎。SPCE系列單片機的數(shù)據(jù)總線被增至16位,大大提高了數(shù)據(jù)的訪問速度,除此之外,它還被賦予了數(shù)字信號處理(DSP)功能。5.凌陽單片機92飛思卡爾半導體(FreescaleSemiconductor)是全球領先的半導體公司,飛思卡爾的產品主要面向汽車、網絡、工業(yè)和消費電子市場,它的主要應用包括汽車安全、混合動力和全電動汽車、下一代無線基礎設施、智能能源管理、便攜式醫(yī)療器件、消費電子、工業(yè)、醫(yī)療保健等。其產品范圍包括8位微控制器、16位微控制器、32位ARMCortex-M架構微控制器Kinetis系列、ARMCortex-A架構i.MX系列處理器、PowerArchitecture?/PowerQUICC?、高性能網絡處理器、高性能多媒體處理器、高性能工業(yè)控制處理器、CodeWarrior?開發(fā)工具、數(shù)字信號處理器與控制器、電源管理、RF射頻功率放大器、高性能線性功率放大器GPA、音視頻家電射頻多媒體處理器、傳感器等。6.飛思卡爾單片機93

RENESAS是2003年4月1日由日立制作所半導體部門和三菱電機半導體部門合并成立的。它是制造嵌入式半導體的全球領先供應商,也是世界第六大半導體制造商。RENESAS結合了日立與三菱在半導體方面的先進技術和豐富經驗,其產品遍布無線網絡、汽車、消費與工業(yè)市場設計等領域。7.瑞薩單片機94飛思卡爾公司協(xié)辦了全國大學生“飛思卡爾”杯智能汽車競賽。該競賽得到了教育部相關領導、飛思卡爾公司領導及各高校師生的高度認可。目前,它已發(fā)展成全國30個省市自治區(qū)、近300所高校廣泛參與的全國大學生智能汽車競賽。2008年,該競賽被教育部列為國家教學質量與教學改革工程資助項目中的科技人文競賽之一。三星電子于1992年8月在中國惠州投資建立了三星電子有限公司(SEHZ)。此后,三星電子不斷加大在中國的投資與合作,截止到2017年底,在華累計投資額已達312億美元,成為對中國投資最大的韓國企業(yè)。目前,三星公司生產的32位ARM微處理器主流產品型號有S3C2410、S3C2440等。8.三星公司單片機

ST公司旗下的微控制器從8位到32位都有。8位的STM8系列單片機和32位的STM32ARMCortexM微控制器均具有強大的功能,它們通常用于LCD控制器、馬達控制定時器、防篡改保護、嵌入式EEPROM、DMA矩陣和針對電池供電的低功耗模式等場合。9.ST公司單片機95STC系列單片機的典型型號為STC89系列單片機。以STC89C52RC單片機為例,它內部自帶8K程序存儲器和512字節(jié)數(shù)據(jù)存儲器,同時集成了4KB的EEPROM;芯片內部還包含3個定時器、1個異步串行口、4個并行I/O口、1個看門狗定時器、4路外部中斷和一個專用復位電路模塊,其內部結構如圖3-3所示。96圖3-3STC單片機內部結構97

(1)工作頻率范圍為0~40MHz,相當于普通8051的0~80MHz,實際工作頻率可達48MHz。(2)通用I/O口有32個。復位后,P1/P2/P3/P4是準雙向口/弱上拉,P0口是漏極開路輸出,用作擴展的總線時不用加上拉電阻,用作I/O口時需加上拉電阻。(3)具有ISP(在系統(tǒng)可編程)/IAP(在應用可編程)的特性,無須專用編程器和仿真器,可通過串口(RXD/P3.0,TXD/P3.1)直接下載用戶程序,數(shù)秒即可完成。1.

STC89C52RC單片機的主要特點98正常工作模式:典型功耗為4mA~7mA??臻e模式:典型功耗為2mA。掉電模式:典型功耗<0.1μA。該模式使單片機適用于水表、氣表等電池供電系統(tǒng)及便攜式設備。2.

STC89C52RC單片機的功耗99STC89系列單片機命名規(guī)則如圖3-4(下頁圖)所示。例如,STC89C52RC40I-PDIP40單片機表示的含義是:該芯片是基于8051內核的,其指令周期為12個時鐘周期或6個時鐘周期;工作電壓為3.8V~5.5V;程序存儲空間為8K字節(jié),RAM大小為512字節(jié);外部晶振最高可接入40MHz,芯片使用溫度范圍為?40℃~+85℃,封裝為雙列直插式。3.

STC89系列單片機命名規(guī)則100圖3-4STC公司單片機各字段含義101STC89××RC/RD+系列單片機內部包含了若干功能模塊,CPU是如何驅動這些模塊正常工作的呢?單片機在存儲空間開辟了一些獨立的存儲單元,這些被稱為特殊功能寄存的獨立存儲單元可以完成對各功能模塊的設置、監(jiān)測及控制,CPU就是通過特殊功能寄存器來完成各種復雜場合下的精準操作。特殊功能寄存器(SFR)位于單片機片內數(shù)據(jù)存儲區(qū)的高128字節(jié)(80H~FFH單元)區(qū)域,各寄存器地址及含義如表3-1(下頁)所示。4.

STC89××RC/RD+系列單片機的特殊功能寄存器102表3-1特殊功能寄存器地址及各位情況寄存器

符號地址寄存器名稱76543210復位值P080H8位P0口P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.01111,1111SP81H堆棧指針0000,0111DPL82H數(shù)據(jù)指針低位0000,0000DPH83H數(shù)據(jù)指針高位0000,0000PCON87H電源控制器SMODSMOD0-P0FGF1GF0PDIDL00x1,0000TCON88H定時/計數(shù)器T0和T1控制器TF1TR1TF0TR0IE1IT1IE0IT00000,0000TMOD89H定時/計數(shù)器工作模式寄存器GATEC/T#M1M0GATEC/T#M1M00000,0000TL08AH定時/計數(shù)器0低字節(jié)0000,0000TL18BH定時/計數(shù)器1

低字節(jié)0000,0000103表3-1特殊功能寄存器地址及各位情況(續(xù))寄存器

符號地址寄存器名稱76543210復位值TH08CH定時/計數(shù)器0高字節(jié)0000,0000TH18DH定時/計數(shù)器1

高字節(jié)0000,0000AUXR8EH輔助寄存器0------EXTRAMALE0FFxxxx,xx00P190H8位P1口P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.01111,1111SCON98H串行口控制器SM0SM1SM2RENTB8RB8TIRI0000,0000SBUF99H串行口

數(shù)據(jù)緩沖器xxxx,xxxxP2A0H8位P2口P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.01111,1111AUXR1A2H輔助寄存器1----GF2--DPSxxxx,0xx0IEA8H中斷使能EA-ET2ESET1EX1ET0EX00000,0000SADDRA9H從地址0000,0000P3B0H8位P3口P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.01111,1111104表3-1特殊功能寄存器地址及各位情況(續(xù))寄存器

符號地址寄存器名稱76543210復位值IPHB7H中斷優(yōu)先級

高位PX3HPX2HPT2HPSHPT1HPX1HPT0HPX0H0000,0000IPB8H中斷優(yōu)先級

低位--PT2PSPT1PX1PT0PX0xx00,0000SADENB9H從地址0000,0000X1CONC0HAUXL中斷

控制器PX3EX3IE3IT3PX2EX2IE2IT20000,0000T2CONC8H定時/計數(shù)器T2控制器TF2EXF2RCLKTCLKEXEN2TR2C/T2#CP/RL2#0000,0000T2MODC9H定時/計數(shù)器2

模式------T20EDCENxxxx,xx00RCAP2LCAH定時/計數(shù)器2

重裝/捕獲低位0000,0000RCAP2HCBH定時/計數(shù)器2

重裝/捕獲高位0000,0000105表3-1特殊功能寄存器地址及各位情況(續(xù))寄存器

符號地址寄存器名稱76543210復位值TL2CCH定時/計數(shù)器2

低位0000,0000TH2CDH定時/計數(shù)器2

低位0000,0000PSWD0H程序狀態(tài)字

寄存器CYACF0RS1RS0OVF1P0000,0000ACCE0H累加器0000,0000WDT_

CONTRE1H看門狗定時--EN_WDTCLR_WDTIDLE_WDTPS2PS1PS0xx00,0000P4E8H4位P4口----P4.3P4.2P4.1P4.0xxxx,1111BF0HB寄存器0000,00001063.3.1進位計數(shù)制及其各進制之間的轉換3.3.2二進制運算3.3.3帶符號數(shù)的表示方法107進位計數(shù)制是按進位原則進行計數(shù)的方法。(1)十進制①有10個不同的數(shù)字符號(0,1,2,3,4,5,6,7,8,9)②低位向高位進位的規(guī)律是“逢十進一”。如:879=800+70+9=8×102+7×101+9×100其中:上式中的10稱為十進制的基數(shù),102、101、100稱為各數(shù)位的權。(2)二進制①二進制數(shù)有2個不同的數(shù)碼:0,1。②二進制數(shù)逢二進一。(1101.1011)2=1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3+1×2-4其中:2稱為二進制的基數(shù),23、22、21、20、2-1、2-2、2-3、2-4稱為各數(shù)位的權。1081.進位計數(shù)制進位計數(shù)制是按進位原則進行計數(shù)的方法。(3)八進制①8進制數(shù)有8個不同的數(shù)碼:(0,1,2,3,4,5,6,7)②8進制數(shù)逢八進一。(678)8=6×82+7×81+8×80其中:8稱為八進制的基數(shù),82,81,80稱為各數(shù)位的權。(4)十六進制數(shù)①16進制數(shù)有16個不同的數(shù)碼:(0,1,2,3,…,7,8,9,A,B,C,D,E,F(xiàn))②16進制數(shù)逢16進一。(2AB.1C)16=2×162+A×161+B×160+1×16-1+C×16-2其中:16稱為16進制的基數(shù),162,161,160,16-1,16-2。109(1)十進制數(shù)轉換為二進制十進制是人們比較習慣的計數(shù)方式,十進制整數(shù)轉換成二進制數(shù)采用的是“除2取余”法。

例如,將整數(shù)79轉換成二進制數(shù),轉換過程是先將數(shù)字79除以2,得出余數(shù)1,用得到的商再除以2,得出余數(shù)1,然后再用商繼續(xù)除以2……直至商為0;這時,將得到的余數(shù)按逆序排列,即可得出79的二進制序列(1001111)2,如圖3-5所示。

十進制小數(shù)的轉換方法這里不再詳細描述,請讀者自行查閱相關資料。1102.各進制之間的轉換圖3-5十進制轉二進制(2)二進制轉換為十進制

方法是:將二進制各數(shù)位的數(shù)值乘以對應的權,得到的結果就是對應的十進制數(shù)。例如:(110.01)2=1×22+1×21+0×20+0×2?1+1×2?2=6.25(3)二進制轉換為十六進制由于二進制數(shù)中的0000~1111正好對應到十六進制數(shù)中的各個位,所以其轉化方法是將二進制數(shù)以小數(shù)點分隔,每4位劃分為一組,不足4位的部分向前或向后補0,然后將劃分好的4位二進制數(shù)轉換成對應的十六進制數(shù)。例如:(1101110.101)2=(01101110.1010)2=(6E.A)16111112十進制、二進制和十六進制之間的對應關系如表3-2所示。表3-2各進制之間的對應關系十進制數(shù)4位二進制數(shù)十六進制數(shù)十進制數(shù)4位二進制數(shù)十六進制數(shù)000000810008100011910019200102101010A300113111011B401004121100C501015131101D601106141110E701117151111F(1)二進制加法運算根據(jù)“逢二進一”的原則,二進制加法法則為:0+0=0,0+1=1,1+0=1,1+1=10(為2時向高位進一位)(2)二進制數(shù)減法運算根據(jù)“借一當二”的原則,二進制減法法則為:0-0=0,0-1=1(不夠減,向高位借一位),1-0=1,1-1=0(3)二進制數(shù)乘法運算在原則上是當兩個乘數(shù)均為1時,積為1,否則積為0。乘法法則為:

0×0=0,0×1=0,1×0=0,1×1=11131.算術運算(1)與運算規(guī)則為“遇0得0”,即參與運算的兩個數(shù)中只要有一個為0,結果就為0;只有當兩個操作數(shù)均為1時,結果才為1。具體規(guī)則為:

0·0=0,0·1=0,1·0=0,1·1=1(2)或運算規(guī)則為“遇1得1”,即參與運算的兩個數(shù)中只要有一個為1,結果就為1;只有當兩個操作數(shù)均為0時,結果才為0。具體規(guī)則為:0+0=0,0+1=1,1+0=1,1+1=1(3)非運算規(guī)則為“按位取反”,即運算結果為參與運算的操作數(shù)取反后的值。具體規(guī)則如下:=1,=0(4)異或運算原則為“相異為1,相同為0”,即當兩個操作不同時,結果為1;當兩個操作數(shù)相同時,結果為0。具體規(guī)則如下:0⊕0=0,0⊕1=1,1⊕0=1,1⊕1=01142.邏輯運算實際應用中存在正負數(shù)的問題,由于計算機只能識別0和1代碼,因此,若要在計算機中表示正負數(shù),需要指定一位二進制位為符號位。通常指定二進制數(shù)據(jù)的最高位為符號位,最高位為0表示正數(shù),最高位為1表示負數(shù)。

常用的帶符號數(shù)的表示方法有以下幾種:(1)機器數(shù)將一個數(shù)在機器中的表示形式稱為機器數(shù)。(2)真值將機器數(shù)的實際數(shù)值稱為真值。(3)原碼正數(shù)的符號位用0表示,負數(shù)的符號位用1表示,數(shù)值部分用真值的絕對值表示的二進制機器數(shù)稱為原碼,一般用[X]原表示。

例如,+113與?113在8位單片機中的原碼表示為:

[+113]原=01110001B;[-113]原=11110001B

其中:0的原碼不唯一,即[+0]原=00000000B,[?0]原=10000000B。115(4)反碼正數(shù)的反碼與該數(shù)的原碼相同;負數(shù)的反碼等于該數(shù)的原碼保留符號位,其余位按位取反。反碼通常用[X]反表示。例如:X=+101,則[X]反=[X]原=01100101BX=-101,則[X]原=11100101B,[X]反=10011010B(5)補碼正數(shù)的補碼是其本身;

負數(shù)的補碼對其原碼求反碼,再在數(shù)值末位加上1,即[X]補=[X]反+1。

例如:[+73]補=[+73]原=01001001B

[-73]補=[-73]反+1=11001001+1=10110111B

[-30]補=[-30]反+1=11100001+1=11100010B116(6)BCD碼

BCD碼是一種用4位二進制數(shù)代表一位十進制數(shù)的代碼,即用0000~1001代表0~9。

例如:(678)BCD=(011001111000)BCD常用的幾種BCD碼如表3-3所示。表3-3常用的幾種BCD碼117BCD碼進制數(shù)8421碼5421碼余3碼2421A碼2421B碼000000000001100000000100010001010000010001200100010010100100010300110011011000110011401000100011101000100501011000100001011011601101001100101101100701111010101001111101810001011101111101110910011100110011111111(7)ASCII碼它是由8位二進制數(shù)組成,其中最高位為校驗位,用于傳輸過程中檢驗數(shù)據(jù)的正確性。其余7位二進制數(shù)表示一個字符,共有128種組合(右表,表中數(shù)字為十進制數(shù))。

例如,ASCII碼值為65代表大寫字母A,數(shù)字0的ASCII碼值為80等。

ASCII值控制字符ASCII值字符ASCII值字符ASCII值字符012345678910111213141516171819202122232425262728293031NULSOHSTXETXEOTENDACKBELBSHTLFVTFFCRSOSIDLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS3233343536373839404142434445464748495051525354555657585960616263(space)!“#$%&‘()*+,-./0123456789:;<

=>

?6465666768697071727374757677787980818283848586878889909192939495@A62BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_96979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127`abcdefghijklmnopqrstuvwxyz{|}~(del)1181193.4.1

單片機內部結構3.4.251單片機的引腳定義及功能12051單片機內部包括中央處理器、內部數(shù)據(jù)存儲器、內部程序存儲器、定時/計數(shù)器、并行I/O口、串口、中斷控制系統(tǒng)和時鐘電路等部件,如圖3-6所示。圖3-6單片機內部結構框圖121122

中央處理器(CPU):CPU是單片機的核心部件,CPU內包含運算器、控制器以及寄存器等。

內部數(shù)據(jù)存儲器(RAM):51單片機芯片內共有256個RAM單元,其中后128個單元被專用寄存器占用,供用戶使用的只是前128個單元。因此,通常所說的內部數(shù)據(jù)存儲器指的是前128個單元,簡稱為內部RAM,其地址范圍是00H~7FH。后128個特殊寄存器區(qū)的地址范圍為80H~0FFH。

內部程序存儲器(ROM):51單片機內部有4KB字節(jié)的程序存儲器ROM,用于存放程序、原始數(shù)據(jù)或表格,也簡稱為內部ROM。51系列內部ROM的地址范圍為0000H~0FFFH(4KB)。

定時器/計數(shù)器:51系列單片機共有2個16位的定時/計數(shù)器,它們主要用來完成定時或計數(shù)功能。用作定時器時,計數(shù)內部分頻時鐘實現(xiàn)定時功能;用作計數(shù)器時,系統(tǒng)對P3.4(T0)或P3.5(T1)端口的低電平脈沖計數(shù)。123

并行I/O口:

51單片機共有4個8位的I/O口(P0,P1,P2,P3),這些I/O口用于完成數(shù)據(jù)的輸入和輸出。

串行口:

51單片機有一個可編程的全雙工通信串口,可用來實現(xiàn)單片機和其他設備之間的串行數(shù)據(jù)傳送。該串口既可作為全雙工異步通信收發(fā)器使用,又可作為移位器使用。它通過RXD(P3.0)引腳接收數(shù)據(jù),TXD(P3.1)引腳發(fā)送數(shù)據(jù)。

中斷控制系統(tǒng):

51單片

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論