微機(jī)原理及單片機(jī)技術(shù)-復(fù)習(xí)_第1頁
微機(jī)原理及單片機(jī)技術(shù)-復(fù)習(xí)_第2頁
微機(jī)原理及單片機(jī)技術(shù)-復(fù)習(xí)_第3頁
微機(jī)原理及單片機(jī)技術(shù)-復(fù)習(xí)_第4頁
微機(jī)原理及單片機(jī)技術(shù)-復(fù)習(xí)_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、微機(jī)原理與單片機(jī)技術(shù)復(fù)習(xí)第1章 概述 將CPU、RAM、ROM、定時(shí)器計(jì)數(shù)器以及輸入輸出接口電路等主要計(jì)算機(jī)部件集成在一塊集成電路芯片上。這樣所組成的芯片級(jí)的微型計(jì)算機(jī)稱為單片微型計(jì)算機(jī)(Single Chip Microcomputer),直譯為單片微機(jī)或單片機(jī)。 微型計(jì)算機(jī)是把微處理器、存儲(chǔ)器、I/O接口、定時(shí)器等不同的芯片組成在一塊底板上(主板),然后配上機(jī)箱、外設(shè)等。字長 計(jì)算機(jī)所能處理的二進(jìn)制位數(shù)?;咀珠L一般指參加一次運(yùn)算的操作位數(shù) 在計(jì)算機(jī)中每個(gè)存儲(chǔ)單元存放二進(jìn)制數(shù)的位數(shù)一般情況下和它的算術(shù)運(yùn)算單元的位數(shù)是相同的主頻 計(jì)算機(jī)中的主時(shí)鐘頻率 CPU的主頻=外頻倍頻系數(shù)運(yùn)算速度 計(jì)算

2、機(jī)每秒執(zhí)行指令的條數(shù)內(nèi)存容量 計(jì)算機(jī)存儲(chǔ)器最多能夠存儲(chǔ)的二進(jìn)制數(shù)據(jù)的信息量第2章 計(jì)算機(jī)基礎(chǔ)知識(shí)數(shù)制:十進(jìn)制D、二進(jìn)制B、十六進(jìn)制H、八進(jìn)制O數(shù)制之間的轉(zhuǎn)換有符號(hào)數(shù)的表示方法:原碼、反碼、補(bǔ)碼二進(jìn)制編碼:壓縮BCD碼、非壓縮BCD碼計(jì)算機(jī)的基本組成電路:觸發(fā)器、寄存器、移位寄存器、計(jì)數(shù)器、三態(tài)門計(jì)數(shù)器是由觸發(fā)器構(gòu)成的半導(dǎo)體存儲(chǔ)器的分類:只讀存儲(chǔ)器:ROM、PROM、EPROM、EEPROM、Flash ROM隨機(jī)存儲(chǔ)器:靜態(tài)RAM、動(dòng)態(tài)RAM存儲(chǔ)單元位:最小的數(shù)據(jù)單元,是一個(gè)二進(jìn)制位字節(jié):8個(gè)二進(jìn)制位,是最基本的計(jì)量單位字存儲(chǔ)單元和存儲(chǔ)地址 存儲(chǔ)器一般由地址譯碼器、存儲(chǔ)陣列、輸入/輸出緩沖器和

3、讀/寫控制電路等組成第3章 微型計(jì)算機(jī)基本工作原理指令系統(tǒng)程序設(shè)計(jì)語言:機(jī)器語言、匯編語言、高級(jí)語言機(jī)器語言是計(jì)算機(jī)能夠直接識(shí)別、執(zhí)行的唯一語言匯編語言源程序機(jī)器語言 匯編 反匯編時(shí)序時(shí)鐘周期單片機(jī):狀態(tài)、機(jī)器周期、指令周期8086:總線周期CPU主要由運(yùn)算器和控制器兩大部分組成??刂破鞲鶕?jù)指令碼產(chǎn)生控制信號(hào),使運(yùn)算器、存儲(chǔ)器、I/O端口之間能自動(dòng)協(xié)調(diào)地工作;運(yùn)算器用于進(jìn)行算術(shù)、邏輯運(yùn)算及位操作處理等??刂破饔芍噶畈考r(shí)序部件及操作控制部件組成。運(yùn)算器包括算術(shù)/邏輯部件、累加器、暫存器、程序狀態(tài)字寄存器、BCD碼運(yùn)算調(diào)整電路及位處理邏輯電路等接口電路的功能:信號(hào)形式變換、電平變換、數(shù)據(jù)格式變

4、換、鎖存與緩沖等I/O端口的編址:統(tǒng)一、獨(dú)立接口電路的基本組成:P40圖3.4I/O接口的分類:傳輸數(shù)據(jù)的方式:串行、并行傳輸控制方式:程序控制、中斷、DMA雙方數(shù)據(jù)收發(fā)的配合方式:異步、同步單工、半雙工、全雙工第4 章 計(jì)算機(jī)的中斷中斷的概念中斷源中斷嵌套優(yōu)先級(jí)中斷系統(tǒng)的功能中斷響應(yīng)的條件中斷處理的過程第5章 單片機(jī)結(jié)構(gòu)及原理 MCS-51系列單片機(jī)是在一塊芯片中集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多功能的I/O線等一臺(tái)計(jì)算機(jī)所需要的基本功能部件。組成部分:中央處理器、數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器、定時(shí)/計(jì)數(shù)器、并行I/O接口、串行接口、時(shí)鐘電路、中斷系統(tǒng)主要管腳:XTAL1與XTAL2

5、、RST、ALE、PSEN、EAMCS-51的存儲(chǔ)器機(jī)構(gòu)與常見的微型計(jì)算機(jī)的配置方式不同,它把程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開,各自有自己的尋址系統(tǒng)、控制信號(hào)和功能。程序存儲(chǔ)器用來存放程序和始終要保留的常數(shù)。數(shù)據(jù)存儲(chǔ)器通常用來存放程序運(yùn)行中所需要的常數(shù)或變量。從物理地址空間看,MCS-51由四個(gè)存儲(chǔ)器地址空間,即片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器以及片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。 程序存儲(chǔ)器用來存放編制好的始終保留的固定程序和表格常數(shù)。程序存儲(chǔ)器以程序計(jì)數(shù)器PC作地址指針,通過16位地址總線,可尋址的地址空間為64K字節(jié)。在8051片內(nèi),含有4K字節(jié)ROM/EPROM程序存儲(chǔ)器,即內(nèi)部程序存儲(chǔ)器,而在

6、8031片內(nèi),則無內(nèi)部程序存儲(chǔ)器,需外部擴(kuò)展EPROM。MCS-51單片機(jī)中,64K字節(jié)程序存儲(chǔ)器的地址空間是統(tǒng)一的。對(duì)于有內(nèi)部程序存儲(chǔ)器,在正常運(yùn)行時(shí),應(yīng)把/EA引腳接高電平,使程序從內(nèi)部ROM開始執(zhí)行。當(dāng)PC值超出內(nèi)部容量時(shí),會(huì)自動(dòng)轉(zhuǎn)向外部程序存儲(chǔ)空間。因此外部程序存儲(chǔ)器地址空間為1000H 0FFFFH。訪問程序存儲(chǔ)器用的指令是MOVC命令。MCS-51單片機(jī)復(fù)位后程序計(jì)數(shù)器PC的內(nèi)容為0000H,因此系統(tǒng)從0000H單元開始取指令,并執(zhí)行程序,它是系統(tǒng)執(zhí)行程序的起始地址。通常在該單元中存放一條跳轉(zhuǎn)指令,而用戶程序從跳轉(zhuǎn)到的地址開始存放。 MCS-51單片機(jī)的數(shù)據(jù)存儲(chǔ)器無論在物理上或邏輯

7、上都分為兩個(gè)地址空間,一個(gè)為內(nèi)部數(shù)據(jù)存儲(chǔ)器,訪問內(nèi)部數(shù)據(jù)存儲(chǔ)器用MOV命令;另一個(gè)為外部數(shù)據(jù)存儲(chǔ)器,訪問外部數(shù)據(jù)存儲(chǔ)器用MOVX指令。內(nèi)部數(shù)據(jù)存儲(chǔ)器是最靈活的地址空間,它分成物理上獨(dú)立的其性質(zhì)不同的幾個(gè)區(qū):地址范圍功能00H7FH128字節(jié)的RAM區(qū)80H0FFH高128字節(jié)的RAM區(qū) (僅在8052、8032單片機(jī)中有這一區(qū))地址是重疊的128字節(jié)的專用寄存器區(qū), 又稱特殊功能寄存器區(qū)(SFR)內(nèi)部RAM區(qū)中部不同的地址區(qū)域功能00H1FH共32個(gè)單元是四個(gè)通用工作寄存器區(qū),每一個(gè)區(qū)有8個(gè)工作寄存器,編號(hào)為R0R7。當(dāng)前程序使用的工作寄存器區(qū)是由程序狀態(tài)字PSW中的D4、D3位來指示的,PS

8、W的狀態(tài)和工作寄存器區(qū)的對(duì)用關(guān)系在圖2-9中。 內(nèi)部RAM的20H2FH是位地址區(qū)域,這16個(gè)單元的每一位都有一個(gè)位地址,位地址范圍為00H7FH。同樣,位尋址區(qū)的RAM單元也可以作一般的數(shù)據(jù)緩沖器使用。在一個(gè)實(shí)際的程序中,往往需要一個(gè)后進(jìn)先出的RAM區(qū),以保持CPU的現(xiàn)場,這種后進(jìn)先出的緩沖器區(qū)稱為堆棧。MCS-51的堆棧原則上可以設(shè)置在內(nèi)部RAM的任何區(qū)域內(nèi),但一般設(shè)在30H70H的范圍內(nèi)。 數(shù)據(jù)緩沖區(qū)SP的初值為07H累加器ACC累加器是一個(gè)最常用的專用寄存器。MCS-51單片機(jī)指令系統(tǒng)中大部分操作均需要它的參與,這既是MC S-51系列單片機(jī)的特點(diǎn),也是它的缺點(diǎn)。由于大部分操作,特別是

9、單片機(jī)與外部通信時(shí)必須通過累加器ACC,因此影響了單片機(jī)的執(zhí)行效率。指令系統(tǒng)中用A作為累加器的助記符,累加器ACC可以按位尋址,各位的助記符為ACC.7、ACC.6、ACC.0。輔助寄存器B輔助寄存器B的功能是幫助累加器ACC完成乘法和除法運(yùn)算。在乘法指令中,兩個(gè)操作數(shù)存放在A和B中,其結(jié)果也存放在A和B中,低字節(jié)放在A中,高字節(jié)放在B中。在除法指令中,A用于存放被除數(shù)和商,B用于存放除數(shù)和余數(shù)。在其他指令中,B可以作為RAM的一個(gè)單元來使用。 程序狀態(tài)字PSW(標(biāo)志寄存器FR)程序狀態(tài)字以一個(gè)8位寄存器,它包含了程序狀態(tài)信息。此寄存器的各位的含義如下:PSW.7PSW.6PSW.5PSW.4

10、PSW.3PSW.2PSW.1PSW.0CYACF0RS1RS0OV-P棧指針棧指針SP是一個(gè)8位專用寄存器。它指示出堆棧頂部在內(nèi)部RAM中的位置。系統(tǒng)復(fù)位后,SP初始化為07H,使得堆棧事實(shí)上由08H單元開始。考慮到08H 1FH單元分屬于工作寄存器區(qū)13,若程序設(shè)計(jì)中要用到這些區(qū),則最好把SP值設(shè)置為1FH或更大的值。SP的初始值越小,堆棧深度就可以越深。堆棧指針的值可以由軟件改變,因此堆棧在內(nèi)部RAM中的位置比較靈活。除用軟件直接改變SP值外,在執(zhí)行PUSH,POP指令,各種子程序調(diào)用,中斷響應(yīng),子程序返回和中斷返回等指令時(shí),SP值將自動(dòng)增量或減量。數(shù)據(jù)指針數(shù)據(jù)指針DPTR是一個(gè)16位專

11、用寄存器,其高位字節(jié)寄存器用DPH表示,低位字節(jié)寄存器用DPL表示。DPTR既可以作為一個(gè)16位寄存器來使用,也可以作為兩個(gè)獨(dú)立的8位寄存器DPH和DPL來使用。DPTR主要用來存放16位地址,當(dāng)對(duì)64KB外部數(shù)據(jù)存儲(chǔ)器空間尋址時(shí),可作為間址寄存器用。端口P0P3專用寄存器P0,P1,P2,P3分別是I/O端口P0P3的鎖存器。P0P3作為專用寄存器還可以用直接尋址方式參與其他操作指令。 串行數(shù)據(jù)緩沖器串行數(shù)據(jù)緩沖器SBUF用于存放欲發(fā)送或已接收的數(shù)據(jù),它實(shí)際上由兩個(gè)獨(dú)立的寄存器組成,一個(gè)是發(fā)送緩沖器,另一個(gè)是接收緩沖器。當(dāng)要發(fā)送的數(shù)據(jù)傳送到SBUF時(shí),進(jìn)的是發(fā)送緩沖器。當(dāng)要從SBUF讀數(shù)據(jù)時(shí)

12、,則取自接收緩沖器,取走的是剛接到的數(shù)據(jù)。 定時(shí)/計(jì)數(shù)器MCS-51系列中由兩個(gè)16位定時(shí)/計(jì)數(shù)器T0和T1。他們各有兩個(gè)獨(dú)立的8位寄存器組成,共有四個(gè)獨(dú)立的寄存器:TH0,TL0,TH1,TL1??梢詫?duì)這四個(gè)寄存器直接尋址,但不能把T0,T1當(dāng)作一個(gè)16位寄存器來尋址。MCS-51單片機(jī)設(shè)有四個(gè)8位雙向I/O端口(P0、P1、P2、P3),每一條I/O線都能獨(dú)立的作為輸入或輸出。P0口為三態(tài)雙向口,能帶8個(gè)LSTTL電路。P1、P2、P3口為準(zhǔn)雙向口,負(fù)載能力為4個(gè)LSTTL電路。 (在作為輸入線時(shí),口鎖存器必須先寫入“1”,故稱為準(zhǔn)雙向口)一、端口功能P0口 P0口可以作為輸入輸出口,但在

13、實(shí)際應(yīng)用中通常作為地址/數(shù)據(jù)總線口,即低8位地址/數(shù)據(jù)線分時(shí)使用P0口,低8位地址由ALE信號(hào)的負(fù)跳變使它鎖存到外部地址鎖存器中,而高8位地址由P2口輸出。P1口 P1口每一位都能作為可編程的輸入輸出線。P2口 P2口可以作為輸入口或輸出口使用,外界I/O設(shè)備時(shí),又作為擴(kuò)展系統(tǒng)的地址總線,輸出高8位地址,與P0口一起組成16位地址總線。對(duì)于8031單片機(jī)來說,P2口一般只作為地址總線使用,而不作為I/O線直接與外設(shè)相連接。P3口 P3口為雙功能口。作為第一功能使用時(shí),其功能同P1口。當(dāng)作為第二功能使用時(shí),功能定義如下表。端 口 引 腳第 二 功 能P3.0RXD串行輸入口P3.1TXD串行輸出

14、口P3.2/INT0外部中斷0輸入口P3.3/INT1外部中斷1輸入口P3.4T0定時(shí)/計(jì)數(shù)器0外部輸入口P3.5T1定時(shí)/計(jì)數(shù)器1外部輸入口P3.6/WR外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)輸出P3.7/RD外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸出4個(gè)I/O端口的主要異同點(diǎn)同:(1)8位雙向口,都可作為雙向通用I/O端口;(2)都包括鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器;(3) 讀引腳前先寫“1”;(4)可按字節(jié)或位訪問。異:P0真正雙向口,其余準(zhǔn)雙向;P0驅(qū)動(dòng)能力最強(qiáng);P0漏極開路,作為I/O需接上拉電阻;P3口均有第二功能(每位的功能是什么)。根據(jù)總線所在地位分為:內(nèi)部總線和外部總線。根據(jù)總線功能分為:數(shù)據(jù)總線、地址

15、總線、控制總線。在訪問外部存儲(chǔ)器時(shí),P2口輸出高8位地址,P0口輸出低8位地址,由ALE信號(hào)將P0口上的低8位鎖存到外部地址鎖存器中,從而為P0口接收數(shù)據(jù)做準(zhǔn)備。在訪問外部程序存儲(chǔ)器時(shí),/PSEN信號(hào)有效。在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),由P3口自動(dòng)產(chǎn)生讀/寫信號(hào),通過P0口對(duì)外部數(shù)據(jù)存儲(chǔ)器單元進(jìn)行讀/寫操作。圖2-6(a)為加電自動(dòng)復(fù)位電路。加電瞬間,RST端的電位與VCC相同,隨著RC電路充電電流的減小,RST端的電位逐漸下降。只要RST端保持10毫秒以上的高電平就能使MCS-51單片機(jī)有效地復(fù)位。復(fù)位電路中的RC參數(shù)通常由試驗(yàn)調(diào)整。當(dāng)振蕩頻率選用6 MHz時(shí),C選22 uF,R選1 k,便能可靠

16、地實(shí)現(xiàn)加電自動(dòng)復(fù)位。若采用RC電路接斯密特電路的輸入端,斯密特電路輸出端接MCS-51和外圍電路的復(fù)位端,能使系統(tǒng)可靠的同步復(fù)位。 在RST輸入端出現(xiàn)高點(diǎn)平時(shí)實(shí)現(xiàn)復(fù)位和初始化。在振蕩器運(yùn)行的情況下,要實(shí)現(xiàn)復(fù)位操作,必須使RST引腳至少保持兩個(gè)機(jī)器周期(24個(gè)振蕩周期)的高電平。CPU在第二個(gè)機(jī)器周期內(nèi)執(zhí)行內(nèi)部復(fù)位操作,以后每一個(gè)機(jī)器周期復(fù)位一次,直至RST端電平變低。復(fù)位期間不產(chǎn)生ALE及/PSEN信號(hào)。內(nèi)部復(fù)位操作時(shí)堆棧指示器SP為07H,各端口都為1(P0P3口的內(nèi)容均為0FFH),特殊功能寄存器都復(fù)位為0,但不影響RAM的狀態(tài)。當(dāng)RST引腳返回低電平以后,CPU從0000地址開始執(zhí)行程序

17、。 寄存器內(nèi)容PC0000H程序計(jì)數(shù)器ACC00H寄存器B00H輔助寄存器PSW00H程序狀態(tài)字SP07H堆棧指針DPTR0000H數(shù)據(jù)指針P0P30FFH并行口03IP00000中斷優(yōu)先級(jí)控制器IE000000H允許中斷控制TMOD00H定時(shí)/計(jì)數(shù)器方式控制TCON00H定時(shí)/計(jì)數(shù)器控制TH0,TL000H定時(shí)/計(jì)數(shù)器0TH1,TL100H定時(shí)/計(jì)數(shù)器1SCON00H串行控制器SBUF不定串行數(shù)據(jù)緩沖器PCON0電源控制(1)振蕩周期 (2)時(shí)鐘周期 (3)機(jī)器周期(4)指令周期 振蕩周期是為單片機(jī)提供定時(shí)信號(hào)的振蕩源的周期,其振蕩頻率記為 f OSC 。又稱為狀態(tài)周期或狀態(tài)時(shí)間S,是振蕩周

18、期的2倍,它分為P1節(jié)拍和P2節(jié)拍,P1節(jié)拍通常完成算術(shù)邏輯操作,而內(nèi)部寄存器間傳送通常在P2節(jié)拍完成。一個(gè)機(jī)器周期由6個(gè)狀態(tài)組成,若把一條指令的執(zhí)行過程分成幾個(gè)基本操作,則完成一個(gè)基本操作所需的時(shí)間稱為機(jī)器周期。 指令周期指執(zhí)行一條指令所采用的全部時(shí)間,通常由14個(gè)機(jī)器周期組成。第6章 指令系統(tǒng)計(jì)算機(jī)能直接識(shí)別的只能是0和1編碼組成的指令,這種編碼稱為機(jī)器碼,或稱為機(jī)器語言指令,由機(jī)器碼編制的計(jì)算機(jī)能識(shí)別和執(zhí)行的程序稱為目標(biāo)程序。用二進(jìn)制編碼表示的機(jī)器語言指令由于閱讀困難,寫起來費(fèi)力,且難以記憶,因此在微機(jī)控制系統(tǒng)中采用匯編語言指令來編寫程序。匯編語言就是用助記符和專門的語言規(guī)則表示指令的功

19、能和特征。本門課程的程序均采用匯編語言來描述其指令功能。一條匯編語言指令中最多包含四個(gè)區(qū)段,如下所示: 標(biāo)號(hào):操作碼操作數(shù);注釋標(biāo)號(hào)區(qū)段是由用戶定義的符號(hào)組成,必須用英文字母開始。標(biāo)號(hào)區(qū)段可有可無。若一條指令中有標(biāo)號(hào)區(qū)段,標(biāo)號(hào)代表該指令第一個(gè)字節(jié)所存放的存儲(chǔ)器單元的地址,故標(biāo)號(hào)又稱為符號(hào)地址,在匯編時(shí),把該地址賦值給標(biāo)號(hào)。操作碼區(qū)段是指令的功能部分,不能缺省。它是便于記憶的助記符。例如:MOV是數(shù)據(jù)傳送的助記符,ADD是加的助記符。操作數(shù)區(qū)段是指令要操作的數(shù)據(jù)信息。根據(jù)指令的不同功能,操作數(shù)可以由三個(gè)、兩個(gè)、一個(gè)或沒有操作數(shù)。注釋區(qū)段可有可無。加入注釋的目的是為了便于閱讀。程序設(shè)計(jì)者對(duì)指令或程

20、序段作簡要的功能說明,在閱讀程序,尤其是在調(diào)試程序時(shí)將會(huì)帶來很多方便。在有操作數(shù)的指令中,參與操作的數(shù)據(jù)可能就在指令中,或在寄存器中,也可能在存儲(chǔ)器中,或在I/O接口中。為正確地執(zhí)行操作,對(duì)這些寄存器、存儲(chǔ)器、和I/O接口要進(jìn)行編號(hào)(也稱作地址號(hào))。而在指令中對(duì)這些設(shè)備內(nèi)的數(shù)據(jù)要進(jìn)行操作就要指出地址。指令中所規(guī)定的尋找操作地址的方式稱為尋址方式。MCS-51指令系統(tǒng)的尋址方式有下列幾種:立即尋址直接尋址寄存器尋址寄存器間接尋址變址尋址相對(duì)尋址 位尋址立即尋址方式是操作數(shù)包含在指令字節(jié)中,指令操作碼后面字節(jié)的內(nèi)容就是操作數(shù)本身,其數(shù)值由程序員在編制程序是指定,以字節(jié)的形式存放在程序存儲(chǔ)器中。 直

21、接尋址方式是在指令中含有操作數(shù)的直接地址,該地址指出了參與操作的數(shù)據(jù)所在的字節(jié)地址或位地址。寄存器尋址方式是由指令指出某一個(gè)寄存器中的內(nèi)容作為操作數(shù),這種尋址方式稱為寄存器尋址。在這種尋址方式中,指令的操作碼中包含了參加操作的寄存器的編號(hào)。寄存器間接尋址方式是由指令指出某一個(gè)寄存器的內(nèi)容作為操作數(shù)的地址,這種尋址方式成為寄存器間接尋址。這里要注意,在寄存器間接尋址方式中,存放在寄存器中的內(nèi)容不是操作數(shù),而是操作數(shù)所在的存儲(chǔ)器單元地址。寄存器間接尋址只能使用寄存器R0和R1作為指針地址,來尋址內(nèi)部RAM中的數(shù)據(jù)。寄存器間接尋址也可以用于訪問外部RAM,但不如用DPTR方便。寄存器間接尋址用符號(hào)“

22、”表示。變址尋址方式。這種尋址方式用于訪問程序存儲(chǔ)器中的數(shù)據(jù)表格,它把基址寄存器DPTR或PC和變址寄存器A的內(nèi)容作為無符號(hào)數(shù)相加形成16位地址,訪問程序存儲(chǔ)器中的數(shù)據(jù)表格。相對(duì)尋址方式。這類方式是以PC的內(nèi)容作為基址地址,加上指令中給定的偏移量所得的結(jié)果作為轉(zhuǎn)移地址,它只適用于雙字節(jié)轉(zhuǎn)移指令。偏移量是帶符號(hào)數(shù),在+127-128范圍內(nèi),用2的補(bǔ)碼表示。1 指令格式:標(biāo)號(hào):操作碼 操作數(shù);注釋2 數(shù)據(jù)傳送類指令 3 算術(shù)運(yùn)算類指令 4 邏輯操作類指令 5 位操作類指令 6 控制轉(zhuǎn)移類指令 :注意各轉(zhuǎn)移指令的范圍第7章 匯編語言程序設(shè)計(jì) 1 簡單程序設(shè)計(jì) 2 分支程序 3 循環(huán)程序設(shè)計(jì) 4 散轉(zhuǎn)

23、程序設(shè)計(jì) 5 子程序和參數(shù)傳遞方法 6 查表程序設(shè)計(jì) 7 數(shù)制轉(zhuǎn)換類程序 8 輸入/輸出類程序 第8章 主要功能單元中斷系統(tǒng)MCS-51系列單片機(jī)允許有5個(gè)中斷源,提供兩個(gè)中斷優(yōu)先級(jí),能實(shí)現(xiàn)二級(jí)中斷嵌套。每一個(gè)中斷源的優(yōu)先級(jí)的高低都可以通過編程來設(shè)定。中斷請(qǐng)求源 MCS-51中斷系統(tǒng)的5個(gè)中斷源分別是:/INT0 來自P3.2引腳上的外部中斷請(qǐng)求,外中斷0/INT1 來自P3.3引腳上的外部中斷請(qǐng)求,外中斷1T0 片內(nèi)定時(shí)/計(jì)數(shù)器0溢出中斷請(qǐng)求T1 片內(nèi)定時(shí)/計(jì)數(shù)器1溢出中斷請(qǐng)求串行口 片內(nèi)串行口完成一幀發(fā)送或接收中斷請(qǐng)求源TI或RI定時(shí)器控制寄存器TCON TCON時(shí)定時(shí)/計(jì)數(shù)器0和1的控制

24、寄存器,它同時(shí)也用來鎖存T0、T1的溢出中斷請(qǐng)求源和外部中斷請(qǐng)求源。TCON寄存器中與中斷有關(guān)位如下圖所示。 D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0D1D0SCONSM0SM1SM2RENTB8RB8TIRI串行口控制寄存器SCON 低兩位鎖存串行口的接收中斷和發(fā)送中斷標(biāo)志。5個(gè)中斷標(biāo)志的復(fù)位,除了串行口的兩個(gè)中斷的復(fù)位是由軟件來控制的,其他中斷源的復(fù)位(外部中斷的邊沿觸發(fā)方式)都是由硬件自動(dòng)完成的,外部中斷的電平觸發(fā)方式軟硬件都不能清除。這5個(gè)中斷標(biāo)志的置位,都是由硬件自動(dòng)完成的。這是中斷系統(tǒng)中要注意的地方。 D7D6D5D4D3D2D1D0

25、IEEA-ESET1EX1ET0EX0中斷允許和禁止 在MCS-51中斷系統(tǒng)中,中斷允許或禁止時(shí)由片內(nèi)的中斷允許寄存器IE控制,IE中各位的功能如下:中斷優(yōu)先級(jí)控制 中斷優(yōu)先級(jí)是由片內(nèi)的中斷優(yōu)先級(jí)寄存器IP控制的。IP寄存器中各位的功能如下:D7D6D5D4D3D2D1D0IP-PSPT1PX1PT0PX0MCS-51中斷系統(tǒng)具有兩級(jí)優(yōu)先級(jí),它們遵循下列兩條基本規(guī)則:(1)低優(yōu)先級(jí)中斷源可被高優(yōu)先級(jí)中斷源所中斷,而高優(yōu)先級(jí)中斷源不能被任何中斷源所中斷;(2)一種中斷源,無論是高優(yōu)先級(jí)還是低優(yōu)先級(jí),一旦得到相應(yīng),與它同級(jí)的中斷源不能再中斷它。中斷源入口地址同級(jí)內(nèi)的中斷優(yōu)先級(jí)外部中斷00003H高

26、定時(shí)/計(jì)數(shù)器0溢出中斷000BH外部中斷10013H定時(shí)/計(jì)數(shù)器1溢出中斷001BH串行口中斷0023H低中斷優(yōu)先級(jí)結(jié)構(gòu) CPU在每個(gè)機(jī)器周期的S5P2時(shí)刻采樣中斷標(biāo)志,而在下一個(gè)機(jī)器周期對(duì)采樣到的中斷進(jìn)行查詢。如果在前一個(gè)機(jī)器周期的S5P2有中斷標(biāo)志,則在查詢周期內(nèi)便會(huì)查詢到并按優(yōu)先級(jí)高低進(jìn)行中斷處理,中斷系統(tǒng)將控制程序轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。下類三個(gè)條件中的任何一個(gè)都能封鎖CPU對(duì)中斷的相應(yīng):(1)CPU正在處理同級(jí)的或高一級(jí)的中斷;(2)現(xiàn)行的機(jī)器周期不是當(dāng)前所執(zhí)行指令的最后一個(gè)機(jī)器周期;(3)當(dāng)前正在執(zhí)行的指令是中斷返回指令或?qū)E或IP寄存器進(jìn)行讀/寫的指令。中斷響應(yīng)過程 如果產(chǎn)生了

27、一個(gè)中斷請(qǐng)求,而且滿足響應(yīng)的條件,CPU響應(yīng)中斷,由硬件生成一條長調(diào)用指令轉(zhuǎn)到相應(yīng)的服務(wù)程序入口。這條指令是雙機(jī)器周期指令。因此,從中斷請(qǐng)求有效到執(zhí)行中斷服務(wù)程序的第一條指令的時(shí)間間隔至少需要三個(gè)完整的機(jī)器周期。如果中斷請(qǐng)求被前面所述的三個(gè)條件之一所封鎖,將需要更長的響應(yīng)時(shí)間。若一個(gè)同級(jí)的或高優(yōu)先級(jí)的中斷已經(jīng)在進(jìn)行,則延長的等待時(shí)間取決于正在處理中斷服務(wù)程序的長度;如果正在執(zhí)行的一條指令還沒進(jìn)行到最后一個(gè)周期,則所延長的等待時(shí)間不會(huì)超過三個(gè)機(jī)器周期,這是因?yàn)镸CS-51指令系統(tǒng)中最長的指令也只有四個(gè)機(jī)器周期。因此,在系統(tǒng)中只有一個(gè)中斷源的情況下,響應(yīng)時(shí)間總是在三個(gè)機(jī)器周期到八個(gè)機(jī)器周期之間。講

28、響應(yīng)時(shí)間的目的是在某些要求實(shí)時(shí)性很強(qiáng)的場合下應(yīng)用單片機(jī)系統(tǒng),而且還是用中斷方式時(shí),就要求設(shè)計(jì)者考慮到響應(yīng)時(shí)間的問題。中斷響應(yīng)時(shí)間 外中斷源的擴(kuò)充:利用定時(shí)/計(jì)數(shù)器中斷程序的設(shè)計(jì)方法將所有的功能合理分配到主程序和中斷服務(wù)程序中,必要時(shí)適當(dāng)設(shè)置標(biāo)志位主程序:對(duì)中斷的初始化中斷服務(wù)程序:注意保護(hù)現(xiàn)場定時(shí)/計(jì)數(shù)器加法計(jì)數(shù)器是計(jì)滿溢出時(shí)才申請(qǐng)中斷, 所以在給計(jì)數(shù)器賦初值時(shí), 不能直接輸入所需的計(jì)數(shù)值, 而應(yīng)輸入的是計(jì)數(shù)器計(jì)數(shù)的最大值與這一計(jì)數(shù)值的差值, 設(shè)最大值為 M, 計(jì)數(shù)值為 N, 初值為 X, 則 X的計(jì)算方法如下: 計(jì)數(shù)狀態(tài): X=MN 定時(shí)狀態(tài): X=M定時(shí)時(shí)間/T 而 T=12晶振頻率 定時(shí)

29、器/計(jì)數(shù)器的方式寄存器TMOD 門控位GATE對(duì)定時(shí)器的控制作用:GATE=0,只受控制位TR0/1的控制;GATE=1時(shí),除控制位外,還需外部中斷引腳為高電平才能啟動(dòng)相應(yīng)的定時(shí)器 定時(shí)/計(jì)數(shù)器的工作方式 方式0:13位定時(shí)計(jì)數(shù)器 方式1:16 方式2:8位自動(dòng)重裝載定時(shí)計(jì)數(shù)器 方式3:T0 兩個(gè)8位定時(shí)計(jì)數(shù)器定時(shí)/計(jì)數(shù)器的應(yīng)用 計(jì)時(shí)/定時(shí)計(jì)數(shù)產(chǎn)生相關(guān)波形波特率發(fā)生器門控位的應(yīng)用串行口串行口控制寄存器SCON SCON用于控制和監(jiān)視串行口的工作狀態(tài), 其各位定義D1D0SCONSM0SM1SM2RENTB8RB8TIRI 特殊功能寄存器PCON中, 只有一位(最高位)SMOD與串行口的工作有關(guān)

30、, 該位是串行口波特率系數(shù)的控制位: SMOD=1 時(shí), 波特率加倍, 否則不加倍。串行口的 4 種工作模式模式0:移位寄存器模式模式1:波特率可變的 8 位異步通信模式模式2:波特率固定的 9 位異步通信模式模式3:波特率可變的 9 位異步通信模式串行口每秒鐘發(fā)送或接收的數(shù)據(jù)位數(shù)稱為波特率。 (1) 模式 0 的波特率等于單片機(jī)晶振頻率的 1/12, 即每個(gè)機(jī)器周期接收或發(fā)送一位數(shù)據(jù)。 (2) 模式 2 的波特率與電源控制器PCON的最高位SMOD的寫入值有關(guān): 即SMOD=0, 波特率為(1/64) fOSC; SMOD=1, 波特率為(1/32)fOSC。 波特率的計(jì)算 (3) 模式 1

31、 和模式 3 的波特率除了與SMOD位有關(guān)之外, 還與定時(shí)器 T1 的溢出率有關(guān)。 定時(shí)器 T1 作為波特率發(fā)生器, 常選用定時(shí)方式 2( 8 位重裝載初值方式), 并且禁止 T1 中斷。此時(shí) TH1 從初值計(jì)數(shù)到產(chǎn)生溢出, 它每秒鐘溢出的次數(shù)稱為溢出率。 于是 串行口的編程 串行口需初始化后, 才能完成數(shù)據(jù)的輸入、輸出。其初始化過程如下: (1) 按選定串行口的操作模式設(shè)定SCON的SM0、SM1兩位二進(jìn)制編碼。 (2) 對(duì)于操作模式 2 或 3, 應(yīng)根據(jù)需要在 TB8 中寫入待發(fā)送的第 9 位數(shù)據(jù)。 (3) 若選定的操作模式不是模式 0, 還需設(shè)定接收/發(fā)送的波特率。 設(shè)定SMOD的狀態(tài),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論