單片機(jī)原理與應(yīng)用(C51編程+Proteus仿真) 課件全套 劉霞 第1-10章 單片機(jī)概述- 單片機(jī)應(yīng)用系統(tǒng)綜合設(shè)計(jì)_第1頁(yè)
單片機(jī)原理與應(yīng)用(C51編程+Proteus仿真) 課件全套 劉霞 第1-10章 單片機(jī)概述- 單片機(jī)應(yīng)用系統(tǒng)綜合設(shè)計(jì)_第2頁(yè)
單片機(jī)原理與應(yīng)用(C51編程+Proteus仿真) 課件全套 劉霞 第1-10章 單片機(jī)概述- 單片機(jī)應(yīng)用系統(tǒng)綜合設(shè)計(jì)_第3頁(yè)
單片機(jī)原理與應(yīng)用(C51編程+Proteus仿真) 課件全套 劉霞 第1-10章 單片機(jī)概述- 單片機(jī)應(yīng)用系統(tǒng)綜合設(shè)計(jì)_第4頁(yè)
單片機(jī)原理與應(yīng)用(C51編程+Proteus仿真) 課件全套 劉霞 第1-10章 單片機(jī)概述- 單片機(jī)應(yīng)用系統(tǒng)綜合設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩573頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)概述01重點(diǎn)介紹單片機(jī)的基本概念、開(kāi)發(fā)步驟以及仿真環(huán)境搭建。01單片機(jī)概述123單片機(jī)的基本概念單片機(jī)的開(kāi)發(fā)步驟單片機(jī)仿真開(kāi)發(fā)環(huán)境搭建1.1單片機(jī)的基本概念一、單片機(jī)簡(jiǎn)介在一塊芯片上集成:中央處理單元(CPU)、程序存儲(chǔ)器(

ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、輸入/輸出接口(I/O)、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、系統(tǒng)時(shí)鐘電路、系統(tǒng)總線以及各種外圍功能部件。嵌入式控制器(EMCU)或微控制器(MCU)單片機(jī)(SCM)專用型通用型分類專門(mén)針對(duì)某些產(chǎn)品的特定用途而制作的單片機(jī)。內(nèi)部可開(kāi)發(fā)的資源全部提供給用戶。簡(jiǎn)稱國(guó)際國(guó)內(nèi)單片機(jī)單片微型計(jì)算機(jī)的簡(jiǎn)稱1.1單片機(jī)的基本概念二、單片機(jī)類型1、

51系列單片機(jī)

型號(hào)片內(nèi)ROM片內(nèi)RAMI/O口(位)定時(shí)器/計(jì)數(shù)器(個(gè))中斷(個(gè))基本型8031無(wú)128B322580514KB128B62587514KB128B3225增強(qiáng)型8032無(wú)256B323680528KB256B323687528KB256B323表1-1MCS-51系列單片機(jī)的內(nèi)部資源1.1單片機(jī)的基本概念表1-251系列單片機(jī)芯片廠商產(chǎn)品廠商產(chǎn)品ATMEL公司AT89C5x系列(89C51/89S51、89C52/89S52.

89C55等)Philipe

公司P89LPC7xx系列,P89LPC9xx系列,80C51、8xC552

系列Cygnal公司C80C51F系列高速SOC單片機(jī)LG公司GMS90/97系列低價(jià)高速單片機(jī)ADI公司ADμC8xx系列高精度單片機(jī)臺(tái)灣華邦公司W(wǎng)78C54、W78C58、W78E54、W78E58等AMD公司

8-

515/535單片機(jī)Siemens公司C501-1R,C501-1E,C503-1R,SAB80512單片機(jī)STCSTC89C51RC,STC89C52RC,STC89C53RC,STC89LE51RC,STC89LE52RC,STC12C5412AD等1.1單片機(jī)的基本概念

字母或數(shù)字含義前綴AT廠家名稱縮寫(xiě)型號(hào)8內(nèi)核為80519內(nèi)部含有Flash存儲(chǔ)器S/C/LVS:含有串行下載的Flash存儲(chǔ)器C:表示CMOS產(chǎn)品LV:表示低電壓產(chǎn)品,可在25V電壓下工作。5固定不變1/21:基本型2:增強(qiáng)型后綴12/16/20/24時(shí)鐘頻率為12

MHz/16

MHz/20

MHz/24

MHzP/D/Q/J/A/S雙列直插DIP封裝/陶瓷封裝/PQFP封裝/PLV封裝/TQFP封裝/SOIC封裝C/I/A/MC:商業(yè)用產(chǎn)品,溫度范圍為0~℃

+

70℃

I:工業(yè)用產(chǎn)品,溫度范圍為-40℃

~

+85℃

A:汽車用產(chǎn)品,溫度范圍為-40℃~

+

125℃

M:軍用產(chǎn)品,溫度范圍為-55℃~

+

150℃型號(hào)含義:AT89S52-12PI1.1單片機(jī)的基本概念2、其他系列單片機(jī)PIC系列單片機(jī)美國(guó)Microchip公司產(chǎn)品;精簡(jiǎn)指令集(RISC);

哈佛總線結(jié)構(gòu)。低檔型:PIC12CSxxx/

16C5x系列中檔型:PIC12C/

PIC16C系列以及PIC18系列。高檔型:PICI7C.xx

系列。AVR系列單片機(jī)STM32系列單片機(jī)ATMEL公司的產(chǎn)品;精簡(jiǎn)指令集(RISC)。

低檔Tiny系列:Tiny11/12/13/15/26/28等中檔AT90S系列:AT90S1200/2313/8515/8535高檔ATmega系列:ATmega8/16/32/64/128STMicroelectronics公司產(chǎn)品;以ARM

Cortex?-M0,M0+,M3,M4和M7為內(nèi)核。主流產(chǎn)品:STM32F0/STM32F3超低功耗產(chǎn)品:STM32L0/STM32L4/STM32L4+高性能產(chǎn)品:STM32F2/32F4/32F7/32H701單片機(jī)概述123單片機(jī)的基本概念單片機(jī)的開(kāi)發(fā)步驟單片機(jī)仿真開(kāi)發(fā)環(huán)境搭建1.2單片機(jī)的開(kāi)發(fā)步驟圖1-1單片機(jī)應(yīng)用系統(tǒng)組成01.提出項(xiàng)目02.項(xiàng)目論證03.方案設(shè)計(jì)04.硬件設(shè)計(jì)07.脫機(jī)運(yùn)行06.系統(tǒng)調(diào)試05.軟件設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)的一般過(guò)程1.2單片機(jī)的開(kāi)發(fā)步驟08.產(chǎn)品定型1.2單片機(jī)的開(kāi)發(fā)步驟01單片機(jī)概述123單片機(jī)的基本概念單片機(jī)的開(kāi)發(fā)步驟單片機(jī)仿真開(kāi)發(fā)環(huán)境搭建1.3單片機(jī)仿真開(kāi)發(fā)環(huán)境搭建0102KeilC51編譯軟件Proteus仿真軟件1.3單片機(jī)仿真開(kāi)發(fā)環(huán)境搭建仿真界面KeilC51的使用步驟1.3.11.創(chuàng)建工程2.添加用戶源程序文件3.編寫(xiě)代碼4.程序的編譯KeilC51的使用步驟1.創(chuàng)建工程(1)單擊菜單欄中的“Project/NewμVisionProject”

圖1新建一個(gè)工程(2)在彈出“Create

New

Project"

窗口輸入工程路徑及名稱

圖2工程命名KeilC51的使用步驟1.創(chuàng)建工程(3)選擇單片機(jī):在彈出“Select

Device

for

Target”窗口中,選擇“Atmel”目錄下的“AT89C52”。

圖3選擇單片機(jī)型號(hào)KeilC51的使用步驟1.創(chuàng)建工程

圖4啟動(dòng)代碼選擇(4)單擊“OK”按鈕,如果需要復(fù)制啟動(dòng)代碼到新建的工程,單擊“是”,否則,單擊“否”。

圖5工程文件的創(chuàng)建KeilC51的使用步驟2.添加用戶源程序文件(1)新建文件:?jiǎn)螕簟癋ile/New”,保存為**.c

圖6新建文件

圖7保存文件Proteus的的使用步驟1.3.21.新建工程2.繪制原理圖3.添加Hex文件4.仿真運(yùn)行Proteus的的使用步驟1.創(chuàng)建工程:點(diǎn)擊“文件/新建工程”

圖1Proteus工程命名界面

圖2Proteus原理圖模板選擇

圖3ProteusPCB模板選擇Proteus的的使用步驟

圖4Proteus原理圖繪制界面Proteus的的使用步驟2.繪制原理圖:(1)放置元器件:

圖6元器件選擇界面點(diǎn)擊

圖5選擇按鈕Proteus的的使用步驟

圖7搜索元器件界面

圖8放置元器件界面搜索元器件放置元器件Proteus的的使用步驟

圖9放置其他元器件Proteus的的使用步驟(2)按電路圖連接:

圖10點(diǎn)亮LED原理圖添加電源和地元件參數(shù)設(shè)置:雙擊器件連線

圖11放置電源終端

圖12修改參數(shù)Proteus的的使用步驟3.添加Hex文件:雙擊單片機(jī),在彈出的對(duì)話框中“ProgramFile”選項(xiàng)后面的

,添加Hex文件

圖13添加Hex文件Proteus的的使用步驟4.仿真運(yùn)行:

圖14運(yùn)行效果本章小結(jié)

1.單片機(jī)就是單片微型計(jì)算機(jī),在一片半導(dǎo)體硅片上集成中央處理單元(CPU)、存儲(chǔ)器(RAM、ROM)、并行I/O、串行I/O、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、系統(tǒng)時(shí)鐘電路及系統(tǒng)總線等部件。

2.單片機(jī)按照其用途可分為通用型和專用型兩大類。通用型單片機(jī)是將內(nèi)部可開(kāi)發(fā)的資源(如存儲(chǔ)器、I/O等各種外圍功能部件等)全部提供給用戶。專用型單片機(jī)是專門(mén)針對(duì)某些產(chǎn)品的特定用途而制作的。

3.51系列單片機(jī)包括Intel

公司的MCS-51系列單片機(jī)以及以51為內(nèi)核擴(kuò)展出來(lái)的單片機(jī),這類單片機(jī)的基本結(jié)構(gòu)和指令系統(tǒng)都是兼容的。

4.單片機(jī)應(yīng)用系統(tǒng)主要由硬件和軟件兩部分組成。

5.了解單片機(jī)的開(kāi)發(fā)過(guò)程。

6.單片機(jī)仿真所需要的軟件為:編程軟件Keil

μVision的51版本;仿真軟件采用Proteus平臺(tái)。掌握這2個(gè)軟件的安裝及基本使用方法。AT89S52的硬件結(jié)構(gòu)02介紹單片機(jī)引腳、最小系統(tǒng)、單片機(jī)執(zhí)行指令的工作過(guò)程、單片機(jī)的存儲(chǔ)結(jié)構(gòu)以及C51語(yǔ)言的定義方式。02AT89S52的硬件結(jié)構(gòu)01硬件組成050203存儲(chǔ)器結(jié)構(gòu)單片機(jī)的CPU單片機(jī)引腳04時(shí)鐘電路與時(shí)序06單片機(jī)工作方式2.1AT89S52單片機(jī)的硬件組成圖1AT89S52單片機(jī)片內(nèi)結(jié)構(gòu)AT89S52完全兼容AT89C51/AT89S51單片機(jī),使用AT89C51/AT89S51單片機(jī)的系統(tǒng),在保留原來(lái)軟硬件的基礎(chǔ)上,可用AT89S52直接代換。!02AT89S52的硬件結(jié)構(gòu)01硬件組成050203存儲(chǔ)器結(jié)構(gòu)單片機(jī)的CPU單片機(jī)引腳04時(shí)鐘電路與時(shí)序06單片機(jī)工作方式2.2AT89S52單片機(jī)的引腳

圖1(a)DIP封裝的引腳分布(b)PLCC封裝的引腳分布!AT89S52與各種8051單片機(jī)的引腳兼容,不同封裝引腳號(hào)不同,但功能和使用方法相同。本課程以40引腳DIP封裝方式為例介紹各引腳功能。2.2AT89S52單片機(jī)的引腳序號(hào)分類引腳名稱和標(biāo)號(hào)引腳功能1電源引腳VCC(40腳)電源正極,接+5V電源VSS(20腳)電源負(fù)極,接數(shù)字地2時(shí)鐘引腳XTAL1(19腳)片內(nèi)時(shí)鐘振蕩器的反相放大器輸入端XTAL2(18腳)片內(nèi)時(shí)鐘振蕩器的反相放大器輸出端3控制引腳RST(9腳)復(fù)位信號(hào)輸入端,2個(gè)機(jī)器周期高電平復(fù)位外部ROM訪問(wèn)允許控制端/編程電壓輸入端地址鎖存控制信號(hào)端/編程脈沖輸入端訪問(wèn)片外ROM的讀選通信號(hào)4I/O引腳P0口(39腳-32腳)漏極開(kāi)路雙向I/O口數(shù)據(jù)/地址(低8位)總線復(fù)用P1口(1腳-8腳)準(zhǔn)雙向I/O口/第二功能P2口(21腳-28腳)準(zhǔn)雙向I/O口/地址總線(高8位)P3口(10腳-17腳)準(zhǔn)雙向I/O口/第二功能表1引腳名稱及功能2.2AT89S52單片機(jī)的引腳1、電源引腳VCC(40腳):+5V電源2、時(shí)鐘引腳(XTAL1、XTAL2)圖2內(nèi)部時(shí)鐘方式必須為單片機(jī)提供時(shí)鐘信號(hào)VSS(20腳):數(shù)字地內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式外部時(shí)鐘方式XTAL1接外部時(shí)鐘振蕩器XTAL2懸空常用內(nèi)部時(shí)鐘方式XTAL1、XTAL2外接晶振和微調(diào)電容2.2AT89S52單片機(jī)的引腳3、控制引腳

①?gòu)?fù)位引腳(RST,9腳)正常工作時(shí),該引腳應(yīng)保持低電平復(fù)位狀態(tài)時(shí),該引腳加上持續(xù)時(shí)間大于2個(gè)機(jī)器周期的高電平看門(mén)狗定時(shí)器溢出輸出時(shí),該引腳輸出8個(gè)機(jī)器周期的高電平圖3復(fù)位引腳常用連接2.2AT89S52單片機(jī)的引腳3、控制引腳

代碼<8KB,讀片內(nèi)ROM(8KB,0x0000~0x1FFF)中的程序;代碼>8KB,先讀片內(nèi)ROM

(8KB),再讀片外ROM(0x2000~0xFFFF)只讀片外ROM中程序(0x0000~0xFFFF)對(duì)片內(nèi)ROM編程,接編程電壓。ISP方式,不用該引腳編程。2.2AT89S52單片機(jī)的引腳3、控制引腳

正常工作時(shí),該引腳持續(xù)輸出1/6fosc的脈沖信號(hào)圖5ALE脈沖信號(hào)可用作外部定時(shí)或觸發(fā)信號(hào)通過(guò)檢測(cè)該引腳的脈沖頻率,測(cè)試單片機(jī)是否正常工作2.2AT89S52單片機(jī)的引腳3、控制引腳

正常工作時(shí),該引腳持續(xù)輸出1/6fosc的正脈沖信號(hào)擴(kuò)展并行總線時(shí),該引腳外接鎖存器對(duì)片內(nèi)ROM編程,為編程脈沖輸入端。ISP方式,不用該引腳。圖6并行總線擴(kuò)展示意圖2.2AT89S52單片機(jī)的引腳3、控制引腳

擴(kuò)展片外并行程序存儲(chǔ)器時(shí)需接該引腳,低電平有效。若不擴(kuò)展片外程序存儲(chǔ)器時(shí),該引腳懸空。圖7外擴(kuò)程序存儲(chǔ)器2.2AT89S52單片機(jī)的引腳4、并行I/O口(P0、P1、P2、P3)①P0口(P0.0~P0.7,39腳~32腳)擴(kuò)展總線:地址總線(低8位)及數(shù)據(jù)總線分時(shí)復(fù)用通用I/O口:準(zhǔn)雙向口,輸出外接上拉電阻,輸入先寫(xiě)“1”圖8并行總線擴(kuò)展示意圖2.2AT89S52單片機(jī)的引腳4、并行I/O口(P0、P1、P2、P3)②P1口(P1.0~P1.7,1腳~8腳)通用I/O口:準(zhǔn)雙向口,輸出不用外接上拉電阻,輸入先寫(xiě)“1”第二功能:序號(hào)引腳第二功能說(shuō)明1P1.0T2T2的外部計(jì)數(shù)信號(hào)輸入端2P1.1T2EXT2的捕捉/重新裝載觸發(fā)及方向控制端3P1.5MOSI對(duì)片內(nèi)Flash存儲(chǔ)器的串行編程和校驗(yàn)4P1.6MISO對(duì)片內(nèi)Flash存儲(chǔ)器的串行編程和校驗(yàn)5P1.7SCK對(duì)片內(nèi)Flash編程和校驗(yàn)移位脈沖輸入引腳AT89S52不用T2的P1.0和P1.1的復(fù)用功能時(shí),AT89S51以及8051兼容機(jī)與AT89S52的引腳功能完全相同,它們的外部硬件接口電路也完全相同。!表2P1口的第二功能2.2AT89S52單片機(jī)的引腳4、并行I/O口(P0、P1、P2、P3)③P2口(P2.0~P2.7,21腳~28腳)擴(kuò)展總線:地址總線(高8位)通用I/O口:準(zhǔn)雙向口,輸出不用外接上拉電阻,輸入先寫(xiě)“1”圖9并行總線擴(kuò)展示意圖2.2AT89S52單片機(jī)的引腳4、并行I/O口(P0、P1、P2、P3)④P3口(P3.0~P3.7,10腳-17腳)第二功能:通用I/O口:準(zhǔn)雙向口,輸出不用外接上拉電阻,輸入先寫(xiě)“1”引腳第二功能說(shuō)明引腳第二功能說(shuō)明P3.0RXD串行數(shù)據(jù)接收端P3.4T0定時(shí)器T0外部計(jì)數(shù)輸入端P3.1TXD串行數(shù)據(jù)發(fā)送端P3.5T1定時(shí)器T1外部計(jì)數(shù)輸入端P3.2外部中斷0輸入端P3.6外部RAM的寫(xiě)選通控制端P3.3外部中斷1輸入端P3.7外部RAM的讀選通控制端了解單片機(jī)40個(gè)引腳功能對(duì)應(yīng)用系統(tǒng)硬件電路設(shè)計(jì)十分重要。!表3P3口的第二功能2.2AT89S52單片機(jī)的引腳單片機(jī)的最小系統(tǒng)

也稱單片機(jī)最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng),由電源、晶振、復(fù)位電路和程序存儲(chǔ)器選擇電路組成。圖10單片機(jī)最小系統(tǒng)02AT89S52的硬件結(jié)構(gòu)01硬件組成050203存儲(chǔ)器結(jié)構(gòu)單片機(jī)的CPU單片機(jī)引腳04時(shí)鐘電路與時(shí)序06單片機(jī)工作方式2.3AT89S52單片機(jī)的CPU1、運(yùn)算器1234算術(shù)邏輯運(yùn)算單元(ALU):實(shí)現(xiàn)算術(shù)和邏輯兩種運(yùn)算位處理器:實(shí)現(xiàn)位操作累加器(A):8位特殊功能寄存器(SFR),字節(jié)地址為0xE0CPU中的數(shù)據(jù)傳送大多通過(guò)累加器A完成;ALU進(jìn)行運(yùn)算時(shí),其中一個(gè)數(shù)據(jù)大部分都來(lái)自累加器A;ALU運(yùn)算結(jié)果的存放單元。作用寄存器(B):8位SFR,字節(jié)地址為0xF0,主要用于乘法和除法運(yùn)算5程序狀態(tài)字寄存器(PSW):8位SFR,字節(jié)地址為0xD0位號(hào)PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位地址0xD70xD60xD50xD40xD30xD20xD10xD0符號(hào)CYACF0RS1RS0OV-P2.3AT89S52單片機(jī)的CPU2、控制器功能:控制指令的讀入、譯碼和執(zhí)行,從而對(duì)各功能部件進(jìn)行定時(shí)和邏輯控制。單片機(jī)執(zhí)行指令的工作過(guò)程程序計(jì)數(shù)器PC的工作過(guò)程(PC)ROM指令寄存器定時(shí)控制電路各功能部件地址指令結(jié)果定時(shí)信號(hào)控制信號(hào)(PC)ROM(PC)+1指令譯碼器PC的內(nèi)容:下一條要執(zhí)行的指令在程序存儲(chǔ)器中的地址PC是一個(gè)16位計(jì)數(shù)器尋址范

圍是0x0000

~

0xFFFF02AT89S52的硬件結(jié)構(gòu)01硬件組成050203存儲(chǔ)器結(jié)構(gòu)單片機(jī)的CPU單片機(jī)引腳04時(shí)鐘電路與時(shí)序06單片機(jī)工作方式2.4時(shí)鐘電路與時(shí)序1、時(shí)鐘電路內(nèi)部時(shí)鐘電路(常用)外部時(shí)鐘電路21晶振常選6MHz、12MHz或11.0592MHzC1和C2對(duì)頻率有微調(diào)

作用晶振頻率越高,單片機(jī)速度越快容值為10~40pF,通??蛇x擇30pF瓷片電容用于多片單片機(jī)同時(shí)工作

振蕩頻率一般低于12MHz外部振蕩器價(jià)格貴

圖1內(nèi)部時(shí)鐘方式圖2外部時(shí)鐘方式2.4時(shí)鐘電路與時(shí)序2、時(shí)序123振蕩周期:最小時(shí)間單位。若晶振頻率為fosc,振蕩周期Tosc=1/fosc狀態(tài)周期:振蕩信號(hào)二分頻信號(hào),1個(gè)狀態(tài)周期=2個(gè)振蕩周期機(jī)器周期:CPU完成一個(gè)基本操作所需時(shí)間,1個(gè)機(jī)器周期=12個(gè)振蕩周期指令周期:執(zhí)行一條指令所需時(shí)間,1個(gè)機(jī)器周期=1或2或4個(gè)機(jī)器周期4圖3單片機(jī)周期之間的關(guān)系02AT89S52的硬件結(jié)構(gòu)01硬件組成050203存儲(chǔ)器結(jié)構(gòu)單片機(jī)的CPU單片機(jī)引腳04時(shí)鐘電路與時(shí)序06單片機(jī)工作方式2.5單片機(jī)存儲(chǔ)器結(jié)構(gòu)1、程序存儲(chǔ)器(ROM):存放單片機(jī)程序和一些固定常數(shù)下載程序(編程):編程器方式或在線編程(ISP)1圖1編程器圖2ISP下載方式2.5單片機(jī)存儲(chǔ)器結(jié)構(gòu)1、程序存儲(chǔ)器(ROM):存放單片機(jī)程序和一些固定常數(shù)存儲(chǔ)器容量:2片外可擴(kuò)展為64KB,地址范圍為0x0000~0xFFFFAT89S52片內(nèi)ROM容量為8KB,地址范圍0x0000~0x1FFF圖

3單片機(jī)2.5單片機(jī)存儲(chǔ)器結(jié)構(gòu)1、程序存儲(chǔ)器(ROM)3特殊程序存儲(chǔ)器地址(7個(gè))序號(hào)中斷源入口地址(匯編語(yǔ)言用)中斷類型號(hào)(C語(yǔ)言用)1INT00x000302T00x000B13INT10x001324T10x001B35串行口0x002346T20x002B5啟動(dòng)地址0x00007C51編程時(shí),用戶無(wú)須考慮起始地址和中斷源在ROM中的存放地址,C51編譯軟件會(huì)按照上述規(guī)定,自動(dòng)安排程序的存放地址。!2.5單片機(jī)存儲(chǔ)器結(jié)構(gòu)2、數(shù)據(jù)存儲(chǔ)器(RAM):存放數(shù)據(jù)1片內(nèi)數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu)劃分:存儲(chǔ)器容量為256B,0x00~0xFF(1)工作寄存器區(qū)(0x00H~0x1F)(2)位尋址區(qū)(0x20~0x2F)128個(gè)位地址,位地址范圍為0x00~0x7F。RS1RS0工作寄存器區(qū)000區(qū)(0x00-0x07)011區(qū)(0x08-0x0F)102區(qū)(0x10H-0x17)

113區(qū)(0x18-0x1F)2.5單片機(jī)存儲(chǔ)器結(jié)構(gòu)2.5單片機(jī)存儲(chǔ)器結(jié)構(gòu)(3)通用RAM區(qū)(0x30~0xFF)可作為數(shù)據(jù)區(qū)或堆棧區(qū)域(后進(jìn)先出)堆棧作用:保護(hù)斷點(diǎn)(子程序、中斷)和現(xiàn)場(chǎng)保護(hù)堆棧操作:入棧(PUSH)和出棧(POP)堆棧指針(SP):其內(nèi)容指出堆棧頂部所在位置SP是一個(gè)SFR,地址為0x81單片機(jī)復(fù)位后,SP中的內(nèi)容為0x07堆棧結(jié)構(gòu):向上生長(zhǎng)型入棧:SP先加1,再把1字節(jié)數(shù)據(jù)壓入堆棧;出棧:

1字節(jié)數(shù)據(jù)彈出堆棧后,SP再減1C51編程由編譯軟件自動(dòng)分配堆棧區(qū)域,用戶不用設(shè)置。2.5單片機(jī)存儲(chǔ)器結(jié)構(gòu)2、數(shù)據(jù)存儲(chǔ)器(RAM)1片內(nèi)數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu)劃分:存儲(chǔ)器容量為256B,0x00~0xFF2片外數(shù)據(jù)存儲(chǔ)器:最多擴(kuò)展64KB的RAM,地址范圍0x0000~0xFFFF3、特殊功能寄存器(SFR)AT89S52的SFR共32個(gè)32個(gè)離散分布在該區(qū)域映射地址:80H~FFHSFR與片內(nèi)RAM統(tǒng)一編址未使用單元無(wú)定義2.5單片機(jī)存儲(chǔ)器結(jié)構(gòu)3、特殊功能寄存器(SFR)表

SFR的名稱和地址有12個(gè)特殊功能寄存器具有位地址和位名稱,這里位名稱和位地址等價(jià)!凡是可以進(jìn)行位尋址的SFR,其字節(jié)地址的末位只能是0H或8H2.5單片機(jī)存儲(chǔ)器的結(jié)構(gòu)4、C51中的數(shù)據(jù)類型定義與存儲(chǔ)器之間的關(guān)系單片機(jī)中能夠存儲(chǔ)數(shù)據(jù)的區(qū)域C51編譯器完全支持52單片機(jī)的硬件結(jié)構(gòu),可訪問(wèn)52硬件系統(tǒng)的所有部分。該編譯器通過(guò)將變量、常量定義成不同的數(shù)據(jù)、存儲(chǔ)類型的方法,將它們定位在不同的存儲(chǔ)區(qū)的單元中。2.5單片機(jī)存儲(chǔ)器的結(jié)構(gòu)4、C51中的變量定義與存儲(chǔ)器之間的關(guān)系數(shù)據(jù)類型1常量(變量)數(shù)值大小不同,所占據(jù)的數(shù)據(jù)存儲(chǔ)空間就不同變量定義:數(shù)據(jù)類型符變量名1[

=初值],變量名2[

=初值]…數(shù)據(jù)類型符字節(jié)數(shù)位數(shù)表示數(shù)的范圍unsigned

char180~255signedchar18-128~127unsigned

int2160~65535signedint216-32768~32767unsigned

long432-2147483648~2147483647signedlong4320~4294967295float432±1.75494E-38~±3.402823E+38doublefloat864±1.75494E-38~±3.402823E+38bit

10或12.5單片機(jī)存儲(chǔ)器的結(jié)構(gòu)3、C51中的變量定義與數(shù)據(jù)存儲(chǔ)器之間的關(guān)系數(shù)據(jù)類型1數(shù)據(jù)類型符字節(jié)數(shù)位數(shù)表示數(shù)的范圍unsigned

char180~255signedchar18-128~127unsigned

int2160~65535signedint216-32768~32767bit

10或1unsignedchary=0x05;bit

x=1;【例】unsigned

int

z=0x0005;

這些變量具體存在單片機(jī)存儲(chǔ)器哪些地址里?變量定義:數(shù)據(jù)類型符變量名1[

=初值],變量名2[

=初值]…【縮寫(xiě)形式】#defineucharunsignedchar#defineuintunsignedintuchary=0x05;uintz=0x0005;2.5單片機(jī)存儲(chǔ)器的結(jié)構(gòu)unsignedchary=0x05;bit

x=1;【例】unsigned

int

z=0x0005;

這些變量具體存在單片機(jī)片內(nèi)存儲(chǔ)器哪些地址里?注:定義變量只聲明數(shù)據(jù)類型,沒(méi)指定存儲(chǔ)區(qū)域。由編譯器自動(dòng)分配存儲(chǔ)區(qū)如何將變量定義到指定的片內(nèi)位尋址或片外存儲(chǔ)區(qū)域內(nèi)?數(shù)據(jù)類型12.5單片機(jī)存儲(chǔ)器的結(jié)構(gòu)存儲(chǔ)類型2uchardataa=0x05;ucharbdatab=0x05;ucharidatac=0x05;ucharpdatad=0x05;ucharxdatae=0x05;ucharcodetab[]={0x01,0x02,0x03,0x04};【例】這些變量具體存在單片機(jī)存儲(chǔ)器哪些區(qū)域里?變量定義:數(shù)據(jù)類型符

[存儲(chǔ)類型]

變量名1[=初值],變量名2[=初值],…;存儲(chǔ)類型字節(jié)存儲(chǔ)空間data1片內(nèi)RAM0x00~0x7F直接尋址bdata1片內(nèi)RAM0x20~0x2F位尋址區(qū)idata1片內(nèi)RAM0x00~0xFF間接尋址pdata1片外RAM0x00~0xFFxdata2片外RAM的0x0000~0xFFFFcode2程序存儲(chǔ)器區(qū)0x0000~0xFFFF2.5單片機(jī)存儲(chǔ)器的結(jié)構(gòu)存儲(chǔ)類型2uchardataa=0x05;ucharbdatab=0x05;ucharidatac=0x05;ucharpdatad=0x05;ucharxdatae=0x05;ucharcodetab[]={0x01,0x02,0x03,0x04};【例】C51如何在代碼中指定存儲(chǔ)器的具體地址(絕對(duì)地址)?2.5單片機(jī)存儲(chǔ)器的結(jié)構(gòu)絕對(duì)地址訪問(wèn)3絕對(duì)宏:絕對(duì)宏命令在“absacc.h”#include<absacc.h>#define

NRAM

DBYTE[0x30]

#define

PORTA

XBYTE[0xFFF0]unsignedcharREAD_PORTA;voidmain(void){ while(1)

{

NRAM=0x01;

READ_PORTA

=PORTA;

}}【例】將0x01存入片內(nèi)RAM0x30內(nèi)并

讀取片外0xFFF0地址的內(nèi)容code區(qū)CBYTE(字節(jié)形式)CWORD(字形式)data區(qū)DBYTE

(字節(jié)形式)DWORD(字形式)xdata區(qū)pdata區(qū)XBYTE(字節(jié)形式)XWORD(字形式)PBYTE(字節(jié)形式)PWORD(字形式)(片外)(片外)(片內(nèi))#define變量名宏定義[絕對(duì)地址]

宏定義名稱(ROM)2.5單片機(jī)存儲(chǔ)器的結(jié)構(gòu)絕對(duì)地址訪問(wèn)3_at_關(guān)鍵字#include<reg52.h>unsignedchardataNRAM

_at_0x50;voidmain(void){

NRAM=0x01;

while(1);}【例】將0x01存入片內(nèi)RAM0x50里格式:地址常數(shù):指定變量的絕對(duì)地址,必須位于有效的存儲(chǔ)器空間內(nèi)使用_at_定義的變量必須為全局變量bit類型的變量及函數(shù)不能使用_at_#include<reg52.h>unsignedcharxdatabuffer[8]_at_0x40;voidmain(void){unsignedcharj;for(j=0;j<8;j++){buffer[j]=0;}

while(1);}【例】片外RAM0x40開(kāi)始的8個(gè)單元清0數(shù)據(jù)類型[存儲(chǔ)類型]

變量名

_at_地址常數(shù)2.5單片機(jī)存儲(chǔ)器的結(jié)構(gòu)C51語(yǔ)言的特殊功能寄存器及位變量定義4特殊功能寄存器和特殊功能位使用前必須要先定義,才可以使用8位特殊功能寄存器的C51定義sfr

特殊功能寄存器名稱=特殊功能寄存器地址;16位特殊功能寄存器的C51定義sfr16特殊功能寄存器名稱=特殊功能寄存器地址;特殊功能位的C51定義sbit用戶定義名稱=特殊功能位名稱;sfrP0=0x80;sfr16DPTR0=0x82;sbitLED0=P0^0;2.5單片機(jī)存儲(chǔ)器的結(jié)構(gòu)C51語(yǔ)言的特殊功能寄存器及位變量定義4為了用戶編程方便,C51把52單片機(jī)常用的特殊功能寄器和可尋址的特殊功能位進(jìn)行了定義,放在reg52.h頭文件中。程序使用#include<re52.h>,可直接使用SFR名稱和可尋址位名稱P0~P3通用I/O口的特殊功能位在reg52.H文件沒(méi)給出定義,需用戶自定義#include<reg52.h>sbitLED0=P0^0;voidmain(void){

RS1=0;RS0=1;

while(1)

{

P1=0x01;LED0=0;}}02AT89S52的硬件結(jié)構(gòu)01硬件組成050203存儲(chǔ)器結(jié)構(gòu)單片機(jī)的CPU單片機(jī)引腳04時(shí)鐘電路與時(shí)序06單片機(jī)工作方式2.6單片機(jī)工作方式1、片內(nèi)ROM編程(包括校驗(yàn))方式下載程序(編程):編程器方式或在線編程(ISP)1圖1編程器圖2ISP下載方式4種工作方式:編程、復(fù)位、程序執(zhí)行和低功耗方式。2.6單片機(jī)工作方式二、復(fù)位工作方式復(fù)位條件1:在RST(9腳)加上大于2個(gè)機(jī)器周期的高電平復(fù)位電路:2圖3上電和按鍵復(fù)位電路復(fù)位作用:?jiǎn)纹瑱C(jī)啟動(dòng)時(shí)需要復(fù)位;當(dāng)程序出錯(cuò)(如程序跑飛);操

作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),使AT89S52擺脫“跑飛”

或“死鎖”狀態(tài)而重新啟動(dòng)程序。2.6單片機(jī)工作方式2、復(fù)位工作方式復(fù)位后狀態(tài)3PC指針被初始化為0000H片內(nèi)RAM的內(nèi)容保持不變SFR初值(SP)=07H(P0)=FFH(P1)=FFH(P2)=FFH(P3)=FFH(其他SFR)=FFH寄存器

復(fù)位狀態(tài)

寄存器

復(fù)位狀態(tài)Acc0x00DP1H0x00PSW0x00DP1L0x00B0x00TMOD0x00SP0x07TCON0x00DPTR0x0000TH0TL00x0000P0~P30xFFTH1TL10x0000IP0bxx000000SCON0x00IE0b0x000000SBUF0bxxxxxxxxDP0H0x00PCON0b0xxx0000DP0L0x00AUXR0bxxx00xx0WDTRST0bxxxxxxxxAUXR10bxxxxxxx02.6單片機(jī)工作方式2、復(fù)位工作方式看門(mén)狗定時(shí)器(WDT)的使用4程序“跑飛”或“死循環(huán)”,沒(méi)有及時(shí)復(fù)位,采用“看門(mén)狗”技術(shù)看門(mén)狗部件包含1個(gè)14位看門(mén)狗定時(shí)器和看門(mén)狗復(fù)位寄存器

程序正常執(zhí)行時(shí),在16384μs內(nèi)不斷復(fù)位清“0”看門(mén)狗定時(shí)器。2.6單片機(jī)工作方式2、復(fù)位工作方式看門(mén)狗定時(shí)器(WDT)的使用5#include<reg52.h>sfrWDTRST=0xa6

//reg52.h中沒(méi)有聲明WDTRST特殊功能寄存器......voidmain(){

WDTRST=0x1e;//啟動(dòng)看門(mén)狗運(yùn)行

WDTRST=0xe1;.....;

while(1)//無(wú)限循環(huán)

{

WDTRST=0x1e;//清0看門(mén)狗并啟動(dòng)運(yùn)行

WDTRST=0xe1;

......;//執(zhí)行時(shí)間必須小于16384μs(系統(tǒng)時(shí)鐘為12MHz時(shí))

}}2.6單片機(jī)工作方式3、程序執(zhí)行方式單片機(jī)基本工作方式,即CPU依次從ROM讀取指令執(zhí)行程序的工作過(guò)程。四、低功耗工作方式2種工作模式:待機(jī)(空閑)模式和掉電保護(hù)模式IDL=1待機(jī)模式PD=1掉電保護(hù)模式GF1、GF0:用戶標(biāo)志位SMOD:串行通信波特率選擇━:保留位CPU不工作振蕩器仍然運(yùn)行外圍電路工作SFR、RAM保持之前狀態(tài)路振蕩器停止工作所有功能部件停止工作SFR、RAM保持之前狀態(tài)2.6單片機(jī)工作方式4、低功耗工作方式待機(jī)(空閑)模式IDL=1CPU不工作;振蕩器仍然運(yùn)行;外圍電路工作(中斷、定時(shí)器、串口等);SFR、RAM保持之前狀態(tài)。中斷退出:任何中斷被響應(yīng),IDL=0(硬件)退出待機(jī)模式,進(jìn)入中斷服務(wù)程序。1待機(jī)模式進(jìn)入:待機(jī)模式退出:硬件復(fù)位退出;復(fù)位時(shí),IDL=0,退出空閑模式,單片機(jī)從頭開(kāi)始執(zhí)行程序。2.6單片機(jī)工作方式4、低功耗工作方式掉電保護(hù)模式PD=12掉電保護(hù)模式進(jìn)入:振蕩器停止工作;所有功能部件停止工作;SFR、RAM保持之前狀態(tài)掉電保護(hù)模式退出:中斷退出:中斷使單片機(jī)退出掉電模式,程序從原來(lái)停止處繼續(xù)運(yùn)行。硬件復(fù)位退出:硬件復(fù)位使單片機(jī)退出掉電模式,程序從頭開(kāi)始運(yùn)行。本章小結(jié)1.掌握單片機(jī)最小系統(tǒng)常用電路設(shè)計(jì)。由電源、晶振、復(fù)位電路和程序存儲(chǔ)器選擇電路組成。2.單片機(jī)的CPU由運(yùn)算器和控制器構(gòu)成。3.單片機(jī)的時(shí)序信號(hào)包括振蕩周期、狀態(tài)周期、機(jī)器周期和指令周期。掌握機(jī)器周期和振蕩周期的關(guān)系。4.單片機(jī)的存儲(chǔ)器結(jié)構(gòu)包括4個(gè)獨(dú)立的物理空間,片內(nèi)RAM(256B)、片外RAM(64KB)、片內(nèi)ROM(8KB)、片外ROM(64KB)。重點(diǎn)掌握片內(nèi)RAM的空間分布。5.AT89S52單片機(jī)有32個(gè)SFR,C51編程中SFR以及特殊功能位必須通過(guò)關(guān)鍵字sfr、sbit定義才可使用。SFR的定義在頭文件reg52.h里,使用時(shí)包含該頭文件。但I(xiàn)/O口的特殊功能位需要自定義。6.掌握程序狀態(tài)字PSW的各位功能。

7.了解C51中的數(shù)據(jù)與存儲(chǔ)器之間的關(guān)系。8.了解單片機(jī)的工作方式。單片機(jī)輸出顯示控制03介紹單片機(jī)與常用的發(fā)光二極管、數(shù)碼管、LED點(diǎn)陣顯示屏、LCD液晶顯示器的接口設(shè)計(jì)與軟件編程。3單片機(jī)輸出顯示控制01單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)0203單片機(jī)控制數(shù)碼管單片機(jī)控制發(fā)光二極管0405單片機(jī)控制液晶顯示器LCD單片機(jī)控制LED點(diǎn)陣顯示3.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)G1G20結(jié)論:P0口作為輸出口使用,需需外接上拉電阻,一般為4.7KΩ或10KΩ1P0做通用輸入輸出口使用P0做輸出口使用一、P0口3.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)一、P0口+5VG1G201P0做通用輸入輸出口使用結(jié)論:P0口作為輸入口使用,需先寫(xiě)“1”P(pán)0做輸入口使用準(zhǔn)雙向口:高電平、低電平3.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)G1G212P0做數(shù)據(jù)/地址總線使用一、P0口P0口地址總線低8位P0做地址總線輸出使用控制線13.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)一、P0口G1G20P0做數(shù)據(jù)線輸入使用2P0做數(shù)據(jù)/地址總線使用結(jié)論:P0口地址總線低8位P0口數(shù)據(jù)總線(8位)控制線0此時(shí)不能作為通用的I/O端口CPU寫(xiě)入1,下方場(chǎng)效應(yīng)管截止上方場(chǎng)效應(yīng)管截止高阻狀態(tài)雙向口:高電平、低電平、高阻3.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)二、P1口P1口做通用輸入輸出口使用結(jié)論:讀鎖存器內(nèi)部總線讀引腳DCLQ鎖存器P1.XVccP1作為輸入口使用,需先寫(xiě)“1”P(pán)1作為輸出口使用,無(wú)需外接上拉電阻3.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)結(jié)論:1P2做通用輸入輸出口使用三、P2口DCLQ.鎖存器MUXP2.x地址控制讀鎖存器內(nèi)部總線讀引腳VccP2作為輸入口使用,需先寫(xiě)“1”P(pán)2作為輸出口使用,無(wú)需外接上拉電阻3.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)結(jié)論:2P2做地址總線使用三、P2口DCLQ.鎖存器MUXP2.x地址控制讀鎖存器內(nèi)部總線讀引腳VccP2口作為地址總線高8位,與P0口構(gòu)成16位地址,尋址64KB地址空間P2做地址總線使用,就不能再做普通I/O口使用3.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)結(jié)論:1P3做通用輸入輸出口使用四、P3口P3作為輸入口使用,需先寫(xiě)“1”P(pán)3作為輸出口使用,無(wú)需外接上拉電阻讀鎖存器內(nèi)部總線讀引腳DCLQ鎖存器P3.x第二功能輸出端第二功能輸入端Vcc13.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)P3第二功能四、P3口讀鎖存器內(nèi)部總線讀引腳DCLQ鎖存器P3.x第二功能輸出端第二功能輸入端Vcc21

第二輸出功能

D鎖存自動(dòng)置13.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)P3第二功能四、P3口讀鎖存器內(nèi)部總線讀引腳DCLQ鎖存器P3.x第二功能輸出端第二功能輸入端Vcc21

第二輸入功能

D鎖存自動(dòng)置1P3口第一功能與第二功能,究竟是使用哪個(gè)功能,完全是由單片機(jī)執(zhí)行的指令控制來(lái)自動(dòng)切換的,用戶不需要進(jìn)行任何設(shè)置。

第二功能輸出端自動(dòng)置113.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)1P0:通用I/O使用,每位可驅(qū)動(dòng)8個(gè)LSTTL五、I/O驅(qū)動(dòng)能力P0口的某位輸出高電平時(shí),可提供400μA的拉電流P0口某位為低電平(0.45V)時(shí),可提供3.2mA的灌電流2P1~P3:通用I/O使用,每位可驅(qū)動(dòng)4個(gè)LSTTL輸出高電平,則輸出的拉電流僅為數(shù)百微安輸出低電平,灌電流從單片機(jī)外部流入內(nèi)部,則將大大增加流過(guò)的灌電流值單片機(jī)任何一個(gè)端口要想獲得較大的驅(qū)動(dòng)能力,要采用低電平輸出3單片機(jī)I/O口驅(qū)動(dòng)能力不夠,要外接驅(qū)動(dòng)電路4三極管、ULN2003、L298N、L9110等驅(qū)動(dòng)芯片3.1單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)P0口~P3口使用方法總結(jié)P0~P3作為通用I/O口時(shí),為準(zhǔn)雙向口,只有高電平和低電平2個(gè)狀態(tài);P0~P3作為輸入口使用時(shí),要先向端口寫(xiě)“1”;123P0作為輸出口使用時(shí),漏極開(kāi)路,要外接上拉電阻(1KΩ~10KΩ);45P1~P3作為輸出口使用時(shí),內(nèi)部有上拉電阻,不用外接上拉電阻;67并行總線構(gòu)成:P2口(高8位)和P0口(低8位)構(gòu)成16位地址總線;P0口數(shù)據(jù)總線,P0在ALE引腳控制下分時(shí)復(fù)用。P0~P3只要作為第二功能使用,就不能再做通用I/O使用了。P0~P3的第一功能和第二功能,由單片機(jī)執(zhí)行的指令控制自動(dòng)切換,用戶不需要進(jìn)行任何設(shè)置。3單片機(jī)輸出顯示控制01單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)0203單片機(jī)控制數(shù)碼管單片機(jī)控制發(fā)光二極管0405單片機(jī)控制液晶顯示器LCD單片機(jī)控制LED點(diǎn)陣顯示3.2單片機(jī)控制發(fā)光二極管一、發(fā)光二極管簡(jiǎn)介圖1直插式LED圖2貼片式LED圖4LED驅(qū)動(dòng)電路圖3LED符號(hào)正向?qū)妷菏?.7~2.2V;限流電阻阻值可選150Ω~3kΩ之間電流越大,燒壞的速度也就越快。在設(shè)計(jì)時(shí)需加限流電阻工作電流一般在1~20mA。!3.2單片機(jī)控制發(fā)光二極管二、單片機(jī)與LED的連接圖6單片機(jī)P1~P3口與LED的連接圖5單片機(jī)P0口與LED的連接上拉電阻:1~10kΩ之間選取。(a)LED亮單片機(jī)上電后現(xiàn)象(a)(b)(c)(d)(b)LED不亮限流電阻:150Ω~3kΩ之間P1~P3口如何連接LED??3.2單片機(jī)控制發(fā)光二極管三、點(diǎn)亮一個(gè)發(fā)光二極管仿真實(shí)例任務(wù)要求:控制1個(gè)發(fā)光二極管點(diǎn)亮。圖7P0口與LED連接圖8P1口與LED連接1硬件電路設(shè)計(jì)3.2單片機(jī)控制發(fā)光二極管三、點(diǎn)亮一個(gè)發(fā)光二極管仿真實(shí)例任務(wù)要求:控制1個(gè)發(fā)光二極管點(diǎn)亮。2軟件設(shè)計(jì)#include<reg52.h>sbitLED=P0^0;voidmain(){

while(1)

{

LED=0;

}

}#include<reg52.h>sbitLED=P0^0;voidmain(){

LED=0;while(1){

;}}分析這2段代程序的運(yùn)行過(guò)程。3.2單片機(jī)控制發(fā)光二極管三、點(diǎn)亮一個(gè)發(fā)光二極管仿真實(shí)例任務(wù)要求:控制1個(gè)發(fā)光二極管點(diǎn)亮。3仿真運(yùn)行圖9KeilC軟件編譯結(jié)果圖10點(diǎn)亮LED運(yùn)行效果圖3.2單片機(jī)控制發(fā)光二極管三、點(diǎn)亮一個(gè)發(fā)光二極管仿真實(shí)例擴(kuò)展任務(wù)要求:控制1個(gè)發(fā)光二極管閃爍。#include<reg52.h>#defineucharunsignedsbitLED=P0^0;voidmain() { while(1){uinti,j;

LED=0;

for(i=0;i<247;i++)for(j=0;j<100;j++);

LED=1;

for(i=0;i<247;i++)for(j=0;j<100;j++);

}}3.2單片機(jī)控制發(fā)光二極管三、點(diǎn)亮一個(gè)發(fā)光二極管仿真實(shí)例表1C

51延時(shí)程序設(shè)計(jì)方法序號(hào)設(shè)計(jì)方法例句說(shuō)明1for循環(huán)結(jié)構(gòu)for(i=0;i<100;i++);不精確定時(shí)2while循環(huán)結(jié)構(gòu)i=250;while(i--);不精確定時(shí)3定時(shí)器定時(shí)TMOD=0x01;TH0=0xee;TL0=0x00;TR0=1精確定時(shí)4庫(kù)函數(shù)_nop_();//一個(gè)機(jī)器周期的時(shí)間精確定時(shí)voiddelay(uint

xms)//ms延時(shí)函數(shù){

uint

i,j;for(i=0;i<xms;i++)for(j=0;j<120;j++);}不帶參數(shù)延時(shí)函數(shù)的寫(xiě)法voiddelay()//200ms延時(shí)函數(shù){uinti,j;for(i=0;i<247;i++)for(j=0;j<100;j++);}12帶參數(shù)延時(shí)函數(shù)的寫(xiě)法和調(diào)用擴(kuò)展任務(wù)要求:控制1個(gè)發(fā)光二極管閃爍。#include<reg52.h>#defineuintunsignedintsbitLED=P0^0;voidmain() { while(1){uinti,j;

LED=0;

for(i=0;i<247;i++)for(j=0;j<100;j++);

LED=1;

for(i=0;i<247;i++)for(j=0;j<100;j++);

}}用延時(shí)函數(shù)改寫(xiě)這段程序?voiddelay(uint

xms){uint

i,j;for(i=0;i<xms;i++)for(j=0;j<120;j++);}#include<reg52.h>#defineuintunsignedintsbitLED=P0^0;voiddelay(uint

xms){uint

i,j;for(i=0;i<xms;i++)for(j=0;j<120;j++);}void

main() { while(1){LED=0;

delay(200);

LED=1;

delay(200);

}}#include<reg52.h>#defineuintunsignedintsbitLED=P0^0;voiddelay(uint

xms);void

main() { while(1){LED=0;

delay(200);

LED=1;

delay(200);

}}voiddelay(uint

xms){uint

i,j;for(i=0;i<xms;i++)for(j=0;j<120;j++);}3.2單片機(jī)控制發(fā)光二極管四、流水燈仿真實(shí)例任務(wù)要求:控制8個(gè)發(fā)光二極管按照一定的時(shí)間間隔依次輪流點(diǎn)亮。1硬件電路設(shè)計(jì)代碼是否需要寫(xiě)8次特殊功能位定義語(yǔ)句?3.2單片機(jī)控制發(fā)光二極管四、流水燈仿真實(shí)例任務(wù)要求:控制8個(gè)發(fā)光二極管按照一定的時(shí)間間隔依次輪流點(diǎn)亮。2軟件設(shè)計(jì)狀態(tài)P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0編碼1111111100xfe2111111010xfd3111110110xfb4111101110xf75111011110xef6110111110xdf7101111110xbf8011111110x7f表2流水燈的引腳電平狀態(tài)移位(左移或右移)賦值數(shù)組:循環(huán)賦值C51邏輯運(yùn)算:循環(huán)左移_crol_intrins.h庫(kù)函數(shù):左移“<<”右移“>>”循環(huán)右移_cror_依次賦值3.2單片機(jī)控制發(fā)光二極管四、流水燈仿真實(shí)例C51邏輯運(yùn)算:循環(huán)左移_crol_intrins.h庫(kù)函數(shù):左移“<<”右移“>>”循環(huán)右移_cror_3.2單片機(jī)控制發(fā)光二極管四、流水燈仿真實(shí)例任務(wù)要求:控制8個(gè)發(fā)光二極管按照一定的時(shí)間間隔依次輪流點(diǎn)亮。2軟件設(shè)計(jì)(1)基于庫(kù)函數(shù)的流水燈程序設(shè)計(jì)#include<reg52.h>#include<intrins.h>

#defineucharunsignedchar#defineuintunsignedint voiddelayms(uinti);voidmain() { P2=0xfe;while(1){delay(500);

P2=_crol_(P2,1);}}#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint voiddelay(uinti);voidmain() { while(1){uchari,temp=0x01

;

for(i=0;i<8;i++){P2=~temp;

temp=temp<<1;

delay(500);}}}(2)基于邏輯運(yùn)算符的流水燈程序設(shè)計(jì)3.2單片機(jī)控制發(fā)光二極管四、流水燈仿真實(shí)例任務(wù)要求:控制8個(gè)發(fā)光二極管按照一定的時(shí)間間隔依次輪流點(diǎn)亮。2軟件設(shè)計(jì)(3)基于數(shù)組的流水燈程序設(shè)計(jì)#include<reg52.h>#defineucharunsignedchar #defineuintunsignedint ucharcodetab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};voiddelayms(uinti);

voidmain() { while(1){uchari;for(i=0;i<8;i++){

P2=tab[i];delayms(500);} }}3單片機(jī)輸出顯示控制01單片機(jī)并行I/O端口的內(nèi)部結(jié)構(gòu)0203單片機(jī)控制數(shù)碼管單片機(jī)控制發(fā)光二極管0405單片機(jī)控制液晶顯示器LCD單片機(jī)控制LED點(diǎn)陣顯示3.3單片機(jī)控制數(shù)碼管一、單個(gè)數(shù)碼管的顯示原理共陽(yáng)極數(shù)碼管陽(yáng)極連在一起LED點(diǎn)亮條件COM端接地段碼端給高電平LED點(diǎn)亮條件共陰極數(shù)碼管陰極連在一起圖1數(shù)碼管外形圖1數(shù)碼管引腳

(a)共陰極(b)共陽(yáng)極COM端高電平段碼端給低電平3.3單片機(jī)控制數(shù)碼管七段共陽(yáng)極數(shù)碼管段碼表數(shù)字dpgfedcba段碼abcdefgdp

0110000000xC01111110010xF92101001000xA43101100000xB04100110010x995100100100x926100000100x827111110000xF88100000000x809100100000x90A100010000x88b100000110x83C110001100xC6d101000010xA1E100001100x86F100011100x8Eunsignedcharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共陽(yáng)0-F3.3單片機(jī)控制數(shù)碼管顯示字符共陰極段碼共陽(yáng)極段碼顯示字符共陰極段碼共陽(yáng)極段碼00x3F0xC080x7F0x8010x060xF990x6F0x9020x5B0xA4A0x770x8830x4F0xB0b0x7C0x8340x660x99C0x390xC650x6D0x92d0x5E0XA160x7D0x82E0x790x8670x070xF8F0x710x8E表3-5共陰、共陽(yáng)數(shù)碼管的段碼表3.3單片機(jī)控制數(shù)碼管二、一位數(shù)碼管顯示仿真實(shí)例任務(wù)要求:在1位共陽(yáng)極數(shù)碼管上循環(huán)顯示“0~F”。1硬件電路設(shè)計(jì)3.3單片機(jī)控制數(shù)碼管二、一位數(shù)碼管顯示仿真實(shí)例任務(wù)要求:在1位共陽(yáng)極數(shù)碼管上循環(huán)顯示“0~F”。2軟件設(shè)計(jì)共陽(yáng)極數(shù)碼管“0~F”的段碼1234ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};數(shù)碼管顯示“0~F”中的一個(gè)P2=seg[i]構(gòu)成16次循環(huán):for語(yǔ)句字符之間要加一定的延時(shí)delay函數(shù)分析3.3單片機(jī)控制數(shù)碼管二、一位數(shù)碼管顯示仿真實(shí)例任務(wù)要求:在1位共陽(yáng)極數(shù)碼管上循環(huán)顯示“0~F”。2軟件設(shè)計(jì)共陽(yáng)極數(shù)碼管“0~F”的段碼1234ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};數(shù)碼管顯示“0~F”中的一個(gè)P2=seg[i]構(gòu)成16次循環(huán):for語(yǔ)句字符之間要加一定的延時(shí)delay函數(shù)分析#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};voiddelay(uintxms);voidmain(){while(1){uchari;

for(i=0;i<16;i++){P2=seg[i];

delay(500);}}} 3.3單片機(jī)控制數(shù)碼管三、多個(gè)數(shù)碼管的顯示原理單個(gè)數(shù)碼管和單片機(jī)連接方法:多個(gè)數(shù)碼管和單片機(jī)如何連接?公共端接地或高電平段碼端與一個(gè)I/O口相連3.3單片機(jī)控制數(shù)碼管三、多個(gè)數(shù)碼管的顯示原理01靜態(tài)顯示方式02動(dòng)態(tài)顯示方式公共端都連接在一起段碼端分別與一個(gè)I/O口相連公共端分別與一個(gè)I/O引腳相連段碼端都與一個(gè)I/O口相連同時(shí)顯示,無(wú)閃爍依次顯示,有閃爍3.3單片機(jī)控制數(shù)碼管四、兩位數(shù)碼管靜態(tài)顯示仿真實(shí)例任務(wù)要求:在2位共陽(yáng)數(shù)碼管采用靜態(tài)顯示方式顯示25。1硬件電路設(shè)計(jì)Seg1段碼端接P0口Seg2段碼端接P2口P0=0xa4;P2=0x92;ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽(yáng)0-92軟件設(shè)計(jì)#include<reg52.hvoidmain(void){

P0=0xa4;

P2=0x92;while(1);}3.3單片機(jī)控制數(shù)碼管四、兩位數(shù)碼管靜態(tài)顯示仿真實(shí)例任務(wù)要求:在2位共陽(yáng)數(shù)碼管采用靜態(tài)顯示方式顯示25。3仿真運(yùn)行3.3單片機(jī)控制數(shù)碼管五、四位數(shù)碼管動(dòng)態(tài)顯示仿真實(shí)例任務(wù)要求:在4位共陽(yáng)數(shù)碼管采用動(dòng)態(tài)顯示方式穩(wěn)定顯示“3210”

實(shí)物圖四位動(dòng)態(tài)共陽(yáng)數(shù)碼管內(nèi)部結(jié)構(gòu)引腳圖3.3單片機(jī)控制數(shù)碼管五、四位數(shù)碼管動(dòng)態(tài)顯示仿真實(shí)例任務(wù)要求:在4位共陽(yáng)數(shù)碼管采用動(dòng)態(tài)顯示方式穩(wěn)定顯示“3210”

P0abcdefgdpabcdefgdpabcdefgdpabcdefgdpP2.3P2.2P2.1P2.0

0001

0010

01

00

10

00w0=1;

P0=0xc0;delay(2)w0=0;P0=0xf9;delay(2)sbitw0=P2^0;sbitw1=P2^1;sbitw2=P2^2;sbitw3=P2^3;w1=1;w1=0ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};P0=0xff;P0=0xff;3.3單片機(jī)控制數(shù)碼管五、四位數(shù)碼管動(dòng)態(tài)顯示仿真實(shí)例任務(wù)要求:在4位共陽(yáng)數(shù)碼管采用動(dòng)態(tài)顯示方式穩(wěn)定顯示“3210”

P0abcdefgdpabcdefgdpabcdefgdpabcdefgdpP2.3P2.2P2.1P2.0P0=0xf9;delay(2)w1=1;w1=0P0=0xff;送段碼送位選碼延時(shí)消隱關(guān)閉位選碼掃描率大于100Hz,整體掃描時(shí)間小于10ms,無(wú)閃爍。延時(shí)時(shí)間的計(jì)算整體掃描時(shí)間=單個(gè)數(shù)碼管點(diǎn)亮?xí)r間*數(shù)碼管個(gè)數(shù)數(shù)碼管的消隱現(xiàn)象:有時(shí)會(huì)出現(xiàn)數(shù)碼管不應(yīng)該亮的段,似乎有微微的發(fā)亮。P0=0xff;消隱:?jiǎn)蝹€(gè)數(shù)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論