《單片機應(yīng)用技術(shù) 》中職配套教學課件_第1頁
《單片機應(yīng)用技術(shù) 》中職配套教學課件_第2頁
《單片機應(yīng)用技術(shù) 》中職配套教學課件_第3頁
《單片機應(yīng)用技術(shù) 》中職配套教學課件_第4頁
《單片機應(yīng)用技術(shù) 》中職配套教學課件_第5頁
已閱讀5頁,還剩297頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

單片機應(yīng)用技術(shù)任務(wù)四LED報警燈閃爍任務(wù)一51系列單片機及最小化系統(tǒng)任務(wù)二點亮LED燈任務(wù)三KEILC與PROTEUS基本使用項目一閃爍報警燈任務(wù)五LED報警燈制作與調(diào)試項目一閃爍報警燈

學習單片機應(yīng)用技術(shù)離不開電子元器件的識別、檢測與更換。本書就是為使初學者從零開始,學生學習51系列單片機及最小化系統(tǒng)、點亮LED燈、KEILC與PROTEUS基本使用、LED報警燈閃爍、LED報警燈制作與調(diào)試等概念;通過制作一個閃爍報警燈,來掌握單片機的基本知識,會用C語言編寫程序并能讀懂基本控制程序,并學會使用KEILC等相關(guān)軟件導入、編譯并調(diào)試源程序,學會用PROTEUS等軟件仿真等。學習重點任務(wù)一51系列單片機及最小化系統(tǒng)

一、單片機的基本概念

單片微型計算機簡稱單片機,在有的書中也稱單片微型控制器。它是把組成微型計算機的各種功能部件,包括CPU、隨機存儲器(RAM)、只讀存儲器(ROM)、基本輸入/輸出(Input/Output,I/O)接口電路、定時器/計數(shù)器等部分都制作在一塊集成芯片上,構(gòu)成一個完整的微型計算機,從而實現(xiàn)微型計算機的基本功能。知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

一、單片機的基本概念知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

一、單片機的基本概念知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

二、單片機發(fā)展史第一代:20世紀70年代后期,4位邏輯控制器件發(fā)展到8位,使用NMOS工藝(速度低、功耗大、集成度低)。第二代:20世紀80年代初,采用CMOS工藝,并逐漸被高速低功耗HMOS工藝代替。第三代:近10年來,MCU的發(fā)展出現(xiàn)了許多新特點。第四代:FLASH的使用,使MCU技術(shù)進入了第四代。知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

三、單片機的應(yīng)用領(lǐng)域

單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域。

1.在智能儀器儀表上的應(yīng)用

2.在家用電器中的應(yīng)用

3.單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

四、MCS51系列單片機

MCS51是原先由美國INTEL公司生產(chǎn)的一系列單片機的總稱,這一系列單片機包括了許多的品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產(chǎn)品,該系列其他單片機都是在8051的基礎(chǔ)上進行功能的增、減、改變而來的,所以人們習慣于用8051來稱呼MCS51系列單片機,而8031是前些年在我國最流行的單片機,所以很多場合會看到8031的名稱。知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

五、AT89S51單片機AT89S51是一個低功耗、高性能CMOS8位單片機,片內(nèi)含4kBytesISP(In-SystemProgrammable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用Atmel公司的高密度、非易失性存儲技術(shù)制造,兼容標準MCS51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲單元,功能強大的微型計算機AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

五、AT89S51單片機知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

六、單片機最小系統(tǒng)構(gòu)成條件及電路知識準備單片機最小系統(tǒng)是由單片機芯片外接時鐘電路、復位電路、電源和接地構(gòu)成的。任務(wù)一51系列單片機及最小化系統(tǒng)

六、單片機最小系統(tǒng)構(gòu)成條件及電路1.復位電路知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

六、單片機最小系統(tǒng)構(gòu)成條件及電路2.時鐘信號引腳XTAL1和XTAL2知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

七、單片機學習方法1.實驗板知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

七、單片機學習方法2.仿真器知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

七、單片機學習方法3.編程器知識準備任務(wù)一51系列單片機及最小化系統(tǒng)

任務(wù)實施觀察單片機最小系統(tǒng)是否工作,將單片機的18腳接入示波器,調(diào)整示波器的量程,觀察示波器輸出。單片機有兩個信號輸入腳,一個是19腳(XTAL1),一個是18腳(XTAL2),對應(yīng)單片機內(nèi)部的電路是高增益放大器。當外面接晶振的時候,19腳對應(yīng)高增益放大器的輸入端,18腳對應(yīng)高增益放大器的輸出端,會輸出一個近似正弦波,這里需要注意的是晶振和電容在焊接的時候,要靠近18和19腳。任務(wù)一51系列單片機及最小化系統(tǒng)

將示波器接在單片機的ALE引腳上,觀察示波器的輸出。知識拓展目標檢測任務(wù)二點亮LED燈

知識準備本次任務(wù)我們將在KEIL軟件中編寫源程序,并在Proteus軟件中仿真。具體要求為AT89S52單片機的P0.7引腳接發(fā)光二極管(LED)的陰極,點亮發(fā)光二極管。任務(wù)二點亮LED燈

知識準備一、LED知識發(fā)光二極管,也叫做LED,是一種常用的指示器件,例如電源指示、工作指示等。任務(wù)二點亮LED燈

知識準備二、拉電流和灌電流單片機輸出低電平時,將允許外部器件,向單片機引腳內(nèi)灌入電流,這個電流,稱為“灌電流”,外部電路稱為“灌電流負載”;單片機輸出高電平時,則允許外部器件從單片機的引腳拉出電流,這個電流稱為“拉電流”,外部電路稱為“拉電流負載”。任務(wù)二點亮LED燈

知識準備三、LED限流電阻51單片機點亮LED方式,主要還是采用灌電流形式。任務(wù)二點亮LED燈

知識準備四、KEILC軟件KEILC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編語言相比,C語言在功能、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。任務(wù)二點亮LED燈

知識準備五、PROTEUS軟件PROTEUS是英國LabcenterElectro-nics公司開發(fā)的一款電路仿真軟件,軟件由兩部分組成:一部分是智能原理圖輸入系統(tǒng)ISIS(IntelligentSchematicInputSystem)和虛擬系統(tǒng)模型VSM(VirtualModelSystem);另一部分是高級布線及編輯軟件ARES(AdvAncdRoutingandEditingSoftware),也就是PCB。任務(wù)二點亮LED燈

知識準備五、PROTEUS軟件PROTEUS與其他單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其他電路的工作情況。因此,在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序1.打開程序在桌面上點擊KEIL圖標,出現(xiàn)KEIL軟件工作界面。任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序2.新建工程點擊Project菜單,選擇彈出的下拉式菜單中的NewProject,如圖所示。接著彈出一個標準Windows文件對話窗口。在“文件名”中輸入您的第一個C程序項目名稱,這里我們用“test”。“保存”后的文件擴展名為uv2,這是KEILuVision2項目文件擴展名,以后可以直接點擊此文件以打開先前做的項目。在圖中選擇AT89S51單片機,在圖中選擇“否”。任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序2.新建工程任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序2.新建工程任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序2.新建工程任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序3.新建源程序點擊圖中的“File”菜單中的“NEW”命令,會出現(xiàn)一個文本編輯區(qū)域,在這個文本里輸入下面的程序,如圖所示,點擊file中的“另存為”,如圖所示。這里我們保存的時候要保存為××.c的格式。這里我們保存為yz.c。任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序3.新建源程序任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序4.添加文件到當前工程中右鍵單擊圖中“SourceGroup1”,選擇“addfilestogroup‘SourceGroup’”命令,選擇目標文件并確定。當出現(xiàn)圖時,表示目標文件已經(jīng)添加進工程。任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序4.添加文件到當前工程中右鍵單擊“SourceGroup1”任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序5.設(shè)置右鍵單擊“target1”,選擇“optionsfortarget‘target1’”,出現(xiàn)如圖所示對話框,單擊選項卡“target”,出現(xiàn)圖,將“Xtal(MHz)”后的值改為12。單擊選項卡“output”,單擊選中“createhex”項。任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序5.設(shè)置單擊選項卡“Target”任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序6.編譯設(shè)置好工程后,即可進行編譯、連接。選擇菜單Project→Buildtarget,對當前工程進行連接,如果當前文件已修改,將先對該文件進行編譯,然后再連接以產(chǎn)生目標代碼。任務(wù)二點亮LED燈

任務(wù)實施一、在KEIL軟件中編寫源程序6.編譯編譯結(jié)果任務(wù)二點亮LED燈

任務(wù)實施二、在PROTEUS軟件中繪制電路圖1.操作過程運行PROTEUS的ISIS,進入仿真軟件的主界面,如圖所示。主界面分為菜單欄、工具欄、模型顯示窗口、模型選擇區(qū)、元件列表區(qū)等。任務(wù)二點亮LED燈

任務(wù)實施二、在PROTEUS軟件中繪制電路圖1.操作過程通過左側(cè)的工具欄區(qū)的P(從庫中選擇元件)命令,在PickDevices窗口中選擇系統(tǒng)所需元器件,如圖所示。任務(wù)二點亮LED燈

任務(wù)實施二、在PROTEUS軟件中繪制電路圖1.操作過程在“Keywords”欄中重新輸入RES,選中“MatchWholeWords”,如圖所示。在“Results”欄中獲得與RES完全匹配的搜索結(jié)果。雙擊“RES”,則可將“RES”(電阻)添加至對象選擇器窗口。單擊“OK”按鈕,結(jié)束對象。任務(wù)二點亮LED燈

任務(wù)實施二、在PROTEUS軟件中繪制電路圖2.元器件之間的連線PROTEUS的智能化可以在你想要畫線的時候進行自動檢測。任務(wù)二點亮LED燈

任務(wù)實施三、KEIL與PROTEUS的對接(1)電路連接完成后,選中AT89S51單擊鼠標左鍵,打開“EditComponent”對話窗口,如圖所示,可以直接在“LockFrequency”后進行頻率設(shè)定,設(shè)定單片機的時鐘頻率為12MHz。在“ProgramFile”欄中選擇已經(jīng)生成的led.hex文件,把在KEIL編寫的程序?qū)隤ROTEUS,然后單擊“OK”按鈕保存設(shè)計。至此,就可以進行單片機的仿真。任務(wù)二點亮LED燈

任務(wù)實施三、KEIL與PROTEUS的對接(1)電路連接完成后,選中AT89S51單擊鼠標左鍵,打開“EditComponent”對話窗口,如圖所示。任務(wù)二點亮LED燈

任務(wù)實施三、KEIL與PROTEUS的對接(2)在仿真過程中每個管腳旁邊會出現(xiàn)一個小方塊,紅色的方塊表示高電平,藍色的方塊表示低電平。通過方塊顏色的變化可以很方便地知道每個管腳電平的變化,從而能對系統(tǒng)的運行有更直觀的了解,這對程序的調(diào)試有很大的幫助。任務(wù)二點亮LED燈

任務(wù)實施四、程序分析1.“文件包含”處理程序的第一行是一個“文件包含”處理。所謂“文件包含”是指一個文件將另外一個文件的內(nèi)容全部包含進來,所以這里的程序雖然只有5行,但C編譯器在處理的時候卻要處理幾十或幾百行。源程序中頭文件包含“reg51.h”。2.符號P0_7表示P0.7引腳3.主函數(shù)“main”每一個C語言程序有且只有一個主函數(shù),函數(shù)后面一定有一對大括號“{}”,在大括號里面書寫其他程序。任務(wù)二點亮LED燈

任務(wù)實施四、程序分析4.while(1)語句While(1)語句連同其后的一對大括號“{}”構(gòu)成了一個無限循環(huán)語句,該大括號內(nèi)的語句將會被反復執(zhí)行。5.P0_7=0語句讓單片機的P0_7管腳輸出0,低電平,點亮一個燈。任務(wù)二點亮LED燈

知識拓展

修改電路,編寫程序讓P2.0控制燈亮。目標檢測

任務(wù)三KEIL

C與PROTEUS基本使用

知識準備上一次任務(wù),我們基本掌握KEILC和PROTEUS軟件的使用,本次任務(wù)我們將深入的了解這兩款軟件,并通過點亮一個燈程序,來學會KEILC和PROTEUS的仿真聯(lián)調(diào)。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件51單片機的開發(fā)除了需要硬件的支持以外,同樣離不開軟件。CPU真正可執(zhí)行的是機器碼,用匯編語言或C等高級語言編寫的源程序必須轉(zhuǎn)換為機器碼才能被執(zhí)行。轉(zhuǎn)換的方法有手工匯編和機器匯編兩種,前者目前已極少使用。機器匯編是指通過匯編軟件將源程序變?yōu)闄C器碼的編譯方法。這種匯編軟件稱為編譯器。本任務(wù)將向大家介紹目前十分流行的KEIL51C編譯器。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(一)KEIL編譯器簡介隨著單片機開發(fā)技術(shù)的不斷地發(fā)展,從普通使用匯編變速語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷地發(fā)展。KEIL是目前最流行的51單片機開發(fā)軟件,各仿真機廠商都宣稱全面KEIL的使用,對于使用C語言進行單片機開發(fā)的用戶,KEIL已經(jīng)成為必備的開發(fā)工具。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(一)KEIL編譯器簡介KEIL提供了一個集成開發(fā)環(huán)境(IDE,IntegratedDevelopmentEnvironment)μVision,它包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器。這樣在開發(fā)應(yīng)用軟件的過程中,編輯、編譯、匯編、連接、調(diào)試等各階段都集成在一個環(huán)境中,先用編輯器編寫程序,接著調(diào)用編譯器進行編譯,連接后即可直接運行。這樣避免了過去先用編輯器進行編輯,然后退出編輯狀態(tài)進行編譯,調(diào)試后又要調(diào)用編輯器的重復過程,因此可以縮短開發(fā)周期。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)對KEIL軟件及其集成開發(fā)環(huán)境有了整體認識后,本任務(wù)詳細介紹如何使用KEIL來進行應(yīng)用軟件的開發(fā)。1.建立工程首先啟動KEIL軟件的集成開發(fā)環(huán)境μVision,μVision啟動以后,程序窗口的左邊會出現(xiàn)一個工程管理窗口。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)1.建立工程任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)建立工程選擇“Project/NewProject...”菜單,出現(xiàn)一個對話框。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)2.工程設(shè)置工程建立好之后,還要對工程進行進一步的設(shè)置,以滿足要求。首先單擊左邊“Project”窗口的“Target1”,然后選擇菜單“Project/Optionfortarget‘garget1’”,即出現(xiàn)工程設(shè)置對話框。此對話框共有8個頁面,有些復雜,好在絕大部分設(shè)置取默認值即可。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)2.工程設(shè)置任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)2.工程設(shè)置任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)2.工程設(shè)置C51標簽頁用于對KEIL的C51編譯器的編譯過程進行控制,其中比較常用的是“CodeOptionzation”組任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)3.編譯與連接在工程建立并設(shè)置好以后,接下來的工作就是對工作進行編譯。如果一個項目包含多個源程序文件,而僅對某一個文件進行了修改,則不用對所有文件進行編譯,僅對修改過的文件進行編譯,然后和已被編譯過的文件進行連接處理;可選擇“Project/BuildTarget”(),或者對所有源程序全部進行編譯連接(),選擇“Project/RebuildallTargetFiles”。按“F7”鍵或單擊快捷按鈕“”僅對修改過的文件進行編譯連接的選擇。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)4.dScopeforWindows的使用在開發(fā)產(chǎn)品時,有時軟件,也就是應(yīng)用程序,先行于硬件設(shè)計,可以用軟件模擬仿真器(Simulator)對應(yīng)用程序進行軟件模擬調(diào)試。另外,現(xiàn)在應(yīng)用程序的開發(fā)往往采用幾個人共同開發(fā)、一個人匯總的情形較多,因此,直接用硬件方法調(diào)試軟件會帶來一定的困難。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)4.dScopeforWindows的使用(1)啟動如果源程序代碼編譯成功,那么運行dScope可以對8051應(yīng)用程序進行軟件仿真調(diào)試——使用Simulator。為了運行dScope,在如圖所示的“OptionforTarge”選項的“Debug”選項中要選中“UseSimular”單選項。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)4.dScopeforWindows的使用(1)啟動“OptionforTarget”頁面中的“Debug”標簽頁面任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件

(二)如何使用KEIL開發(fā)4.dScopeforWindows的使用(1)啟動KEIL執(zhí)行菜單任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)4.dScopeforWindows的使用(2)調(diào)試調(diào)試是檢查程序中看不見的錯誤,所以要認真對待。其實比起開發(fā)來,排除錯誤的調(diào)試更應(yīng)該認真去做,因此,必須熟練掌握其使用要領(lǐng),并且在做開發(fā)計劃時,通常就把開發(fā)周期和調(diào)試周期同等對待。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)4.dScopeforWindows的使用(3)調(diào)試窗口KEIL軟件在調(diào)試程序時提供了多個窗口,主要包括輸出窗口(OutputWindow)、觀察窗口(Watch&CallStackWindow)、存儲器窗口(MemoryWindow)、反匯編窗口(DissaemblyWindow)和串行窗口(SerialWindow)等。進入調(diào)試模式后,可以通過菜單“View”下的相應(yīng)命令打開或關(guān)閉這些窗口。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備一、KEILC軟件(二)如何使用KEIL開發(fā)4.dScopeforWindows的使用(3)調(diào)試窗口任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件PROTEUSISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(一)PROTEUS中繪制點亮LED電路圖1.建立文件單擊工具欄上的“新建”按鈕,新建一個設(shè)計文檔。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(一)PROTEUS中繪制點亮LED電路圖2.選取元器件此簡單實例需要如下元器件:單片機:AT89C51發(fā)光二極管:LEDRED瓷片電容:CAP*電阻:RES*選取元器件晶振:CRYSTAL按鈕:BUTTON任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(一)PROTEUS中繪制點亮LED電路圖3.放置元器件至圖形編輯窗口在對象選擇器窗口中,選中AT89C51,將鼠標置于圖形編輯窗口該對象的欲放置的位置,單擊鼠標左鍵,該對象被完成放置。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(一)PROTEUS中繪制點亮LED電路圖5.元器件之間的連線PROTEUS的智能化可以在你想要畫線的時候進行自動檢測。下面,我們來操作將電阻R1的右端連接到LED顯示器的左端。當鼠標的指針靠近R1右端的連接點時,跟著鼠標的指針就會出現(xiàn)一個“□”號,表明找到了R1的連接點,單擊鼠標左鍵,移動鼠標(不用拖動鼠標),將鼠標的指針靠近LED左端的連接點時,跟著鼠標的指針就會出現(xiàn)一個“□”號,表明找到了LED顯示器的連接點,單擊鼠標左鍵完成電阻R1和LED的連線。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(一)PROTEUS中繪制點亮LED電路圖6.修改、設(shè)置元器件的屬性PROTEUS庫中的元器件都有相應(yīng)的屬性,要設(shè)置修改元器件的屬性,只需要雙擊ISIS編輯區(qū)中的該元器件。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(一)PROTEUS中繪制點亮LED電路圖6.修改、設(shè)置元器件的屬性任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(一)PROTEUS中繪制點亮LED電路圖6.修改、設(shè)置元器件的屬性任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制效果圖如圖所示。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制1.將所需元器件加入到對象選擇器窗口單擊對象選擇器按鈕“p”。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制2.放置元器件至圖形編輯窗口將“74LS373”“80C51.BUS”和“MEMORY_13_8”放置到圖形編輯窗口。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制3.放置總線至圖形編輯窗口單擊繪圖工具欄中的總線按鈕“

”,使之處于選中狀態(tài)。將鼠標置于圖形編輯窗口。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制4.添加時鐘信號發(fā)生器和接地引腳單擊繪圖工具欄中的信號發(fā)生器按鈕。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制5.元器件之間的連線在圖形編輯窗口,完成各對象的連線。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制6.給導線或總線加標簽任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制7.添加電壓探針單擊繪圖工具欄中的電壓探針按鈕“

”,在圖形編輯窗口,完成電壓探針的添加。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制8.設(shè)置元器件的屬性在圖形編輯窗口內(nèi),將鼠標置于時鐘信號發(fā)生器上,單擊鼠標右鍵,選中該對象,單擊鼠標左鍵,進入對象屬性編輯頁面,如圖所示。在“Frequency[Hz]”欄中輸入12M,單擊“OK”按鈕,結(jié)束設(shè)置。此番操作意味著時鐘信號發(fā)生器給單片機提供頻率為12MHz的時鐘信號。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制9.添加虛擬邏輯分析儀在我們繪制圖形的過程中,遇到復雜的圖形,通常一幅圖很難準確地表達設(shè)計者的意圖,往往需要多幅圖來共同表達一個設(shè)計。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制10.給邏輯分析儀添加信號終端單擊繪圖工具欄中的Inter-sheetTerminal按鈕“”,在對象選擇器窗口,選中對象DEFAULT,如圖所示,將其放置到圖形編輯窗口;在對象選擇器窗口,選中對象BUS,將其放置到圖形編輯窗口,如圖所示。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制10.給邏輯分析儀添加信號終端任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制11.將信號終端與虛擬邏輯分析儀連線并加標簽在圖形編輯窗口,完成信號終端與虛擬邏輯分析儀連線。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制11.將信號終端與虛擬邏輯分析儀連線并加標簽任務(wù)三KEIL

C與PROTEUS基本使用

知識準備二、PROTEUS軟件(二)PROTEUS電路圖的繪制12.調(diào)試運行使用快捷鍵“PageDown”,將圖幅切換到“Rootsheet1”任務(wù)三KEIL

C與PROTEUS基本使用

知識準備三、PROTEUS和KEIL聯(lián)調(diào)①首先,安裝PROTEUS和KEIL軟件。②把PROTEUS\\MODEL目錄下的VDM51.DLL文件復制到KEIL安裝目錄的\\c51\\bin目錄中。③修改KEIL安裝目錄下的TOOLS.INI文件,在c51字段中加入TDRV5=BIN\\VDM51.DLL(“PROTEUSVSMMONITOR51DRIVER”),并保存。注:不一定要用TDRV5,根據(jù)原來字段選用一個不重復的數(shù)值就可以了,引號中的名字可隨意寫。任務(wù)三KEIL

C與PROTEUS基本使用

知識準備三、PROTEUS和KEIL聯(lián)調(diào)④運行PROTEUS,畫出要設(shè)計的電路圖,在Debug菜單中選擇UseRemoteDebugMonitor選項。⑤在KEIL中編寫相應(yīng)的程序代碼。⑥在KEIL中Project菜單中選擇Optionsfortarget“target1”選項。任務(wù)三KEIL

C與PROTEUS基本使用

任務(wù)實施根據(jù)任務(wù)實施里面的第三項,我們先對KEIL和PROTEUS進行設(shè)定。①在KEIL軟件中輸入源代碼并編譯,如圖所示。任務(wù)三KEIL

C與PROTEUS基本使用

任務(wù)實施根據(jù)任務(wù)實施里面的第三項,我們先對KEIL和PROTEUS進行設(shè)定。在PROTEUS軟件中繪制電路,如圖所示。任務(wù)三KEIL

C與PROTEUS基本使用

任務(wù)實施根據(jù)任務(wù)實施里面的第三項,我們先對KEIL和PROTEUS進行設(shè)定。③KEIL和PROTEUS聯(lián)調(diào):點擊KEIL軟件“”圖標,在點擊“”后,大家會發(fā)現(xiàn)PROTEUS圖中的燈在閃爍。我們可以利用KEIL中的工具欄,對PROTEUS進行詳細的調(diào)試,如圖所示,我們設(shè)置了一個斷點,點擊“”,程序運行到斷點處,同時PROTEUS的燈不亮。任務(wù)三KEIL

C與PROTEUS基本使用

任務(wù)實施根據(jù)任務(wù)實施里面的第三項,我們先對KEIL和PROTEUS進行設(shè)定③KEIL和PROTEUS聯(lián)調(diào):任務(wù)三KEIL

C與PROTEUS基本使用

任務(wù)實施根據(jù)任務(wù)實施里面的第三項,我們先對KEIL和PROTEUS進行設(shè)定③KEIL和PROTEUS聯(lián)調(diào):任務(wù)三KEIL

C與PROTEUS基本使用

知識拓展利用KEIL軟件中的F10、F11快捷鍵調(diào)試觀察燈的變化。目標檢測任務(wù)四LED報警燈閃爍

通過任務(wù)二我們已經(jīng)知道,要讓圖141中的LED發(fā)光,只要將P0_7置成低電平就可以了,反之把P0_7置成高電平就可以使LED滅掉。本次任務(wù)是要讓LED閃動起來,即讓亮和滅在一段時間內(nèi)交替出現(xiàn)。知識準備任務(wù)四LED報警燈閃爍

知識準備一、函數(shù)C程序是由函數(shù)組成的,對于規(guī)模較大、比較復雜的問題,人們常采用模塊化設(shè)計方法,即將一個較大的程序按功能劃分成若干個程序模塊,每個模塊用來實現(xiàn)一個特定的功能。在C語言中,函數(shù)就是實現(xiàn)模塊化程序設(shè)計的工具,C語言中的函數(shù)相當于其他高級語言中的子程序和過程,由于采用函數(shù)結(jié)構(gòu)的寫法,使C語言的程序代碼結(jié)構(gòu)清晰,同時有利于程序的編寫、閱讀和維護。本次任務(wù)中的延時功能,便是使用函數(shù)來實現(xiàn)的。任務(wù)四LED報警燈閃爍

知識準備二、函數(shù)定義的一般形式(一)無參函數(shù)的定義形式類型標識符函數(shù)名(){聲明部分語句}任務(wù)四LED報警燈閃爍

知識準備二、函數(shù)定義的一般形式(二)

有參函數(shù)定義的一般形式類型標識符函數(shù)名(形式參數(shù)表列){聲明部分語句}任務(wù)四LED報警燈閃爍

一、源程序二、程序分析(一)delay_ms(1000)因為單片機的程序執(zhí)行速度很快,如果在很短的時間內(nèi)改變P0.7的狀態(tài),人眼是看不出來的,必須有個合適的延時時間。任務(wù)實施任務(wù)四LED報警燈閃爍

二、程序分析(二)

函數(shù)分析voiddelay_ms(unsignedinttime){unsignedinti,j;for(i=0;i<time;i++)for(j=0;j<121;j++);}任務(wù)實施任務(wù)四LED報警燈閃爍

三、編譯與仿真將上述源程序在KEILC中編譯并生成HEX文件,在PROTEUS中作原理圖仿真。任務(wù)實施任務(wù)四LED報警燈閃爍

三、編譯與仿真最后的仿真運行結(jié)果任務(wù)實施任務(wù)五LED報警燈制作與調(diào)試

本次任務(wù)是在任務(wù)四的基礎(chǔ)上,制作一個閃爍報警燈。通過本次任務(wù)的學習,學會制作單片機最小化系統(tǒng),并學會使用編程器。一、原理圖原理見圖。注意:這里省去了單片機40腳接、5V電源和20腳接地。知識準備任務(wù)五LED報警燈制作與調(diào)試

知識準備

一、原理圖任務(wù)五LED報警燈制作與調(diào)試

知識準備

二、元器件準備

本次任務(wù)所需元器件見表。任務(wù)五LED報警燈制作與調(diào)試

知識準備三、西爾特280U編程器的使用①西爾特軟件安裝完畢后,使用USB連接線將SUPERPRO/280U連接到PC的USB口。②雙擊運行桌面西爾特軟件圖標。任務(wù)五LED報警燈制作與調(diào)試

知識準備三、西爾特280U編程器的使用③首次使用前應(yīng)先設(shè)置自動燒錄選項。,選擇“編輯自動燒錄方式”,出現(xiàn)對話框。任務(wù)五LED報警燈制作與調(diào)試

知識準備三、西爾特280U編程器的使用③首次使用前應(yīng)先設(shè)置自動燒錄選項。,選擇“編輯自動燒錄方式”,出現(xiàn)對話框。任務(wù)五LED報警燈制作與調(diào)試

知識準備三、西爾特280U編程器的使用④按圖所示,順序增加自動燒錄功能項(Erase—Program—Verify),并單擊“確定”按鈕,出現(xiàn)圖。任務(wù)五LED報警燈制作與調(diào)試

知識準備三、西爾特280U編程器的使用④按圖所示,順序增加自動燒錄功能項(Erase—Program—Verify),并單擊“確定”按鈕,出現(xiàn)圖。任務(wù)五LED報警燈制作與調(diào)試

知識準備三、西爾特280U編程器的使用④按圖所示,順序增加自動燒錄功能項(Erase—Program—Verify),并單擊“確定”按鈕,出現(xiàn)圖。任務(wù)五LED報警燈制作與調(diào)試

任務(wù)實施

一、源程序

二、編譯與仿真

①編譯結(jié)果如圖所示。任務(wù)五LED報警燈制作與調(diào)試

任務(wù)實施

二、編譯與仿真

②仿真結(jié)果如圖所示。任務(wù)五LED報警燈制作與調(diào)試

任務(wù)實施

二、編譯與仿真

②仿真結(jié)果如圖所示。任務(wù)五LED報警燈制作與調(diào)試

任務(wù)實施

二、編譯與仿真

③焊接電路,實物如圖所示。任務(wù)五LED報警燈制作與調(diào)試

任務(wù)實施

二、編譯與仿真

④下載程序進單片機,實物運行效果如圖所示。任務(wù)五LED報警燈制作與調(diào)試

三、程序分析

本次任務(wù)的源程序和任務(wù)四的源程序變化的地方就在于將任務(wù)四的“#include"reg51.h";sbitled=P0^7;”這兩句換成“#include"at89x51.h";#defineledP0_7”。下面分別解釋任務(wù)五這兩行語句的含義。

1.#include"at89x51.h"

2.#defineledP0_7任務(wù)實施任務(wù)五LED報警燈制作與調(diào)試

三、程序分析這句的意思是給P0_7端口重新起一個名字,下面程序在提到led的地方,就表示用的是P0_7這個端口。這樣寫的好處在于,如果將來硬件電路需要將燈接到P1_7上時,我們就不用在程序中修改,只需把語句修改成#defineledP1_7就可以了。任務(wù)實施目標檢測項目一閃爍報警燈

思考題1.單片機由哪幾個功能部件組成?2.簡述單片機的發(fā)展史。3.AT89S51單片機的4個I/O口在使用上有哪些分工和特點?4.AT89S51的P3口第二功能有哪些?5.為了更好地學習單片機,往往需要準備必要的軟、硬件設(shè)備,請問常用的硬件設(shè)備需要準備哪些?這些硬件設(shè)備有什么用途?THANKYOU!謝謝觀看!單片機應(yīng)用技術(shù)任務(wù)四按鍵計數(shù)器制作與調(diào)試任務(wù)一按鍵輸入檢測任務(wù)二單只數(shù)碼管顯示任務(wù)三多位數(shù)碼管顯示項目二

按鍵計數(shù)器項目二

按鍵計數(shù)器

學習重點

通過本項目的學習,讓學生學習按鍵輸入檢測、單只數(shù)碼管顯示、多位數(shù)碼管顯示、按鍵計數(shù)器制作與調(diào)試等概念;本項目的學習和實踐,我們掌握按鍵檢測、消抖程序設(shè)計方法;數(shù)碼管結(jié)構(gòu)類型、段碼、靜態(tài)與動態(tài)顯示程序設(shè)計方法。任務(wù)一按鍵輸入檢測

知識準備

在很多項目中都會用到按鍵,如圖所示的電子秤。任務(wù)一按鍵輸入檢測

知識準備一、鍵盤的分類

鍵盤分編碼鍵盤和非編碼鍵盤兩種。鍵盤上閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生鍵編碼號或鍵值的稱為編碼鍵盤,如計算機的鍵盤。而靠軟件編程來識別的稱為非編碼鍵盤,在單片機組成的各種系統(tǒng)中,用得最多的是非編碼鍵盤。非編碼鍵盤分為行列式(又稱為矩陣式)鍵盤和獨立按鍵。本次任務(wù),我們選擇的是獨立按鍵。任務(wù)一按鍵輸入檢測

知識準備一、鍵盤的分類任務(wù)一按鍵輸入檢測

知識準備二、獨立按鍵連接圖

獨立按鍵連接電路有兩種,一種是按鍵的公共端接地,當按鍵按下時,單片機控制引腳輸入低電平“0”,如圖所示。另一種是按鍵的公共端接電源,這樣當按鍵按下時,單片機的控制引腳接高電平“1”,如圖所示。任務(wù)一按鍵輸入檢測

知識準備三、按鍵抖動

通常按鍵所用開關(guān)多為機械彈性開關(guān),當機械觸點斷開、閉合時,電壓信號波形如圖所示。任務(wù)一按鍵輸入檢測

知識準備四、按鍵程序編寫

由于按鍵按下后,會出現(xiàn)抖動,單片機應(yīng)該避開這段時間,待鍵盤穩(wěn)定后,再對鍵盤的信息進行識別。任務(wù)一按鍵輸入檢測

任務(wù)實施一、繪制原理圖二、編寫源程序三、程序分析

①按鍵識別的步驟:先判斷按鍵是否按下,如果沒按,直接退出。如果按下,此時還不能確定是否為有效按下,有可能是抖動,此時應(yīng)去抖動,調(diào)用延時函數(shù)。

②本程序?qū)袅吝€是滅分成兩個狀態(tài)。在亮的時候,如果按鍵按下,燈滅。在滅的時候,如果按鍵按下,燈亮。這里的led_flag就是作燈狀態(tài)的一個標記。任務(wù)一按鍵輸入檢測

知識拓展

試編寫程序:按鍵按下燈亮,松開燈滅。目標檢測任務(wù)二

單只數(shù)碼管顯示

知識準備

數(shù)碼管作為一種應(yīng)用十分普遍的顯示器件可以在各種各樣的設(shè)備上見到,圖就是電子鐘顯示的效果圖。任務(wù)二

單只數(shù)碼管顯示

知識準備一、數(shù)碼管

數(shù)碼管也叫LED數(shù)碼顯示器,其實是由多個LED排列封裝而成,圖給出了一些常見數(shù)碼管的實物圖,其引腳如圖所示。任務(wù)二

單只數(shù)碼管顯示

知識準備二、LED七段數(shù)碼管結(jié)構(gòu)原理

LED七段數(shù)碼管通常由8個LED發(fā)光二極管組成,其中7個發(fā)光LED二極管構(gòu)成7筆字形,一個構(gòu)成小數(shù)點,通稱七段LED數(shù)碼管。任務(wù)二

單只數(shù)碼管顯示

知識準備三、LED七段數(shù)碼管顯示字符和字母的方法

如果我們要顯示“6”,并不是給數(shù)碼管寫個“6”就行了,而是點亮這個數(shù)碼管的相應(yīng)的一些LED發(fā)光二極管,即點亮a,c,d,e,f,g段,其余段滅。任務(wù)二

單只數(shù)碼管顯示

一、繪制原理圖

在PROTEUS中畫好的原理圖,如圖所示。本圖中我們省去單片機的復位電路和晶振電路。但是在制作電路板的時候,還是要加進去,不能省去。任務(wù)實施任務(wù)二

單只數(shù)碼管顯示

二、編寫源程序三、程序分析

①port_0=table[count]:當count=0時,port_0=table[0],相當于把“0”的段碼通過單片機的P0端口送到數(shù)碼管上,數(shù)碼管顯示“0”。

②delay_time()是個延時函數(shù):控制前后兩次顯示的切換的快慢。

③在任務(wù)一和任務(wù)二中,我們都調(diào)用到了一個delay_time()的延時函數(shù),程序中,delay_time()函數(shù)的定義如果出現(xiàn)在main()函數(shù)前,就不需要對delay_time()做說明而直接使用任務(wù)實施任務(wù)二

單只數(shù)碼管顯示

四、編譯與仿真

將上述源程序在KEILC中編譯并生成HEX文件,在PROTEUS中作原理圖仿真。PROTEUS對單片機的仿真結(jié)果見圖。任務(wù)實施任務(wù)二

單只數(shù)碼管顯示

四、編譯與仿真

將上述源程序在KEILC中編譯并生成HEX文件,在PROTEUS中作原理圖仿真。PROTEUS對單片機的仿真結(jié)果見圖。任務(wù)實施任務(wù)二

單只數(shù)碼管顯示

四、編譯與仿真

將上述源程序在KEILC中編譯并生成HEX文件,在PROTEUS中作原理圖仿真。PROTEUS對單片機的仿真結(jié)果見圖。任務(wù)實施任務(wù)二

單只數(shù)碼管顯示

知識拓展

①推導共陰和共陽數(shù)碼管顯示“H”的時候的段碼。

②通過修改延時函數(shù),觀察數(shù)碼管顯示。

③本次任務(wù)選擇的是共陽數(shù)碼管,如選擇共陰數(shù)碼管,如何編寫程序?目標檢測任務(wù)三

多位數(shù)碼管顯示

由于很多項目中都會用到多位數(shù)碼管,多位數(shù)碼管的顯示一般有兩種方法:靜態(tài)顯示和動態(tài)顯示。一、靜態(tài)顯示

所謂靜態(tài)顯示,是指當顯示器顯示某個字符時,相應(yīng)位的發(fā)光二極管處于恒定的導通或截止狀態(tài),直到需要顯示另一個字符為止。知識準備任務(wù)三

多位數(shù)碼管顯示

知識準備二、

動態(tài)顯示原理

LED數(shù)碼管顯示的基本原理是利用人眼的“視覺暫留”效應(yīng)和發(fā)光二極管的余暉現(xiàn)象來工作的。接口電路把所有數(shù)碼管的8個筆畫段a~dp的各同名端相互連接在一起,并把它們接到輸出口上,每個數(shù)碼管的公共端COM各自獨立地受控制。任務(wù)三

多位數(shù)碼管顯示

知識準備三、數(shù)碼管靜態(tài)顯示驅(qū)動電路

將單片機的管腳直接和數(shù)碼管相連,當然中間需要增加限流電阻,如圖所示。對于共陽數(shù)碼管,公共端需要接上高電平,要想顯示什么字符,只需單片機輸出該字符的顯示段碼就可以了。任務(wù)三

多位數(shù)碼管顯示

知識準備四、數(shù)碼管動態(tài)顯示驅(qū)動電路

單片機的管腳和動態(tài)數(shù)碼管相連,中間加上限流電阻,這個和靜態(tài)顯示電路一樣。任務(wù)三

多位數(shù)碼管顯示

任務(wù)實施一、

靜態(tài)顯示00~59s循環(huán)計時

1.繪制原理圖

在PROTEUS軟件中繪制的原理圖任務(wù)三

多位數(shù)碼管顯示

任務(wù)實施

2.編寫源程序

3.程序分析

(1)程序運行的時候,數(shù)碼管要求顯示00,接著1s到后,數(shù)碼管顯示01。所以初始化需要加上這幾句second=0;port_2=table[second%10];port_0=table[second/10]。

(2)當second=29的時候,second%10=9,那么table[second%10]=table[9],而table[9]=0X90,正好對應(yīng)了9的段碼,通過執(zhí)行port_2=table[second%10]語句,數(shù)碼管個位顯示9。任務(wù)三

多位數(shù)碼管顯示

任務(wù)實施

4.編譯與仿真

將上述源程序在KEILC中編譯并生成HEX文件,在PROTEUS中作原理圖仿真。正確的編譯結(jié)果如圖所示。任務(wù)三

多位數(shù)碼管顯示

任務(wù)實施

4.編譯與仿真

PROTEUS對單片機的仿真結(jié)果任務(wù)三

多位數(shù)碼管顯示

任務(wù)實施二、動態(tài)顯示電路圖

1.繪制原理圖

在PROTEUS軟件中繪制的原理圖,如圖所示。任務(wù)三

多位數(shù)碼管顯示

任務(wù)實施二、動態(tài)顯示電路圖

2.編寫源程序

3.編譯與仿真任務(wù)三

多位數(shù)碼管顯示

任務(wù)實施二、動態(tài)顯示電路圖

3.編譯與仿真任務(wù)三

多位數(shù)碼管顯示

知識拓展

試修改程序并仿真,看能否動態(tài)顯示59到00倒計數(shù)。目標檢測任務(wù)四

按鍵計數(shù)器制作與調(diào)試

本次任務(wù)是在前面幾個任務(wù)的基礎(chǔ)上,制作一個按鍵計數(shù)器電路,并能夠根據(jù)控制要求編寫單片機程序。具體的功能要求為:系統(tǒng)剛上電時,數(shù)碼管顯示“00”,每次按動加法鍵,數(shù)碼管顯示數(shù)據(jù)增加1,每次按動減法按鈕,顯示數(shù)據(jù)減1,通過按鍵設(shè)置,讓數(shù)碼管顯示范圍在“00~20”之間變化。知識準備任務(wù)四

按鍵計數(shù)器制作與調(diào)試

一、繪制原理圖

在Proteus軟件中繪制的原理圖,如圖所示。知識準備任務(wù)四

按鍵計數(shù)器制作與調(diào)試

二、編寫源程序三、編譯與仿真

將上述源程序在KEILC中編譯并生成HEX文件,在PROTEUS中作原理圖仿真。知識準備任務(wù)四

按鍵計數(shù)器制作與調(diào)試

三、編譯與仿真

PROTEUS對單片機的仿真結(jié)果知識準備任務(wù)四

按鍵計數(shù)器制作與調(diào)試

四、實物展示知識準備任務(wù)四

按鍵計數(shù)器制作與調(diào)試

知識拓展

嘗試修改程序,等按鍵松開后,讓顯示的數(shù)值發(fā)生改變。目標檢測項目二

按鍵計數(shù)器

思考題

1.

描述單位LED數(shù)碼管的物理結(jié)構(gòu)。

2.簡述單位LED數(shù)碼管的顯示原理。

3.在PROTUES中繪制數(shù)碼管顯示電路圖,將本任務(wù)“知識拓展”的例子中LED數(shù)碼管變更到其他口,實現(xiàn)顯示9到0的倒計時。修改程序輸入仿真,觀察現(xiàn)象。4.敘述多位LED數(shù)碼管掃描顯示工作過程。5.結(jié)合項目一中的delay_ms()延時1秒鐘函數(shù),完成數(shù)碼管60秒鐘計時。

THANKYOU!謝謝觀看!單片機應(yīng)用技術(shù)任務(wù)四倒計時交通燈制作與調(diào)試任務(wù)一按鈕控制外部中斷應(yīng)用任務(wù)二定時器控制數(shù)碼管計時任務(wù)三定時器中斷實現(xiàn)倒計時交通燈控制項目三

倒計時交通燈項目三

倒計時交通燈

學習重點

通過本項目的學習,讓學生學習按鈕控制外部中斷應(yīng)用、定時器控制數(shù)碼管計時、定時器中斷實現(xiàn)倒計時交通燈控制、倒計時交通燈制作與調(diào)試的識讀及簡單分析;電阻器的參數(shù)、作用及測量;通過本項目的學習與實踐,我們要掌握單片機中斷系統(tǒng)的基本概念、工作原理和工作方式,并掌握中斷服務(wù)程序的寫法和實際應(yīng)用;了解定時器的工作方式及應(yīng)用。本項目中,我們將先用兩個任務(wù)來學習單片機的中斷系統(tǒng)和定時器系統(tǒng),最后以這兩個項目為基礎(chǔ)實現(xiàn)交通燈的總體控制。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備

51單片機四組I/O口中的P3口其實是多功能復用口,其中P3.2和P3.3(第12、13腳)就是單片機的外部中斷輸入端,如圖所示。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備一、任務(wù)及其優(yōu)先級

一個完整的單片機系統(tǒng)其實就是由多個不同功能的子模塊疊加在一起所組成的。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備二、中斷的概念

中斷是為使CPU具有對單片機外部或內(nèi)部產(chǎn)生的重要事件進行實時處理的能力而設(shè)置的。51系列單片機的中斷系統(tǒng)能大大提高單片機對內(nèi)部和外部事件的處理能力。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備三、51系列單片機的中斷源

1.IT1——INT1中斷觸發(fā)方式控制位

(1)“1”INT1使用跳沿觸發(fā)方式;

(2)“0”INT1使用電平觸發(fā)方式。

2.IE1——INT1中斷請求標志位

若IT1為1,則當INT1輸入引腳產(chǎn)生一個下降沿時,該位會被硬件置“1”,以向CPU發(fā)出中斷申請。該位會在CPU響應(yīng)INT1中斷服務(wù)程序后由硬件清“0”,該位可以軟件清“0”。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備四、中斷使能控制寄存器

中斷使能控制寄存器IE是控制51單片機中斷開關(guān)的寄存器。其各位的含義如表所示。該特殊功能寄存器是可位尋址的。通過對該寄存器的設(shè)置,能夠?qū)崿F(xiàn)中斷的2級開關(guān)控制,即一個所有中斷的總開關(guān)和每個中斷的子開關(guān)。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備四、中斷使能控制寄存器

1.EA——中斷使能總控制位

(1)“1”開放所有中斷(俗稱開中斷);

(2)“0”屏蔽所有中斷(俗稱關(guān)中斷)。

2.ES——串口中斷使能控制位

(1)“1”打開串口中斷;

(2)“0”關(guān)閉串口中斷。

3.ET1——T1溢出中斷使能控制位

(1)“1”打開T1溢出中斷;

(2)“0”關(guān)閉T1溢出中斷。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備四、中斷使能控制寄存器

4.EX1——INT1中斷使能控制位

(1)“1”打開INT1中斷;

(2)“0”關(guān)閉INT1中斷。

5.ET0——T0溢出中斷使能控制位

(1)“1”打開T0溢出中斷;

(2)“0”關(guān)閉T0溢出中斷。

6.EX0——INT0中斷使能控制位

(1)“1”打開INT0中斷;

(2)“0”關(guān)閉INT0中斷。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備五、中斷優(yōu)先級控制寄存器

中斷優(yōu)先級控制寄存器IP,用于控制單片機中斷源的優(yōu)先級。該寄存器是可位尋址的。并且該寄存器設(shè)定的中斷優(yōu)先級高于自然優(yōu)先級。其各位的含義如表所示。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備五、中斷優(yōu)先級控制寄存器

1.PS——串口中斷優(yōu)先級控制位

(1)“1”串口中斷優(yōu)先級設(shè)為高;

(2)“0”串口中斷優(yōu)先級設(shè)為低。

2.PT1——T1溢出中斷優(yōu)先級控制位

(1)“1”T1溢出中斷優(yōu)先級設(shè)為高;

(2)“0”T1溢出中斷優(yōu)先級設(shè)為低。

3.PX1——INT1中斷優(yōu)先級控制位

(1)“1”INT1中斷優(yōu)先級設(shè)為高;

(2)“0”INT1中斷優(yōu)先級設(shè)為低。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備五、中斷優(yōu)先級控制寄存器

4.PT0——T0溢出中斷優(yōu)先級控制位

(1)“1”T0溢出中斷優(yōu)先級設(shè)為高;

(2)“0”T0溢出中斷優(yōu)先級設(shè)為低。

5.PX0——INT0中斷優(yōu)先級控制位

(1)“1”INT0中斷優(yōu)先級設(shè)為高;

(2)“0”INT0中斷優(yōu)先級設(shè)為低。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備六、中斷處理過程

當某一個中斷發(fā)生時,單片機的中斷系統(tǒng)將該中斷的中斷請求標志位置“1”,CPU查詢到該標志位是“1”后,如果該中斷被打開,那么,CPU會停止當前程序的運行,轉(zhuǎn)而執(zhí)行中斷服務(wù)程序,并將中斷請求標志位清“0”(串口中斷標志位必須軟件清“0”)。任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備七、外部中斷的觸發(fā)方式

外部中斷是當單片機外部發(fā)生緊急事件,需要單片機立即處理時,事件能夠向CPU發(fā)出處理請求的途徑。外部事件觸發(fā)外部中斷的方式有兩種:

1.電平觸發(fā)方式(低電平)

2.邊沿觸發(fā)方式(下降沿)任務(wù)一按鈕控制外部中斷應(yīng)用

知識準備八、外部中斷服務(wù)程序的編寫

中斷服務(wù)程序的編寫和其他函數(shù)程序的編寫略有不同。這是因為當中斷發(fā)生時,每個中斷所對應(yīng)的中斷服務(wù)程序所存放的位置在ROM中是固定的,因此,中斷服務(wù)程序必須通過中斷號指定中斷的類型。任務(wù)一按鈕控制外部中斷應(yīng)用

任務(wù)實施一、原理圖的繪制

在PROTUES中畫好原理圖,完整的原理圖如圖所示。任務(wù)一按鈕控制外部中斷應(yīng)用

任務(wù)實施二、編寫外部中斷試驗程序三、程序分析

typedef原數(shù)據(jù)類型新數(shù)據(jù)類型;

typedefunsignedintU16;任務(wù)一按鈕控制外部中斷應(yīng)用

任務(wù)實施四、編譯與仿真

將上述源程序在KEILC中編譯并生成HEX文件,在PROTUES中作原理圖仿真。正確的編譯結(jié)果如圖所示。任務(wù)一按鈕控制外部中斷應(yīng)用

任務(wù)實施四、編譯與仿真目標檢測任務(wù)二定時器控制數(shù)碼管計時

知識準備

數(shù)字鐘是日常生活很常用的數(shù)碼產(chǎn)品,在本任務(wù)中,我們將模擬實現(xiàn)數(shù)字鐘讀秒部分的功能,并且使用兩個按鍵控制外部中斷來使秒表能夠根據(jù)需要正計時和倒計時。任務(wù)二定時器控制數(shù)碼管計時

知識準備一、定時/計數(shù)器的基本知識

51系列單片機內(nèi)部具有兩個16位的定時/計數(shù)器,分別是T0和T1(52系列還有定時器T2)。

1.計數(shù)器模式任務(wù)二定時器控制數(shù)碼管計時

知識準備一、定時/計數(shù)器的基本知識

2.定時器模式任務(wù)二定時器控制數(shù)碼管計時

知識準備二、定時器控制寄存器TCON

TCON中各位的含義如表3-12所示,這里我們主要講解高四位的功能。

1.TF1——T1溢出中斷請求位

(1)“1”T1溢出,向CPU申請中斷。

(2)“0”T1未溢出。

2.TR1——T1啟動位,該位須由軟件置位或清零

(1)“1”T1計數(shù)開始。

(2)“0”T1計數(shù)停止。任務(wù)二定時器控制數(shù)碼管計時

知識準備三、定時方式寄存器TMOD如表所示是TMOD中各位的含義。該寄存器不能位尋址。任務(wù)二定時器控制數(shù)碼管計時

知識準備三、定時方式寄存器TMOD

1.M1,M0——T0方式控制位

(1)“00”方式0——13位定時計數(shù)方式。

(2)“01”方式1——16位定時計數(shù)方式。

(3)“10”方式2——8位常數(shù)自動重載方式。

(4)“11”方式3——雙8位定時計數(shù)方式(僅適用于T0)。

2.C/T——定時器計數(shù)器模式選擇位

(1)“1”T0處于計數(shù)模式。

(2)“0”T0處于定時模式。任務(wù)二定時器控制數(shù)碼管計時

知識準備三、定時方式寄存器TMOD

3.GATE——門控位

(1)“1”定時計數(shù)器的啟動由TR0=1和INT0接收到的高電平來共同控制。

(2)“0”定時計數(shù)器的啟動僅由TR0=1來控制。任務(wù)二定時器控制數(shù)碼管計時

知識準備四、定時計數(shù)器的四種工作方式

1.方式0

當M1M0是00時,定時計數(shù)器工作于方式0,該方式是13位定時或計數(shù)方式。該方式下,定時計數(shù)器的邏輯結(jié)構(gòu)如圖所示。任務(wù)二定時器控制數(shù)碼管計時

知識準備四、定時計數(shù)器的四種工作方式

2.方式1

當M1M0是01時,定時計數(shù)器工作于方式1,該方式是16位定時或計數(shù)方式。該方式下,定時計數(shù)器的邏輯結(jié)構(gòu)如圖所示。任務(wù)二定時器控制數(shù)碼管計時

知識準備四、定時計數(shù)器的四種工作方式

3.方式2

方式0和方式1的最大特點是,當計數(shù)發(fā)生溢出后,計數(shù)器會全部清0。因此在循環(huán)定時或循環(huán)計數(shù)應(yīng)用時,就會需要軟件反復設(shè)置計數(shù)器的初值,這不但增加了程序的復雜度,而且在定時時間很短的場合,也會影響到定時的精度。此時,可以使用方式2來解決這個問題。任務(wù)二定時器控制數(shù)碼管計時

知識準備四、定時計數(shù)器的四種工作方式

4.方式3

方式3是為了增加一個附加的8位定時計數(shù)器而提供的,這樣51單片機就具有三個定時計數(shù)器(52系列單片機本身就有第三個定時計數(shù)器T2)。只有T0能工作于方式3,T1不能工作在方式3,一般只有在T1做波特率發(fā)生器,系統(tǒng)卻還需要兩個定時器的情況下才使T0工作于方式3。任務(wù)二定時器控制數(shù)碼管計時

知識準備四、定時計數(shù)器的四種工作方式

4.方式3

圖是T0工作在方式3時的邏輯結(jié)構(gòu)圖。任務(wù)二定時器控制數(shù)碼管計時

知識準備五、定時器初值的計算

當使用定時器時,根據(jù)所需的定時值,需要設(shè)置定時器的初值。下面以最常用的方式1為例,詳細講解定時器初值的計算過程。任務(wù)二定時器控制數(shù)碼管計時

一、原理圖的繪制

在PROTUES中繪制原理圖。二、編寫定時器計數(shù)試驗程序三、程序分析

主函數(shù)首先初始化定時器T1和T0,并打開兩個定時器中斷和外部中斷。然后打開兩個定時器使兩個定時器開始運行。任務(wù)實施任務(wù)二定時器控制數(shù)碼管計時

四、編譯仿真

將上述源程序在KEILC中編譯并生成HEX文件,在PROTUES中作原理圖仿真。正確的編譯結(jié)果如圖所示。任務(wù)實施任務(wù)二定時器控制數(shù)碼管計時

四、編譯仿真任務(wù)實施目標檢測任務(wù)三

定時器中斷實現(xiàn)倒計時交通燈控制

知識準備本任務(wù)是以上兩個任務(wù)的綜合。系統(tǒng)主要要求如下:

①紅綠燈控制只使用一路雙向。

②兩個數(shù)碼管用于對紅黃綠燈的時間進行倒計時計數(shù)。

③綠燈40s,紅燈20s,黃燈4s。

④行人優(yōu)先系統(tǒng)能強行減少機動車的綠燈時間。

⑤計時精度達到實用要求,誤差控制要好。任務(wù)三

定時器中斷實現(xiàn)倒計時交通燈控制

知識準備

⑥程序結(jié)構(gòu)清晰,變量命名含義明確,采用結(jié)構(gòu)化的編程方法。

⑦系統(tǒng)整個運行過程中沒有明顯漏洞。任務(wù)三

定時器中斷實現(xiàn)倒計時交通燈控制

一、編寫源程序二、程序分析

主函數(shù)中,程序先完成對各個中斷和定時器的初始化,并確定系統(tǒng)運行時的初始狀態(tài)(本任務(wù)是綠燈狀態(tài))。然后后臺部分啟動[即主函數(shù)中的while任務(wù)實施任務(wù)三

定時器中斷實現(xiàn)倒計時交通燈控制

三、編譯與仿真

將上述源程序在KEILC中編譯并生成HEX文件,在PROTUES中作原理圖仿真。正確的編譯結(jié)果如圖所示。任務(wù)實施任務(wù)三

定時器中斷實現(xiàn)倒計時交通燈控制

三、編譯與仿真任務(wù)實施目標檢測任務(wù)四

倒計時交通燈制作與調(diào)試

倒計時交通燈的硬件連接原理圖如圖331所示。按照圖中的硬件在萬能板上搭建實物。知識準備任務(wù)四

倒計時交通燈制作與調(diào)試

搭建好的實物板如圖所示。目標檢測任務(wù)實施項目一標題

1.按照51單片機內(nèi)中斷源的自然優(yōu)先級,寫出每個中斷的名稱及符號表示。

2.與外部中斷INT0相關(guān)的配置寄存器有哪些?

3.編程挑戰(zhàn):運用兩個外部中斷所連接的按鈕,來控制數(shù)碼管的亮滅。如果僅使用一個按鈕來實現(xiàn)數(shù)碼管的開關(guān),你能做到嗎?(假設(shè)數(shù)碼管顯示0是點亮,什么都不顯示是熄滅。)

4.修改本任務(wù)的設(shè)計,實現(xiàn):主道紅燈狀態(tài)下,10s內(nèi)如無行人按下按鍵,則主道方向自動切換成綠燈;如10s內(nèi)有行人按下按鍵,則主道方向的紅燈再延時10秒。其余條件不變。思考題THANKYOU!謝謝觀看!單片機應(yīng)用技術(shù)任務(wù)一直流電機驅(qū)動及正反轉(zhuǎn)控制任務(wù)二采用PWM技術(shù)實現(xiàn)直流電機調(diào)速任務(wù)三直流電機調(diào)速控制實訓項目四

直流電機調(diào)速項目四

直流電機調(diào)速

溫馨提示

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

評論

0/150

提交評論