版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第三章 MCS-51單片機(jī)的系統(tǒng)擴(kuò)展與應(yīng)用,3.1 MCS-51最小系統(tǒng) 3.2 MCS-51系列單片機(jī)的外部擴(kuò)展原理 3.3 存儲器的擴(kuò)展 3.4 輸入/輸出口的擴(kuò)展 3.5 定時(shí)器/計(jì)數(shù)器的應(yīng)用 3.6 串行口的應(yīng)用 3.7 布爾處理機(jī)的應(yīng)用,3.1 MCS-51最小系統(tǒng),3.1.1 最小應(yīng)用系統(tǒng) 單片機(jī)系統(tǒng)的擴(kuò)展是以基本的最小系統(tǒng)為基礎(chǔ)的, 故應(yīng)首先熟悉最小應(yīng)用系統(tǒng)的結(jié)構(gòu)。 內(nèi)部帶有程序存儲器的8051或8751單片機(jī)本身就 是一個(gè)最簡單的最小應(yīng)用系統(tǒng),許多實(shí)際應(yīng)用系統(tǒng)就 是用這種成本低和體積小的單片結(jié)構(gòu)實(shí)現(xiàn)了高性能 的控制。 對于目前較多采用的內(nèi)部無程序存儲器的芯片 8031來說, 則
2、要用外接程序存儲器的方法才能構(gòu)成 一個(gè)最小應(yīng)用系統(tǒng)。,一、8051/8751硬件最小系統(tǒng) 對于片內(nèi)有ROM型單片機(jī),其自身可以構(gòu)成最小系統(tǒng),系統(tǒng)構(gòu)成: 4KB ROM,256B RAM; 五個(gè)中斷源; 兩個(gè)16位定時(shí)/計(jì)數(shù)器; 一個(gè)全雙工串行UART; 四個(gè)并行I / O口,二、8031硬件最小系統(tǒng) 8031單片機(jī)片內(nèi)無ROM,若要正常工作,必需外配ROM。外接ROM后,P3口、P2口、P0口均被占用只剩下P1口作I / O口用,其它功能不變。,3.2 MCS-51系列單片機(jī)的外部擴(kuò)展原理,1. MCS-51系列單片機(jī)的片外總線結(jié)構(gòu) MCS-51系列單片機(jī)具有很強(qiáng)的外部擴(kuò)展功能。其外部擴(kuò)展 都
3、是通過三總線進(jìn)行的。 (1)地址總線(AB) 地址總線用于傳送單片機(jī)輸出的地址信號,寬度為16位, P0口經(jīng)鎖存器提供低8位地址,鎖存信號是由CPU的ALE引腳提 供的;P2口提供高8位地址。 (2)數(shù)據(jù)總線(DB) 數(shù)據(jù)總線是由P0口提供的,寬度為8位。 (3)控制總線(CB) 控制總線實(shí)際上是CPU輸出的一組控制信號。MCS-51單片 機(jī)通過三總線擴(kuò)展外部設(shè)備的總體結(jié)構(gòu)圖如下圖所示。,單片機(jī)的三總線結(jié)構(gòu)形式,2MCS-51系列單片機(jī)系統(tǒng)的擴(kuò)展能力 片外可擴(kuò)展存儲器的最大容量為216=64KB,地址范圍為 0000HFFFFH。 片外程序存儲器和數(shù)據(jù)存儲器的地址重疊共享,但選通信號不 同。P
4、SEN選通片外程序存儲器,RD和WR分別選通片外數(shù)據(jù)存儲 器的讀寫。 I/O接口的編址方法:一種是獨(dú)立編址,另一種是統(tǒng)一編址。 MCS-51單片機(jī)采用了統(tǒng)一編址方式,即I/O端口地址與外部數(shù)據(jù) 存儲單元地址共同使用0000HFFFFH(64KB)。當(dāng)MCS-51單片 機(jī)應(yīng)用統(tǒng)擴(kuò)展較多外部設(shè)備和I/O接口時(shí),要占去大量的數(shù)據(jù)存儲 器的地址。,3.3 存儲器的擴(kuò)展,一、存儲器擴(kuò)展概述 MCS-51系列單片機(jī)具有64 KB的程序存儲器空間, 其中 8051、 8751型單片機(jī)含有4 KB 的片內(nèi)程序存儲器, 而8031 型單片機(jī)則無片內(nèi)程序存儲器。 當(dāng)采用8051、 8751型單片 機(jī)而程序超過4K
5、B, 或采用8031型單片機(jī)時(shí), 就需要進(jìn)行程序 存儲器的擴(kuò)展。 MCS-51系列單片機(jī)的數(shù)據(jù)存儲器與程序存儲器的地址空 間是互相獨(dú)立的, 其片外數(shù)據(jù)存儲器的空間可達(dá)64 KB, 而片 內(nèi)的數(shù)據(jù)存儲器空間只有128 B。 如果片內(nèi)的數(shù)據(jù)存儲器不 夠用時(shí), 則需進(jìn)行數(shù)據(jù)存儲器的擴(kuò)展。,存儲器擴(kuò)展的核心問題是存儲器的編址問題。 所謂編址就 是給存儲單元分配地址。 由于存儲器通常由多片芯片組成 , 為此存儲器的編址分為兩個(gè)層次: 即存儲器芯片的選擇和存 儲器芯片內(nèi)部存儲單元的選擇。 存儲器芯片的選擇有兩種方法: 線選法和譯碼法。 1. 線選法 所謂線選法, 就是直接以系統(tǒng)的地址線作為存儲器芯片的片選
6、信號, 為此只需把用到的地址線與存儲器芯片的片選端直接相連即可。 2. 譯碼法 所謂譯碼法就是使用地址譯碼器對系統(tǒng)的片外地址進(jìn)行譯碼, 以其譯碼輸出作為存儲器芯片的片選信號。,譯碼法又分為完全譯碼和部分譯碼兩種。 (1) 完全譯碼。 地址譯碼器使用了全部地址線, 地址與存儲單元一一 對應(yīng), 也就是1個(gè)存儲單元只占用1個(gè)唯一的地址。 (2) 部分譯碼。 地址譯碼器僅使用了部分地址線, 地址與存儲單元不 是一一對應(yīng), 而是1個(gè)存儲單元占用了幾個(gè)地址。 1根地址 線不接, 一個(gè)單元占用2(21)個(gè)地址; 2根地址線不接, 一 個(gè)單元占用4(22)個(gè)地址; 3根地址線不接, 則占用8(23)個(gè) 地址,
7、 依此類推。,注:在設(shè)計(jì)地址譯碼器電路時(shí), 如果采用地址譯碼關(guān)系, 將會帶來很大的方便。,二、MCS-51單片機(jī)擴(kuò)展外部存儲器應(yīng)考慮的問題: (1)選擇合適類型的存儲器芯片 只讀存儲器用于固化程序和常數(shù)??煞譃檠谀?ROM、可編程PROM、紫外線可擦除EPROM和電可擦 除E2PROM幾種。若所設(shè)計(jì)的系統(tǒng)是小批量生產(chǎn)或開發(fā) 產(chǎn)品,則建議使用EPROM和E2PROM;若為成熟的大 批量產(chǎn)品,則應(yīng)采用PROM或掩膜ROM。 隨機(jī)存取存儲器常用來存取實(shí)時(shí)數(shù)據(jù)、變量和運(yùn)算 結(jié)果。可分為靜態(tài)RAM(SRAM)和動態(tài)RAM (DRAM)兩類。此外,還可以選擇OTP ROM、Flash 存儲器、FRAM、N
8、VSRAM、用于多處理機(jī)系統(tǒng)的 DSRAM(雙端口RAM)等。,(2)選擇合適的存儲容量 在MCS-51應(yīng)用系統(tǒng)所需存儲容量不變的前提下, 若所選存儲器本身存儲容量越大,則所用芯片數(shù)量 就越少,所需的地址譯碼電路就越簡單。 (3)合理分配存儲器地址空間的分配 存儲器地址空間的分配必須滿足存儲器本身的 存儲容量,否則會造成存儲器硬件資源的浪費(fèi)。 (4)合理選擇地址譯碼方式 可根據(jù)實(shí)際應(yīng)用系統(tǒng)的具體情況選擇線選法、全 地址譯碼法、部分地址譯碼法等地址譯碼方式。,二、三總線的連接 1、數(shù)據(jù)線的連接 P0口的八位線承擔(dān)此任,此時(shí)不用外接上拉電阻。 2、地址線的連接 P0口承擔(dān)地址低八位線,A0 A7;
9、 P2口承擔(dān)地址高八位線。A8 A15。 注意:P0口線地址 / 數(shù)據(jù)分時(shí)復(fù)用,需用地址鎖存器 74LS373鎖存地址。,3、控制線的連接 對存儲器來講控制線無非是:芯片的選通控制、讀寫控 制。單片機(jī)與外部器件數(shù)據(jù)交換要遵循兩個(gè)重要原則: 一是,地址唯一性,一個(gè)單元一個(gè)地址。 二是,同一時(shí)刻,CPU只能訪問一個(gè)地址,即只能與一個(gè) 單元交換數(shù)據(jù)。不交換時(shí),外部器件處于鎖閉狀態(tài),對總線 呈浮空狀態(tài)。 選通:CPU與器件交換數(shù)據(jù)或信息,需先發(fā)出選通信號 /CE或/CS,以便選中芯片。 讀 / 寫:CPU向外部設(shè)備發(fā)出的讀/寫控制命令。 EPROM: /OE /PSEN SRAM: /WE /WR /
10、OE /RD,A10 A8,A7 A0,D7 D0,CB,3.3.1 程序存儲器的擴(kuò)展,常用EPROM程序存儲器 EPROM主要是27系列芯片,如: 27C64(8K)、 27C128(16K) 、27C256(32K)、27C512(64K)、 27C040(512K)、27C080(1M),一般選擇8KB以 上的芯片作為外部程序存儲器。其引腳圖如下圖所 示:,引腳符號的含義和功能如下: D7D0:三態(tài)數(shù)據(jù)總線; A0Ai:地址輸入線, :片選信號輸入線; :輸出允許輸入線; VPP:編程電源輸入線; :編程脈沖輸入線; VCC:電源; GND:接地; NC:空引腳。,2. 地址鎖存器 程序
11、存儲器擴(kuò)展時(shí),還需要地址鎖存器,地址鎖存器常用 的有帶三態(tài)緩沖輸出的8D鎖存器74LS373、帶有清除端的 74LS273。 74LS373是帶有三態(tài)門的8D鎖存器,當(dāng)三態(tài)門的使能信號 線OE為低電平時(shí),三態(tài)門處于導(dǎo)通狀態(tài),允許鎖存器輸出, 鎖存控制端為11腳LE,采用下降沿鎖存,控制端可以直接與 CPU 的地址鎖存控制信號ALE相連。,3. 程序存儲器擴(kuò)展舉例 現(xiàn)分3種情況說明程序存儲器的擴(kuò)展方法。 (1) 不用片外譯碼的單片程序存儲器的擴(kuò)展。 例1: 試用EPROM2764構(gòu)成8031的最小系統(tǒng)。 解: 由于8031無片內(nèi)程序存儲器, 因此必須外接程序存儲 器以構(gòu)成最小系統(tǒng)。 其連接方法是
12、在將三總線連接好的基礎(chǔ)上, 將2764按三總線 的要求連接, 其連接的關(guān)鍵在于地址譯碼。 由于一般所采用 的芯片其字節(jié)數(shù)均超過256個(gè)單元, 也就是說片內(nèi)地址線超過 8條, 故地址譯碼的核心問題是高8位地址線的連接。接線圖 如下頁所示:,(2) 采用線選法的多片程序存儲器的擴(kuò)展。,例2: 在下頁圖所示的連接圖中, 使用了兩片2764, 一共構(gòu)成了8K2=16K的有效地址。 采用線選法編址, 以P2.7(A15)直接作為片選信號, 當(dāng)P2.7=0 時(shí), 選中左邊1片2764, 其地址范圍為0000H1FFFH; 當(dāng)P2.7=1 時(shí), 選中右邊1片2764,其地址范圍為 8000H9FFFH。,(
13、3) 采用地址譯碼器的多片程序存儲器的擴(kuò)展。,例3: 要求用2764芯片擴(kuò)展 8031 的片外程序存儲器空 間, 分配的地址范圍為 0000H3FFFH。 解:本例采用完全譯碼的方法, 即所有地址線全部連接, 每個(gè)單元只占用唯一的1個(gè)地址。 確定片數(shù):,字片數(shù)=,(末地址-首地址)+1,芯片字?jǐn)?shù),=,(3FFFH-0000H) +1,2000H,=,4000H,2000H,=2(片), 分配地址范圍: 第1組(1片)所占用的地址范圍為: 0000,0000,0000,0000 0000H 0001,1111,1111,11111FFFH 第2組(1片)所占用的地址范圍為: 0010,0000,
14、0000,00002000H 0011,1111,1111,11113FFFH,位片數(shù)為,位片數(shù)=,單元位數(shù),芯片位數(shù),=,總片數(shù)=字片數(shù)位片數(shù)=21=2(片), 畫出地址譯碼關(guān)系圖: 第1組,P2.7P2.6P2.5P2.4 P2.0 P0.7 P0.0 (A15)(A14)(A13)(A12) (A8)(A7) (A0),第2組,上面打部分為片內(nèi)譯碼, 對于2764來說有13位, 其地址變化范圍為從全0變到全1, 其余部分為片外 譯碼。 設(shè)計(jì)外譯碼電路: 本例只介紹采用譯碼器芯片的設(shè)計(jì)方法, 現(xiàn)采用 3-8譯碼器74LS138。片外譯碼只有3根線(P2.7, P2.6, P2.5),分別接
15、至譯碼器的C、B、A輸入端。 控制端G1,G2A,G2B不參與譯碼,接成常有效。, 畫出存儲器擴(kuò)展連接圖: 該連接圖如下所示。圖中3-8譯碼器74LS138只用了兩個(gè)譯碼輸出端, 如果需要的話, 還可利用其余6個(gè)譯碼輸出端。,例4:圖中譯碼器74LS138的譯碼輸出端Y4和Y5所對應(yīng)的地址范圍各為多少? 解:對于Y4來說,其地址變化范圍為10000000000000001001111111111111, 即8000H9FFFH。 對于Y5來說,其地址變化范圍為10100000000000001011111111111111, 即A000HBFFFH。,3.3.2 數(shù)據(jù)存儲器的擴(kuò)展,單片機(jī)內(nèi)部的
16、RAM為128B(或256B),有的單片機(jī)應(yīng)用系 統(tǒng)需要擴(kuò)展外部數(shù)據(jù)存儲器RAM (如數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)量較 大,需要專設(shè) RAM或 Flash RAM)。最常用的 RAM器件是靜 態(tài)RAM( SRAM )。 1. 常用靜態(tài)RAM存儲器 常用的SRAM有6264(8K)、62128(16K)、62256(32K)、 628128(128K)等。一般選擇8KB以上的芯片作為外部程序存 儲器。,引腳符號的含義和功能如下: D7D0:雙向三態(tài)數(shù)據(jù)總線;A0Ai:地址輸入線; CS (CS1):片選信號輸入端;CS2:片選信號輸入端,高電平有效(僅6264芯片有);RD:讀選通信號輸入線,低電平有效;W
17、R:寫選通信號輸入線,低電平有效;Vcc:電源+5V;GND:地。,2、MCS-51擴(kuò)展數(shù)據(jù)存儲器與程序存儲器電路的異同: (1)所用的地址總線,數(shù)據(jù)總線完全相同; (2)讀/寫控制線不同:擴(kuò)展程序存儲器的讀選通信號由 PSEN控制,擴(kuò)展數(shù)據(jù)存儲器的讀、寫控制線用RD 、WR分別 控制存儲器芯片的OE和WE ; (3)數(shù)據(jù)存儲器與程序存儲器的地址可以重疊,因?yàn)閿U(kuò)展它們 的控制信號不同。 (4)I/O擴(kuò)展的地址空間與數(shù)據(jù)存儲器擴(kuò)展的空間是共用的, 所以擴(kuò)展數(shù)據(jù)存儲器涉及到的問題遠(yuǎn)比擴(kuò)展程序存儲器擴(kuò)展 多。,3、數(shù)據(jù)存儲器的擴(kuò)展方法: 擴(kuò)展容量為256B的RAM,采用MOVX Ri指令訪問外部 R
18、AM,只用P0口傳送8位地址; 擴(kuò)展容量大于256B而小于64KB的RAM,訪問外部RAM時(shí) 采用MOVX DPTR指令,同時(shí)用P0和P2口送16位地址; 擴(kuò)展容量略大于256B的RAM,為節(jié)省I/O口(P2),用P0 口送低8位地址,通過少量I/O口線、用軟件方法傳送高位地 址的指令。,數(shù)據(jù)存儲器 RAM 的擴(kuò)展:,有時(shí)需要擴(kuò)展外部數(shù)據(jù)存儲器RAM方能工作(如數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)量較大,需要專設(shè) RAM或 Flash RAM)。最常用的 RAM器件是SRAM。 如:6116(2K)/6264(8K)/62128(16K)/628128(128K) ,數(shù)據(jù)存儲器 6264 的擴(kuò)展:,鎖存器74LS
19、373,51單片機(jī)能提供16條地址線,可擴(kuò)展64K字節(jié)的RAM??梢杂靡黄酒部梢杂枚嗥琑AM,4、全地址范圍的存儲器最大擴(kuò)展系統(tǒng) 8031的片外程序存儲器和數(shù)據(jù)存儲器的地址各為64K。若 采用EPROM2764和RAM6264芯片,則各需8片才能構(gòu)成全部 有效地址。芯片的選擇采用38譯碼器74LS138,片外地址 線只有3根(A15、A14、A13),分別接至74LS138的C、B、A 端,其8路譯碼輸出分別接至8個(gè)2764和8個(gè)6264的片選端 CE。,5、MCS-51對外部存儲器的擴(kuò)展 下圖所示的8031擴(kuò)展系統(tǒng)中,外擴(kuò)了16KB程序存儲器(使用兩片2764芯片)和8KB數(shù)據(jù)存儲器(
20、使用一片6264芯片)。采用全地址譯碼方式,P2.7用于控制24譯碼器的工作,P2.6, P2.5參加譯碼,且無懸空地址線,無地址重疊現(xiàn)象。1# 2764, 2# 2764, 3# 6264的地址范圍分別為:0000H1FFFH, 2000H3FFFH, 40005FFFH。,6、程序存儲空間和數(shù)據(jù)存儲空間的混合,在硬件結(jié)構(gòu)上將PSEN信號和RD信號相“與”后連接到RAM芯片的讀選通端,這樣就能使程序存儲空間和數(shù)據(jù)存儲空間混合。如右圖所示。將程序裝入6264中,很容易進(jìn)行讀寫修改,執(zhí)行程序時(shí),由PSEN信號選通RAM讀出。調(diào)試通過后,再將RAM6264調(diào)換成EPROM2764。,注意2點(diǎn): 1
21、。程序和數(shù)據(jù)之和不大于存儲器總?cè)萘俊?2。程序必須存放在低地址,數(shù)據(jù)存放在高地址。,3.4 輸入/輸出口的擴(kuò)展,MCS-51單片機(jī)具有四個(gè)并行8位I/O口(即P0, P1, P2, P3),原理上這四個(gè)I/O口均可用做雙向并行I/O接口,但在 實(shí)際應(yīng)用中,可提供給用戶使用的I/O口只有P1口和部分P3 口線及作為數(shù)據(jù)總線用的P0口。在單片機(jī)的I/O口線不夠用 的情況下,可以借助外部器件對I/O口進(jìn)行擴(kuò)展??少Y選用 的器件很多,方案也有多種。 并口擴(kuò)展常用三種方法: 1、利用TTL、CMOS集成電路來擴(kuò)展 2、利用單片機(jī)串口擴(kuò)展 3、利用可編程并行接口芯片來擴(kuò)展,2. MCS-51單片機(jī)擴(kuò)展并行
22、I/O口的擴(kuò)展性能 訪問擴(kuò)展I/O口的方法與訪問數(shù)據(jù)存儲器完全相同,使用 相同的指令,所有擴(kuò)展的I/O口與片外數(shù)據(jù)存儲器統(tǒng)一編 址。 利用串行口擴(kuò)展法擴(kuò)展的外部并行I/O口不占用外部RAM 地址空間。 利用并行總線擴(kuò)展的方法擴(kuò)展外部并行I/O口時(shí),必須注 意P0, P2, P3口的負(fù)載問題,若負(fù)載能力不夠,必須進(jìn)行總 線驅(qū)動能力擴(kuò)展。 擴(kuò)展外部并行I/O口對外設(shè)的硬件具有依賴性(驅(qū)動功 率、電平匹配、干擾抑制、隔離等)。,1、利用TTL、CMOS集成電路來擴(kuò)展 利用TTL芯片、CMOS鎖存器、三態(tài)門等接口芯片擴(kuò)展P0 口,常選用74LS273、74LS373、74LS244等芯片。,2、用串行
23、口擴(kuò)展并行I / O 接口,如果串口別無他用,則可讓其工作于方式0,來擴(kuò)展一個(gè)或多個(gè)8位并行I / O口,(1)用74LS165擴(kuò)展并行I / O口,(2)用74LS164擴(kuò)展并行輸出口,74LS164是8位串入、并出移位寄存器,其中,CP為移位脈沖輸入端;/CR為清除端。,LED數(shù)碼管靜態(tài)顯示舉例,有幾個(gè)LED就要幾個(gè)74LS164,但只要數(shù)據(jù)不變,送一次就保持住了,且不閃爍,編程十分簡單。,3、利用可編程并行接口芯片來擴(kuò)展 可編程I/O接口芯片的特點(diǎn):適應(yīng)多種功能需求,使用靈活,可擴(kuò)展多個(gè)并行I/O口,可以編程設(shè)定為輸入或輸出口,應(yīng)用非常廣泛。,(1)可編程并行口8255A芯片 Intel
24、 8255A芯片是通用可編程并行接口電路,廣泛應(yīng)用于單片機(jī)擴(kuò)展并行I/O口。它具有3個(gè)8位并行口PA, PB和PC,一個(gè)8位的數(shù)據(jù)口D0D7 ,PC口分高4位和低4位。高4位可與PA口合為一組(A組),低4位可與PB口合為一組(B組) ,PC口可按位置位/復(fù)位。40條引腳,DIP封裝。 引腳圖如右圖所示。,(2)8255A的3種工作方式 方式0(基本輸入/輸出方式):不需要任何選通信號,適 合于無條件傳輸數(shù)據(jù)的設(shè)備,數(shù)據(jù)輸出有鎖存功能,數(shù)據(jù)輸 入有緩沖(無鎖存)功能。 方式1(選通輸入/輸出方式):A組包括A口和C口的高四 位(PC7PC4),A口可由程序設(shè)定為輸入口或輸出口,C 口的高四位則
25、用來作為輸入/輸出操作的控制和同步信號;B 組包括B口和C口的低四位(PC3PC0),功能和A組相同。 方式2(雙向I/O口方式):僅A口有這種工作方式,B口無 此工作方式。此方式下,A口為8位雙向I/O口,C口的PC7 PC3用來作為輸入輸出的控制和同步信號。此時(shí),B口可以工 作在方式0或方式1。,(3)8255A芯片的控制字 8255A為可編程接口芯片,以控制字形式對其工作方式和C口各位的狀態(tài)進(jìn)行設(shè)置。它有兩種控制字:工作方式控制字和C口置位/復(fù)位控制字。 應(yīng)注意的是,作為聯(lián)絡(luò)線使用的C口各位是不能采用置位/復(fù)位操作來使其置位或復(fù)位的。其數(shù)值應(yīng)視現(xiàn)場的具體情況而定。,8255A控制字格式
26、(a)工作方式控制字; (b)C口置位/復(fù)位控制字,(4)接口與編程方法 MCS-51單片機(jī)外擴(kuò)8255A芯片的電路原理圖如下圖所示。8255A芯片內(nèi)部已有數(shù)據(jù)總線驅(qū)動器,可以直接與MCS-51單片機(jī)總線相連接(P0口接D0D7)。8255A的RESET,RD,WR,CS 分別與MCS-51單片機(jī)的RESET,RD,WR,P2.7相連,單片機(jī)地址線最低2位分別接8255A芯片的A1,A0。PA, PB, PC及控制寄存器的地址分別是7FFCH, 7FFDH, 7FFEH和7FFFH。,例:如圖上頁所示,假設(shè)8255A芯片的PA接8只狀態(tài)指示燈,PB接8個(gè)開 關(guān),現(xiàn)須將開關(guān)閉合的狀態(tài)輸入到片內(nèi)6
27、0H單元保存,將70H單元的內(nèi)容送 狀態(tài)指示燈顯示,并置位PC7引腳,編寫相應(yīng)程序。 解:根據(jù)題意,設(shè)置8255A的A口方式0輸出,B口方式0輸入,C口高四位輸 出,則8255A的方式字為82(10000010B),C口置位/復(fù)位字為0FH (00001111B),8255A的方式字及置位/復(fù)位控制字地址為7FFFH。初始 化過程及輸入/輸出的程序如下: ORG 1000H DSP8255: MOV DPTR, #7FFFH ; 數(shù)據(jù)指針指向8255A控制口 MOV A, #82H MOVX DPTR, A; 工作方式字送8255A控制口 MOV A, #0FH MOVX DPTR, A ;
28、C口置位/復(fù)位字送8255A控制口 MOV DPTR, #7FFDH ; 數(shù)據(jù)指針指向8255A 的B口 MOVX A, DPTR MOV 60H, A; 將B口開關(guān)狀態(tài)送入60H單元 MOV DPTR, #7FFCH ; 數(shù)據(jù)指針指向8255A 的A口 MOV A, 70H MOVX DPTR, A; 70H單元內(nèi)容A口指示燈顯示 RET END,3.5 定時(shí)器/計(jì)數(shù)器的應(yīng)用,定時(shí)器/計(jì)數(shù)器可按片內(nèi)機(jī)器周期定時(shí),也可對由T0/T1引 腳輸入一個(gè)負(fù)脈沖進(jìn)行加法計(jì)數(shù)。在應(yīng)用時(shí),其工作方式和 工作過程均可通過程序設(shè)定和控制,因此,定時(shí)器/計(jì)數(shù)器在 工作前必須先對其進(jìn)行初始化,計(jì)算和設(shè)置初值。 1.
29、 定時(shí)器/計(jì)數(shù)器初始化的步驟 (1)寫TMOD,設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式 (2)計(jì)算定時(shí)器/計(jì)數(shù)器的初值,寫入TH0/TH1、TL0/TL1。 (3)設(shè)置IE、IP,以開放相應(yīng)的中斷和設(shè)定中斷優(yōu)先級。,2. 定時(shí)器T0/T1 中斷申請過程 (1)在已經(jīng)開放T0/T1中斷允許且已被啟動的前提下, T0/T1加1計(jì)滿溢出時(shí) TF0/TF1標(biāo)志位自動置“1” ; (2)CPU檢測到TCON中TF0/TF1變“1”后,將產(chǎn)生指令: LCALL 000BH/LCALL 001BH 執(zhí)行中斷服務(wù)程序; (3)TF0/TF1標(biāo)志位由硬件自動清“0”,以備下次中斷申請。 3. 定時(shí)器/計(jì)數(shù)器的定時(shí)器/計(jì)數(shù)
30、器范圍 (1)工作方式0:13位定時(shí)器/計(jì)數(shù)器方式 最大計(jì)數(shù)值= 213 = 8192 (2)工作方式1:16位定時(shí)器/計(jì)數(shù)器方式 最大計(jì)數(shù)值= 216 = 65536 (3)工作方式2和工作方式3:8位的定時(shí)器/計(jì)數(shù)器方式 最大計(jì)數(shù)值= 28 = 256,4.定時(shí)器/計(jì)數(shù)器應(yīng)用舉例 例:設(shè)一只發(fā)光二極管LED和8051的P1.0腳相連。當(dāng)P1.0腳 是低電平時(shí),LED發(fā)亮;當(dāng)P1.0腳是高電平時(shí),LED不亮。 編制程序用定時(shí)器來實(shí)現(xiàn)發(fā)光二極管LED的閃爍功能,設(shè)置 LED每1s閃爍一次。已知單片機(jī)系統(tǒng)主頻為12MHz。 解:定時(shí)器/計(jì)數(shù)器的最長的定時(shí)是65.536ms,無法實(shí)現(xiàn)1s 的定時(shí)。
31、可以采用軟件計(jì)數(shù)器來進(jìn)行設(shè)計(jì)。,設(shè)計(jì)思想:定義一個(gè)軟件計(jì)數(shù)器單元30H,先用定時(shí)器/計(jì)數(shù)器0做一個(gè)50ms的定時(shí)器,定時(shí)時(shí)間到了以后將軟件計(jì)數(shù)器中的值加1,如果軟件計(jì)數(shù)器計(jì)到了20,取反P1.0,并清掉軟件計(jì)數(shù)器中的值,否則直接返回。則完成了20次定時(shí)中斷才取反一次P1.0,因此定時(shí)時(shí)間就為2050=1000ms=1s。 定時(shí)器/計(jì)數(shù)器0采用工作方式1,其初值為: 21650ms/1s=6553650000=15536=3CB0H 電路圖如下:,程序如下: ORG 0000H AJMP START ; 轉(zhuǎn)入主程序 ORG 000BH ; 定時(shí)器/計(jì)數(shù)器0的中斷服務(wù)程序入口地址 AJMP TIM
32、E0 ; 跳轉(zhuǎn)到真正的定時(shí)器中斷服務(wù)程序處 ORG 0030H START: MOV SP, #60H ; 設(shè)置堆棧指針 MOV P1, #0FFH ; 關(guān)發(fā)光二極管LED(使其滅) MOV 30H, #00H ; 軟件計(jì)數(shù)器預(yù)清0 MOV TMOD, # 01H ; 定時(shí)器/計(jì)數(shù)器0工作于方式1 MOV TH0, #3CH ; 設(shè)置定時(shí)器/計(jì)數(shù)器的初值 MOV TL0, #0B0H SETB EA ; 開總中斷允許 SETB ET0 ; 開定時(shí)器/計(jì)數(shù)器0中斷允許 SETB TR0 ; 啟動定時(shí)器/計(jì)數(shù)器0 LOOP: AJMP LOOP ; 循環(huán)等待 (真正工作時(shí),這里可寫任意其他程序),定時(shí)器/計(jì)數(shù)器0的中斷服務(wù)程序1: TIME0: PUSH ACC ; 將PSW和ACC推入堆棧保護(hù) PUSH PSW INC 30H ; 軟件計(jì)數(shù)器加1 MOV A, 30H CJNE A, #20, T_LP2; 軟件計(jì)數(shù)器單元中的值到了20了嗎? 到了,繼續(xù)執(zhí)行; 否則T_LP2 T_LP1: CPL P1.0 ; 到了,P1.0取反 MOV 30H, #00H; 清軟件計(jì)數(shù)器(或置初值20
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026福建三明市尤溪縣總醫(yī)院醫(yī)學(xué)人才校園(福建中醫(yī)藥大學(xué))專場公開招聘7人的通告考試備考題庫附答案
- 2026福建龍巖市第一醫(yī)院醫(yī)療類引進(jìn)生招聘16人參考題庫附答案
- 2026西藏自治區(qū)定向選調(diào)生招錄(70人)考試備考題庫附答案
- 公共交通乘客信息管理制度
- 2026黑龍江哈爾濱啟航勞務(wù)派遣有限公司派遣到哈工大計(jì)算學(xué)部社會計(jì)算與交互機(jī)器人研究中心招聘1人參考題庫附答案
- 北京市公安局輔警崗位招聘300人備考題庫附答案
- 景德鎮(zhèn)市公安局2025年下半年招聘警務(wù)輔助人員體能測評考試備考題庫附答案
- 特飛所2026屆校園招聘考試備考題庫附答案
- 鄰水縣2025年下半年公開考調(diào)公務(wù)員(21人)參考題庫附答案
- 2026陜西省面向中國政法大學(xué)招錄選調(diào)生考試備考題庫附答案
- 營地合作分成協(xié)議書
- GB/T 70.2-2025緊固件內(nèi)六角螺釘?shù)?部分:降低承載能力內(nèi)六角平圓頭螺釘
- 基于視頻圖像的大型戶外場景三維重建算法:挑戰(zhàn)、創(chuàng)新與實(shí)踐
- 物流管理畢業(yè)論文范文-物流管理畢業(yè)論文【可編輯全文】
- 2025年四川省高職單招模擬試題語數(shù)外全科及答案
- 2025年江蘇事業(yè)單位教師招聘體育學(xué)科專業(yè)知識考試試卷含答案
- 壁球裁判試題及答案
- 網(wǎng)絡(luò)銷售人員培訓(xùn)
- 設(shè)備租賃績效考核與激勵方案設(shè)計(jì)實(shí)施方法規(guī)定
- 合肥市軌道交通集團(tuán)有限公司招聘筆試題庫及答案2025
- 攝影攝像直播合同范本
評論
0/150
提交評論