




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用(第(第3版)版)電子工業(yè)出版社電子工業(yè)出版社(2013(2013年年8 8月)月)本課程的目的:本課程的目的: 介紹:介紹: 以單片機(jī)為核心的自動(dòng)化產(chǎn)品的數(shù)以單片機(jī)為核心的自動(dòng)化產(chǎn)品的數(shù)字部分的設(shè)計(jì)基礎(chǔ)。字部分的設(shè)計(jì)基礎(chǔ)?;緝?nèi)容:基本內(nèi)容: 第第1 1章章 概述概述 第第2 2章章 單片機(jī)硬件結(jié)構(gòu)單片機(jī)硬件結(jié)構(gòu) 第第3 3章章 指令系統(tǒng)指令系統(tǒng) 第第4 4章章 程序設(shè)計(jì)程序設(shè)計(jì) 第第5 5章章 硬件資源的應(yīng)用硬件資源的應(yīng)用 第第6 6章章 并行擴(kuò)展接口技術(shù)并行擴(kuò)展接口技術(shù) 第第7 7章章 串行總線擴(kuò)展技術(shù)串行總線擴(kuò)展技術(shù) 第第8 8章章 應(yīng)用系統(tǒng)設(shè)計(jì)概述應(yīng)
2、用系統(tǒng)設(shè)計(jì)概述 第第9 9章章 單片機(jī)的單片機(jī)的C C語(yǔ)言設(shè)計(jì)概述語(yǔ)言設(shè)計(jì)概述第第1 1章章 概述概述共分兩大部分:共分兩大部分:1.1 1.1 微型計(jì)算機(jī)(微型計(jì)算機(jī)(MCMC)的)的 基礎(chǔ)知識(shí)概述基礎(chǔ)知識(shí)概述 1.2 1.2 單片機(jī)概述單片機(jī)概述 1.1 MC1.1 MC基礎(chǔ)知識(shí)概述基礎(chǔ)知識(shí)概述 一、一、MCMC的基本概念的基本概念 二、二、MCMC的基本結(jié)構(gòu)的基本結(jié)構(gòu) 三、計(jì)算機(jī)中數(shù)制三、計(jì)算機(jī)中數(shù)制 四、計(jì)算機(jī)中常用的編碼四、計(jì)算機(jī)中常用的編碼一、一、MCMC的基本概念的基本概念 馮馮諾依曼體系:諾依曼體系: 采用二進(jìn)制代碼表示數(shù)據(jù)和指令。采用二進(jìn)制代碼表示數(shù)據(jù)和指令。 采用存儲(chǔ)程序的
3、工作方式。采用存儲(chǔ)程序的工作方式。 計(jì)算機(jī)硬件系統(tǒng)由運(yùn)算器、存儲(chǔ)器計(jì)算機(jī)硬件系統(tǒng)由運(yùn)算器、存儲(chǔ)器、控制器、輸入設(shè)備和輸出設(shè)備組成。、控制器、輸入設(shè)備和輸出設(shè)備組成。 計(jì)算機(jī)是一種能夠存儲(chǔ)程序,并自動(dòng)連計(jì)算機(jī)是一種能夠存儲(chǔ)程序,并自動(dòng)連續(xù)地執(zhí)行程序,對(duì)各種數(shù)字化信息進(jìn)行續(xù)地執(zhí)行程序,對(duì)各種數(shù)字化信息進(jìn)行運(yùn)算的現(xiàn)代化電子設(shè)備。運(yùn)算的現(xiàn)代化電子設(shè)備。二、二、MCMC結(jié)構(gòu)結(jié)構(gòu) 1 1、硬件結(jié)構(gòu)、硬件結(jié)構(gòu) 運(yùn)算器運(yùn)算器+ +控制器控制器+ +存儲(chǔ)器存儲(chǔ)器= =主機(jī)主機(jī); 輸入輸入+ +輸出設(shè)備則稱為計(jì)算機(jī)的外輸出設(shè)備則稱為計(jì)算機(jī)的外圍設(shè)備(簡(jiǎn)稱圍設(shè)備(簡(jiǎn)稱“外設(shè)外設(shè)”);); 運(yùn)算器運(yùn)算器+ +控制器控
4、制器= =中央處理單元中央處理單元CPUCPU(Central Process UnitCentral Process Unit)。)。CPUCPU、存儲(chǔ)器、存儲(chǔ)器、I/OI/O口、總線口、總線2 2、軟件、軟件 軟件軟件是指使用和管理計(jì)算機(jī)的各種程序是指使用和管理計(jì)算機(jī)的各種程序(ProgramProgram),),而程序是由一條條指令而程序是由一條條指令(InstructionInstruction)組成的。組成的。 (1 1)指令)指令 (2 2)程序)程序 (3 3)機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言)機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言 匯編語(yǔ)言與機(jī)器語(yǔ)言的對(duì)照:匯編語(yǔ)言與機(jī)器語(yǔ)言的對(duì)照: MOV
5、 AMOV A,#63 #63 0111 0100 0111 0100 0011 1111 0011 1111 ADD AADD A,#56 #56 0010 0100 0010 0100 0011 1000 0011 1000 ADD AADD A,#36 #36 0010 0100 0010 0100 0010 0100 0010 0100 ADD AADD A,#14 #14 0010 0100 0010 0100 0000 1110 0000 1110 3 3、硬件與軟件的關(guān)系、硬件與軟件的關(guān)系 有機(jī)結(jié)合的整體有機(jī)結(jié)合的整體 硬件是基礎(chǔ)硬件是基礎(chǔ) 軟件是靈魂軟件是靈魂三、計(jì)算機(jī)中的數(shù)制
6、三、計(jì)算機(jī)中的數(shù)制 進(jìn)位計(jì)數(shù)制與轉(zhuǎn)換:進(jìn)位計(jì)數(shù)制與轉(zhuǎn)換: 二進(jìn)制(二進(jìn)制(B B) 十六進(jìn)制(十六進(jìn)制(H H) 十進(jìn)制(十進(jìn)制(D D) 帶符號(hào)數(shù)的表示:帶符號(hào)數(shù)的表示: 原碼、反碼、補(bǔ)碼、溢出原碼、反碼、補(bǔ)碼、溢出四、常用的編碼四、常用的編碼 1 1、ASCIIASCII碼:碼: 美國(guó)信息交換標(biāo)準(zhǔn)代碼美國(guó)信息交換標(biāo)準(zhǔn)代碼 2 2、BCDBCD碼碼 二進(jìn)制編碼的十進(jìn)制數(shù)二進(jìn)制編碼的十進(jìn)制數(shù)強(qiáng)調(diào):強(qiáng)調(diào): 計(jì)算機(jī)只認(rèn)二進(jìn)制數(shù),并不認(rèn)什么十六、十、計(jì)算機(jī)只認(rèn)二進(jìn)制數(shù),并不認(rèn)什么十六、十、ASCIIASCII、BCDBCD碼等碼等 其他數(shù)的大小和性質(zhì)需要人來(lái)分析其他數(shù)的大小和性質(zhì)需要人來(lái)分析 111
7、1 1111B 1111 1111B 多大?什么性質(zhì)的數(shù)?多大?什么性質(zhì)的數(shù)? 無(wú)符號(hào):無(wú)符號(hào):255255 帶符號(hào):負(fù)數(shù)帶符號(hào):負(fù)數(shù)-1-1 BCDBCD碼:無(wú)效碼:無(wú)效 ASCIIASCII碼:碼: “DELDEL”鍵的鍵的ASCIIASCII碼碼1.2 1.2 單片機(jī)概述單片機(jī)概述 采用一定的采用一定的工藝手段工藝手段將將CPUCPU、存儲(chǔ)器、存儲(chǔ)器、I/OI/O口集成口集成在一個(gè)芯片上。在一個(gè)芯片上。 一、單片機(jī)特點(diǎn)及應(yīng)用一、單片機(jī)特點(diǎn)及應(yīng)用 二、單片機(jī)技術(shù)現(xiàn)狀及發(fā)展趁勢(shì)二、單片機(jī)技術(shù)現(xiàn)狀及發(fā)展趁勢(shì) 三、常用的單片機(jī)產(chǎn)品三、常用的單片機(jī)產(chǎn)品 四、單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)概述四、單片機(jī)應(yīng)用系統(tǒng)
8、開(kāi)發(fā)概述 一、特點(diǎn)及應(yīng)用一、特點(diǎn)及應(yīng)用 1 1、特點(diǎn):、特點(diǎn): 抗干擾性強(qiáng),工作溫度范圍寬抗干擾性強(qiáng),工作溫度范圍寬 ; 可靠性高;可靠性高; 控制功能很強(qiáng),數(shù)值計(jì)算能力較差;控制功能很強(qiáng),數(shù)值計(jì)算能力較差; 指令系統(tǒng)比通用微機(jī)系統(tǒng)簡(jiǎn)單;指令系統(tǒng)比通用微機(jī)系統(tǒng)簡(jiǎn)單; 更新?lián)Q代速度比通用微機(jī)處理器慢多。更新?lián)Q代速度比通用微機(jī)處理器慢多。 2 2、應(yīng)用:、應(yīng)用: 智能儀表中的應(yīng)用智能儀表中的應(yīng)用 機(jī)電一體化中的應(yīng)用機(jī)電一體化中的應(yīng)用 實(shí)時(shí)控制中的應(yīng)用實(shí)時(shí)控制中的應(yīng)用 軍工領(lǐng)域的應(yīng)用軍工領(lǐng)域的應(yīng)用 分布式多機(jī)系統(tǒng)中的應(yīng)用分布式多機(jī)系統(tǒng)中的應(yīng)用 民用電子產(chǎn)品中的應(yīng)用民用電子產(chǎn)品中的應(yīng)用 二、技術(shù)現(xiàn)狀及
9、二、技術(shù)現(xiàn)狀及發(fā)展趁勢(shì)發(fā)展趁勢(shì) 1 1、技術(shù)現(xiàn)狀、技術(shù)現(xiàn)狀 (1 1)單片機(jī))單片機(jī)系列單片機(jī)、種類多系列單片機(jī)、種類多 (2 2)8 8位、位、1616位、位、3232位并存位并存 (3 3)結(jié)構(gòu)、功能有很多相似)結(jié)構(gòu)、功能有很多相似掌握一掌握一種就可以觸類旁通種就可以觸類旁通 (4 4)MCS-51MCS-51單片機(jī)已成為國(guó)際經(jīng)典。單片機(jī)已成為國(guó)際經(jīng)典。2 2、發(fā)展趨勢(shì)、發(fā)展趨勢(shì) CPUCPU的改進(jìn)的改進(jìn) 存儲(chǔ)器的發(fā)展存儲(chǔ)器的發(fā)展 片內(nèi)片內(nèi)I/OI/O的改進(jìn)的改進(jìn) 外圍電路內(nèi)裝化外圍電路內(nèi)裝化 低功耗與工作電壓范圍加寬低功耗與工作電壓范圍加寬 低噪聲與高可靠性技術(shù)低噪聲與高可靠性技術(shù) IS
10、PISP及及IAP IAP 三、常用的單片機(jī)產(chǎn)品三、常用的單片機(jī)產(chǎn)品 MCSMCS單片機(jī)單片機(jī) AVRAVR單片機(jī)單片機(jī) PICPIC單片機(jī)單片機(jī) MSPMSP單片機(jī)單片機(jī) ARMARM處理器處理器 DSPDSP處理器處理器 四、單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)概述四、單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)概述 開(kāi)發(fā)環(huán)境的軟硬件構(gòu)成開(kāi)發(fā)環(huán)境的軟硬件構(gòu)成 有關(guān)的軟件平臺(tái):有關(guān)的軟件平臺(tái): PROTELPROTEL、PROTEUSPROTEUS、WAVEWAVE、KEIL C51KEIL C51 單片機(jī)的在線編程單片機(jī)的在線編程 ISP-ISP-在線系統(tǒng)編程在線系統(tǒng)編程 IAP-IAP-在線應(yīng)用編程在線應(yīng)用編程第第2 2章章 MC
11、S-51MCS-51系列單片機(jī)硬系列單片機(jī)硬件結(jié)構(gòu)件結(jié)構(gòu) 2.1 2.1 總體結(jié)構(gòu)總體結(jié)構(gòu)2.2 CPU2.2 CPU2.3 2.3 存儲(chǔ)器存儲(chǔ)器2.4 2.4 輔助電路及時(shí)序輔助電路及時(shí)序2.1 2.1 總體結(jié)構(gòu)總體結(jié)構(gòu) 包括三個(gè)問(wèn)題:包括三個(gè)問(wèn)題: 一、一、MCS-51MCS-51系列系列 二、主要組成二、主要組成 三、外部引腳三、外部引腳 四、總線圖四、總線圖一、系列問(wèn)題一、系列問(wèn)題 講到單片機(jī)都有個(gè)系列問(wèn)題講到單片機(jī)都有個(gè)系列問(wèn)題 MCS-51MCS-51: 基本型基本型 5151子系列子系列(803180518751)(803180518751) 增強(qiáng)型增強(qiáng)型 5252子系列子系列(
12、803280528752)(803280528752) 特殊型特殊型 所有的基礎(chǔ)都是所有的基礎(chǔ)都是基本型?;拘?。二、主要組成二、主要組成 8 8位的位的CPUCPU; 128128個(gè)字節(jié)的片內(nèi)個(gè)字節(jié)的片內(nèi)RAMRAM; 4 4K K字節(jié)的片內(nèi)字節(jié)的片內(nèi)ROMROM程序存儲(chǔ)器程序存儲(chǔ)器(8031(8031無(wú)無(wú)) ) 外部的外部的RAMRAM和和ROMROM的尋址范圍為的尋址范圍為6464K K 2121個(gè)字節(jié)的專用寄存器個(gè)字節(jié)的專用寄存器 4 4個(gè)個(gè)8 8位并行位并行I/OI/O口口 1 1個(gè)全雙工的串行口個(gè)全雙工的串行口 2 2個(gè)個(gè)1616位的定時(shí)器位的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器 5 5個(gè)中斷
13、源、個(gè)中斷源、2 2個(gè)中斷優(yōu)先級(jí)個(gè)中斷優(yōu)先級(jí) 111111條指令。條指令。內(nèi)部結(jié)構(gòu)框圖:內(nèi)部結(jié)構(gòu)框圖:三、外部引腳及說(shuō)明三、外部引腳及說(shuō)明 四、總線圖四、總線圖2.2 CPU2.2 CPU CPU CPU是單片機(jī)內(nèi)部的核心部件,它決是單片機(jī)內(nèi)部的核心部件,它決定了單片機(jī)的重要功能特性。它由定了單片機(jī)的重要功能特性。它由運(yùn)算運(yùn)算器器和和控制器控制器兩大部分組成。兩大部分組成。對(duì)對(duì)CPUCPU的使用是:的使用是: 對(duì)對(duì)CPUCPU中的寄存器的使用中的寄存器的使用。有關(guān)的寄存器有關(guān)的寄存器 累加器累加器ACCACC 寄存器寄存器B B 程序狀態(tài)字程序狀態(tài)字PSWPSW 布爾處理器布爾處理器C C 程
14、序計(jì)數(shù)器程序計(jì)數(shù)器PCPC 數(shù)據(jù)指針數(shù)據(jù)指針DPTRDPTR 堆棧指針堆棧指針SPSP2.3 2.3 存儲(chǔ)器存儲(chǔ)器 從物理結(jié)構(gòu)上可分為從物理結(jié)構(gòu)上可分為2 2部分:部分: 一、程序存儲(chǔ)器一、程序存儲(chǔ)器 1 1、編址與訪問(wèn)、編址與訪問(wèn) 2 2、幾個(gè)特殊入口地址、幾個(gè)特殊入口地址 二、數(shù)據(jù)存儲(chǔ)器二、數(shù)據(jù)存儲(chǔ)器 1 1、編址與訪問(wèn)、編址與訪問(wèn) 2 2、片內(nèi)數(shù)據(jù)存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器 3 3、特殊功能寄存器塊、特殊功能寄存器塊 一、程序存儲(chǔ)器一、程序存儲(chǔ)器 程序存儲(chǔ)器通常存放程序指令、常數(shù)及程序存儲(chǔ)器通常存放程序指令、常數(shù)及表格等,系統(tǒng)在運(yùn)行過(guò)程中不能修改其表格等,系統(tǒng)在運(yùn)行過(guò)程中不能修改其中的數(shù)據(jù)中
15、的數(shù)據(jù) 。說(shuō)明:說(shuō)明: 現(xiàn)在使用的單片機(jī)基本上都是采用片內(nèi)現(xiàn)在使用的單片機(jī)基本上都是采用片內(nèi)ROMROM,不需要使用片外,不需要使用片外ROMROM,因此在,因此在MCS-MCS-5151單片機(jī)應(yīng)用系統(tǒng)中,外部引腳中的單片機(jī)應(yīng)用系統(tǒng)中,外部引腳中的/EA/EA、/PSEN/PSEN都沒(méi)有實(shí)際意義了。都沒(méi)有實(shí)際意義了。幾個(gè)特殊入口地址幾個(gè)特殊入口地址: : 復(fù)位復(fù)位 0000 0000H H 外部中斷外部中斷0 00030 0003H H 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0溢出溢出 000 000BHBH 外部中斷外部中斷1 00131 0013H H 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0溢出
16、溢出 001 001BHBH 串行口中斷串行口中斷 0023 0023H H (定時(shí)器(定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器2 2溢出溢出 002 002BHBH)二、數(shù)據(jù)存儲(chǔ)器二、數(shù)據(jù)存儲(chǔ)器 數(shù)據(jù)存儲(chǔ)器則存放緩沖數(shù)據(jù),系統(tǒng)在運(yùn)數(shù)據(jù)存儲(chǔ)器則存放緩沖數(shù)據(jù),系統(tǒng)在運(yùn)行過(guò)程中可修改其中的數(shù)據(jù)。行過(guò)程中可修改其中的數(shù)據(jù)。 包括包括: : 1 1、編址與訪問(wèn)、編址與訪問(wèn) 2 2、片內(nèi)數(shù)據(jù)存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器 3 3、特殊功能寄存器塊、特殊功能寄存器塊1 1、編址與訪問(wèn)、編址與訪問(wèn)2 2、片內(nèi)數(shù)據(jù)存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器 00H00H1FH1FH 20H20H2FH2FH 30H30H7FH7FH 堆棧:堆棧: 片內(nèi)
17、片內(nèi)RAMRAM、初始化時(shí)、初始化時(shí)SP=07HSP=07H 向上生長(zhǎng)的向上生長(zhǎng)的 一般程序的開(kāi)始:一般程序的開(kāi)始: MOV SP MOV SP,#60H#60H3 3、特殊功能寄存器塊、特殊功能寄存器塊 特殊功能寄存器又稱為特殊功能寄存器又稱為專用寄存器專用寄存器 專用于控制、管理片內(nèi)算術(shù)邏輯部件、專用于控制、管理片內(nèi)算術(shù)邏輯部件、并行并行I/OI/O口、串行口、串行I/OI/O口、定時(shí)器口、定時(shí)器/ /計(jì)數(shù)計(jì)數(shù)器、中斷系統(tǒng)等功能模塊的工作。器、中斷系統(tǒng)等功能模塊的工作。2.4 2.4 輔助電路及時(shí)序輔助電路及時(shí)序 包括:時(shí)鐘電路、復(fù)位電路、時(shí)序包括:時(shí)鐘電路、復(fù)位電路、時(shí)序 一、時(shí)鐘電路一
18、、時(shí)鐘電路二、復(fù)位電路二、復(fù)位電路三、時(shí)序三、時(shí)序 (1 1)振蕩周期)振蕩周期 (2 2)狀態(tài)周期)狀態(tài)周期 (3 3)機(jī)器周期)機(jī)器周期 (4 4)指令周期)指令周期 外部晶振的外部晶振的2 2分頻是分頻是MCS-51MCS-51單片機(jī)的內(nèi)單片機(jī)的內(nèi)部部時(shí)鐘周期時(shí)鐘周期,6 6個(gè)時(shí)鐘周期個(gè)時(shí)鐘周期構(gòu)成了單片構(gòu)成了單片機(jī)的機(jī)的1 1個(gè)機(jī)器周期個(gè)機(jī)器周期 。第第3 3章章 MCS-51MCS-51單片機(jī)指令系單片機(jī)指令系統(tǒng)統(tǒng) 3.1 3.1 概述概述3.2 3.2 尋址方式尋址方式3.3 3.3 指令系統(tǒng)指令系統(tǒng)3.4 3.4 偽指令偽指令3.1 3.1 概述概述 一、指令格式一、指令格式 標(biāo)
19、號(hào)標(biāo)號(hào): : 操作碼操作碼 操作數(shù)操作數(shù)1, 1, 操作數(shù)操作數(shù)2, 2, 操作數(shù)操作數(shù)3; 3; 注釋注釋 二、操作數(shù)類型二、操作數(shù)類型 立即數(shù)、寄存器操作數(shù)、存儲(chǔ)器操作數(shù)立即數(shù)、寄存器操作數(shù)、存儲(chǔ)器操作數(shù)三、指令描述約定三、指令描述約定 Rn、direct、Ri #data、#data16 addr16、addr11、rel bit、 /bit DPTR、 A、 B、C (X)、(X)3.2 3.2 尋址方式尋址方式 1 1、概述、概述 尋址尋址就是尋找指令中操作數(shù)或操作數(shù)所就是尋找指令中操作數(shù)或操作數(shù)所在的地址。在的地址。 所謂所謂尋址方式尋址方式就是如何找到存放操作數(shù)就是如何找到存放操
20、作數(shù)的地址,把操作數(shù)提取出來(lái)的方法的地址,把操作數(shù)提取出來(lái)的方法 。它是計(jì)算機(jī)的重要性能指標(biāo)之一,也是它是計(jì)算機(jī)的重要性能指標(biāo)之一,也是匯編語(yǔ)言程序設(shè)計(jì)中最基本的內(nèi)容之一。匯編語(yǔ)言程序設(shè)計(jì)中最基本的內(nèi)容之一。2 2、尋址方式說(shuō)明、尋址方式說(shuō)明 立即尋址立即尋址 寄存器器尋址寄存器器尋址 直接尋址直接尋址 寄存器間接尋址寄存器間接尋址 基寄存器加變址寄存器間接尋址基寄存器加變址寄存器間接尋址 相對(duì)尋址相對(duì)尋址 位尋址位尋址 3.3 3.3 指令系統(tǒng)指令系統(tǒng) 111條指令,42種操作助記符,描述33種操作功能 。 從功能從功能:數(shù)據(jù)傳送(29)、算術(shù)運(yùn)算(24)、邏輯操作(24)、控制轉(zhuǎn)移(17)
21、、位操作(17); 從空間從空間:?jiǎn)巫止?jié)(49)、雙字節(jié)(45條)、三字節(jié)(17條); 從時(shí)間從時(shí)間:?jiǎn)螜C(jī)器周期(64條)、雙機(jī)器周期(45條)、四機(jī)器周期(2)一、數(shù)據(jù)傳送類一、數(shù)據(jù)傳送類 共共2929條。條。 按其操作方式,又可把它們分為三種:按其操作方式,又可把它們分為三種:數(shù)據(jù)傳送、數(shù)據(jù)交換和棧操作。數(shù)據(jù)傳送、數(shù)據(jù)交換和棧操作。 助記符:助記符:MOVMOV、MOVXMOVX、MOVCMOVC、 XCH XCH、XCHDXCHD、SWAPSWAP、 PUSH PUSH、POPPOP。應(yīng)用舉例:應(yīng)用舉例: 1 1、把片內(nèi)、把片內(nèi)RAM6AHRAM6AH單元內(nèi)容傳送到片外單元內(nèi)容傳送到片外
22、RAM300HRAM300H單元。單元。 2 2、把片外、把片外I/OI/O口口2000H2000H數(shù)據(jù)讀入片內(nèi)數(shù)據(jù)讀入片內(nèi)RAM40HRAM40H單元。單元。 3 3、把片外、把片外I/OI/O口口2000H2000H數(shù)據(jù)讀入片外數(shù)據(jù)讀入片外RAM4000HRAM4000H單元。單元。 4 4、把外部數(shù)據(jù)存儲(chǔ)器、把外部數(shù)據(jù)存儲(chǔ)器2040H2040H單元內(nèi)容和單元內(nèi)容和片外片外RAM2230HRAM2230H單元互換。單元互換。 5 5、已知片內(nèi)、已知片內(nèi)RAM50HRAM50H單元中存放數(shù)據(jù)為單元中存放數(shù)據(jù)為0AAH0AAH,設(shè)堆棧指針為,設(shè)堆棧指針為30H30H,把此數(shù)據(jù)值,把此數(shù)據(jù)值壓入
23、堆棧,然后再?gòu)椈氐綁喝攵褩?,然后再?gòu)椈氐?0H40H單元中。單元中。二、算術(shù)運(yùn)算類(二、算術(shù)運(yùn)算類(2424條)條) 加、減、乘、除基本四則運(yùn)算和增量加、減、乘、除基本四則運(yùn)算和增量(加(加1 1)、減量(減)、減量(減1 1)運(yùn)算。)運(yùn)算。 助記符助記符: :ADDADD、ADDCADDC、INCINC、DADA SUBB SUBB、DECDEC、 MUL MUL、DIVDIV 共共8 8種操作助記符。種操作助記符。應(yīng)用舉例:應(yīng)用舉例: 1 1、將片內(nèi)、將片內(nèi)RAM40HRAM40H和和41H41H單元內(nèi)容相加,單元內(nèi)容相加,結(jié)果放結(jié)果放42H42H。 2 2、將片外、將片外RAM2000H
24、RAM2000H和和2001H2001H單元兩單元兩BCDBCD碼內(nèi)容相加,結(jié)果放碼內(nèi)容相加,結(jié)果放2002H2002H。 3 3、試編寫(xiě)計(jì)算、試編寫(xiě)計(jì)算1234H+0FE7H1234H+0FE7H的程序,將的程序,將和的高和的高8 8位存入片內(nèi)位存入片內(nèi)RAM41HRAM41H,低,低8 8位存入位存入40H40H。 4 4、把上例中的加法運(yùn)算改為減法,其他要求、把上例中的加法運(yùn)算改為減法,其他要求相同相同 。 5 5、設(shè)被加數(shù)存入片內(nèi)、設(shè)被加數(shù)存入片內(nèi)RAM30HRAM30H32H32H單元中,單元中,加數(shù)存入片內(nèi)加數(shù)存入片內(nèi)RAM40HRAM40H42H42H,低位在前,高位,低位在前,
25、高位在后,各單元中均為壓縮的在后,各單元中均為壓縮的BCDBCD碼。將結(jié)果之碼。將結(jié)果之和分別存入和分別存入50H50H52H52H單元中。單元中。 6 6、把、把R1R0R1R0和和R3R2R3R2中的兩個(gè)中的兩個(gè)4 4位位BCDBCD碼數(shù)相加,碼數(shù)相加,結(jié)果送結(jié)果送R5R4R5R4中,如有進(jìn)位存入進(jìn)位位中,如有進(jìn)位存入進(jìn)位位C C中。中。三、邏輯運(yùn)算類(三、邏輯運(yùn)算類(2424條)條) 包括清除、求反、移位及與、或、異或包括清除、求反、移位及與、或、異或等操作。等操作。 這類指令有:這類指令有:CLRCLR、CPLCPL、RLRL、RLCRLC、RRRR、RRCRRC、ANLANL、ORL
26、ORL、XRLXRL,共共9 9種操作助記種操作助記符。符。 應(yīng)用舉例:應(yīng)用舉例: 1 1、把累加器、把累加器A A中低中低4 4位(高位(高4 4位清位清0 0)送)送入外部數(shù)據(jù)存儲(chǔ)器的入外部數(shù)據(jù)存儲(chǔ)器的3000H3000H單元。單元。 2 2、將累加器、將累加器A A的低的低4 4位的狀態(tài)通過(guò)位的狀態(tài)通過(guò)P1P1口口的高的高4 4位輸出。位輸出。 3 3、編程將片內(nèi)、編程將片內(nèi)RAM21HRAM21H單元的低單元的低3 3位和位和20H20H單元的低單元的低5 5位合并為一個(gè)字節(jié)送片內(nèi)位合并為一個(gè)字節(jié)送片內(nèi)RAM30HRAM30H,要求,要求21H21H的低的低3 3位放在高位上。位放在高
27、位上。四、控制轉(zhuǎn)移類(四、控制轉(zhuǎn)移類(1717條)條) 計(jì)算機(jī)在運(yùn)行過(guò)程中,有時(shí)因?yàn)椴僮鞯男枰?jì)算機(jī)在運(yùn)行過(guò)程中,有時(shí)因?yàn)椴僮鞯男枰虺绦蜉^復(fù)雜,程序指令往往不能按順序逐或程序較復(fù)雜,程序指令往往不能按順序逐條執(zhí)行,需要改變程序運(yùn)行的方向??刂妻D(zhuǎn)條執(zhí)行,需要改變程序運(yùn)行的方向。控制轉(zhuǎn)移類指令包括無(wú)條件轉(zhuǎn)移、條件轉(zhuǎn)移、調(diào)用移類指令包括無(wú)條件轉(zhuǎn)移、條件轉(zhuǎn)移、調(diào)用和返回指令等。和返回指令等。 指令有:指令有: AJMPAJMP、LJMPLJMP、SJMPSJMP、JMPJMP、JZJZ、JNZJNZ、CJNZCJNZ、DJNZDJNZ、ACALLACALL、LCALLLCALL、RETRET、RET
28、IRETI、NOPNOP 共共1313種操作助記符。種操作助記符。應(yīng)用舉例:應(yīng)用舉例: 1 1、將累加器、將累加器A A的低的低4 4位取反位取反4 4次,高次,高4 4位位不變,每變換一次從不變,每變換一次從P1P1口輸出??谳敵?。 2 2、如果累加器、如果累加器A A中存放待處理命令編號(hào)中存放待處理命令編號(hào)(0707),程序存儲(chǔ)器中存放著標(biāo)號(hào)為),程序存儲(chǔ)器中存放著標(biāo)號(hào)為PMTBPMTB的轉(zhuǎn)移表首地址,則執(zhí)行下面的程的轉(zhuǎn)移表首地址,則執(zhí)行下面的程序,將根據(jù)序,將根據(jù)A A中命令編號(hào)轉(zhuǎn)向相應(yīng)的處中命令編號(hào)轉(zhuǎn)向相應(yīng)的處理程序。理程序。五、位操作類(五、位操作類(1717條)條) 以進(jìn)位標(biāo)志以進(jìn)
29、位標(biāo)志C C作為累加器作為累加器C C 在使用位操作類指令時(shí)要和字節(jié)操作類指令在使用位操作類指令時(shí)要和字節(jié)操作類指令區(qū)別開(kāi)來(lái),因?yàn)樗鼈兊闹浄窍嗤摹_@區(qū)別開(kāi)來(lái),因?yàn)樗鼈兊闹浄窍嗤摹_@類指令的助記符有:類指令的助記符有: MOVMOV、CLRCLR、CPLCPL、SETBSETB、ANLANL、ORLORL、JCJC、JNCJNC、JBJB、JNBJNB、JBCJBC 共共1111種操作助記符。種操作助記符。應(yīng)用舉例:應(yīng)用舉例: 1 1、將累加器的、將累加器的ACC.5ACC.5與與00H00H位相與后,位相與后,通過(guò)通過(guò)P1.4P1.4輸出。輸出。 2 2、比較片內(nèi)、比較片內(nèi)RAM4
30、0HRAM40H、50H50H中兩個(gè)無(wú)符號(hào)中兩個(gè)無(wú)符號(hào)數(shù)的大小,若數(shù)的大小,若40H40H中的數(shù)小則把片內(nèi)中的數(shù)小則把片內(nèi)RAMRAM中的位地址中的位地址40H40H置置1 1;若;若50H50H中數(shù)小,則中數(shù)小,則把片內(nèi)把片內(nèi)RAMRAM中的位地址中的位地址50H50H置置1 1;若相等;若相等則把片內(nèi)則把片內(nèi)RAMRAM中的位地址中的位地址20H20H置置1 1。3.4 3.4 偽指令偽指令 匯編程序?qū)τ脜R編語(yǔ)言寫(xiě)的源程序進(jìn)行匯編程序?qū)τ脜R編語(yǔ)言寫(xiě)的源程序進(jìn)行匯編時(shí),還要提供一些匯編用的指令,匯編時(shí),還要提供一些匯編用的指令,例如要指定程序或數(shù)據(jù)存放的起始地址;例如要指定程序或數(shù)據(jù)存放的起
31、始地址;要給一些連續(xù)存放的數(shù)據(jù)確定單元等等。要給一些連續(xù)存放的數(shù)據(jù)確定單元等等。但是,這些指令在匯編時(shí)并不產(chǎn)生目標(biāo)但是,這些指令在匯編時(shí)并不產(chǎn)生目標(biāo)代碼,不影響程序的執(zhí)行,所以稱為偽代碼,不影響程序的執(zhí)行,所以稱為偽指令指令 ORG定位偽指令定位偽指令 DB定義字節(jié)偽指令定義字節(jié)偽指令 DW定義字偽指令定義字偽指令 EQU賦值偽指令賦值偽指令 END匯編結(jié)束偽指令匯編結(jié)束偽指令第第4 4章章 MCS-51MCS-51單片機(jī)匯編語(yǔ)單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)言程序設(shè)計(jì) 指令的有序羅列。指令的有序羅列。4.1 4.1 程序設(shè)計(jì)概述程序設(shè)計(jì)概述 4.2 4.2 基本程序設(shè)計(jì)基本程序設(shè)計(jì)4.3 4.3 基本
32、功能程序設(shè)計(jì)基本功能程序設(shè)計(jì) 4.1 4.1 程序設(shè)計(jì)概述程序設(shè)計(jì)概述 4.2 4.2 基本程序基本程序設(shè)計(jì) 1 1、順序結(jié)構(gòu)程序、順序結(jié)構(gòu)程序 是一種最簡(jiǎn)單、最基本的程序,按照程是一種最簡(jiǎn)單、最基本的程序,按照程序編寫(xiě)的順序逐條依次執(zhí)行,直到程序序編寫(xiě)的順序逐條依次執(zhí)行,直到程序結(jié)束。這是程序的最基本的形式,任何結(jié)束。這是程序的最基本的形式,任何程序都離不開(kāi)這種形式。程序都離不開(kāi)這種形式。 例例4-14-1: 將片內(nèi)將片內(nèi)RAM 20HRAM 20H單元中單元中 的數(shù)拆成兩段,每段的數(shù)拆成兩段,每段4 4位,位, 并將其分別存入并將其分別存入21H21H、 22H22H單元中。低單元中。低4
33、 4位存位存 在在21H21H單元,高單元,高4 4位存位存 在在22H22H單元單元 2、分支結(jié)構(gòu)的程序分支結(jié)構(gòu)的程序 分支結(jié)構(gòu)程序是利用條件轉(zhuǎn)移指令,使分支結(jié)構(gòu)程序是利用條件轉(zhuǎn)移指令,使程序執(zhí)行到某一指令時(shí),根據(jù)條件是否程序執(zhí)行到某一指令時(shí),根據(jù)條件是否滿足,來(lái)改變程序執(zhí)行的順序。滿足,來(lái)改變程序執(zhí)行的順序。 編寫(xiě)分支結(jié)構(gòu)的程序主要在于編寫(xiě)分支結(jié)構(gòu)的程序主要在于正確使用正確使用轉(zhuǎn)移指令轉(zhuǎn)移指令。 編寫(xiě)分支結(jié)構(gòu)的程序的關(guān)鍵是編寫(xiě)分支結(jié)構(gòu)的程序的關(guān)鍵是確定好分確定好分支條件支條件。用于分支結(jié)構(gòu)程序中的語(yǔ)句有用于分支結(jié)構(gòu)程序中的語(yǔ)句有: :JZ/JNZJZ/JNZ、CJNECJNE、DJNZDJ
34、NZ、JC/JNCJC/JNC、JB/JNBJB/JNB、JBCJBC例例 編制程序使編制程序使y y按下式賦值按下式賦值: 0, 10, 00, 1xxxy例 設(shè)外部存儲(chǔ)器單元設(shè)外部存儲(chǔ)器單元 ST1ST1和和ST2ST2存放兩個(gè)存放兩個(gè) 不帶符號(hào)的二進(jìn)制不帶符號(hào)的二進(jìn)制 數(shù),找出其中的大數(shù),找出其中的大 數(shù)存入數(shù)存入ST3ST3單元。單元。 3 3、循環(huán)結(jié)構(gòu)的程序、循環(huán)結(jié)構(gòu)的程序 是強(qiáng)制是強(qiáng)制CPUCPU重復(fù)執(zhí)行某一指令序列的一重復(fù)執(zhí)行某一指令序列的一種程序結(jié)構(gòu)形式。種程序結(jié)構(gòu)形式。 循環(huán)結(jié)構(gòu)的程序一般由循環(huán)結(jié)構(gòu)的程序一般由5 5部分組成:部分組成: 初始化,循環(huán)體、循環(huán)修改、循環(huán)控制初始
35、化,循環(huán)體、循環(huán)修改、循環(huán)控制和結(jié)束部分。和結(jié)束部分。 例:例: 1 1、工作單元清、工作單元清0 0。 2 2、多個(gè)單字節(jié)數(shù)據(jù)求和。、多個(gè)單字節(jié)數(shù)據(jù)求和。 3 3、設(shè)在、設(shè)在DATDAT開(kāi)始的片內(nèi)開(kāi)始的片內(nèi)RAMRAM中存放中存放8 8個(gè)無(wú)個(gè)無(wú)符號(hào)字節(jié)數(shù),找出最大值符號(hào)字節(jié)數(shù),找出最大值, ,并暫存在并暫存在A A中。中。 1010個(gè)數(shù),去掉一個(gè)最大值、一個(gè)最小值,個(gè)數(shù),去掉一個(gè)最大值、一個(gè)最小值,求剩余求剩余8 8個(gè)數(shù)的平均值。個(gè)數(shù)的平均值。4.3 4.3 基本功能程序的設(shè)計(jì)基本功能程序的設(shè)計(jì) 一、查表程序一、查表程序 二、子程序二、子程序 三、算數(shù)立即運(yùn)算程序三、算數(shù)立即運(yùn)算程序 四、數(shù)
36、制轉(zhuǎn)換程序四、數(shù)制轉(zhuǎn)換程序一、查表程序的設(shè)計(jì)一、查表程序的設(shè)計(jì) 查表法是對(duì)一些復(fù)雜的函數(shù)運(yùn)算如查表法是對(duì)一些復(fù)雜的函數(shù)運(yùn)算如sinxsinx等,等,事先把其全部可能范圍的函數(shù)值按一定的規(guī)事先把其全部可能范圍的函數(shù)值按一定的規(guī)律編成表格存放在計(jì)算機(jī)的程序存儲(chǔ)器中。律編成表格存放在計(jì)算機(jī)的程序存儲(chǔ)器中。當(dāng)用戶程序中需要用到這些函數(shù)時(shí),直接按當(dāng)用戶程序中需要用到這些函數(shù)時(shí),直接按編排好的索引值(或程序號(hào))尋找答案。編排好的索引值(或程序號(hào))尋找答案。 在控制應(yīng)用場(chǎng)合或智能儀器儀表中,經(jīng)常使在控制應(yīng)用場(chǎng)合或智能儀器儀表中,經(jīng)常使用查表法。用查表法。 這種方法的不足是要占用較多的存儲(chǔ)單元。這種方法的不足
37、是要占用較多的存儲(chǔ)單元。例:例: 1 1、已知數(shù)據(jù)、已知數(shù)據(jù)0 09 9的平方,設(shè)變量的平方,設(shè)變量x x的值的值在累加器在累加器A A中,查表后求中,查表后求x2x2的值放回累的值放回累加器,試編制程序。加器,試編制程序。 2 2、設(shè)計(jì)一個(gè)將十六進(jìn)制數(shù)轉(zhuǎn)換成、設(shè)計(jì)一個(gè)將十六進(jìn)制數(shù)轉(zhuǎn)換成ASCIIASCII碼的子程序。設(shè)十六進(jìn)制數(shù)存放在碼的子程序。設(shè)十六進(jìn)制數(shù)存放在R0R0的的低低4 4位,要求轉(zhuǎn)換后的位,要求轉(zhuǎn)換后的ASCIIASCII碼送回碼送回R0R0中。中。二、子程序設(shè)計(jì)二、子程序設(shè)計(jì) 在實(shí)際問(wèn)題中,常常會(huì)遇到在一個(gè)程序中有在實(shí)際問(wèn)題中,常常會(huì)遇到在一個(gè)程序中有許多相同的運(yùn)算或操作,例
38、如多字節(jié)的加、許多相同的運(yùn)算或操作,例如多字節(jié)的加、減、字符處理等。如果每遇到這些運(yùn)算和操減、字符處理等。如果每遇到這些運(yùn)算和操作,都從頭做起,則使程序非常繁瑣且浪費(fèi)作,都從頭做起,則使程序非常繁瑣且浪費(fèi)內(nèi)存。內(nèi)存。 因此在實(shí)際應(yīng)用中,通常把這些多次使用的因此在實(shí)際應(yīng)用中,通常把這些多次使用的程序段,按一定結(jié)構(gòu)編好,存放在內(nèi)存中,程序段,按一定結(jié)構(gòu)編好,存放在內(nèi)存中,當(dāng)需要時(shí),程序可以去調(diào)用這些獨(dú)立的程序當(dāng)需要時(shí),程序可以去調(diào)用這些獨(dú)立的程序段。段。 通常將這種可以被調(diào)用的程序段稱為子程序。通常將這種可以被調(diào)用的程序段稱為子程序。 調(diào)用子程序的程序稱為主程序。調(diào)用子程序的程序稱為主程序。 使用
39、子程序的過(guò)程稱為調(diào)用子程序;使用子程序的過(guò)程稱為調(diào)用子程序; 子程序執(zhí)行完畢后返回主程序的過(guò)程稱子程序執(zhí)行完畢后返回主程序的過(guò)程稱為子程序返回。為子程序返回。例:例: 1 1、用程序?qū)崿F(xiàn)、用程序?qū)崿F(xiàn)c=a2+b2c=a2+b2。設(shè)。設(shè)a a、b b均小于均小于1010,a a存在片內(nèi)存在片內(nèi)RAM31HRAM31H單元中,單元中,b b存在存在32H32H單元中,把單元中,把c c存入存入33H33H單元中。單元中。 2 2、求兩個(gè)無(wú)符號(hào)數(shù)據(jù)塊中的最大值。、求兩個(gè)無(wú)符號(hào)數(shù)據(jù)塊中的最大值。數(shù)據(jù)塊的首地址分別為片內(nèi)數(shù)據(jù)塊的首地址分別為片內(nèi)RAM60HRAM60H和和70H70H,每個(gè)數(shù)據(jù)塊的第,每
40、個(gè)數(shù)據(jù)塊的第1 1個(gè)字節(jié)都存放數(shù)個(gè)字節(jié)都存放數(shù)據(jù)塊的長(zhǎng)度,結(jié)果存入據(jù)塊的長(zhǎng)度,結(jié)果存入5FH5FH單元。單元。 三、算術(shù)邏輯運(yùn)算程序 多字節(jié)二進(jìn)制數(shù)加法多字節(jié)二進(jìn)制數(shù)加法 多字節(jié)壓縮多字節(jié)壓縮BCDBCD碼加法碼加法 多字節(jié)數(shù)求補(bǔ)多字節(jié)數(shù)求補(bǔ) 除以除以2 2的倍數(shù)的處理的倍數(shù)的處理 雙字節(jié)無(wú)符號(hào)數(shù)整數(shù)相乘雙字節(jié)無(wú)符號(hào)數(shù)整數(shù)相乘四、數(shù)制轉(zhuǎn)化程序四、數(shù)制轉(zhuǎn)化程序 二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù) 十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) 二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)的二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)的ASCIIASCII碼碼 ASCIIASCII字符串轉(zhuǎn)換為十六進(jìn)制數(shù),兩兩字符串轉(zhuǎn)換為十六進(jìn)制
41、數(shù),兩兩組合成組合成1 1個(gè)字節(jié)個(gè)字節(jié)第第5 5章章 MCS-51MCS-51單片機(jī)硬件資單片機(jī)硬件資源的應(yīng)用源的應(yīng)用本章從應(yīng)用的角度介紹以下內(nèi)容本章從應(yīng)用的角度介紹以下內(nèi)容: :5.1 5.1 P0P3口5.2 5.2 中斷系統(tǒng)中斷系統(tǒng) 5.3 5.3 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器 5.4 5.4 串行接口串行接口5.1 5.1 P0P3口 在在MCS-51MCS-51單片機(jī)內(nèi)部包含有四個(gè)并單片機(jī)內(nèi)部包含有四個(gè)并行的行的I/OI/O口口P0P0口、口、P1P1口、口、P2P2口和口和P3P3口口 一、結(jié)構(gòu)與操作一、結(jié)構(gòu)與操作 二、應(yīng)用舉例二、應(yīng)用舉例一、結(jié)構(gòu)與操作一、結(jié)構(gòu)與操作 1 1、P
42、1P1口口 P1P1口作為通用的口作為通用的I/OI/O口使用,具有口使用,具有輸出、輸出、讀引腳、讀鎖存器讀引腳、讀鎖存器三種工作方式。三種工作方式。 注意:是讀引腳還是讀鎖存器,其過(guò)程注意:是讀引腳還是讀鎖存器,其過(guò)程CPUCPU內(nèi)部會(huì)自動(dòng)處理,讀者不必在意。內(nèi)部會(huì)自動(dòng)處理,讀者不必在意。但應(yīng)注意,當(dāng)作為讀引腳方式使用時(shí),但應(yīng)注意,當(dāng)作為讀引腳方式使用時(shí),應(yīng)先對(duì)該口寫(xiě)應(yīng)先對(duì)該口寫(xiě)“1 1”。 P1P1口作為一般的口作為一般的I/OI/O口使用時(shí)記作口使用時(shí)記作P1P17 7P1P10 0。2 2、P3P3口口: P3P3口為多功能口。作為第二功能口使用時(shí)是口為多功能口。作為第二功能口使用時(shí)
43、是提供一個(gè)全雙工的串行口、提供一個(gè)全雙工的串行口、2 2個(gè)外部中斷源的個(gè)外部中斷源的中斷輸入、中斷輸入、2 2個(gè)計(jì)數(shù)器的計(jì)數(shù)脈沖輸入、兩個(gè)個(gè)計(jì)數(shù)器的計(jì)數(shù)脈沖輸入、兩個(gè)對(duì)外部對(duì)外部RAMRAM及及I/OI/O的讀的讀/ /寫(xiě)控制信號(hào)。寫(xiě)控制信號(hào)。 在應(yīng)用中,在應(yīng)用中,P3P3口的各位如不設(shè)置為第二功能,口的各位如不設(shè)置為第二功能,則自動(dòng)處于第一功能。則自動(dòng)處于第一功能。 P3P3口作為一般的口作為一般的I/OI/O口使用時(shí)記作口使用時(shí)記作P3P37 7P3P30 0 3 3、P0P0口:口: POPO口既可以作為通用的口既可以作為通用的I/OI/O口進(jìn)行數(shù)據(jù)口進(jìn)行數(shù)據(jù)的輸入的輸入/ /輸出,也可
44、以作為單片機(jī)系統(tǒng)輸出,也可以作為單片機(jī)系統(tǒng)的地址的地址/ /數(shù)據(jù)線使用數(shù)據(jù)線使用 。 作為一般的作為一般的I/OI/O口使用時(shí)記作口使用時(shí)記作P0P07 7P0P00 0;作為數(shù)據(jù)口使用時(shí)記作;作為數(shù)據(jù)口使用時(shí)記作D7D7D0D0;作為地址線使用時(shí)要增加一個(gè)鎖存器,作為地址線使用時(shí)要增加一個(gè)鎖存器,鎖存器的輸出是地址線的低鎖存器的輸出是地址線的低8 8位,記作位,記作A7A7A0A0。4 4P2P2口口 P2P2口既可以作為通用的口既可以作為通用的I/OI/O口使用也可口使用也可以作為地址總線使用以作為地址總線使用 。 P2P2口作為一般的口作為一般的I/OI/O口使用時(shí)記作口使用時(shí)記作P2P
45、27 7P2P20 0;作為地址口使用時(shí)是地;作為地址口使用時(shí)是地址的高址的高8 8位,記作位,記作A15A15A8A8。 二、應(yīng)用舉例二、應(yīng)用舉例 1 1、電路如圖電路如圖 所示,編程將所示,編程將 開(kāi)關(guān)開(kāi)關(guān)K0K0K3K3的的 狀態(tài)通過(guò)指示狀態(tài)通過(guò)指示 燈燈L0L0L3L3表示表示 出來(lái),開(kāi)關(guān)閉出來(lái),開(kāi)關(guān)閉 合時(shí)燈亮。合時(shí)燈亮。 2 2、電路如所示。編制一個(gè)燈光循環(huán)閃電路如所示。編制一個(gè)燈光循環(huán)閃爍程序,通過(guò)爍程序,通過(guò)P3P3口連接口連接8 8個(gè)發(fā)光二極管。個(gè)發(fā)光二極管。其中一個(gè)其中一個(gè) 發(fā)光二極管閃發(fā)光二極管閃 爍爍3 3次后,轉(zhuǎn)移次后,轉(zhuǎn)移 到下一個(gè)發(fā)光到下一個(gè)發(fā)光 二極管閃爍二極管
46、閃爍3 3次,次, 如此循環(huán)不止。如此循環(huán)不止。 3 3、設(shè)計(jì)一電路,監(jiān)視某按鍵設(shè)計(jì)一電路,監(jiān)視某按鍵S S,用發(fā)光,用發(fā)光二極管二極管LEDLED顯示按鍵狀態(tài)。如果按鍵閉顯示按鍵狀態(tài)。如果按鍵閉合,則合,則LEDLED亮,亮, 并發(fā)出聲音報(bào)并發(fā)出聲音報(bào) 警信號(hào);如果警信號(hào);如果 按鍵按鍵S S斷開(kāi),斷開(kāi), 則則LEDLED熄滅,熄滅, 無(wú)聲音報(bào)警信號(hào)。無(wú)聲音報(bào)警信號(hào)。5.2 5.2 中斷系統(tǒng)中斷系統(tǒng) 一、中斷系統(tǒng)結(jié)構(gòu)與控制一、中斷系統(tǒng)結(jié)構(gòu)與控制 二、中斷優(yōu)先級(jí)結(jié)構(gòu)與中斷響應(yīng)二、中斷優(yōu)先級(jí)結(jié)構(gòu)與中斷響應(yīng) 三、中斷請(qǐng)求的撤除三、中斷請(qǐng)求的撤除 四、中斷系統(tǒng)應(yīng)用舉例四、中斷系統(tǒng)應(yīng)用舉例 一、中斷系
47、統(tǒng)結(jié)構(gòu)與控制一、中斷系統(tǒng)結(jié)構(gòu)與控制1 1、中斷源、中斷源 外部中斷:外部中斷:外部中斷外部中斷0 0 /INT0/INT0 外部中斷外部中斷1 1 /INT1/INT1 定時(shí)器定時(shí)器/ /計(jì)數(shù)器溢出中斷:計(jì)數(shù)器溢出中斷: 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0 TF0TF0 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1 TF1 TF1 串行口中斷:串行口中斷:串行口串行口 RIRI、TITI2 2、中斷控制、中斷控制 設(shè)置了設(shè)置了4 4個(gè)專用寄存器用于中斷控制,個(gè)專用寄存器用于中斷控制,用戶通過(guò)設(shè)置其狀態(tài)來(lái)管理中斷系統(tǒng)。用戶通過(guò)設(shè)置其狀態(tài)來(lái)管理中斷系統(tǒng)。 (1 1)定時(shí)器控制寄存器()定時(shí)器控制寄存器(
48、TCONTCON)(2 2)串行口控制寄存器(串行口控制寄存器(SCONSCON) (3 3)中斷允許控制寄存器(中斷允許控制寄存器(IEIE)(4 4)中斷優(yōu)先級(jí)控制寄存器(中斷優(yōu)先級(jí)控制寄存器(IPIP)二、中斷優(yōu)先級(jí)結(jié)構(gòu)與中斷響應(yīng)二、中斷優(yōu)先級(jí)結(jié)構(gòu)與中斷響應(yīng) 1 1、中斷優(yōu)先級(jí)結(jié)構(gòu)、中斷優(yōu)先級(jí)結(jié)構(gòu) 優(yōu)先級(jí)排列如下優(yōu)先級(jí)排列如下( (從高到低從高到低):): 外部中斷外部中斷0 0 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0溢出溢出 外部中斷外部中斷1 1 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1溢出溢出 串行口中斷串行口中斷 中斷服務(wù)程序入口地址:中斷服務(wù)程序入口地址: 外部中斷外部中斷0 000
49、3H0 0003H 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0溢出溢出 000BH000BH 外部中斷外部中斷1 0013H1 0013H 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1溢出溢出 001BH001BH 串行口串行口 0023H0023H2 2、中斷響應(yīng)、中斷響應(yīng) 中斷服務(wù)程序入口地址:中斷服務(wù)程序入口地址: 0003H0003H 000BH000BH 0013H0013H 001BH001BH 0023H0023H三、中斷請(qǐng)求的撤除三、中斷請(qǐng)求的撤除5 5個(gè)中斷源,實(shí)際上只分屬于三種中斷類個(gè)中斷源,實(shí)際上只分屬于三種中斷類型。這三種類型是:型。這三種類型是:外部中斷、定時(shí)器外部中斷、定時(shí)器/
50、/計(jì)數(shù)器溢出中斷和串計(jì)數(shù)器溢出中斷和串行口中斷行口中斷。對(duì)于這三種中斷類型的中斷請(qǐng)求,其撤除對(duì)于這三種中斷類型的中斷請(qǐng)求,其撤除方法是不同的。方法是不同的。1 1、定時(shí)器溢出中斷請(qǐng)求的撤除、定時(shí)器溢出中斷請(qǐng)求的撤除 TF0TF0和和TF1TF1是定時(shí)器是定時(shí)器/ /計(jì)數(shù)器溢出中斷標(biāo)計(jì)數(shù)器溢出中斷標(biāo)志位,它們因定時(shí)器志位,它們因定時(shí)器/ /計(jì)數(shù)器溢出中斷計(jì)數(shù)器溢出中斷請(qǐng)求的輸入而置位,因定時(shí)器請(qǐng)求的輸入而置位,因定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器溢出中斷得到響應(yīng)而自動(dòng)復(fù)位成溢出中斷得到響應(yīng)而自動(dòng)復(fù)位成0 0狀態(tài)。狀態(tài)。因此因此定時(shí)器定時(shí)器/ /計(jì)數(shù)器溢出中斷源的中斷計(jì)數(shù)器溢出中斷源的中斷請(qǐng)求是自動(dòng)撤除的,
51、用戶根本不必專門(mén)請(qǐng)求是自動(dòng)撤除的,用戶根本不必專門(mén)為它們撤除。為它們撤除。2 2、串行口中斷請(qǐng)求的撤除、串行口中斷請(qǐng)求的撤除 TITI和和RIRI是串行口中斷的標(biāo)志位,中斷系是串行口中斷的標(biāo)志位,中斷系統(tǒng)不能自動(dòng)將它們撤除。為了防止統(tǒng)不能自動(dòng)將它們撤除。為了防止CPUCPU再次響應(yīng)這類中斷,用戶應(yīng)在中斷服務(wù)再次響應(yīng)這類中斷,用戶應(yīng)在中斷服務(wù)程序的適當(dāng)位置處程序的適當(dāng)位置處通過(guò)指令將它們撤除:通過(guò)指令將它們撤除: CLRCLRTITI;撤除發(fā)送中斷;撤除發(fā)送中斷 CLRCLRRIRI;撤除接收中斷;撤除接收中斷3 3、外部中斷的撤除、外部中斷的撤除 外部中斷請(qǐng)求有兩種觸發(fā)方式:電平觸外部中斷請(qǐng)求
52、有兩種觸發(fā)方式:電平觸發(fā)和脈沖觸發(fā)。對(duì)于這兩種不同的中斷發(fā)和脈沖觸發(fā)。對(duì)于這兩種不同的中斷觸發(fā)方式,觸發(fā)方式,MCS-51MCS-51單片機(jī)撤除它們的中單片機(jī)撤除它們的中斷請(qǐng)求的方法是不相同的。斷請(qǐng)求的方法是不相同的。 (1 1)脈沖觸發(fā):)脈沖觸發(fā): 自動(dòng)復(fù)位自動(dòng)復(fù)位(2 2)電平觸發(fā):)電平觸發(fā):四、中斷系統(tǒng)的應(yīng)用舉例四、中斷系統(tǒng)的應(yīng)用舉例 對(duì)中斷系統(tǒng)的使用,實(shí)際是對(duì)對(duì)中斷系統(tǒng)的使用,實(shí)際是對(duì)4 4個(gè)與中斷有關(guān)個(gè)與中斷有關(guān)的寄存器的寄存器IEIE、TCONTCON、SCONSCON、IPIP進(jìn)行控制與管進(jìn)行控制與管理。在中斷程序的編制中應(yīng)注意:理。在中斷程序的編制中應(yīng)注意: IEIE寄存器
53、:寄存器:開(kāi)中斷總開(kāi)關(guān)開(kāi)中斷總開(kāi)關(guān)EAEA,置位各中斷,置位各中斷源的中斷允許位。源的中斷允許位。 對(duì)于外部中斷應(yīng)通過(guò)對(duì)于外部中斷應(yīng)通過(guò)TCONTCON寄存器的寄存器的ITIT位位選選擇中斷觸發(fā)方式擇中斷觸發(fā)方式- -電平或脈沖。電平或脈沖。 如果有多個(gè)中斷源,要通過(guò)如果有多個(gè)中斷源,要通過(guò)IPIP寄存器寄存器指定指定其中斷優(yōu)先級(jí)。其中斷優(yōu)先級(jí)。例例1 1:外部中斷:外部中斷 在本實(shí)例中,首先在本實(shí)例中,首先 通過(guò)通過(guò)P1.7P1.7口點(diǎn)亮發(fā)口點(diǎn)亮發(fā) 光二極管,然后外光二極管,然后外 部輸入一脈沖串,部輸入一脈沖串, 則發(fā)光二極管亮、則發(fā)光二極管亮、 暗交替。暗交替。 電路如圖所示。電路如圖所
54、示。 例例 利用定時(shí)器利用定時(shí)器/ /計(jì)數(shù)器擴(kuò)展外計(jì)數(shù)器擴(kuò)展外部中斷部中斷 (放在下一節(jié)講)(放在下一節(jié)講)。例例 利用外部中斷和查詢相結(jié)利用外部中斷和查詢相結(jié)合的方法擴(kuò)展外部中斷合的方法擴(kuò)展外部中斷例例 利用優(yōu)先編碼器擴(kuò)展外部中斷利用優(yōu)先編碼器擴(kuò)展外部中斷5 53 3 MCS-51MCS-51的定時(shí)器的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器 一、結(jié)構(gòu)一、結(jié)構(gòu) 二、控制寄存器二、控制寄存器 三、工作方式三、工作方式 四、應(yīng)用舉例四、應(yīng)用舉例一、結(jié)構(gòu)一、結(jié)構(gòu) 計(jì)數(shù)功能計(jì)數(shù)功能是指對(duì)外部事件進(jìn)行計(jì)數(shù)是指對(duì)外部事件進(jìn)行計(jì)數(shù): :計(jì)計(jì)數(shù)信號(hào)來(lái)自數(shù)信號(hào)來(lái)自T0T0、T1T1引腳。引腳。 定時(shí)功能定時(shí)功能也是通過(guò)計(jì)數(shù)器
55、的計(jì)數(shù)功能來(lái)也是通過(guò)計(jì)數(shù)器的計(jì)數(shù)功能來(lái)完成的,不過(guò)此時(shí)的計(jì)數(shù)脈沖來(lái)自單片完成的,不過(guò)此時(shí)的計(jì)數(shù)脈沖來(lái)自單片機(jī)內(nèi)部:機(jī)器周期。機(jī)內(nèi)部:機(jī)器周期。二、控制寄存器二、控制寄存器 與定時(shí)器與定時(shí)器/ /計(jì)數(shù)器應(yīng)用有關(guān)的控制寄存計(jì)數(shù)器應(yīng)用有關(guān)的控制寄存器有三個(gè),分別為器有三個(gè),分別為T(mén)CONTCON、TMODTMOD、IEIE。 (1 1)定時(shí)控制寄存器()定時(shí)控制寄存器(TCONTCON)(2 2)工作方式控制寄存器()工作方式控制寄存器(TMODTMOD) (3 3)中斷允許控制寄存器()中斷允許控制寄存器(IEIE)三、工作方式三、工作方式 1 1方式方式0 0 定時(shí)和計(jì)數(shù)范圍:定時(shí)和計(jì)數(shù)范圍:
56、計(jì)數(shù)器的計(jì)數(shù)值范圍是:計(jì)數(shù)器的計(jì)數(shù)值范圍是:1 181928192(2 21313) 當(dāng)為計(jì)數(shù)器工作方式時(shí):當(dāng)為計(jì)數(shù)器工作方式時(shí): 計(jì)數(shù)器的初值范圍為:計(jì)數(shù)器的初值范圍為:0 02 21313-1-1; 定時(shí)時(shí)間的計(jì)算公式為:定時(shí)時(shí)間的計(jì)算公式為: 定時(shí)時(shí)間定時(shí)時(shí)間= =(2 21313- -計(jì)數(shù)初值)計(jì)數(shù)初值)定時(shí)周期定時(shí)周期 若晶振頻率為若晶振頻率為6MHz6MHz,其定時(shí)周期,其定時(shí)周期2s2s: 則最短定時(shí)時(shí)間為:則最短定時(shí)時(shí)間為: Tmin=2Tmin=21313-(2-(21313-1) -1) 2s =2(s)2s =2(s) 最長(zhǎng)定時(shí)時(shí)間為:最長(zhǎng)定時(shí)時(shí)間為: Tmax=(2Tm
57、ax=(21313-0) -0) 2s =16384(s)2s =16384(s)2 2方式方式1 1:定時(shí)與計(jì)數(shù)范圍:定時(shí)與計(jì)數(shù)范圍: 計(jì)數(shù)器的計(jì)數(shù)值范圍是:計(jì)數(shù)器的計(jì)數(shù)值范圍是:1 16553665536(2 21616)。)。 當(dāng)為計(jì)數(shù)器工作方式時(shí):當(dāng)為計(jì)數(shù)器工作方式時(shí): 計(jì)數(shù)器的初值范圍為:計(jì)數(shù)器的初值范圍為: 0 02 21616-1-1; 當(dāng)為定時(shí)工作方式時(shí):當(dāng)為定時(shí)工作方式時(shí):定時(shí)時(shí)間定時(shí)時(shí)間= =(2 21616- -計(jì)數(shù)初值)計(jì)數(shù)初值)定時(shí)周期定時(shí)周期 若晶振頻率為若晶振頻率為12MHz12MHz,其定時(shí)周期,其定時(shí)周期1s1s: 則最短定時(shí)時(shí)間為:則最短定時(shí)時(shí)間為: Tmi
58、n=2Tmin=21616-(2-(21616-1) -1) 1s =1(s)1s =1(s) 最長(zhǎng)定時(shí)時(shí)間為:最長(zhǎng)定時(shí)時(shí)間為: Tmax=(2Tmax=(21616-0) -0) 1s =65536(s)1s =65536(s)3 3方式方式2 2:計(jì)數(shù)與定時(shí)范圍:計(jì)數(shù)與定時(shí)范圍: 計(jì)數(shù)器的計(jì)數(shù)值范圍是:計(jì)數(shù)器的計(jì)數(shù)值范圍是:1 1256256(2 28 8) 當(dāng)為計(jì)數(shù)器工作方式時(shí):當(dāng)為計(jì)數(shù)器工作方式時(shí): 計(jì)數(shù)器的初值范圍為:計(jì)數(shù)器的初值范圍為:0 02 28 8-1-1; 當(dāng)為定時(shí)工作方式時(shí):當(dāng)為定時(shí)工作方式時(shí):定時(shí)時(shí)間定時(shí)時(shí)間= =(2 28 8- -計(jì)數(shù)初值)計(jì)數(shù)初值)定時(shí)周期定時(shí)周期
59、 若晶振頻率為若晶振頻率為12MHz12MHz,其定時(shí)周期,其定時(shí)周期1s1s: 則最短定時(shí)時(shí)間為:則最短定時(shí)時(shí)間為: Tmin=Tmin=28-28-(2(28 8-1) -1) 2s =2(s)2s =2(s) 最長(zhǎng)定時(shí)時(shí)間為:最長(zhǎng)定時(shí)時(shí)間為: Tmax=(2Tmax=(28 8-0) -0) 2s =512(s)2s =512(s)4 4方式方式3 3:四、應(yīng)用舉例四、應(yīng)用舉例 使用時(shí)應(yīng)重點(diǎn)考慮下面的問(wèn)題:使用時(shí)應(yīng)重點(diǎn)考慮下面的問(wèn)題:結(jié)構(gòu)、有關(guān)結(jié)構(gòu)、有關(guān)的寄存器、的寄存器、 工作方式工作方式(重點(diǎn)是方式(重點(diǎn)是方式1 1、方式、方式2 2)、)、 初始化初始化(工作方式、計(jì)數(shù)初值、中斷(
60、工作方式、計(jì)數(shù)初值、中斷管理、啟動(dòng)定時(shí)器管理、啟動(dòng)定時(shí)器/ /計(jì)數(shù)器)計(jì)數(shù)器) 計(jì)數(shù)初值的計(jì)算:計(jì)數(shù)初值的計(jì)算: 方式方式1 1: 1616位計(jì)數(shù)器的最大計(jì)數(shù)值為位計(jì)數(shù)器的最大計(jì)數(shù)值為2 21616=65536=65536; 方式方式2 2: 8 8位計(jì)數(shù)器的最大計(jì)數(shù)值為位計(jì)數(shù)器的最大計(jì)數(shù)值為2 28 8=256=256。 例例1 1 設(shè)系統(tǒng)時(shí)鐘頻率為設(shè)系統(tǒng)時(shí)鐘頻率為12MHz12MHz,用定時(shí),用定時(shí)器器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0編程實(shí)現(xiàn)從編程實(shí)現(xiàn)從P1.0P1.0輸出周期輸出周期為為500s500s的方波。的方波。 (中斷、查詢)(中斷、查詢) (10ms 10ms 可以采用方式可以采用方
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲服務(wù)外包保密及競(jìng)業(yè)限制合同書(shū)
- 梁體移位牽引校正技術(shù)專題
- 腫瘤患者常見(jiàn)癥狀的護(hù)理
- 知識(shí)經(jīng)驗(yàn)萃取方法體系構(gòu)建
- 腫瘤年會(huì)病歷分享
- 糖尿病的護(hù)理診斷
- 體育場(chǎng)館服務(wù)禮儀培訓(xùn)
- 中小學(xué)生禮儀培訓(xùn)方案
- 機(jī)修鉗工職業(yè)鑒定培訓(xùn)教材
- 我是安全培訓(xùn)
- 2024屆安徽省合肥市一六八中學(xué)高一數(shù)學(xué)第二學(xué)期期末聯(lián)考模擬試題含解析
- 孕產(chǎn)婦健康管理培訓(xùn)課件
- 高校師德師風(fēng)專題培訓(xùn)課件
- 制造業(yè)中員工的倉(cāng)庫(kù)管理培訓(xùn)
- 砼回彈強(qiáng)度自動(dòng)計(jì)算表
- 果汁飲料加工廠可行性研究方案
- 2024年腫瘤內(nèi)科護(hù)理理論考試試題
- 醫(yī)務(wù)人員手衛(wèi)生規(guī)范(國(guó)家)
- 主題:現(xiàn)代戰(zhàn)爭(zhēng)與軍事科技課件
- 上海華東師范大學(xué)附屬東昌中學(xué)南校重點(diǎn)中學(xué)初一語(yǔ)文自主招生試卷模擬試題(5套帶答案)
- 化工企業(yè)適用-法律法規(guī)文件清單
評(píng)論
0/150
提交評(píng)論