【正文】
工作。需要注意的是:當(dāng)由硬件復(fù)位 來終止閑散工作模式時,中央處理器 CPU 通常是從激活空閑模式那條指令的下一條開始繼續(xù)執(zhí)行程序的,要完成內(nèi)部復(fù)位操作,硬件復(fù)位脈沖要保持兩個機器周期有效,在這種情況下,內(nèi)部禁止中央處理器 CPU 訪問片內(nèi) RAM,而允許訪問其他端口,為了避免可能對端口產(chǎn)生的意外寫入:激活閑散模式的那條指令后面的一條指令不應(yīng)是一條對端口或外部存儲器的寫入指令。程序會首先影響中斷,進入中斷服務(wù)程序,執(zhí)行完中斷服務(wù)程序,并緊隨 RETI 指令后,下一條要執(zhí)行沈陽航空工業(yè)學(xué)院電子工程系畢業(yè)設(shè)計( 外文翻譯 ) 5 的指令就是使單片機進入閑散工作模式,那條指令后面的一條指令。閑散模式可由任何允許的中斷請求或硬件復(fù)位終止。在閑散工作模式狀態(tài),中央 處理器 CPU保持睡眠狀態(tài),而所有片內(nèi)的外設(shè)仍保持激活狀態(tài),這種方式由軟件產(chǎn)生。 IDL 是閑散等待方式,當(dāng) IDL=1,激活閑散工作狀態(tài),單片機進入睡眠狀態(tài)。這兩種方式是控制專用寄存器 PCON 中的 PD 和 IDL 位來實現(xiàn)的。由于外部時鐘信號是通過一個 2 分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技 術(shù)條件的要求。采用外部時鐘的電路如圖示。10PF。如果使用石英晶體,我們推薦電容使用 30PF177。 外接石英晶體及電容 C1, C2 接在放大器的反饋回路中構(gòu)成并聯(lián)震蕩電路。 時鐘震蕩器 AT89C51 中有一個用于構(gòu)成內(nèi)部震蕩器的高增益反相放大器,引腳 XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端。 XTAL1:震蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。如 EA 端為高電平, CPU 則執(zhí)行 內(nèi)部程序存儲器中的指令。欲使中央處理器僅訪問外部程序存儲器, EA 端必須保持低電平。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器時,這兩次有效的 PSEN 信號不出現(xiàn)。此外,這個引腳會微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置 ALE 無效。如果必要,可對特殊寄存器區(qū)中的 8EH 單元的 D0 位置禁止 ALE 操作。即使不訪問外部存儲器, ALE 以時鐘震蕩頻率的 1/16 輸出固定的正脈沖信號,因此它可對輸出時鐘或用于定時目的。當(dāng)震蕩器工作時, RET 引腳出現(xiàn)兩個機器周期以上的高電平將使單片機復(fù)位。 P3 口除了作為一般的 I/O 口外,更重要的用途是它的第二功能,如下表所示: 端口引腳 第二功能 RXD TXD INT0 INT1 T0 T1 WR RD P3 口還接收一些用于閃爍存儲器編程和程序校驗的控制信號。 P3 口 : P3 口是一組帶有內(nèi)部電阻的 8 位雙向 I/O 口, P3 口輸出緩沖故可驅(qū)動 4 個 TTL電路。在訪問 8 位地址的外部數(shù)據(jù)存儲器時, P2 口線上的內(nèi)容在整個運行期間不變。因為內(nèi)部有電阻,某個引腳被外部信號拉低時會輸出一個電流。 P2 口 : P2 口是一個內(nèi)部帶有上拉電阻的 8 位雙向 I/O 口, P2 的輸出緩沖級可驅(qū)動 4 個TTL 電路。因為內(nèi)部有電阻,某個引 腳被外部信號拉低時輸出一個電流。 沈陽航空工業(yè)學(xué)院電子工程系畢業(yè)設(shè)計( 外文翻譯 ) 2 P1 口 : P1 口一個帶內(nèi)部上拉電阻的 8 位雙向 I/O 口, P1 的輸出緩沖級可驅(qū)動 4 個 TTL電路。 P0 口還能夠在訪問外部數(shù)據(jù)存儲器或程序存儲器時,轉(zhuǎn)換地址和數(shù)據(jù)總線復(fù)用,并在這時激活內(nèi)部的上拉電阻。作為輸出口時,每一個管腳都能夠驅(qū)動 8 個 TTL 電路。掉電方式保存隨機存取數(shù)據(jù)存儲器中的內(nèi)容,但震蕩器停止工作并禁止其它所有部件的工作直到下一個復(fù)位。另外, AT89C51 還可以進行 0HZ 的靜態(tài)邏輯操作,并支持兩種軟件的節(jié)電模式。片內(nèi)含有 8 位中央處理器和閃爍存儲單元,有較強的功能的 AT89C51 單片機能夠被應(yīng)用到控制領(lǐng)域中。沈陽航空工業(yè)學(xué)院電子工程系畢業(yè)設(shè)計( 外文翻譯 ) 1 AT89C51 的介紹 ( 原文出處: : //) 描述 AT89C51 是一個低電壓,高性能 CMOS8 位單片機帶有 4K 字節(jié)的可反復(fù)擦寫的程序存儲器( PENROM)。和 128 字節(jié)的存取數(shù)據(jù)存儲器( RAM),這種器件采用ATMEL 公司的高密度、不容易丟失存儲技術(shù)生產(chǎn),并且能夠與 MCS51 系列的單片機兼容。 功能特性 AT89C51 提供以下 的功能標(biāo)準(zhǔn): 4K 字節(jié)閃爍存儲器, 128 字節(jié)隨機存取數(shù)據(jù)存儲器, 32 個 I/O 口, 2 個 16 位定時 /計數(shù)器, 1 個 5 向量兩級中斷結(jié)構(gòu), 1 個串行通信口,片內(nèi)震蕩器和時鐘電路。閑散方式停止中央處理器的工作,能夠允許隨機存取數(shù)據(jù)存儲器、定時 /計數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作。 引腳描述 VCC:電源電壓 GND:地 P0 口 : P0 口是一 組 8 位漏極開路雙向 I/O 口,即地址 /數(shù)據(jù)總線復(fù)用口。當(dāng) “1”被寫入 P0 口時,每個管腳都能夠作為高阻抗輸入端。 P0 口在閃爍編程時, P0 口接收指令,在程序校驗時,輸出指令,需要接電阻。對端口寫 “1”,通過內(nèi)部的電阻把端口拉到高電平,此時可作為輸入口。閃爍編程時和程序校驗時,P1 口接收低 8 位地址。對端口寫 “1”,通過內(nèi)部的電阻把端口拉到高電平,此時,可作為輸入口。在訪問外部程序存儲器或 16 位地址的外部數(shù)據(jù)存儲器時, P2 口送出高 8 位地址數(shù)據(jù)。閃爍編程或校驗時, P2口接收高位地址和其它控制信號。對 P3 口寫如 “1”時,它們被內(nèi)部電阻拉到高電平并可作為輸入端時,被外部拉低的 P3 口將用電阻輸出電流。 沈陽航空工業(yè)學(xué)院電子工程系畢業(yè)設(shè)計( 外文翻譯 ) 3 RST: 復(fù)位 輸入。 ALE/PROG : 當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時, ALE 輸出脈沖用于鎖存地址的低 8 位字節(jié)。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個 ALE 脈沖時,閃爍存儲器編程時,這個引腳還用于輸入編程脈沖。這個位置后只有一條MOVX 和 MOVC 指令 ALE 才會被應(yīng)用。 PSEN: 程序儲存允許輸出是外部程序存儲器的讀選通信號,當(dāng) AT89C51 由外部程序存儲器讀取指令時,每個機器周期兩次 PSEN 有效,即輸出兩個脈沖。 EA/VPP: 外部訪問允許。需要注意的是:如果加密位 LBI 被編程,復(fù)位時內(nèi)部會鎖存 EA 端狀態(tài)。閃爍存儲器編程時,該引腳加上 +12V的編程允許電壓 VPP,當(dāng)然這必須是該器件是使用 12V 編程電壓 VPP。 XTAL2:震蕩器反相放大器的輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自然震蕩器。對外接電容 C1, C2 雖然沒有十分嚴(yán)格的要求,但沈陽航空工業(yè)學(xué)院電子工程系畢業(yè)設(shè)計( 外文翻譯 ) 4 電容容量的大小會輕微影響震蕩頻率的高低、震蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。10PF,而如果使用陶瓷振蕩器建議選擇 40PF177。用戶也可以采用外部時鐘。這種情況下,外部時鐘脈沖接到 XTAL1 端,即內(nèi)部時鐘發(fā)生器的輸入端, XTAL2 則懸空。 內(nèi)部振蕩電路 外部振蕩電路 閑散節(jié)電模式 AT89C51 有兩種可用軟件編程的省電模式,它們是閑散模式和掉電工作模式。 PD 是掉電模式,當(dāng) PD=1 時,激活掉電工作模式,單片機進入掉電工作狀態(tài)。如需要同時進入兩種工作模式,即 PD 和 IDL 同時為 1,則先激活掉電模式。此時,片內(nèi)隨機存取數(shù)據(jù)存儲器和所有特殊功能寄存器的內(nèi)容保持不變。終止閑散工作模式的方法有兩種,一是任何一條被允許中斷的事件被激活, IDL 被硬件清除,即刻終止閑散工作模式。二是通過硬件復(fù)位也可將閑散工作模式終止。 掉電模式 在掉電模式下,振蕩器停止工作,進入掉電模式的指令是最后一條被執(zhí)行的指令,片內(nèi) RAM 和特殊功能寄存器的內(nèi)容在中指掉電模式前被凍結(jié)。 閑散和掉電模式外部引腳狀態(tài)。為了使單片機正常工作, 被鎖存的 EA 電平與這個引腳當(dāng)前輯電平一致。 沈陽航空工業(yè)學(xué)院電子工程系畢業(yè)設(shè)計( 外文翻譯 ) 7 Description The AT89C51 is a lowpower, highperformance CMOS 8bit microputer with 4K bytes of Flash programmable and erasable read only memory (PEROM). The device is manufactured using Atmel’s highdensity nonvolatile memory technology and is patible with the industrystandard MCS51 instruction set and pinout. The onchip Flash allows the program memory to be reprogrammed insystem or by a conventional nonvolatile memory programmer. By bining a versatile 8bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microputer which provides a highlyflexible and costeffective solution to many embedded control applications. Function characteristic The AT89C51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16bit timer/counters, a five vector twolevel interrupt architecture, a full duplex serial port, onchip oscillator and clock circuitry. In addition, the AT89C51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port and interrupt system to continue functioning. The Powerdown Mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the next hardware reset. Pin Description VCC: Supply voltage. GND: Ground. Port 0: Port 0 is an 8bit opendrain bidirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as highimpedance 0 may also be configured to be the multiplexed loworder address/data bus during accesses to external program and data memory. In this mode P0 has internal 0 also receives the code bytes during Flash programming,and outputs the code bytes during programverification. External pullups are required during programverification. 沈陽航空工業(yè)學(xué)院電子工程系畢業(yè)設(shè)計( 外文翻譯 ) 8 Port 1 Port 1 is an 8bit bidirectional I/O port with internal Port 1 output buffers can sink/source four TTL 1s are written to Port 1 pins they are pulled high by t