版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、21世紀(jì)高職高專規(guī)劃教材《單片機(jī)原理與應(yīng)用》電子教案,制 作:金龍國 陳萌中國水利水電出版社,第1章 單片機(jī)概述,第2章 MCS-51系列單片機(jī)結(jié)構(gòu),第3章 MSC-51指令系統(tǒng),第6章 存儲器與存儲器擴(kuò)展,第4章 MCS-51匯編語言程序設(shè)計,第7章 單片機(jī)接口技術(shù),第5章
2、 MCS-51定時/計數(shù)器和中斷系統(tǒng),第9章 MCS-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計,單片機(jī)原理及應(yīng)用,第8章 串行口通信技術(shù),第1章 單片機(jī)概述,本章主要介紹單片機(jī)的發(fā)展,基本的結(jié)構(gòu)和特點,單片機(jī)的應(yīng)用模式和領(lǐng)域,單片機(jī)的供應(yīng)狀態(tài)等。單片微型計算機(jī)就是將CPU、RAM、ROM、定時/計數(shù)器和多種
3、接口都集成到一塊集成電路芯片上的微型計算機(jī)。因此,一塊芯片就構(gòu)成了一臺計算機(jī)。它已成為工業(yè)控制領(lǐng)域、智能儀器儀表、尖端武器、日常生活中最廣泛使用的計算機(jī)。,1.1 單片機(jī)的發(fā)展歷史,我們可以把單片機(jī)的發(fā)展歷史劃分為四階段:第一階段(1976~1978年):低性能單片機(jī)的探索階段。以Intel公司的MCS-48為代表,采用了單片結(jié)構(gòu),即在一塊芯片內(nèi)含有8位CPU、定時/計數(shù)器、并行I/O口、RAM和ROM等。主要用于工業(yè)領(lǐng)域。第二階
4、段(1978~1982年):高性能單片機(jī)階段,這一類單片機(jī)帶有串行I/O口,8位數(shù)據(jù)線、16位地址線可以尋址的范圍達(dá)到64K字節(jié)、控制總線、較豐富的指令系統(tǒng)等。這類單片機(jī)的應(yīng)用范圍較廣,并在不斷的改進(jìn)和發(fā)展。第三階段(1982~1990年):16位單片機(jī)階段。16位單片機(jī)除CPU為16位外,片內(nèi)RAM和ROM容量進(jìn)一步增大,實時處理能力更強(qiáng),體現(xiàn)了微控制器的特征。例如Intel公司的MCS-96主振頻率為12M,片內(nèi)RAM為232字節(jié)
5、,ROM為8K字節(jié),中斷處理能力為8級,片內(nèi)帶有10位A/D轉(zhuǎn)換器和高速輸入/輸出部件等。第四階段(1990年~):微控制器的全面發(fā)展階段,各公司的產(chǎn)品在盡量兼容的同時,向高速、強(qiáng)運(yùn)算能力、尋址范圍大以及小型廉價方面發(fā)展。,硬件系統(tǒng)是指構(gòu)成微機(jī)系統(tǒng)的實體和裝置,通常由運(yùn)算器、控制器、存儲器、輸入接口電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。 其中,運(yùn)算器和控制器一般做在一個集成芯片上,統(tǒng)稱中央處理單元(Central
6、Processing Unit),簡稱CPU,是微機(jī)的核心部件。CPU配上存放程序和數(shù)據(jù)的存儲器、輸入/輸出(Input/Output,簡稱I/O)接口電路以及外部設(shè)備即構(gòu)成微機(jī)的硬件系統(tǒng)。,1.2 單片機(jī)的軟硬件系統(tǒng),1.2.1 單片機(jī)的硬件系統(tǒng),圖1-1 微型計算機(jī)硬件系統(tǒng)組成示意圖,下面把組成計算機(jī)的5個基本部件作簡單說明。1) 運(yùn)算器 運(yùn)算器是計算機(jī)的運(yùn)算部件,用于實現(xiàn)算術(shù)和邏輯運(yùn)算。計算機(jī)的數(shù)據(jù)運(yùn)算和
7、處理都在這里進(jìn)行。2) 控制器 控制器是計算機(jī)的指揮控制部件,它控制計算機(jī)各部分自動、協(xié)調(diào)地工作。運(yùn)算器和控制器是計算機(jī)的核心部分,常把它們合在一起稱之為中央處理器,簡稱CPU。,3) 存儲器 存儲器是計算機(jī)的記憶部件,用于存放程序和數(shù)據(jù)。存儲器又分為內(nèi)存儲器和外存儲器。實訓(xùn)中使用的EPROM2764便是存貯器。4) 輸入設(shè)備 輸入設(shè)備用于將程序和數(shù)據(jù)輸入到計算機(jī)中,如鍵盤等。5) 輸出設(shè)備
8、 輸出設(shè)備用于把計算機(jī)數(shù)據(jù)計算或加工的結(jié)果,以用戶需要的形式顯示或打印出來,如顯示器、打印機(jī)等。 通常把外存儲器、輸入設(shè)備和輸出設(shè)備合在一起稱之為計算機(jī)的外部設(shè)備,簡稱“外設(shè)”。,單片微型計算機(jī)是指集成在一個芯片上的微型計算機(jī),也就是把組成微型計算機(jī)的各種功能部件,包括CPU(Central Processing Unit)、隨機(jī)存取存儲器RAM(Random Access Memory)、只讀存儲器ROM(Read
9、-only Memory)、基本輸入/輸出(Input/Output)接口電路、定時器/計數(shù)器等部件都制作在一塊集成芯片上,構(gòu)成一個完整的微型計算機(jī),從而實現(xiàn)微型計算機(jī)的基本功能。單片機(jī)內(nèi)部結(jié)構(gòu)示意圖如圖1-2所示。,圖1-2 單片機(jī)內(nèi)部結(jié)構(gòu)示意圖,軟件系統(tǒng)是微機(jī)系統(tǒng)所使用的各種程序的總稱。人們通過它對整機(jī)進(jìn)行控制并與微機(jī)系統(tǒng)進(jìn)行信息交換,使微機(jī)按照人的意圖完成預(yù)定的任務(wù)。 軟件系統(tǒng)與硬件系統(tǒng)共同構(gòu)成完整的微機(jī)系統(tǒng),兩者輔
10、相成,缺一不可。 微型計算機(jī)系統(tǒng)組成示意圖如圖所示。,1.2.2 單片機(jī)的軟件系統(tǒng),微型計算機(jī)系統(tǒng)組成示意圖,1.3 MCS-51系列單片機(jī),盡管各類單片機(jī)很多,但無論是從世界范圍或是從全國范圍來看,使用最為廣泛的應(yīng)屬M(fèi)CS-51單片機(jī)。 MCS-51單片機(jī)系列共有十幾種芯片,如表1-1所示。,表1-1 MCS-51系列單片機(jī)分類表,MCS-51系列又分為51和52兩個子系列,并以芯片型號的最末位數(shù)字作為標(biāo)
11、志。其中,51子系列是基本型,而52子系列則屬增強(qiáng)型。52子系列功能增強(qiáng)的具體方面,從表1-1所列內(nèi)容中可以看出: (1) 片內(nèi)ROM從4 KB增加到8 KB。 (2) 片內(nèi)RAM從128 B增加到256 B。 (3) 定時/計數(shù)器從2個增加到3個。 (4) 中斷源從5個增加到6個。,1.3.1 51子系列和52子系列,MCS-51系列單片機(jī)采用兩種半導(dǎo)體工藝生產(chǎn)。一種是HMOS工藝,即高
12、速度、高密度、短溝道MOS工藝。另外一種是CHMOS工藝,即互補(bǔ)金屬氧化物的HMOS工藝。表1.1中,芯片型號中帶有字母“C”的,為CHMOS芯片,其余均為一般的HMOS芯片。 CHMOS是CMOS和HMOS的結(jié)合,除保持了HMOS高速度和高密度的特點之外,還具有CMOS低功耗的特點。在便攜式、手提式或野外作業(yè)儀器設(shè)備上,低功耗是非常有意義的,因此,在這些產(chǎn)品中必須使用CHMOS的單片機(jī)芯片。,1.3.2 單片機(jī)芯片半導(dǎo)體工
13、藝,MCS-51單片機(jī)片內(nèi)程序存儲器有三種配置形式,即掩膜ROM、EPROM和無ROM。這三種配置形式對應(yīng)三種不同的單片機(jī)芯片,它們各有特點,也各有其適用場合,在使用時應(yīng)根據(jù)需要進(jìn)行選擇。一般情況下,片內(nèi)帶掩膜型ROM適用于定型大批量應(yīng)用產(chǎn)品的生產(chǎn);片內(nèi)帶EPROM適合于研制產(chǎn)品樣機(jī);外接EPROM的方式適用于研制新產(chǎn)品。最近,Intel公司又推出片內(nèi)帶EEPROM型的單片機(jī),可以在線寫入程序。,1.3.3 片內(nèi)ROM存儲器配置形式,第
14、2章 MCS-51單片機(jī)結(jié)構(gòu),本章主要介紹MCS-51系列的8051的基本結(jié)構(gòu)、工作原理、存儲器結(jié)構(gòu)、P0、P1、P2、P3四個I/O口的基本工作原理和操作特點。單片機(jī)的各種工作方式、單片機(jī)的時序等。,2.1 MCS-51單片機(jī)的內(nèi)部組成及信號引腳,MCS-51單片機(jī)的典型芯片是8031、8051、8751。8051內(nèi)部有4KB ROM,8751內(nèi)部有4KB EPROM,8031內(nèi)部無ROM;除此之外,三者的內(nèi)部結(jié)構(gòu)及引腳完全相同。因
15、此,以8051為例,說明本系列單片機(jī)的內(nèi)部組成及信號引腳。 8051單片機(jī)的基本組成請參見圖2-1。下面介紹各部分的基本情況。,2.1.1 8051單片機(jī)的基本組成,圖2-1 MCS-51 單片機(jī)結(jié)構(gòu)框圖,1) 中央處理器(CPU) 中央處理器是單片機(jī)的核心,完成運(yùn)算和控制功能。MCS-51的CPU能處理8位二進(jìn)制數(shù)或代碼。 2) 內(nèi)部數(shù)據(jù)存儲器(內(nèi)部RAM) 8051芯片中共有256個
16、RAM單元,但其中后128單元被專用寄存器占用,能作為寄存器供用戶使用的只是前128單元,用于存放可讀寫的數(shù)據(jù)。因此通常所說的內(nèi)部數(shù)據(jù)存儲器就是指前128單元,簡稱內(nèi)部RAM。,3) 內(nèi)部程序存儲器(內(nèi)部ROM) 8051共有4KB掩膜ROM,用于存放程序、原始數(shù)據(jù)或表格,因此,稱之為程序存儲器,簡稱內(nèi)部ROM。 4) 定時/計數(shù)器 8051共有兩個16位的定時/計數(shù)器,以實現(xiàn)定時或計數(shù)功能,并以其定
17、時或計數(shù)結(jié)果對計算機(jī)進(jìn)行控制。 5) 并行I/O口 MCS-51共有4個8位的I/O口(P0、P1、P2、P3),以實現(xiàn)數(shù)據(jù)的并行輸入/輸出。,6) 串行口 MCS-51單片機(jī)有一個全雙工的串行口,以實現(xiàn)單片機(jī)和其它設(shè)備之間的串行數(shù)據(jù)傳送。該串行口功能較強(qiáng),既可作為全雙工異步通信收發(fā)器使用,也可作為同步移位器使用。 7) 中斷控制系統(tǒng) MCS-51單片機(jī)的中斷功能較強(qiáng),以滿足控
18、制應(yīng)用的需要。8051共有5個中斷源,即外中斷兩個,定時/計數(shù)中斷兩個,串行中斷一個。全部中斷分為高級和低級共兩個優(yōu)先級別。 8) 時鐘電路 MCS-51芯片的內(nèi)部有時鐘電路,但石英晶體和微調(diào)電容需外接。時鐘電路為單片機(jī)產(chǎn)生時鐘脈沖序列。系統(tǒng)允許的晶振頻率一般為6 MHz和12 MHz。,MCS-51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,引腳排列請參見圖2-2。1) 信號引腳介紹 P0.0 ~ P
19、0.7: P0口8位雙向口線。 P1.0 ~ P1.7 :P1口8位雙向口線。 P2.0 ~ P2.7 :P2口8位雙向口線。 P3.0 ~ P3.7 :P3口8位雙向口線。,2.1.2 MCS-51的信號引腳,圖2-2 MCS-51引腳圖,表2?1 P3口的第二功能表,2) 信號引腳介紹,2.2 8051的內(nèi)部存儲器,圖2- 3 片內(nèi)RAM的配置,2.2.1 內(nèi)部數(shù)據(jù)存儲器低128單元,圖
20、2?4 8051內(nèi)部RAM位地址區(qū),表 2?2 片內(nèi)RAM位尋址區(qū)的位地址,表格 2?2 特殊功能寄存器表,*:可位尋址的特殊功能寄存器,2.2.2 內(nèi)部數(shù)據(jù)存儲器高128單元,表 2?3 MCS-51專用寄存器一覽表,圖 2?5 P0口的口線邏輯電路圖,2.3.1 P0口,2.3 并行輸入/輸出口電路結(jié)構(gòu),2.3.2 P1口,圖 2?6 P1口的口線邏輯電路圖,2.3.3 P2口,圖 2?7 P2口的口線邏輯電
21、路圖,2.3.4 P3口,圖 2?8 P3口的口線邏輯電路圖,2.4.1 時鐘電路與時序,基本定時時序關(guān)系,2.4 MCS-51單片機(jī)的時序,1.時鐘信號的產(chǎn)生,圖2-9 時鐘振蕩電路和圖2-10 外部時鐘源接法,(1)節(jié)拍與狀態(tài),圖 2?11 MCS-51的取指/執(zhí)行時序,(2)機(jī)器周期,4. MCS-51指令時序,(3)指令周期,1.復(fù)位操作,表格 2?4 各專用寄存器的復(fù)位值,2.4.2 單片機(jī)的復(fù)位電路,2.復(fù)
22、位信號及其產(chǎn)生,圖 2?12 復(fù)位電路邏輯圖,3.復(fù)位方式,圖 2?13 各種復(fù)位電路,第3章 MSC-51指令系統(tǒng),3.1 MCS-51指令系統(tǒng)概述,3.1.1 指令格式,匯編語言格式為:[標(biāo)號:] 操作碼助記符 [目的操作數(shù),] [源操作數(shù)] [;注釋],其中,標(biāo)號是該語句的符號地址,可根據(jù)需要而設(shè)置。當(dāng)匯編程序?qū)R編語言源程序進(jìn)行匯編時,再以該指令所在的地址值來代替標(biāo)號。在編程的過程中,適當(dāng)?shù)氖褂脴?biāo)號,使程
23、序便于查詢、修改以及轉(zhuǎn)移指令的編程。標(biāo)號通常用于轉(zhuǎn)移指令所需的轉(zhuǎn)移地址。標(biāo)號一般由1~6個字符組成,但第一個字符必須是字母,其余的可以是字母也可以是其他符號或數(shù)字。標(biāo)號和操作碼之間用冒號“:”分開。,功能助記符又稱為操作碼。操作碼和操作數(shù)(源操作數(shù)和目的操作數(shù))是指令的核心部分。操作碼使用MCS-51系列單片機(jī)所規(guī)定的助記符來表示,其功能在于告訴單片機(jī)的CPU做何種操作。操作數(shù)分為目的操作數(shù)和源操作數(shù),采用符號(如寄存器、標(biāo)號等)或者常
24、量(如立即數(shù)、地址值等)表示。操作碼和目的操作數(shù)之間用空格分隔,而目的操作數(shù)和源操作數(shù)之間用逗號“,”隔開。在某些指令中可以沒有操作數(shù)。 注釋是對指令的功能或作用的說明,但是注釋不是一個指令的必要組成部分,可有可無。注釋的主要作用是對程序段或者某條指令在整個程序中的作用進(jìn)行解釋和說明,以幫助閱讀、理解和使用源程序。有無注釋對源程序并無影響,但是如果使用注釋的話,注釋部分一定要用分號“;”隔開。,3.1.2 尋址方式,1
25、. 寄存器尋址,2. 直接尋址,4. 立即尋址,3. 寄存器間接尋址,6. 變址尋址,7. 相對尋址,5. 位尋址,MSC-51單片機(jī)的指令系統(tǒng)按照指令的功能,可以把MSC-51的111條指令分成五類:l 數(shù)據(jù)傳送類指令(29條)l 算術(shù)運(yùn)算類指令(24條)l
26、; 邏輯操作類指令(24條)l 控制轉(zhuǎn)移類指令(17條)l 位操作類指令 (17條),第4章 MCS-51匯編語言程序設(shè)計,,基本程序結(jié)構(gòu),4.1 匯編語言及匯編語言程序設(shè)計,機(jī)器語言(Machine Language)是指直接用機(jī)器碼編寫程序、
27、能夠為計算機(jī)直接執(zhí)行的機(jī)器級語言。機(jī)器碼是一串由二進(jìn)制代碼“0”和“1”組成的二進(jìn)制數(shù)據(jù),其執(zhí)行速度快,但是可讀性極差。機(jī)器語言一般只在簡單的開發(fā)裝置中使用,程序的設(shè)計、輸入、修改和調(diào)試都很麻煩。 匯編語言(Assembly Language)是指用指令助記符代替機(jī)器碼的編程語言。匯編語言程序結(jié)構(gòu)簡單,執(zhí)行速度快,程序易優(yōu)化,編譯后占用存儲空間小,是單片機(jī)應(yīng)用系統(tǒng)開發(fā)中最常用的程序設(shè)計語言。匯編語言的缺點是可讀性比較差,
28、只有熟悉單片機(jī)的指令系統(tǒng),并具有一定的程序設(shè)計經(jīng)驗,才能研制出功能復(fù)雜的應(yīng)用程序。,高級語言(High-Level Language)是在匯編語言的基礎(chǔ)上用自然語言的語句來編寫程序,例如PL/M-51、Franklin C51、MBASIC 51等,程序可讀性強(qiáng),通用性好,適用于不熟悉單片機(jī)指令系統(tǒng)的的用戶。 高級語言編寫程序的缺點是實時性不高,結(jié)構(gòu)不緊湊,編譯后占用存儲空間比較大,這一點在存儲器有限的單片機(jī)應(yīng)用系統(tǒng)中
29、沒有優(yōu)勢。,4.1.3 簡單程序設(shè)計,簡單程序也就是順序程序,是最簡單、最基本的程序結(jié)構(gòu),其特點是按指令的排列順序一條條地執(zhí)行,直到全部指令執(zhí)行完畢為止。不管多么復(fù)雜的程序,總是由若干順序程序段所組成的。 【例4.1】雙字節(jié)二進(jìn)制數(shù)求補(bǔ)。本程序?qū)3(高)、R2(低)中的二進(jìn)制定點數(shù)取反加1,便得到其補(bǔ)碼,程序流程圖如圖4- 1所示。,圖4- 1 雙字節(jié)二進(jìn)制數(shù)求補(bǔ)程序流程圖,程序清單如下:BINPL:MOVA
30、,R2CPLAADDA,#01HMOVR2,A;低位字節(jié)補(bǔ)碼送R2MOVA,R3CPLAADDC A,#00H;高位加進(jìn)位位MOVR3,A;高位字節(jié)補(bǔ)碼送R3RET,4.1.4 分支程序設(shè)計,在一個實際的應(yīng)用程序中,程序不可能始終都是直線執(zhí)行的。要用計算機(jī)解決某個實際問題,往往要求計算機(jī)能夠做出一些判斷,并根據(jù)不同的判斷結(jié)果做出不同的處理,即產(chǎn)生不同的分支結(jié)構(gòu)。分支結(jié)構(gòu)程序可根據(jù)程
31、序要求無條件或有條件地改變程序執(zhí)行的順序,選擇新的程序流向。編寫分支結(jié)構(gòu)程序主要在于正確使用轉(zhuǎn)移指令,即無條件轉(zhuǎn)移和條件轉(zhuǎn)移指令。 【例4.2】設(shè)變量X存在VAR單元之中,函數(shù)值y存放在FUNC中,按以下的表達(dá)式給變量y賦值:,圖4- 2 分支程序流程圖,程序流程圖如圖4- 2所示。,程序清單如下:VAREQU30HFUNCEQU31HSTART:MOVA,VARJZCOMPJNBACC.7
32、,POSIMOVA,#0FFHSJMPCOMPPOSI:MOVA,#01HCOMP:MOVFUNC,A,在程序設(shè)計過程中,常常遇到反復(fù)執(zhí)行某一段程序的情況,這種情況下采用循環(huán)程序結(jié)構(gòu),構(gòu),可以縮短程序代碼的長度,提高程序的質(zhì)量和運(yùn)行效率。循環(huán)的這四個部分有兩種情況,如圖4- 3所示。,4.1.5 循環(huán)結(jié)構(gòu)程序,圖4- 3 循環(huán)結(jié)構(gòu)程序流程圖,循環(huán)結(jié)構(gòu)程序一般包括以下幾個部分:(1)置初值。置初值是設(shè)置用于循環(huán)
33、過程工作單元的初始值,例如設(shè)置循環(huán)次數(shù)計數(shù)器、地址指針初值、存放變量的單元的初值。(2)循環(huán)體。重復(fù)執(zhí)行的程序段。(3)循環(huán)修改。在單片機(jī)中,一般用一個工作寄存器Rn作為計數(shù)器,并給這個計數(shù)器賦初值作為循環(huán)的次數(shù),運(yùn)行程序時,每循環(huán)一次,則對該計數(shù)器進(jìn)行修改。(4)循環(huán)控制。判斷循環(huán)控制變量(保存循環(huán)次數(shù)的變量)是否滿足終止值的條件,如果滿足則結(jié)束循環(huán),順序執(zhí)行循環(huán)短一些的程序;如果不滿足,則繼續(xù)重復(fù)執(zhí)行循環(huán)的工作部分,直到達(dá)到循
34、環(huán)結(jié)束條件(死循環(huán)除外)。,【例4.3】求1、2、3…N之和(N<256)。 這是一個簡單的重復(fù)相加的問題。設(shè)R2為加數(shù)指針,R5為循環(huán)次數(shù)計數(shù)器,R6為加數(shù)總和的高位字節(jié)寄存器,N保存在內(nèi)部RAM的23H當(dāng)中,加數(shù)總和的高位字節(jié)和低位字節(jié)分別存入23H和24H中。程序流程圖如圖4- 4所示。,圖4- 4 例4.3程序流程圖,程序清單如下:ORG 0100HMOV R5,23H;R5←NCLR
35、A;A清零MOV R6,#00H;R6清零MOV R4,#01H;R4賦值LOOP:ADD A,@R4;求和JNCNEXT;CY=0即總和小于256,則轉(zhuǎn)移INCR6;總和高位加工NEXT:INCR4;修改指針DJNZR5,LOOP;未完,重復(fù)加MOV23H,R6;保存總和的高位MOV24H,A;保存總和的低位END,【
36、例4.4】延時10ms子程序(設(shè)晶振的頻率為6MHz)。在知道系統(tǒng)的晶振頻率之后,延時時間主要與兩個因素有關(guān):一是內(nèi)循環(huán)中指令的執(zhí)行時間;二是外循環(huán)時間常數(shù)(內(nèi)循環(huán)的循環(huán)次數(shù))的設(shè)置。在本例中,已知晶振頻率為6MHz,則可得一個機(jī)器周期為0.5μs,執(zhí)行一條 DJNZ Rn,rel的指令的時間為兩個機(jī)器周期即1μs,10ms的延時子程序設(shè)計如下:DELAY:MOVR5,#100DELAY0:MOVR4,#100DEL
37、AY1:DJNZR4,DELAY1DJNZR5,DELAY0RET,第5章 MCS-51定時/計數(shù)器和中斷系統(tǒng),5.1 MCS-51定時/計數(shù)器,5.1.1 8051單片機(jī)定時/計數(shù)器的結(jié)構(gòu)與工作原理,定時/計數(shù)器邏輯結(jié)構(gòu),圖 5?1 8051定時/計數(shù)器邏輯結(jié)構(gòu),5.1.2 定時/計數(shù)器方式寄存器和控制寄存器,表 5?1 方式選擇位意義,TMOD格式如下:,TCON的格式如下,5.1.3
38、 定時/計數(shù)器的4種工作方式,1.方式0 當(dāng)M1M0兩位為00時,定時/計數(shù)器被選為工作方式0,其邏輯結(jié)構(gòu)如圖 5?2 所示。,圖 5?2 T0(或T1)方式0的邏輯電路結(jié)構(gòu),2.方式1,T0(或T1)方式1的邏輯電路結(jié)構(gòu),3. 方式2,圖 5?3 T0(或T1)方式2的邏輯電路結(jié)構(gòu),4.方式3,圖 5?4 T0方式3的邏輯電路結(jié)構(gòu)和T1結(jié)構(gòu),由于定時/計數(shù)器是可編程的,因此在定時或計數(shù)之前要用程序初始化,初始化一般有以下
39、幾個步驟:(1)確定工作方式—對方式寄存器TMOD賦值。(2)預(yù)置定時或計數(shù)初值,直接將初值寫入TL0、TH0或TL1、TH1中。(3)根據(jù)需要對中斷允許寄存器有關(guān)位賦值,以開放或禁止定時/計數(shù)器中斷。(4)啟動定時/計數(shù)器,使TCON中的TR1或TR0置“1”,計數(shù)器計按既定的工作方式和初值技術(shù)或定時。,5.定時/計數(shù)器的初始化,在初始化過程中,要置入定時或計數(shù)的初值,要做一點計算。由于計數(shù)器是加“1”計數(shù)器,并在溢出時產(chǎn)生中
40、斷請求,因此不能直接將計數(shù)初值置入計數(shù)器,而應(yīng)送計數(shù)初值的補(bǔ)碼數(shù)。,設(shè)計數(shù)器最大計數(shù)值為M,選擇不同的工作方式最大計數(shù)值不同。方式0:M=213=8192方式1:M=216=65536方式2:M=28=256方式3:M=28=256置入計數(shù)初值X可這樣計算:計數(shù)方式時:X=M-計數(shù)值(X即為計數(shù)值的補(bǔ)碼)定時方式時:(M-X)*T=定時值,故X=M-定時值/T其中T為計數(shù)周期,是單片機(jī)時鐘的12分頻,即單片機(jī)機(jī)器周期。當(dāng)
41、晶振為6MHz時,t=2μs;當(dāng)晶振12MHz時,T=1μs。,【例5.1】若單片機(jī)晶振為12MHz,要求產(chǎn)生500μs的定時,試計算X的初值。解:由于T=1μs,產(chǎn)生500μs定時,則需要“+1”500次,定時器方能產(chǎn)生溢出。采用方式0:X=213-(500*10-6/10-6)=7692=1E0CH但方式0的TL0高3位是不用的,都設(shè)為“0”,這1E0CH應(yīng)寫成:F00CH=1111000001100B實際上,我們可以看
42、出F00CH去掉了3個不用的位后,就是1E0CH,即將F0H裝入TH0,0CH裝入TL0。采用方式1:X=216-(500*10-6/10-6)=65536=FE0CH即將FEH裝入TH1,0CH裝入TL1。,【例5.2】用定時器1,方式0實現(xiàn)1s的延時。解:因方式0采用13位計數(shù)器,其最大定時時間為:8192*1μs=8192μs,因此,定時時間可選擇為8ms,再循環(huán)125次;或者定時時間選擇為5ms,再循環(huán)200次。本例我們
43、選擇前者。定時時間選定后,再確定計數(shù)值為5000,則定時器1的初值為X=M-計數(shù)值=8192-5000=3192=C78H=0110001111000B因13位計數(shù)器中TL1的高3位未用,應(yīng)填寫0,TH1占高8位,所以,X的實際填寫值應(yīng)為X=0110001100011000B=6318H即TH1=63H,TL1=18H,又因采用方式0定時,故TMOD=00H。,1s延時子程序如下:DELAY:MOVR0,#200;置5ms
44、計數(shù)循環(huán)初值MOV TMOD,#00H;設(shè)定時器1為方式0MOV TH1,#63H;置定時器初值MOV TL1,#18HSETB TR1 ;啟動T1LP1:JBC TF1,LP2 ;查詢計數(shù)溢出SJMP LP1 ;未到5ms繼續(xù)計數(shù)LP2:MOV TH1,#63H
45、;重新置定時器初值MOV TL1,#18HDJNZ R0,LP1 ;未到1s繼續(xù)循環(huán)RET ;返回主程序,【例5.3】用定時器1,方式1實現(xiàn)1s的延時。DELAY:MOV R0,#20;置50ms計數(shù)循環(huán)初值MOV TMOD,#10H;設(shè)定時器1為方式1MOV TH1,#3CH;置定時器初值MOV
46、 TL1,#0B0HSETB TR1;啟動T1LP1:JBC TF1,LP2;查詢計數(shù)溢出SJMP LP1;未到50ms繼續(xù)計數(shù)LP2:MOV TH1,#3CH;重新置定時器初值MOV TL1,#0B0HDJNZ R0,LP1;未到1s繼續(xù)循環(huán)RET;返回主程序,【例5.4】用定時器1,方式2實現(xiàn)1s的延時。解:因方式2是8位計數(shù)器,其
47、最大定時時間為:256*1μs=256μs,為實現(xiàn)1s的延時,可選擇定時時間為250μs,再循環(huán)4000次。定時時間選定后,可確定計數(shù)值為250,則定時器1的初值為:X=M-計數(shù)值=256-250=6=6H。采用定時器1,方式2工作,因此,TMOD=20H。DELAY:MOV R7,#40;置25ms計數(shù)循環(huán)初值MOV R6,#100;置250μs計數(shù)循環(huán)初值MOV TMOD,#20H;設(shè)定
48、時器1為方式2MOV TH1,#06H;置定時器初值MOV TL1,#06HSETB TR1;啟動T1LP1:JBC TF1,LP2;查詢計數(shù)溢出SJMP LP1;無溢出則繼續(xù)計數(shù)LP2:DJNZ R6,LP1;未到25ms繼續(xù)循環(huán)MOV R6,#100DJNZ R7,LP1;未到1s繼續(xù)循環(huán)RET;返回主程序,5
49、.2 MCS-51單片機(jī)的中斷系統(tǒng),圖 5-5 MCS-51中斷系統(tǒng)內(nèi)部結(jié)構(gòu)示意圖,1、中斷源及中斷入口,2、外部中斷請求標(biāo)志,2.SCON的中斷標(biāo)志,1.TCON中的中斷標(biāo)志,3、中斷允許控制,4、中斷源優(yōu)先級的設(shè)定,5、中斷響應(yīng)處理過程,2.中斷處理,1.中斷響應(yīng)的過程,3.中斷返回,4.外部中斷響應(yīng)時間,5.2.4 外部中斷源的擴(kuò)展,1.用定時器作外部中斷源,,MCS-51單片機(jī)有兩個定時器,具有兩個內(nèi)中斷標(biāo)志和外計數(shù)引腳,
50、如在某些應(yīng)用中不 被使用,則它們定時器中斷可作為外部中斷請求使用。此時,可將定時器設(shè)置成計數(shù)方式,計數(shù)初值可設(shè)為滿量程,則它們的計數(shù)輸入端T0(P3.4)或T1(P3.5)引腳上發(fā)生負(fù)跳變時,計數(shù)器加1產(chǎn)生溢出甲斷。利用此特性,可把T0腳或T1腳作為外部中斷請求輸入線,而計數(shù)器的溢出中斷作為外部中斷請求標(biāo)志。 【例5.5】將定時器0擴(kuò)展為外部中斷源n解:將定時器0設(shè)定為方式2(自動恢復(fù)計數(shù)初值),TH0和TFO的初值均設(shè)
51、置為FFH,允許定時器0中斷,CPU開放中斷。源程序如下:,MOVTMOD,#06H MOVTH0,#0FFH MOVTL0,#0FFH SETBTR0 SETBET0 SETBEA … 當(dāng)連接在T0(P3.4)引腳上的外部中斷請求輸入線發(fā)生負(fù)跳變時,TL0加1溢出,TF0置1,向CPU發(fā)出中斷申請,同時,TH0的內(nèi)容自動送至TL0使TL0恢復(fù)初值。這樣,T0引腳每輸入一個負(fù)
52、跳變,TF0都會置1,向CPU請求中斷。此時,T0腳相當(dāng)于邊沿觸發(fā)的外部中斷源輸入線。 同樣,也可將定時器1擴(kuò)展為外部中斷源。,2.中斷和查詢相結(jié)合,圖5- 8 一個外中斷擴(kuò)展成多個外中斷的原理圖,由圖可知,4個外部擴(kuò)展中斷源通過 4個OC門電路組成線或取非后再與 (P3.2)相連;4個外部擴(kuò)展中斷源EXINT0~EXINT3中有一個或幾個出現(xiàn)高電平則輸出為0,使 腳為低電平,從而發(fā)出中斷
53、請求。因此,這些擴(kuò)充的外部中斷源都是電平觸發(fā)方式(高電平有效)。CPU執(zhí)行中斷服務(wù)程序時,先依次查詢P1口的中斷源輸入狀態(tài),然后,轉(zhuǎn)入到相應(yīng)的中斷服務(wù)程序,4個擴(kuò)展中斷源的優(yōu)先級順序由軟件查詢順序決定,即最先查詢的優(yōu)先級最高,最后查詢的優(yōu)先級最低。,中斷服務(wù)程序如下:ORG0003H;外部中斷0入口AJMPINT0;轉(zhuǎn)向中斷服務(wù)程序入口…INT0:PUSHPSW;保護(hù)現(xiàn)場PUSHACCJBP1.0,EX
54、T0;中斷源查詢并轉(zhuǎn)相應(yīng)中斷服務(wù)程序JBP1.1,EXT1JBP1.2,EXT2JBP1.3,EXT3EXIT:POPACC;恢復(fù)現(xiàn)場POPPSWRETI…EXT0:…;EXINT0中斷服務(wù)程序AJMPEXITEXT1:…;EXINT1中斷服務(wù)程序AJMPEXITEXT2:…;EXINT2中斷服務(wù)程序AJMPEXITEXT3:…;EXINT3中斷服務(wù)程序AJMP
55、EXIT同樣,外部中斷1也可作相應(yīng)的擴(kuò)展。,第6章 存儲器與存儲器擴(kuò)展,6.1 單片機(jī)存儲器概述,8051的引腳定義及功能,MCS-51的引腳圖及功能分類圖,圖6- 1 單片機(jī)擴(kuò)展構(gòu)造總線結(jié)構(gòu)框圖,6.2 程序存儲器擴(kuò)展技術(shù),外部程序存儲器的擴(kuò)展及取指過程,外部程序存儲器一般連接方法,EPROM程序存儲器擴(kuò)展實例,圖6- 8 單片程序存儲器擴(kuò)展連接,用譯碼法擴(kuò)展多片E2PROM,
56、圖6- 10 E2PROM程序存儲器擴(kuò)展電路連接圖,,擴(kuò)展2KB數(shù)據(jù)存儲器的線路圖,6.3 數(shù)據(jù)存儲器擴(kuò)展技術(shù),圖6- 12 線選法擴(kuò)展1片6264電路圖,綜合擴(kuò)展實例,擴(kuò)展16KB RAM和16KB EPROM,7.2 并行I/O口擴(kuò)展,7.2.1 并行I/O口的簡單擴(kuò)展,第7章 單片機(jī)接口技術(shù),圖7- 2 簡單I/O口擴(kuò)展,7.2.2 采用8255擴(kuò)展I/O口,圖7- 3
57、 8255內(nèi)部結(jié)構(gòu),1.8255的內(nèi)部結(jié)構(gòu)和引腳功能。,圖7- 4 8255A引腳圖,2.MCS-51與8255A的連接方法,圖7- 5 8031與8255A的連接方法,3.8255的方式控制字,圖7- 6 8255A方式選擇控制字,(1)方式選擇控制字,圖7- 7 C口 按位復(fù)位/置位控制寄存器,(2)C口按位復(fù)位/置位控制字,7.2.3 可編程RAM I/O接口芯片8155及其擴(kuò)展I/O口技術(shù),1.8155內(nèi)部結(jié)構(gòu)及引腳,
58、8155內(nèi)部結(jié)構(gòu)(b) 8155引腳配置圖圖7- 12 8155內(nèi)部結(jié)構(gòu)及引腳圖,表 7?3 8155口地址分布,2.8155的RAM和I/O口地址編碼,3.8155的工作方式與基本操作,,,圖7- 13 8155命令狀態(tài)寄存器格式,表7- 4 8155定時器編程方式及相應(yīng)的輸出波形,圖 7?15 8155和8031單片機(jī)接口,7.3 MCS-51單片機(jī)鍵盤接口技術(shù),7.3.2 獨(dú)立式按鍵,1.獨(dú)立式按鍵結(jié)構(gòu),圖
59、7- 17 獨(dú)立式鍵盤,圖7- 18 獨(dú)立鍵盤與單片機(jī)接口,7.3.3 矩陣鍵盤接口技術(shù),1.矩陣式鍵盤的結(jié)構(gòu)及工作原理,圖7- 19 矩陣鍵盤結(jié)構(gòu),2.矩陣鍵盤工作方式,圖7- 20 定時鍵盤掃描程序框圖,7.4.1 LED顯示器的接口技術(shù),7.4 MCS-51單片機(jī)顯示器接口技術(shù),(a)管腳圖(b)共陰極(c) 共陽極圖7- 21 LED顯示器與通用I/O口的連線,1.LED數(shù)碼顯示器結(jié)構(gòu)和工作原理,圖
60、7- 22 通過8255A連接的3位LED靜態(tài)顯示器,3.靜態(tài)LED顯示器接口,4.動態(tài)LED顯示器接口,圖7- 23 通過8155連接的6位LED動態(tài)顯示電路,圖7- 24 動態(tài)顯示子程序流程圖,7.4.2 可編程鍵盤/顯示器接口芯片Intel8279,1.8279的內(nèi)部結(jié)構(gòu),圖7- 27 8279內(nèi)部結(jié)構(gòu),2.8279引腳功能,圖7- 28 8279管腳及引線功能,5.8279與單片機(jī)的接口,圖7- 29 8279鍵盤、
61、顯示器接口電路,圖7- 30 8×8鍵盤的鍵值與鍵號,7.5 模/數(shù)(A/D)轉(zhuǎn)換器與單片機(jī)接口及應(yīng)用,7.5.2 常用A/D轉(zhuǎn)換器及其接口設(shè)計,圖7- 32 ADC0809的邏輯框圖,圖7- 33 ADC0809引腳圖,圖7- 34 8031與ADC0809的接口,7.6.2 常用D/A轉(zhuǎn)換器DAC0832及其接口技術(shù),7.6 數(shù)/模(D/A)轉(zhuǎn)換器與單片機(jī)接口及應(yīng)用,圖7- 37 DAC0832引腳圖,D
62、AC0832的引腳排列DAC0832結(jié)構(gòu)圖,3.DAC0832與MCS-51的接口設(shè)計,(1)單緩沖工作方式,圖7- 38 單極性單緩沖器電路接口圖,(2) 雙緩沖工作方式,圖7- 40 工作于雙緩沖方式時DAC0832與8031的連接,第8章 串行口通信技術(shù),8.1 串行通信基礎(chǔ),8.1.1 串行通信的分類,1.同步通信,圖8- 2 同步通信的格式,2.異步通信,圖8- 3
63、 異步通信的格式,8.1.2 串行通信的制式,圖8- 4 串行通信的數(shù)據(jù)傳送方向,8.2 串行通信總線標(biāo)準(zhǔn)及其接口,8.2.1 RS-232C接口,圖8- 5 PC與外設(shè)的RS-232直接連接,表8- 1 PC常用的RS-232C接口信號定義(9針),表8- 2 PC常用的RS-232C接口信號定義(25針),8.2.2 RS-449、RS-422、RS-423及RS-485接口,表格 7-4 幾種串行接口標(biāo)準(zhǔn)的比較,
64、,8.3 MCS-51的串行口,8.3.1 MCS-51串行口的結(jié)構(gòu),圖8- 11 MCS-51串行口發(fā)送和接收電路框圖,1.串行口控制寄存器SCON,圖8- 12 SCON各位定義,表8- 3 串行口工作方式,2.電源控制寄存器PCON,圖8- 13 PCON各位定義,1.方式0,串行口方式0的時序,8.3.2 MCS-51串行口的工作方式 MCS-51的串行口有四種工作方式,它是由SCON中的SM1和
65、SM0來決定的。,2.方式1 在方式1時,串行口被設(shè)置為波特率可變的8位異步通信接口。其時序如圖所示。,串行口方式1的時序,3.方式2串行口工作為方式2時,被定義為9位異步通信接口。其時序如圖所示。,8.3.3 MCS-51串行口的波特率,1.方式0和方式2,當(dāng)采用方式0和方式2時,波特率僅僅與晶振頻率有關(guān)。 在方式0中,波特率為時鐘頻率的1/12,即fosc/12,固定不變。 在方式2中,波
66、特率取決于PCON中的SMOD值,當(dāng)SMOD=0時,波特率為fosc/64;當(dāng)SMOD=1時,波特率為fosc/32。,2.方式1和方式3,在方式1和方式3時,波特率不僅僅與晶振頻率和SMOD位有關(guān),還與定時器T1的設(shè)置有關(guān)。波特率的計算公式為: 波特率=2SMOD/32×定時器T1溢出率,表8- 4 常用波特率,8.4 MCS-51單片機(jī)之間的通信,8.4.1 雙機(jī)通信硬件電路,圖8- 20 雙機(jī)通信接口,8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)原理與應(yīng)用-學(xué)林單片機(jī)
- 單片機(jī)原理及應(yīng)用教學(xué)教案
- 單片機(jī)原理與應(yīng)用-read
- 單片機(jī)原理與接口應(yīng)用
- 單片機(jī)原理及應(yīng)用電子教案-gongkong營銷傳播管
- 單片機(jī)原理與應(yīng)用考試大綱
- 單片機(jī)原理與應(yīng)用技術(shù)
- 單片機(jī)原理應(yīng)用
- 單片機(jī)課程設(shè)計---單片機(jī)原理及應(yīng)用
- 單片機(jī)課程設(shè)計-- 單片機(jī)原理及應(yīng)用
- 單片機(jī)原理與應(yīng)用課程設(shè)計---單片機(jī)電子時鐘的設(shè)計與實現(xiàn)
- 《單片機(jī)原理及應(yīng)用》課程設(shè)計—單片機(jī)電子琴設(shè)計
- 單片機(jī)原理及應(yīng)用課程設(shè)計--基于單片機(jī)的電子時鐘設(shè)計
- 單片機(jī)原理與應(yīng)用試題庫
- 《單片機(jī)原理與應(yīng)用》試題及答案
- 《單片機(jī)原理與應(yīng)用》試題庫
- pic單片機(jī)原理及應(yīng)用
- 單片機(jī)原理與應(yīng)用試題庫
- 單片機(jī)原理、接口及應(yīng)用
- 新編單片機(jī)原理與應(yīng)用課后答案
評論
0/150
提交評論