【正文】
下,震蕩器停止工作,進(jìn)入掉電模式的指令是最后一條被執(zhí)行的指令, 片內(nèi) RAM 和特殊功能寄存器的內(nèi)容在終止掉電模式前被凍結(jié)。退出掉電模式的唯一方法是硬件復(fù)位,復(fù)位后將重新定義全部特殊功能寄存器但不改變 RAM 中的內(nèi)容,在 VCC 恢復(fù)到正常工作電平前,復(fù)位應(yīng)無(wú)效,且必須保持一定時(shí)間以使振蕩器重啟動(dòng)并穩(wěn)定工作。 程序存儲(chǔ)器的加密: AT89C51 可使用對(duì)芯片上的 3 個(gè)加密位進(jìn)行編程( P)或不編程( U)來(lái)得到如下表所示的功能: 加密位保護(hù)功能表 程序加密位 保護(hù)類型 LB1 LB2 LB3 1 U U U 沒(méi)有程序保護(hù)功能 2 P U U 禁止從外部程序存儲(chǔ)器中執(zhí)行 MOVC 指令 讀取內(nèi)部程序存儲(chǔ)器的內(nèi)容 3 P P U 除上表功能外,還禁止程序校驗(yàn) 4 P P P 除以上功能外,同時(shí)禁止外部執(zhí)行 當(dāng)加密位 LB1 被編程時(shí),在復(fù)位期間, EA 端的邏輯電平被采樣并鎖存,如果單片機(jī)上電后一直沒(méi)有復(fù)位,則鎖存起的初始值是一個(gè)隨機(jī)數(shù),且這個(gè)隨機(jī)數(shù)會(huì)一直保持到真正復(fù)位為止。為使單片機(jī)能正常工作,被鎖存的 EA 電平值必須與該引腳當(dāng)前的邏輯電平一致。此外,加密位只能通過(guò)整片擦除的方法第 6 頁(yè) ( 共 15 頁(yè) ) 清除。 FLASH 閃速存儲(chǔ)器的編程 AT89C51 單片機(jī)內(nèi)部有 4K 字節(jié)的 FLASH PEROM,這個(gè) FLASH 存儲(chǔ)陣 列出廠時(shí)已處于擦除狀態(tài)(即所有存儲(chǔ)單元的內(nèi)容均為 FFH),用戶隨時(shí)可對(duì)其進(jìn)行編程。編程接口可接收高電平( +12V)或低電平( VCC)的允許編程信號(hào),低電平編程模式適合于用戶再線編程系統(tǒng),而高電平編程模式可與通用 EPROM編程器兼容。 AT89C51 單片機(jī)中,有些屬于低電壓編程方式,而有些則是高電平編程方式,用戶可從芯片上的型號(hào)和讀取芯片內(nèi)的簽名字節(jié)獲得該信息 。 AT89C51 的程序存儲(chǔ)器陣列是采用字節(jié)寫入方式編程的,每次寫入一個(gè)字節(jié),要對(duì)整個(gè)芯片內(nèi)的 PEROM 程序存儲(chǔ)器寫入一個(gè)非空字節(jié),必須使用片擦除的方式 將整個(gè)存儲(chǔ)器的內(nèi)容清除。 編程方法 編程前,需設(shè)置好地址,數(shù)據(jù)及控制信號(hào), AT89C51 編程方法如下: 1. 在地址線上加上要編程單元的地址信號(hào)。 2. 在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。 3. 激活相應(yīng)的控制信號(hào)。 4. 在高電壓編程方式時(shí),將 ^EA/VPP 端加上 +12V編程電壓。 5. 每對(duì) FLASH 存儲(chǔ)陣列寫入一個(gè)字節(jié)或每寫入一個(gè)程序加密位,加上一個(gè) ALE/^PROG 編程脈沖,改變編程單元的地址和寫入的數(shù)據(jù),重復(fù) 1—5 步驟,直到全部文件編程結(jié)束。每個(gè)字節(jié)寫入周期是自身定時(shí)地,通常約為 。 數(shù)據(jù)查詢: AT89C51 單片機(jī)用數(shù) 據(jù)查詢方式來(lái)檢測(cè)一個(gè)寫周期是否結(jié)束,在一個(gè)寫周期中,如需要讀取最后寫入的那個(gè)字節(jié),則讀出的數(shù)據(jù)的最高位( )是原來(lái)寫入字節(jié)最高位的反碼。寫周期完成后,有效的數(shù)據(jù)就會(huì)出現(xiàn)在所有輸出端上,此時(shí),可進(jìn)入下一個(gè)字節(jié)的寫周期,寫周期開(kāi)始后,可在任意時(shí)刻進(jìn)行數(shù)據(jù)查詢。 READY/^BUSY:字節(jié)編程的進(jìn)度可通過(guò) “RDY/^BSY”輸出信號(hào)監(jiān)測(cè),編程期間, ALE 變?yōu)楦唠娖?“H”后 (RDY/^BSY)端電平被拉低,表示正在編程第 7 頁(yè) ( 共 15 頁(yè) ) 狀態(tài)(忙狀態(tài))。編程完成后, 變?yōu)楦唠娖奖硎緶?zhǔn)備就緒狀態(tài)。 程序校驗(yàn):如果加 密位 LB LB2 沒(méi)有進(jìn)行編程,則代碼數(shù)據(jù)可通過(guò)地址和數(shù)據(jù)線讀回原編寫的數(shù)據(jù)。加密位不可能直接變化。證實(shí)加密位的完成通過(guò)觀察它們的特點(diǎn)和能力。 芯片擦除:利用控制信號(hào)的正確組合并保持 ALE/^PROG 引腳 10ms 的低電平脈沖寬度即可將 PEROM 陣列( 4k字節(jié))整片擦除,代碼陣列在擦除操作中將任何非空單元寫入 “1”,這步驟需要再編程之前進(jìn)行。 讀片內(nèi)簽名字節(jié): AT89C51 單片機(jī)內(nèi)有 3 個(gè)簽名字節(jié),地址為 030H、 031H和 032H。用于聲明該器件的廠商、型號(hào)和編程電壓。讀簽名字節(jié)的過(guò)程和單元030H、 031H 和 032H 的正常校驗(yàn)相仿,只需將 和 保持低電平,返回值意義如下: ( 030H) =1EH 聲明產(chǎn)品由 ATMEL公司制造。 ( 031H) =51H 聲明為 AT89C51 單片機(jī)。 ( 032H) =FFH 聲明為 12V編程電壓。 ( 032H) =05H 聲明為 5V編程電壓。 編程接口:采用控制信號(hào)的正確組合可對(duì) FLASH 閃速存儲(chǔ)陣列中的每一代碼字節(jié)進(jìn)行寫入和存儲(chǔ)器的整片擦除,寫操作周期是自身定時(shí)的,初始化后它將自動(dòng)定時(shí)到操作完成。AT89C51 MCU Introduction 第 8 頁(yè)(共 15 頁(yè)) AT89C51 MCU Introduction Description The AT89C51 is a lowpower, highperformance CMOS 8bit microputer with 4K bytes of Flash Programmable and Erasable Read Only Memory (PEROM) and 128 bytes RAM. The device is manufactured using Atmel’s high density nonvolatile memory technology and is patible with the industry standard MCS51? instruction set and pinout. The chip bines a versatile 8bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microputer which provides a highly flexible and cost effective solution to many embedded control applications. Features ? Compatible with MCS51? Products ? 4K Bytes of InSystem Reprogrammable Flash Memory ? Endurance: 1,000 Write/Erase Cycles ? Fully Static Operation: 0 Hz to 24 MHz ? ThreeLevel Program Memory Lock ? 128 x 8Bit Internal RAM ? 32 Programmable I/O Lines ? Two 16Bit Timer/Counters ? Six Interrupt Sources ? Programmable Serial Channel ? Low Power Idle and Power Down Modes 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 Power Down Mode saves the RAM contents but freezes the oscillator AT89C51 MCU Introduction 第 9 頁(yè)(共 15 頁(yè)) disabling all other chip functions until the next hardware reset. Pin Description VCC Supply voltage. GND Ground. Port 0:Port 0 is an 8bit open drai