《單片機(jī)應(yīng)用技術(shù) 》中職配套PPT課件,單片機(jī)應(yīng)用技術(shù) ,《單片機(jī)應(yīng)用技術(shù),》中職配套PPT課件,單片機(jī),應(yīng)用技術(shù),配套,PPT,課件
項(xiàng)目一 閃爍報(bào)警燈
一、教學(xué)目標(biāo)
1.了解AT89S51系列單片機(jī)基本知識。
2.掌握單片機(jī)最小化系統(tǒng)的構(gòu)成條件及電路。
3.掌握LED基本知識,與單片機(jī)I/O口的連接,會畫電路圖。
4.掌握基本程序結(jié)構(gòu),讀懂基本程序。
5.初步認(rèn)識KEIL C與PROTEUS等軟件,實(shí)現(xiàn)基本調(diào)試步驟。
6.掌握按功能模塊設(shè)計(jì)子程序并按控制要求調(diào)用的結(jié)構(gòu)化程序設(shè)計(jì)。
7.掌握單片機(jī)控制延時及延時子程序的編寫方法。
8.學(xué)會KEIL C與PROTEUS仿真聯(lián)調(diào)。
二、課時分配
本項(xiàng)目共5個任務(wù),安排10課時。
三、教學(xué)重點(diǎn)
通過本項(xiàng)目的學(xué)習(xí),讓學(xué)生學(xué)習(xí)51系列單片機(jī)及最小化系統(tǒng)、點(diǎn)亮LED燈、KEIL C與PROTEUS基本使用、LED報(bào)警燈閃爍、LED報(bào)警燈制作與調(diào)試等概念;通過制作一個閃爍報(bào)警燈,來掌握單片機(jī)的基本知識,會用C語言編寫程序并能讀懂基本控制程序,并學(xué)會使用KEIL C等相關(guān)軟件導(dǎo)入、編譯并調(diào)試源程序,學(xué)會用PROTEUS等軟件仿真等。
四、教學(xué)難點(diǎn)
1.掌握單片機(jī)控制延時及延時子程序的編寫方法。
2.按功能模塊設(shè)計(jì)子程序并按控制要求調(diào)用的結(jié)構(gòu)化程序設(shè)計(jì)。
3.掌握KEIL C與PROTEUS仿真聯(lián)調(diào)。
五、教學(xué)內(nèi)容
任務(wù)一 51系列單片機(jī)及最小化系統(tǒng)
知識準(zhǔn)備
一、單片機(jī)的基本概念
單片微型計(jì)算機(jī)簡稱單片機(jī),在有的書中也稱單片微型控制器。它是把組成微型計(jì)算機(jī)的各種功能部件,包括CPU、隨機(jī)存儲器(RAM)、只讀存儲器(ROM)、基本輸入/輸出(Input/Output,I/O)接口電路、定時器/計(jì)數(shù)器等部分都制作在一塊集成芯片上,構(gòu)成一個完整的微型計(jì)算機(jī),從而實(shí)現(xiàn)微型計(jì)算機(jī)的基本功能。
二、 單片機(jī)發(fā)展史
三、 單片機(jī)的應(yīng)用領(lǐng)域
單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域。
1.在智能儀器儀表上的應(yīng)用
2. 在家用電器中的應(yīng)用
3. 單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用
四、 MCS51系列單片機(jī)
MCS51是原先由美國INTEL公司生產(chǎn)的一系列單片機(jī)的總稱,這一系列單片機(jī)包括了許多品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產(chǎn)品,該系列其他單片機(jī)都是在8051的基礎(chǔ)上進(jìn)行功能的增、減、改變而來的,所以人們習(xí)慣于用8051來稱呼MCS51系列單片機(jī),而8031是前些年在我國最流行的單片機(jī),所以很多場合會看到8031的名稱。
五、 AT89S51單片機(jī)
AT89S51是一個低功耗、高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-System Programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用Atmel公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。
六、 單片機(jī)最小系統(tǒng)構(gòu)成條件及電路
單片機(jī)最小系統(tǒng)是由單片機(jī)芯片外接時鐘電路、復(fù)位電路、電源和接地構(gòu)成的。
?。?復(fù)位電路
2. 時鐘信號引腳XTAL1和XTAL2
七、 單片機(jī)學(xué)習(xí)方法
1. 實(shí)驗(yàn)板
2. 仿真器
3. 編程器
任務(wù)實(shí)施
觀察單片機(jī)最小系統(tǒng)是否工作,將單片機(jī)的18腳接入示波器,調(diào)整示波器的量程,觀察示波器輸出。單片機(jī)有兩個信號輸入腳,一個是19腳(XTAL1),一個是18腳(XTAL2),對應(yīng)單片機(jī)內(nèi)部的電路是高增益放大器。當(dāng)外面接晶振的時候,19腳對應(yīng)高增益放大器的輸入端,18腳對應(yīng)高增益放大器的輸出端,會輸出一個近似正弦波,這里需要注意的是晶振和電容在焊接的時候,要靠近18和19腳。
知識拓展
將示波器接在單片機(jī)的ALE引腳上,觀察示波器的輸出。
目標(biāo)檢測
任務(wù)二 點(diǎn)亮LED燈
知識準(zhǔn)備
本次任務(wù)我們將在KEIL 軟件中編寫源程序,并在Proteus軟件中仿真。具體要求為AT89S52單片機(jī)的P0.7引腳接發(fā)光二極管(LED)的陰極,點(diǎn)亮發(fā)光二極管。
一、LED知識
發(fā)光二極管,也叫做LED,是一種常用的指示器件,例如電源指示、工作指示等。
二、 拉電流和灌電流
單片機(jī)輸出低電平時,將允許外部器件,向單片機(jī)引腳內(nèi)灌入電流,這個電流,稱為“灌電流”,外部電路稱為“灌電流負(fù)載”;單片機(jī)輸出高電平時,則允許外部器件從單片機(jī)的引腳拉出電流,這個電流稱為“拉電流”,外部電路稱為“拉電流負(fù)載”。
三、 LED限流電阻
51單片機(jī)點(diǎn)亮LED方式,主要還是采用灌電流形式。
四、 KEIL C軟件
KEIL C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編語言相比,C語言在功能、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。
五、 PROTEUS 軟件
PROTEUS是英國Labcenter Electro-nics公司開發(fā)的一款電路仿真軟件,軟件由兩部分組成: 一部分是智能原理圖輸入系統(tǒng)ISIS(Intelligent Schematic Input System)和虛擬系統(tǒng)模型VSM(Virtual Model System);另一部分是高級布線及編輯軟件ARES(AdvAncd Routing and Editing Software),也就是PCB。
任務(wù)實(shí)施
一、 在KEIL軟件中編寫源程序
1. 打開程序
在桌面上點(diǎn)擊KEIL圖標(biāo),出現(xiàn)KEIL軟件工作界面。
2. 新建工程
點(diǎn)擊Project 菜單,選擇彈出的下拉式菜單中的New Project,如圖所示。接著彈出一個標(biāo)準(zhǔn)Windows 文件對話窗口。在“文件名”中輸入您的第一個C 程序項(xiàng)目名稱,這里我們用“test”。“保存”后的文件擴(kuò)展名為uv2,這是KEIL uVision2 項(xiàng)目文件擴(kuò)展名,以后可以直接點(diǎn)擊此文件以打開先前做的項(xiàng)目。在圖中選擇AT89S51單片機(jī),在圖中選擇“否”。
3. 新建源程序
點(diǎn)擊圖中的“File”菜單中的“NEW”命令,會出現(xiàn)一個文本編輯區(qū)域,在這個文本里輸入下面的程序,如圖所示,點(diǎn)擊file中的“另存為”,如圖所示。這里我們保存的時候要保存為××.c的格式。這里我們保存為yz.c。
4. 添加文件到當(dāng)前工程中
右鍵單擊圖中“Source Group 1”,選擇“add files to group ‘Source Group’”命令,選擇目標(biāo)文件并確定。當(dāng)出現(xiàn)圖時,表示目標(biāo)文件已經(jīng)添加進(jìn)工程。
5. 設(shè)置
右鍵單擊“target1”,選擇“options for target ‘target 1’”,出現(xiàn)如圖所示對話框,單擊選項(xiàng)卡“target”,出現(xiàn)圖,將“Xtal (MHz)”后的值改為12。單擊選項(xiàng)卡“output”,單擊選中“create hex”項(xiàng)。
6. 編譯
設(shè)置好工程后,即可進(jìn)行編譯、連接。
二、 在PROTEUS軟件中繪制電路圖
1. 操作過程
運(yùn)行PROTEUS的ISIS,進(jìn)入仿真軟件的主界面,如圖所示。主界面分為菜單欄、工具欄、模型顯示窗口、模型選擇區(qū)、元件列表區(qū)等。
2. 元器件之間的連線
PROTEUS的智能化可以在你想要畫線的時候進(jìn)行自動檢測。
三、 KEIL與PROTEUS的對接
(1) 電路連接完成后,選中AT89S51單擊鼠標(biāo)左鍵,打開“Edit Component”對話窗口
(2) 在仿真過程中每個管腳旁邊會出現(xiàn)一個小方塊,紅色的方塊表示高電平,藍(lán)色的方塊表示低電平。通過方塊顏色的變化可以很方便地知道每個管腳電平的變化,從而能對系統(tǒng)的運(yùn)行有更直觀的了解,這對程序的調(diào)試有很大的幫助。
四、 程序分析
1. “文件包含”處理
程序的第一行是一個“文件包含”處理。所謂“文件包含”是指一個文件將另外一個文件的內(nèi)容全部包含進(jìn)來,所以這里的程序雖然只有5行,但C 編譯器在處理的時候卻要處理幾十或幾百行。源程序中頭文件包含“reg51.h”。
2. 符號P0_7 表示P0.7 引腳
3. 主函數(shù)“main”
每一個C 語言程序有且只有一個主函數(shù),函數(shù)后面一定有一對大括號“{}”,在大括號里面書寫其他程序。
4. while(1)語句
While(1)語句連同其后的一對大括號“{}”構(gòu)成了一個無限循環(huán)語句,該大括號內(nèi)的語句將會被反復(fù)執(zhí)行。
5. P0_7=0語句
讓單片機(jī)的P0_7管腳輸出0,低電平,點(diǎn)亮一個燈。
知識拓展
修改電路,編寫程序讓P2.0控制燈亮。
目標(biāo)檢測
任務(wù)三 KEIL C與PROTEUS基本使用
知識準(zhǔn)備
上一次任務(wù),我們基本掌握KEIL C和PROTEUS軟件的使用,本次任務(wù)我們將深入的了解這兩款軟件,并通過點(diǎn)亮一個燈程序,來學(xué)會KEIL C和PROTEUS的仿真聯(lián)調(diào)。
一、 KEIL C軟件
51單片機(jī)的開發(fā)除了需要硬件的支持以外,同樣離不開軟件。
(一) KEIL 編譯器簡介
隨著單片機(jī)開發(fā)技術(shù)的不斷地發(fā)展,從普通使用匯編變速語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷地發(fā)展。KEIL是目前最流行的51單片機(jī)開發(fā)軟件,各仿真機(jī)廠商都宣稱全面KEIL的使用,對于使用C語言進(jìn)行單片機(jī)開發(fā)的用戶,KEIL已經(jīng)成為必備的開發(fā)工具。
(二) 如何使用KEIL開發(fā)
對KEIL軟件及其集成開發(fā)環(huán)境有了整體認(rèn)識后,本任務(wù)詳細(xì)介紹如何使用KEIL來進(jìn)行應(yīng)用軟件的開發(fā)。
1. 建立工程
首先啟動KEIL軟件的集成開發(fā)環(huán)境μVision,μVision啟動以后,程序窗口的左邊會出現(xiàn)一個工程管理窗口。
選擇“Project/New Project ...”菜單,出現(xiàn)一個對話框。
要求給將要建立的工程取一個名字,不需要擴(kuò)展名,單擊“保存”按鈕,出現(xiàn)第二個對話框。
2. 工程設(shè)置
工程建立好之后,還要對工程進(jìn)行進(jìn)一步的設(shè)置,以滿足要求。
設(shè)置對話框中的“Target”頁面,如圖所示。
3. 編譯與連接
在工程建立并設(shè)置好以后,接下來的工作就是對工作進(jìn)行編譯。
4. dScope for Windows的使用
在開發(fā)產(chǎn)品時,有時軟件,也就是應(yīng)用程序,先行于硬件設(shè)計(jì),可以用軟件模擬仿真器(Simulator)對應(yīng)用程序進(jìn)行軟件模擬調(diào)試。
(1) 啟動
如果源程序代碼編譯成功,那么運(yùn)行dScope可以對8051應(yīng)用程序進(jìn)行軟件仿真調(diào)試——使用Simulator。為了運(yùn)行dScope,在如圖所示的“Option for Targe”選項(xiàng)的“Debug”選項(xiàng)中要選中“Use Simular”單選項(xiàng)。
(2) 調(diào)試
調(diào)試是檢查程序中看不見的錯誤,所以要認(rèn)真對待。其實(shí)比起開發(fā)來,排除錯誤的調(diào)試更應(yīng)該認(rèn)真去做,因此,必須熟練掌握其使用要領(lǐng),并且在做開發(fā)計(jì)劃時,通常就把開發(fā)周期和調(diào)試周期同等對待。
(3) 調(diào)試窗口
KEIL軟件在調(diào)試程序時提供了多個窗口,主要包括輸出窗口(Output Window)、觀察窗口(Watch & Call Stack Window)、存儲器窗口(Memory Window)、反匯編窗口(Dissaembly Window)和串行窗口(Serial Window)等。進(jìn)入調(diào)試模式后,可以通過菜單“View”下的相應(yīng)命令打開或關(guān)閉這些窗口。
二、 PROTEUS軟件
PROTEUS ISIS是英國Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。
(一) PROTEUS中繪制點(diǎn)亮LED電路圖
1. 建立文件
單擊工具欄上的“新建”按鈕,新建一個設(shè)計(jì)文檔。
2. 選取元器件
此簡單實(shí)例需要如下元器件:
單片機(jī): AT89C51
發(fā)光二極管: LEDRED
瓷片電容: CAP*
電阻: RES*
選取元器件晶振: CRYSTAL
按鈕: BUTTON
3. 放置元器件至圖形編輯窗口
在對象選擇器窗口中,選中AT89C51,將鼠標(biāo)置于圖形編輯窗口該對象的欲放置的位置,單擊鼠標(biāo)左鍵,該對象被完成放置。
4. 放置終端(電源、地)
單擊工具欄中的終端按鈕,在對象選擇器窗口中選擇“POWER”。
5. 元器件之間的連線
PROTEUS的智能化可以在你想要畫線的時候進(jìn)行自動檢測。
6. 修改、設(shè)置元器件的屬性
PROTEUS庫中的元器件都有相應(yīng)的屬性,要設(shè)置修改元器件的屬性,只需要雙擊ISIS編輯區(qū)中的該元器件
(二) PROTEUS電路圖的繪制
效果圖如圖所示。
1. 將所需元器件加入到對象選擇器窗口
單擊對象選擇器按鈕“p”。
2. 放置元器件至圖形編輯窗口
將“74LS373”“80C51.BUS”和“MEMORY_13_8”放置到圖形編輯窗口。
3. 放置總線至圖形編輯窗口
單擊繪圖工具欄中的總線按鈕“”,使之處于選中狀態(tài)。將鼠標(biāo)置于圖形編輯窗口。
4. 添加時鐘信號發(fā)生器和接地引腳
單擊繪圖工具欄中的信號發(fā)生器按鈕。
5. 元器件之間的連線
在圖形編輯窗口,完成各對象的連線。
6. 給導(dǎo)線或總線加標(biāo)簽
7. 添加電壓探針
單擊繪圖工具欄中的電壓探針按鈕“”,在圖形編輯窗口,完成電壓探針的添加。
8. 設(shè)置元器件的屬性
在圖形編輯窗口內(nèi),將鼠標(biāo)置于時鐘信號發(fā)生器上,單擊鼠標(biāo)右鍵,選中該對象,單擊鼠標(biāo)左鍵,進(jìn)入對象屬性編輯頁面,如圖所示。在“Frequency[Hz]”欄中輸入12M,單擊“OK”按鈕,結(jié)束設(shè)置。此番操作意味著時鐘信號發(fā)生器給單片機(jī)提供頻率為12MHz的時鐘信號。
9. 添加虛擬邏輯分析儀
在我們繪制圖形的過程中,遇到復(fù)雜的圖形,通常一幅圖很難準(zhǔn)確地表達(dá)設(shè)計(jì)者的意圖,往往需要多幅圖來共同表達(dá)一個設(shè)計(jì)。
10. 給邏輯分析儀添加信號終端
單擊繪圖工具欄中的Inter-sheet Terminal按鈕“”,在對象選擇器窗口,選中對象DEFAULT,如圖所示,將其放置到圖形編輯窗口;在對象選擇器窗口,選中對象BUS,將其放置到圖形編輯窗口,如圖所示。
11. 將信號終端與虛擬邏輯分析儀連線并加標(biāo)簽
在圖形編輯窗口,完成信號終端與虛擬邏輯分析儀連線。
12. 調(diào)試運(yùn)行
使用快捷鍵“Page Down”,將圖幅切換到“Root sheet 1”。
三、 PROTEUS和KEIL聯(lián)調(diào)
① 首先,安裝PROTEUS和KEIL軟件。
② 把PROTEUS\\MODEL目錄下的VDM51.DLL文件復(fù)制到KEIL安裝目錄的\\c51\\bin目錄中。
③ 修改KEIL安裝目錄下的TOOLS.INI文件,在c51字段中加入TDRV5=BIN\\VDM51.DLL(“PROTEUS VSM MONITOR51 DRIVER”),并保存。
注: 不一定要用TDRV5,根據(jù)原來字段選用一個不重復(fù)的數(shù)值就可以了,引號中的名字可隨意寫。
④ 運(yùn)行PROTEUS,畫出要設(shè)計(jì)的電路圖,在Debug菜單中選擇Use Remote Debug Monitor選項(xiàng)。
⑤ 在KEIL中編寫相應(yīng)的程序代碼。
⑥ 在KEIL中Project菜單中選擇Options for target “target 1”選項(xiàng)。
任務(wù)實(shí)施
根據(jù)任務(wù)實(shí)施里面的第三項(xiàng),我們先對KEIL和PROTEUS進(jìn)行設(shè)定。
① 在KEIL軟件中輸入源代碼并編譯,如圖所示。
② 在PROTEUS軟件中繪制電路,如圖所示。
③ KEIL和PROTEUS聯(lián)調(diào):
點(diǎn)擊KEIL軟件“”圖標(biāo),在點(diǎn)擊“”后,大家會發(fā)現(xiàn)PROTEUS圖中的燈在閃爍。我們可以利用KEIL中的工具欄,對PROTEUS進(jìn)行詳細(xì)的調(diào)試,如圖所示,我們設(shè)置了一個斷點(diǎn),點(diǎn)擊“”,程序運(yùn)行到斷點(diǎn)處,同時PROTEUS的燈不亮。
知識拓展
利用KEIL軟件中的F10、F11快捷鍵調(diào)試觀察燈的變化。
目標(biāo)檢測
任務(wù)四 LED報(bào)警燈閃爍
知識準(zhǔn)備
通過任務(wù)二我們已經(jīng)知道,要讓圖141中的LED發(fā)光,只要將P0_7置成低電平就可以了,反之把P0_7置成高電平就可以使LED滅掉。本次任務(wù)是要讓LED閃動起來,即讓亮和滅在一段時間內(nèi)交替出現(xiàn)。
一、 函數(shù)
C程序是由函數(shù)組成的,對于規(guī)模較大、比較復(fù)雜的問題,人們常采用模塊化設(shè)計(jì)方法,即將一個較大的程序按功能劃分成若干個程序模塊,每個模塊用來實(shí)現(xiàn)一個特定的功能。在C語言中,函數(shù)就是實(shí)現(xiàn)模塊化程序設(shè)計(jì)的工具,C語言中的函數(shù)相當(dāng)于其他高級語言中的子程序和過程,由于采用函數(shù)結(jié)構(gòu)的寫法,使C語言的程序代碼結(jié)構(gòu)清晰,同時有利于程序的編寫、閱讀和維護(hù)。本次任務(wù)中的延時功能,便是使用函數(shù)來實(shí)現(xiàn)的。
二、 函數(shù)定義的一般形式
(一) 無參函數(shù)的定義形式
類型標(biāo)識符 函數(shù)名()
{
聲明部分
語句
}
(二) 有參函數(shù)定義的一般形式
類型標(biāo)識符 函數(shù)名(形式參數(shù)表列)
{
聲明部分
語句
}
任務(wù)實(shí)施
一、 源程序
二、 程序分析
(一) delay_ms(1000)
因?yàn)閱纹瑱C(jī)的程序執(zhí)行速度很快,如果在很短的時間內(nèi)改變P0.7的狀態(tài),人眼是看不出來的,必須有個合適的延時時間。
(二) 函數(shù)分析
void delay_ms(unsigned int time)
{
unsigned int i,j;
for(i=0;i