【正文】
個(gè)硬件復(fù)位到來(lái)。AT89C2051是愛(ài)特美爾微控制器家族中經(jīng)濟(jì)劃算的一款產(chǎn)品。它包含2K字節(jié)的閃速程度存儲(chǔ)器。它與MCS51架構(gòu)完全兼容,并且可以使用MCS51指令組來(lái)編程。但是當(dāng)使用有些特定指令編程的時(shí)候,有幾點(diǎn)必須注意。與跳轉(zhuǎn)和分支相關(guān)的所有指令應(yīng)該被限制,使得目標(biāo)地址落在該單片機(jī)的物理內(nèi)存范圍之內(nèi),對(duì)AT89C2051來(lái)說(shuō)是2K。程序員應(yīng)對(duì)此負(fù)責(zé)。例如,對(duì)AT89C2051(帶2K內(nèi)存)來(lái)說(shuō),LJMP 7E是一個(gè)正確的指令,而LJMP 900H卻是錯(cuò)誤的。(1).分支程序指令: LCALL,LJMP,ACALL,AJMP,SJMP,JMP @A+DPTR只要編程者注意使這些指令的目標(biāo)地址落在程序存儲(chǔ)器大小(對(duì)89C2051來(lái)說(shuō)是00H到7FFH)的物理界限內(nèi),這些無(wú)條件分支指令將正確執(zhí)行。超出物理空間界限會(huì)導(dǎo)致未知的程度行為。CJNE[…],DJNZ[…],JB, JNB, JC, JNC, JBC, JN, JNZ這些條件分支指令也適合上面的規(guī)則。同樣,超出內(nèi)存界限,會(huì)導(dǎo)致不正確的執(zhí)行結(jié)果。對(duì)于包括中斷的應(yīng)用,80C51家族架構(gòu)的正常中斷服務(wù)線程地址位置已被保留。(2). MOVX相關(guān)指令,數(shù)據(jù)內(nèi)存: AT89C2051包含128字節(jié)的內(nèi)部數(shù)據(jù)存儲(chǔ)器。于是,AT89C2051的堆棧深度被限制為128字節(jié),可用RAM的大小。該單片機(jī)不支持外部數(shù)據(jù)存儲(chǔ)器的存取,也不支持外部程序存儲(chǔ)器的執(zhí)行。所以,在程度中不應(yīng)該包含MOVX[…]指令。典型的80C51匯編程度仍可用于匯編指令,即便它們違反了上面提到的限制條件。了解所用單片機(jī)的物理特性和限制,并對(duì)指令做相應(yīng)的調(diào)整是控制器使用者的責(zé)任。(3):程序存儲(chǔ)器加密 芯片上有兩個(gè)鎖位(加密位),可以不對(duì)它們編程(U),也可以對(duì)它們編程(P)來(lái)獲得如下表所列的附加特性:鎖存位保護(hù)模式(1)程序鎖存位加密模式LB1LB2加密類型1UU無(wú)程序加密特性2PU禁止再對(duì)閃存編程3PP同模式2,同時(shí)禁止檢驗(yàn)閃存注意:。(4):空閑模式 在空閑模式下,CPU自己轉(zhuǎn)入睡眠狀態(tài),而芯片上其余所有的外圍單元保持活動(dòng)狀態(tài)。該模式由軟件調(diào)用。在該模式中,芯片級(jí)RAM和所有特殊功能寄存器的內(nèi)容保持不變??臻e模式可以由任意有效的中斷或硬件復(fù)位來(lái)終止。如果未使用外部上拉電阻,“0”,而如果用了外部上拉電阻,它們應(yīng)該被置為“1”。應(yīng)該注意,當(dāng)空閑模式被硬件復(fù)位終止時(shí),單片機(jī)從它轉(zhuǎn)入睡眠前的狀態(tài)恢復(fù)到正常的程序執(zhí)行狀態(tài),比內(nèi)部復(fù)位算法獲得控制權(quán)提前兩個(gè)機(jī)器周期。在這種場(chǎng)合,芯片內(nèi)的硬件禁止訪問(wèn)內(nèi)部RAM,但訪問(wèn)端口引線是允許的。為了消除當(dāng)空閑模式被復(fù)位終止時(shí)可能往端口作不希望發(fā)生的寫入操作,調(diào)用空閑模式指令后面緊跟的那條指令不應(yīng)該是寫端口或?qū)懲獠績(jī)?nèi)存的指令。(5):低功耗模式 在低功耗模式下,振蕩器被停止,調(diào)用低功耗模式的指令是被執(zhí)行的最后一條指令。芯片級(jí)RAM和特殊功能寄存器保持它們的值,直到低功耗模式終止。終止低功耗模式的唯一方法硬件復(fù)位。復(fù)位操作重定義SFR,但是不會(huì)改變芯片級(jí)RAM。復(fù)位動(dòng)作應(yīng)在Vcc恢復(fù)到正常工作電平時(shí)進(jìn)行,而且必須保持足夠長(zhǎng)的時(shí)間,以使振蕩器重啟動(dòng)并趨于穩(wěn)定。如果未使用外部上拉電阻,“0”,而如果用了外部上拉電阻,它們應(yīng)該被置為VCC 電源電壓(6)電源電壓(7)地(8):端口1(Port 1) 端口1是一個(gè)8位雙向I/O口。(AIN0)和負(fù)輸入(AIN1)。端口1輸出緩沖器可吸收20mA的電流,可以直接驅(qū)動(dòng)LED顯示器。當(dāng)向端口1寫入1的時(shí)候,它們可以作為輸入。,由于內(nèi)部上拉電阻,它們將輸出電流(IIL)。當(dāng)對(duì)閃存編程和檢驗(yàn)時(shí),端口1也接收代碼數(shù)據(jù)。(9):端口3(Port 3),帶內(nèi)部上拉電阻。,它接到芯片級(jí)比較器的輸出端,不能當(dāng)作通用的I/O口使用。端口3的輸出緩沖器能吸收20mA的電流。當(dāng)端口3的引線被寫入1時(shí),它們由內(nèi)部上拉電阻拉為高電平,可以用作輸入。作為輸入時(shí),如果端口3的引線被外部拉低,由于內(nèi)部上拉電阻的作用,它們將輸出電流(IIL)。(10)端口3也為AT89C2051的許多特殊功能服務(wù),如下表:端口號(hào)替代功能(串行輸入口)(串行輸出口) (外部中斷0) (外部中斷1)(定時(shí)器0外部輸入)(定時(shí)器1外部輸入)當(dāng)對(duì)閃存編程和檢驗(yàn)時(shí),端口3也接收一些控制信號(hào)。(11):RST 復(fù)位輸入。當(dāng)RST引線被置為高電平時(shí),所有的I/O口復(fù)位為1。當(dāng)振蕩器工作的時(shí)候,保持RST的高電平兩個(gè)機(jī)器周期,將使單片機(jī)復(fù)位。每個(gè)機(jī)器周期為12個(gè)振蕩器或時(shí)鐘周期。(12):XTA2內(nèi)部反向振蕩放大器的輸出。(13):XTA1 反向振蕩放大器和內(nèi)部時(shí)鐘工作電路的輸入。(14):振蕩器的特性 XTAL1和XTAL2分別是反向放大器的輸入和輸出,該放大器可設(shè)置用作芯片級(jí)的振蕩器,如圖1所示。石英晶振和陶瓷諧振器均可使用。要使用外部時(shí)鐘源來(lái)驅(qū)動(dòng)單片機(jī),XTAL2應(yīng)該被留空,而從XTA1接入時(shí)鐘信號(hào),如圖2所示。由于通過(guò)一個(gè)兩分頻觸發(fā)器輸入到內(nèi)部時(shí)鐘電路,所以對(duì)外部時(shí)鐘的占空比不作要求,但是必須注意最小和最大電壓的高低時(shí)間規(guī)格。外文資料翻譯譯文(2) 2464 EEPROM存儲(chǔ)器24C64為I2C總線的E2PROM。 SCL為400kHz時(shí)鐘線,SDA為雙向數(shù)據(jù)線,AAA0三位為片選地址,即I2C總線上最多可并聯(lián)8個(gè)串行E2PROM芯片。對(duì)E2PROM的操作方式由讀寫控制命令字決定,如圖4所示。其中1010為4位讀寫控制碼,R/W為讀寫控制位:0為寫操作,1為讀操作。所以結(jié)合圖1可知A2H為寫控制命令字,A3H為讀控制命令字。對(duì)存儲(chǔ)器寫操作,首先,單片機(jī)向24C64發(fā)一個(gè)START命令,產(chǎn)生開始條件。然后,發(fā)寫命令控制字(如A2H)。當(dāng)24C64接到命令后,進(jìn)入一個(gè)寫周期,再由單片機(jī)發(fā)送存儲(chǔ)地址,即確定數(shù)據(jù)寫入到存儲(chǔ)器的哪個(gè)地址,隨后,單片機(jī)將要存儲(chǔ)的數(shù)據(jù)送入到SDA數(shù)據(jù)線上。寫周期結(jié)束時(shí),單片機(jī)再發(fā)一停止位(STOP)。對(duì)存儲(chǔ)器讀操作,首先,單片機(jī)向24C64發(fā)一個(gè)START命令,產(chǎn)生開始條件。然后發(fā)寫命令控制字(如A2H)。當(dāng)24C64接到命令后,進(jìn)入一個(gè)寫周期,再由單片機(jī)發(fā)送存儲(chǔ)地址。存儲(chǔ)地址發(fā)送成功后,單片機(jī)又向24C64發(fā)一個(gè)START命令,產(chǎn)生開始條件,然后發(fā)讀命令控制字(A3H)。當(dāng)24C64接到命令后,進(jìn)入一個(gè)讀周期,單片機(jī)從SDA數(shù)據(jù)線上讀出指定存儲(chǔ)地址中的數(shù)據(jù)。讀周期結(jié)束時(shí),單片機(jī)再發(fā)一停止位(STOP)。值得注意的是,對(duì)存儲(chǔ)器操作時(shí),每讀寫一個(gè)字節(jié),單片機(jī)必須送一個(gè)應(yīng)答位(ACK),釋放一下SDA數(shù)據(jù)線,以便存儲(chǔ)器能繼續(xù)接收數(shù)據(jù)。外文資料翻譯譯文(3)LCM0825 8位液晶顯示模塊技術(shù)說(shuō)明1:特點(diǎn)及功用LCM0825 為 8 位 8 段液晶顯示模塊 34 線串行接口 可與任何單片機(jī)接口, IC接口。其低功耗特性,顯示狀態(tài)50μA,典型值省電模式1μA。工作電壓 。視角對(duì)比度可調(diào),顯示清晰,穩(wěn)定可靠,使用編程簡(jiǎn)單。由于LCM0825內(nèi),有上拉電阻,為保證低功耗,每次送數(shù)之后,/CS, /RD, /WR, DATA必須接高電平或懸浮。根據(jù)采用的MCU不同,采用不同方式接口,不必使用分壓電阻。若MCU與LCM0825土作電壓相同,可直接相接。2:模塊使用注息事項(xiàng)(1)模塊上電后,軟件初始化模塊,應(yīng)延時(shí)200ms以上再送命令。第一寫入模塊令用初始化命令100 0010 100:定義模塊。第二100 0001 1000定義內(nèi)部RC振蕩方式或100 0001 0100定義外部況,體振蕩方式(模塊必須為32768Hz)。第三l000000 0001開振蕩。第四100 0000 0011開顯示器。以上四步完成后再送其它命令或顯示數(shù)據(jù),對(duì)顯示的數(shù)據(jù)正確與否,可選用讀RAM方式進(jìn)行校驗(yàn)。為實(shí)現(xiàn)低功耗方式,這次讀/寫命令完數(shù)據(jù)之后,應(yīng)將//CS, /RD, /WR, DATA置高電平或懸空。(2)LCM0825顯示RAM對(duì)應(yīng)8位字符,RAM表數(shù)據(jù)位為1則顯示,為0則滅。(3)VLCD必須接!,VLCD腳與VDD直接相接,當(dāng)模塊正負(fù)電壓 S2調(diào)節(jié),參考值:5 V/36K o(4)模塊掉電再上電時(shí),應(yīng)上電延時(shí)后,對(duì)//CS進(jìn)行幾個(gè)10μs以上的高電平脈沖,讓模塊復(fù)位。(5)模塊安裝時(shí)應(yīng)使用PCB定位孔固定,并保持平整不變形,不應(yīng)使LCD玻璃受力變形,模塊不得摔碰,嚴(yán)格禁止模塊帶電焊接,且要將焊接工具接地。附錄2:外文原文(復(fù)印件1)TheAT89C2051 function introductionFeaturesCompatible with MCS51? Products2K Bytes of Reprogrammable Flash Memory Endurance: 1,000 Write/Erase Cycles to 6V Operating RangeFully Static Operation: 0 Hz to 24 MHzTwolevel Program Memory Lock128 x 8bit Internal RAM15 Programmable I/O LinesTwo 16bit Timer/CountersSix Interrupt SourcesProgrammable Serial UART ChannelDirect LED Drive OutputsOnchip Analog ComparatorLowpower Idle and Powerdown ModesDescriptionThe AT89C2051 is a lowvoltage, highperformance CMOS 8bit microputer with2K bytes of Flash programmable and erasable read only memory (PEROM). Thedevice is manufactured using Atmel39。s highdensity nonvolatile memory technologyand is patible with the industrystandard MCS51 instruction set. By bining aversatile 8bit CPU with Flash on a monolithic chip, the Atmel AT89C2051 is a powerfulmicroputer which provides a highlyflexible and costeffective solution to manyembedded control applications.The AT89C2051 provides the following standard features: 2K bytes of Flash, 128bytes of RAM, 15 I/O lines, two 16bit timer/counters, a five vector twolevel interrupt architecture, a full duplex serial port, a precision analog parator, onchip oscilla to rand clock circuitry. In addition, the AT89C2051 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, serialport and interrupt system to continue functioning. The powerdown mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the nexthardware reset.The AT89C2051 and is an economical and costeffective member of Atmel’s growing family of microcontrollers. It contains 2K bytes of flash program memory. It is fully patible with the MCS51 architecture, and can be programmed using the MCS51 instruction set. However, there are a few considerations one must keep in mind when utilizing certain instruct