版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的外文翻譯畢業(yè)設(shè)計(jì)論文外文資料翻譯外文出處:外 文 .atmel/dyn/resources/prod _documents/doc0287.pdf
51單片機(jī)在編程電路中的應(yīng)用本應(yīng)用指南說明了AtmelAT89C51是可在線可編程的微控制器。它為電路編程提出了相應(yīng)的例子,程序的修改需要在線編程的支持。這類顯示方法在應(yīng)用程序中的AT89C51單片機(jī)可通過電話線遠(yuǎn)程控制。該應(yīng)用指南所描述的電路只支持5v電壓下編程。此應(yīng)用軟件可以到Atmel進(jìn)行下載??傉摦?dāng)不在進(jìn)行程序設(shè)計(jì)的時(shí)候,在電路設(shè)計(jì)中的AT89C51設(shè)計(jì)將變得透明化。在編程期間必須重視EA/VPP這一腳。在不使用外部程序存儲(chǔ)器的應(yīng)用程序中,這腳可能會(huì)永久接到VCC。應(yīng)用程序使用的外部程序存儲(chǔ)器要求這一腳為低電平才能正常運(yùn)行。RST在編程期間必須為高電平。應(yīng)該提供一種方法使得電路通入電源以后,使RST代替主要的復(fù)位電路起到復(fù)位的作用。在編程過程中,PSEN必須保持低電平,在正常運(yùn)行期間絕不能使用。ALE/PROG在編程過程中輸出低電平,在正常運(yùn)行期間絕不能使用。在編程過程中,AT89C51的I/O端口是用于模式應(yīng)用程序,地址和數(shù)據(jù)選擇的,可能需要該控制器從應(yīng)用的電路隔離。如何做到這一點(diǎn)取決于應(yīng)用程序。輸入端口在編程過程中,控制器必須與應(yīng)用電路的信號(hào)來源隔離。帶有三個(gè)輸出狀態(tài)的緩沖區(qū)會(huì)在應(yīng)用程序之間插入電路和控制器,同時(shí)在編程時(shí)緩沖區(qū)輸出三種狀態(tài)。一個(gè)多路復(fù)用器可用于信號(hào)源之間進(jìn)行選擇,適用于任何一方的應(yīng)用電路或編程控制器電路的信號(hào)。輸出端口如果應(yīng)用的電路可以允許端口在編程過程中的狀態(tài)變化,則不需要改變電路。如果應(yīng)用電路的狀態(tài),必須事先在編程過程中的保持不變,可能在控制器和應(yīng)用電路中插入鎖存。鎖存在編程期間是可用的,并保存應(yīng)用程序的電路狀態(tài)。應(yīng)用實(shí)例應(yīng)用是該AT89C51一個(gè)移動(dòng)的顯示情況。此應(yīng)用程序有在電路重新編程時(shí)將結(jié)果以圖表的形式顯示的簡(jiǎn)單能力。文本顯示被設(shè)計(jì)作為其硬件的一部分,不能在無改編情況下變化。顯示的文本可在4位DIP開關(guān)選擇兩種模式之一中進(jìn)行。在第一種模式的時(shí)候,進(jìn)入一個(gè)字符從右邊顯示和快速移動(dòng),通過每個(gè)元素顯示其在最后的裝配位置的左側(cè)。在第二個(gè)模式,信息在信息窗口中右到左移動(dòng)顯示。這種模式與常常在股票價(jià)格的顯示器所使用的方法類似。輸出包括四個(gè)DL1414T,4位17段的積分解碼器和驅(qū)動(dòng)程序的字母數(shù)字顯示器。這就產(chǎn)生了16名顯示元素,每個(gè)數(shù)字有0-9的顯示能力,是大寫字母,標(biāo)點(diǎn)符號(hào)和一些字符。可顯示字符的ASCII碼,范圍為20H-5FH。上電復(fù)位電路和一個(gè)6MHz的晶體振蕩器完成應(yīng)用軟件程序。無論外部程序存儲(chǔ)器或外部數(shù)據(jù)存儲(chǔ)器都時(shí)可用的。支持應(yīng)用程序的修改據(jù)推測(cè),編程器在休眠時(shí),既不會(huì)驅(qū)動(dòng),也不會(huì)加載應(yīng)用程序。由于應(yīng)用程序不使用外部程序存儲(chǔ)器,EA/VPP腳接VCC電源。復(fù)位電路被兩種轉(zhuǎn)換器改變狀態(tài),此轉(zhuǎn)換器允許編程時(shí)RST接高電平。在基本應(yīng)用時(shí)未使用的PSEN和ALE/PROG,是被程序員直接控制的。編程器的編程需要獲得所有數(shù)據(jù)表中記錄的AT89C51的I/O端口。編程器是與那些應(yīng)用程序未使用的控制器的引腳相連的,而這些應(yīng)用程序的引腳需要最低有效位的四所產(chǎn)生的地址是可獲得的,如下段所述。由編程器生成的最小的四位地址是與DIP轉(zhuǎn)換的數(shù)據(jù)在控制器的端口多路復(fù)用的請(qǐng)注意,加在開關(guān)上的四個(gè)電阻在基本應(yīng)用中并不是必須的,因?yàn)锳T89C51的端口上提供一個(gè)內(nèi)部上拉電阻。在應(yīng)用程序的正常運(yùn)作時(shí),控制器端口0,1個(gè)分別在顯示器上提供數(shù)據(jù)和控制信號(hào)。在編程和程序驗(yàn)證時(shí),編程受端口0和端口2的一部分控制。程序設(shè)計(jì)器連接端口0和1,沒有緩沖,因?yàn)椋诓换顒?dòng)時(shí),它的存在不影響應(yīng)用程序的正常運(yùn)作。透明鎖存器被加在了控制器的兩個(gè)端口之間做輸入控制。鎖存持有的顯示控制信號(hào)在編程過程中不反應(yīng),從而消除端口0和2由于程序控制器的活動(dòng)造成操作失誤。顯示數(shù)據(jù)輸入是不能被孤立的,因?yàn)閿?shù)據(jù)應(yīng)用到輸入被忽略時(shí),控制信號(hào)無效。AT89C51單片機(jī)復(fù)位電路,輸入多路復(fù)用器和輸出鎖存器是由程序控制器生成一個(gè)單一的信號(hào)來控制的。在編程過程中,復(fù)位鍵生效,多路開關(guān)信號(hào)輸入,以及凍結(jié)顯示鎖存控制線。為確??刂凭€顯示在已知的狀態(tài)前鎖定,AT89C51的外部中斷是用來允許程序控制器在復(fù)位之前向應(yīng)用程序發(fā)出信號(hào)。應(yīng)用程序固件響應(yīng)中斷顯示一條消息,關(guān)閉顯示控制線。編程后,當(dāng)復(fù)位生效,當(dāng)鎖存可視控制器端口輸出高電平。由于顯示控制輸入不為高電平,直到新的程序?qū)懭腼@示器內(nèi)部不被打亂。雖然這個(gè)應(yīng)用程序是沒有必要的,它可能在某些應(yīng)用中必須指出,在編程過程中不會(huì)擾亂外圍電路的狀態(tài)程序控制器程序控制器生成的地址,數(shù)據(jù)和控制信號(hào),對(duì)嵌入到程序中的AT89C51有重要作用。程序控制器電路由一個(gè)AT89C51和一個(gè)RS-232電平轉(zhuǎn)換器組成。該控制器運(yùn)行在11.0592兆HZ,此頻率允許串口運(yùn)行在一個(gè)標(biāo)準(zhǔn)波特率下。一個(gè)IM232線路驅(qū)動(dòng)器/接收器產(chǎn)生RS-232水平,而只需要5伏的電源系統(tǒng)。程序控制器所產(chǎn)生的信號(hào)許多只需直接連接到AT89C51,無需緩沖。這些信號(hào),在不活動(dòng)時(shí),不再是三種狀態(tài),但被接高電平。AT89C51的端口1,2,3內(nèi)部有大約3000歐姆的上拉電阻,因?yàn)槎丝?沒有內(nèi)部上拉電阻,所以外部10千歐姆的上拉電阻已經(jīng)加上允許適當(dāng)?shù)某绦蛘J(rèn)證模式操作。示例應(yīng)用程序在這種環(huán)境下可正常運(yùn)行。如果有需要的應(yīng)用程序兼容性,程序發(fā)出的信號(hào)可能在類似74xx125三態(tài)緩沖緩沖區(qū)內(nèi)緩沖。AT89C51的程序不使用外部程序或數(shù)據(jù)存儲(chǔ)器,這需要犧牲所需要的I/O引腳。這就要求程序代碼和I/O緩沖區(qū)保持足夠小以適合片上存儲(chǔ)器。商業(yè)電話線遠(yuǎn)程編程編程器和前面描述的顯示應(yīng)用是與通過調(diào)制解調(diào)器連接在遠(yuǎn)程站點(diǎn)電話線相連的。使用鏈接調(diào)制解調(diào)器的個(gè)人電腦,用戶可以上傳包含一個(gè)新的消息的程序,這個(gè)信息被變成進(jìn)了嵌入到應(yīng)用程序的AT89C51中。當(dāng)編程完成后,應(yīng)用程序執(zhí)行新的程序,它顯示新信息。本地配置測(cè)試配置的本地配置包括一臺(tái)IBM個(gè)人電腦級(jí)的計(jì)算機(jī)連接到與Hayes兼容的,普羅米修斯1200波特的調(diào)制解調(diào)器。選擇此調(diào)制解調(diào)器,因?yàn)樗橇畠r(jià)可得。更快的調(diào)制解調(diào)器如果需要的話可使用更快速的調(diào)制解調(diào)器,盡管一旦該文件的傳輸時(shí)間低于1分鐘,進(jìn)一步削減的傳輸時(shí)間不會(huì)進(jìn)一步降低連接時(shí)間費(fèi)用。更高的傳輸速度的可能優(yōu)勢(shì)是在某些高速調(diào)制解調(diào)器內(nèi)的自動(dòng)錯(cuò)誤檢測(cè)和糾正。ProcommPlus版本2.01,是一個(gè)商業(yè)數(shù)據(jù)通信軟件包,用于配置調(diào)制解調(diào)器,建立通訊設(shè)置參數(shù),并建立與遠(yuǎn)程調(diào)制解調(diào)器的鏈接。ProcommPlus包括所謂的宏語言方面,它允許用戶編寫實(shí)現(xiàn)自定義的文件傳輸協(xié)議的腳本。一個(gè)簡(jiǎn)單的腳本編寫用來讀取一個(gè)程序文件的內(nèi)容,并上傳到遠(yuǎn)程編程器。文件傳輸協(xié)議(FTP)的實(shí)施,是一個(gè)簡(jiǎn)單的發(fā)送和等待的,數(shù)據(jù)包導(dǎo)向的協(xié)議。FTP模式發(fā)送和接收的是用數(shù)字4和5,如流程圖所示。不在流程控制下發(fā)射器發(fā)送每個(gè)數(shù)據(jù)包,并等待響應(yīng)。在計(jì)算校驗(yàn)和時(shí)那個(gè)程序控制器(接收器)讀取并剖析了數(shù)據(jù)包。如果計(jì)算出的校驗(yàn)和是有效的,程序員通過發(fā)送一個(gè)ACK承認(rèn)此數(shù)據(jù)包。如果校驗(yàn)和錯(cuò)誤,程序員通過發(fā)送一個(gè)NAK來否定。當(dāng)接收一個(gè)ACK后,發(fā)射器發(fā)送下一個(gè)數(shù)據(jù)包。如果傳送者接收到NAK,它重新發(fā)送相同的數(shù)據(jù)包。以這種方式傳輸,直到整個(gè)文件已被移交。程序控制器可能通過發(fā)送一個(gè)CAN來響應(yīng)數(shù)據(jù)包,CAN表明一個(gè)不可恢復(fù)的錯(cuò)誤發(fā)生,而發(fā)射機(jī)應(yīng)立即中止文件傳輸。如果程序員沒有在有限的時(shí)間內(nèi)響應(yīng)到一個(gè)數(shù)據(jù)包,發(fā)送器將重新發(fā)送相同的數(shù)據(jù)包。發(fā)射器將繼續(xù)重發(fā),直到接收到一個(gè)有效的反應(yīng),或者,超出文件傳輸被中止的時(shí)間。每個(gè)數(shù)據(jù)包接收和通過程序員驗(yàn)證后,數(shù)據(jù)包中包含的數(shù)據(jù)被加載到的AT89C51單片機(jī)控制器編程。編程后,數(shù)據(jù)從控制器讀回并對(duì)接收的數(shù)據(jù)包進(jìn)行驗(yàn)證。成功的審查表明,成功的程序設(shè)計(jì),使程序員發(fā)送ACK給傳送者。如果編程失敗,程序員發(fā)送CAN向傳送者發(fā)送信號(hào)中止文件傳輸。簡(jiǎn)單的FTP減少了AT89C51的程序在編程時(shí)使用的內(nèi)存量。由于AT89C51的編程和擦除時(shí)間可以很容易地吸收,F(xiàn)TP發(fā)送和等待的性質(zhì)允許跨包延遲。對(duì)程序驗(yàn)證的支持是透明的,不需要明確的命令或結(jié)果代碼,或轉(zhuǎn)讓的其他數(shù)據(jù)。上傳到程序控制器的文件是用英特爾MCS-51軟件開發(fā)包來創(chuàng)建的。在包中包括了MCS-51宏匯編,MCS-51單片機(jī)Relocator和連接器,以及一個(gè)有用的工具,OH。OH將8051絕對(duì)目標(biāo)文件轉(zhuǎn)換為為等效的ASCII十六進(jìn)制目標(biāo)文件。遠(yuǎn)程配置在測(cè)試配置中的遠(yuǎn)程配置包括顯示應(yīng)用程序和程序員電路,如前所述,連接到一個(gè)與Hayes兼容的普羅米修斯1200波特調(diào)制解調(diào)器。在正常操作時(shí),應(yīng)用程序執(zhí)行其內(nèi)部程序,而調(diào)制解調(diào)器和程序員監(jiān)測(cè)來電電話線。通話被檢測(cè)到并連接建立后,程序器強(qiáng)迫暫停其程序的執(zhí)行。新的程序就被下載并嵌入到應(yīng)用程序中的AT89C51的編程。當(dāng)編程完成后,應(yīng)用軟件程序獲準(zhǔn)開始其新的程序執(zhí)行,而程序控制器返回監(jiān)督下一個(gè)通話的電話線。程序控制輸出無效時(shí)程序控制器上電,允許應(yīng)用程序正常運(yùn)行。在配置調(diào)制解調(diào)器接聽來電后,程序控制器停止工作。是程序控制器不會(huì)影響到程序直到一個(gè)新的程序應(yīng)用程序被下載。程序員通過發(fā)送控制在串行接口上的ASCII命令字符串來控制調(diào)制解調(diào)器,對(duì)此調(diào)制解調(diào)器響應(yīng)海斯式調(diào)制解調(diào)器的ASCII數(shù)字代碼。該軟件是專為與海斯兼容使用的調(diào)制解調(diào)器,其中包括這里使用的1200普羅米修斯ProModem。串行接口,程序員通過它連接到調(diào)制解調(diào)器,它支持兩個(gè)握手信號(hào),DTR和DSR。上電時(shí),程序控制器判定DTR,斷定為DTR后調(diào)制解調(diào)器響應(yīng)。如果調(diào)制解調(diào)器不響應(yīng)任何命令,包括命令掛斷,程序控制器抬高DTR點(diǎn)位,強(qiáng)制調(diào)制解調(diào)器下降。當(dāng)程序控制器停止工作后,監(jiān)測(cè)調(diào)制解監(jiān)聽電話線,等待來電呼叫。當(dāng)檢測(cè)到輸入,調(diào)制解調(diào)器響應(yīng)并試圖與輸入建立通信。如果建立了連接,調(diào)制解調(diào)器發(fā)送一個(gè)代碼,喚醒程序控制器。程序控制器驗(yàn)證連接的代碼,并開始審查有效的數(shù)據(jù)包報(bào)頭。傳入數(shù)據(jù)包必須在少于30秒內(nèi)到達(dá),否則調(diào)制解調(diào)器掛斷和程序控制器繼續(xù)停止工作,等待下一次呼叫。如果來電掛斷,在得到下一次呼叫之前,三十秒時(shí)間必須終止。在復(fù)位延遲時(shí)間傳入是被忽略的。如果復(fù)位延遲時(shí)間結(jié)束之前收到一個(gè)有效的數(shù)據(jù)包報(bào)頭,程序控制器將嘗試讀取和驗(yàn)證傳入的數(shù)據(jù)包。在數(shù)據(jù)包的接收過程中的任何時(shí)間,無效字符,奇偶校驗(yàn)錯(cuò)誤或超時(shí)的時(shí)間內(nèi)接待字符將導(dǎo)致部分?jǐn)?shù)據(jù)包被宣布無效,并丟棄。兩個(gè)數(shù)據(jù)包類型定義:數(shù)據(jù)和最終文件。數(shù)據(jù)包包含五個(gè)領(lǐng)域,除了包報(bào)頭,是一個(gè)可變長(zhǎng)度的數(shù)據(jù)字段。數(shù)據(jù)字段包含程序的數(shù)據(jù)在應(yīng)用程序中被寫入在AT89C51的控制器。負(fù)載地址字段中包含數(shù)據(jù)寫入的地址。末端文件包中包含與數(shù)據(jù)包相同的領(lǐng)域的文件,但該數(shù)據(jù)字段是空的。這包類型對(duì)程序控制器具有特殊的意義,如下所述。任何包含有效文種的數(shù)據(jù)包,記錄長(zhǎng)度或校驗(yàn)和無效。程序數(shù)據(jù)在一個(gè)無效的數(shù)據(jù)包被丟棄的處理過程中被積累。編程器給傳送者發(fā)送一個(gè)NAK作為信號(hào)數(shù)據(jù)包的接收和恢復(fù)為一個(gè)有效的數(shù)據(jù)包報(bào)頭審查的警示信號(hào)。第一個(gè)有效數(shù)據(jù)的接收引起編程器中斷應(yīng)用程序控制器。該控制器的中斷響應(yīng)放棄其正在運(yùn)行的程序,并顯示一條消息,表明程序已經(jīng)被替代。如果這是由于接收了末端文件或者是電源觸發(fā)從而接收的第一個(gè)有效的數(shù)據(jù)包,運(yùn)用必要的控制信號(hào)清除在應(yīng)用控制器內(nèi)的記憶程序。然后編程器在程序模式中放置控制器。當(dāng)接收到第一個(gè)和其后的有效數(shù)據(jù)程序包時(shí),將它們分開,它們包含的數(shù)據(jù)被編程到程序包負(fù)載地址域中的地址中的應(yīng)用控制器內(nèi)。編程后,從控制器內(nèi)將數(shù)據(jù)讀回并與接收到的數(shù)據(jù)包中的數(shù)據(jù)進(jìn)行比較。成功的核查表明,方案是成功的,導(dǎo)致編程器向傳送者發(fā)送ACK信號(hào)。由于30秒的復(fù)位延遲,編程器重新對(duì)有效的數(shù)據(jù)包報(bào)頭進(jìn)行測(cè)試。如果編程失敗,編程器向傳送者發(fā)送信號(hào)CAN中止文件傳輸。調(diào)制解調(diào)器掉線,程序器繼續(xù)休眠等待下一次呼叫。應(yīng)用控制在程序模式中被保留,用以阻止它包含的不完整的或無效的程序。重要的是要注意,無效的數(shù)據(jù)包永遠(yuǎn)不會(huì)規(guī)劃到應(yīng)用程序控制器。這樣做將要求錯(cuò)誤被糾正之前,編程器中的記憶程序被徹底抹掉,造成先前所有數(shù)據(jù)的不可恢復(fù)。根據(jù)末端文件的接收,編程器向閑置的狀態(tài)電源返回其控制輸出,允許應(yīng)用程序控制器,開始執(zhí)行新的程序。然后編程器在三十秒延遲之下重新開始對(duì)一個(gè)數(shù)據(jù)包報(bào)進(jìn)行審查。如果一個(gè)有效的數(shù)據(jù)包在30秒延遲之前接收,另一個(gè)只能被接受一個(gè)有效的末端文件而終止的程序循環(huán)開始執(zhí)行。如果復(fù)位在收有效末端文件之前終止,那么調(diào)制解調(diào)器會(huì)掉線,編程器停止工作,等待下一次傳入。在這種情況下應(yīng)用控制器被保留在程序設(shè)計(jì)模式,以防止它執(zhí)行這個(gè)程序。要返回應(yīng)用程序的正常運(yùn)行,另一個(gè)傳入必須被接收,一個(gè)有效的程序文件被上傳,由末端文件包終止。AT89C51In-CircuitProgrammingThisapplicationnoteillustratesthein-circuitprogrammabilityoftheAtmelAT89C51Flash-basedmicrocontroller.Guidelinesfortheadditionofin-circuitprogrammabilitytoAT89C51applicationsarepresentedalongwithanapplicationexampleandthemodificationstoitrequiredtosupportin-circuitprogramming.AmethodisthenshownbywhichtheAT89C51microcontrollerintheapplicationcanbereprogrammedremotely,overacommercialtelephoneline.Thecircuitrydescribedinthisapplicationnotesupportsfivevoltprogrammingonly,requiringtheuseofanAT89C51-XX-5.ThestandardAT89C51requires12voltsforprogramming.ThesoftwareforthisapplicationmaybeobtainedbydownloadingfromAtmel’sGeneralConsiderationsCircuitryaddedtosupportAT89C51incircuitprogrammingshouldappeartransparenttotheapplicationwhenprogrammingisnottakingplace.EA/VPPmustbeheldhighduringprogramming.Inapplicationswhichdonotutilizeexternalprogrammemory,thispinmaybepermanentlystrappedtoVCC.Applicationsutilizingexternalprogrammemoryrequirethatthispinbeheldlowduringnormaloperation.RSTmustbeheldactiveduringprogramming.Ameansmustbeprovidedforoverridingtheapplicationresetcircuit,whichtypicallyassertsRSTonlybrieflyafterpowerisapplied.PSENmustbeheldlowduringprogramming,butmustnotbedrivenduringnormaloperation.ALE/PROGispulsedlowduringprogramming,butmustnotbedrivenduringnormaloperation.Duringprogramming,AT89C51I/Oportsareusedfortheapplicationofmodeselect,addressesanddata,possiblyrequiringthatthecontrollerbeisolatedfromtheapplicationcircuitry.Howthisisdoneisapplicationdependentandwillbeaddressedhereonlyingeneralterms.PortUsedforInputDuringprogramming,thecontrollermustbeisolatedfromsignalssourcedbytheapplicationcircuitry.Abufferwiththreestateoutputsmightbeinsertedbetweentheapplicationcircuitryandthecontroller,withthebufferoutputsthree-statedwhenprogrammingisenabled.Alternately,amultiplexermightbeusedtoselectbetweensignalsources,withsignalsappliedtothecontrollerbyeithertheapplicationcircuitryortheprogrammercircuitry.PortUsedforOutputNocircuitchangesarerequirediftheapplicationcircuitrycantoleratethestatechangeswhichoccurattheportduringprogramming.Ifthepriorstateoftheapplicationcircuitrymustbemaintainedduringprogramming,alatchmightbeinsertedbetweenthecontrollerandtheapplicationcircuitry.Thelatchisenabledduringprogramming,preservingthestateoftheapplicationcircuitry.AnApplicationExampleTheAT89C51applicationshowninFigure1isanimplementationofamovingdisplay.Thisapplicationwasselectedforitssimplicityandabilitytoshowgraphicallytheresultsofin-circuitreprogramming.Thetexttobedisplayedisprogrammedintothecontrolleraspartofitsfirmware,andcannotbechangedwithoutreprogrammingthedevice.Thedisplayedtextispresentedinoneoftwomodesselectedbythefour-positionDIPswitch.Inthefirstmode,onecharacteratatimeentersthedisplayfromtherightandmovesquicklytotheleftthrougheachelementofthedisplaytoitsfinalpositionintheassembledmessage.Inthesecondmode,themessagemovesthroughthedisplay,fromrighttoleft,withthedisplayactingasawindowontothemessage.Thismodeisfamiliarasthemethodoftenusedindisplaysofstockprices.TheoutputconsistsoffourDL1414T,four-digit,17-segmentalphanumericdisplayswithintegraldecodersanddrivers.Thisyields16totaldisplayelements,eachcapableofdisplayingdigits0-9,theuppercasealphabet,andsomepunctuationcharacters.ThedisplayablecharactercodesareASCII20H-5FH.Apower-onresetcircuitanda6-MHzcrystaloscillatorcompletetheapplication.Neitherexternalprogrammemorynorexternaldatamemoryisused.ModificationstotheApplicationtoSupportIn-CircuitProgrammingFigure2showstheapplicationmodifiedforin-circuitprogramming.Itisassumedthattheprogrammer,wheninactive,willneitherdrivenorexcessivelyloadtheapplication.Sincetheapplicationdoesnotuseexternalprogrammemory,EA/VPPonthecontrollerisconnectedtoVCC.Thismeetstherequirementforprogramming.Theresetcircuithasbeenmodifiedbytheadditionoftwotransistors,whichallowRSTonthecontrollertobeforcedhighbytheprogrammer.PSENandALE/PROG,unusedinthebasicapplication,areunderthedirectcontroloftheprogrammer.ProgrammingrequiresprogrammeraccesstoallofthefourAT89C51I/Oports,asdocumentedinthedatasheet.Theprogrammerisconnecteddirectlytothosecontrollerpinswhichareunusedbytheapplication,whileaccesstopinsusedbytheapplicationrequiresspecialtreatment,asexplainedinthefollowingparagraphs.TheleastsignificantfourbitsoftheaddressgeneratedbytheprogrammeraremultiplexedontoportoneofthecontrollerwiththedatafromtheDIPswitch.Notethatthefourresistorsaddedattheswitcharenotrequiredinthebasicapplication,sincetheAT89C51providesinternalpull-upsonportone.Duringthenormaloperationoftheapplication,controllerportszeroandtwoprovidedataandcontrolsignalsrespectivelytothedisplays.Duringprogrammingandprogramverification,theprogrammerassertscontrolofportzeroandpartofporttwo.Theprogrammerisconnectedtoportszeroandtwowithoutbuffering,since,wheninactive,itspresencedoesnotaffectthenormaloperationoftheapplication.Atransparentlatchhasbeenaddedbetweenporttwoofthecontrollerandthedisplaycontrolinputs.Thelatchholdsthedisplaycontrolsignalsinactiveduringprogramming,whicheliminateserraticoperationofthedisplaysduetoprogrammeractivityonportszeroandtwo.Noisolationofthedisplaydatainputsisrequired,sincedataappliedtotheinputsisignoredwhenthecontrolsignalsareinactive.TheAT89C51resetcircuit,inputmultiplexerandoutputlatcharecontrolledbyasinglesignalgeneratedbytheprogrammer.Duringprogramming,resetisasserted,themultiplexerswitchesinputs,andthelatchfreezesthedisplaycontrollines.Toensurethatthedisplaycontrollinesareinaknownstatebeforetheyarelatched,anAT89C51externalinterruptisusedtoallowtheprogrammertosignaltheapplicationbeforeassertingreset.Theapplicationfirmwarerespondstotheinterruptbydisplayingamessageanddeactivatingthedisplaycontrollines.Afterprogramming,whenresetisdeasserted,thecontrollerportsarehighasthelatchbecomestransparent.Sincethedisplaycontrolinputsareinactivehigh,thedisplaycontentsarenotdisturbeduntilthenewprogramwritesthedisplay.Althoughnotessentialtothisapplication,itmightbeimperativeinsomeapplicationsthatthestateoftheperipheralcircuitrynotbedisturbedduringprogramming.TheProgrammerTheprogrammerFigure3generatestheaddresses,dataandcontrolsignalsnecessarytoprogramtheAT89C51embeddedintheapplication.TheprogrammercircuitryconsistsofanAT89C51andanRS-232leveltranslator.Thecontrollerrunsat11.0592MHz,whichallowstheserialporttooperateatanumberofstandardbaudrates.Aim232linedriver/receiverproducesRS-232levelsattheserialinterfacewhilerequiringonlyafivevoltsupply.Manyofthesignalsgeneratedbytheprogrammerareconnecteddirectly,withoutbuffering,totheAT89C51intheapplication.Thesesignals,wheninactive,arenotthreestated,butarepulledhigh.TheAT89C51hasinternalpull-upsofapproximatelythreeKohmsonportsone,twoandthree.Becauseportzerodoesnothaveinternalpull-ups,externalpull-upsoftenKohmshavebeenaddedtopermitproperoperationofprogramverificationmode.Thesampleapplicationoperatescorrectlyinthisenvironment.Ifrequiredforcompatibilitywithanapplication,programmersignalsmaybebufferedwiththree-statebufferssimilartothe74xx125.TheAT89C51intheprogrammerdoesnotutilizeexternalprogramordatamemory,whichwouldrequiresacrificingneededI/Opins.ThisrequiresthatprogramcodeandI/Obuffersbekeptsmallenoughtofitinon-chipmemory.RemoteProgrammingOveraCommercialTelephoneLineTheprogrammeranddisplayapplicationdescribedpreviouslyareconnectedtoaphonelineviaamodemataremotesite.Usingapersonalcomputerwithamodem,ausercanuploadanewprogramcontaininganewmessage,whichisprogrammedintotheAT89C51embeddedintheapplication.Whenprogrammingiscomplete,theapplicationexecutesthenewprogram,whichdisplaysthenewmessage.LocalStationThelocalstationinthetestconfigurationconsistsofanIBMPCAT-classcomputerconnectedtoaHayes-compatible,Prometheus1200baudmodem.Themodemwasselectedbecauseitwasinexpensiveandavailable.Afastermodemmaybeusedifdesired,althoughoncethefiletransmissiontimeisreducedbelowoneminute,furtherreductionsintransmissiontimedonotfurtherreduceconnecttimecharges.Apossibleadvantagetohighertransmissionspeedsistheautomaticerrordetectionandcorrectionavailableinsomehighspeedmodems.ProcommPlusversion2.01,acommercialdatacommunicationspackage,isusedtoconfigurethemodem,setupcommunicationsparameters,andestablishalinkwiththeremotemodem.ProcommPlusincludesamacrolanguagecalledASPECT,whichallowstheusertowriteandcompilescriptswhichimplementcustomfiletransferprotocols.AsimpleASPECTscriptwaswrittentoreadthecontentsofaprogramfileanduploadittotheremoteprogrammer.ThefiletransferprotocolFTPimplementedisasimplesend-and-wait,packet-orientedprotocol.ThetransmitandreceivemodesoftheFTPareillustratedbytheflowchartsinfigures4and5,respectively.Thetransmittersendseachpacketwithoutflowcontrolandwaitsforaresponse.Theprogrammerthereceiverreadsanddissectsthepacketwhilecalculatingachecksum.Ifthecalculatedchecksumisvalid,theprogrammeracknowledgesthepacketbysendinganACK.Ifthechecksumisinerror,theprogrammernegativelyacknowledgesthepacketbysendingaNAK.UponreceiptofanACK,thetransmittersendsthenextpacket.IfthetransmitterreceivesaNAK,itresendsthesamepacket.Transmissionproceedsinthismanneruntiltheentirefilehasbeentransferred.TheprogrammermightrespondtoapacketbysendingaCAN,whichindicatesthatanon-recoverableerrorhasoccurredandthatthetransmittershouldimmediatelyabortthefiletransfer.Iftheprogrammerfailstorespondtoapacketwithinalimitedperiodoftime,thetransmitterwillresendthesamepacket.Thetransmitterwillcontinuetoresendthesamepacketuntilavalidresponseisreceivedoruntiltheallowednumberofattemptsisexceeded,atwhichtimethefiletransferisaborted.Aftereachpacketisreceivedandvalidatedbytheprogrammer,thedatacontainedinthepacketisprogrammedintotheAT89C51controllerintheapplication.Afterprogramming,thedataisreadbackfromthecontrollerandverifiedagainstthereceivedpacketdata.Successfulverificationindicatessuccessfulprogramming,causingtheprogrammertosendACKtothetransmitter.Ifprogrammingfails,theprogrammersendsCANtosignalthetransmittertoabortthefiletransfer.ThesimplicityoftheFTPreducestheamountofAT89C51programmemoryusedintheprogrammer.Thesend-andwaitnatureoftheFTPallowsinter-packetdelaysduetoAT89C51programanderasetimestobeeasilyabsorbed.Supportforprogramverificationistransparent,requiringnoexplicitcommandorresultcodes,oradditionaldatatransfers.ThefileswhichareuploadedtotheprogrammerarecreatedwiththetoolsintheIntelMCS-51SoftwareDevelopmentPackagefortheIBMPC.IncludedinthepackagearetheMCS-51MacroAssembler,MCS-51RelocatorandLinker,andausefulutility,OH.OHconvertsanabsolute8051objectfiletoanequivalentASCIIhexadecimalobjectfile.TherecordsinthehexfileproducedbytheOHutilityserve,unchanged,asthepacketsintheFTPdescribedabove;noservicefieldsneedtobeadded.Thecolonwhichbeginseachrecordservesasthepacketsignaturefield.Theloadaddressfieldservesasthepacketsequencenumber.Achecksumisprovidedasthelastfieldineachrecord.Sinceseven-bitASCIIcodingisutilized,theeighthbitofeachbyteisavailabletobeusedforparitychecking.BecausetheAT89C51intheprogrammerdoesnotutilizeexternaldatamemory,necessarypacketbufferingmustbedoneusinginternalRAM.LimitedmemoryprecludestheuseofconventionalFTPswhichutilizepacketsof128bytesandlarger.Thehexpacketformatusedinthisapplicationlimitspacketdatafieldsto16orfewerentries,requiringlittlememoryforbuffering.Thereadyavailabilityofautilityforcreatingthepacketizedprogramfile,combinedwithsmallpacketsizeandadequateerrorchecking,makesthehexpacketformatanearidealsolutionforthisapplication.AdisadvantageistheuseofASCII,whichrequireseachprogramdatabytetobeexpressedastwohexcharacters.Thisdemandsthatnearlytwiceasmanybytesbetransferredasmightotherwiseberequired.Thisisnotaseverelimitation,however,sincetypicalfiletransfertimesarelessthanoneminute.Overall,thesimplicityofthecustomFTP/hexpacketformatimplementationoutweighsthedrawbacks.RemoteStationTheremotestationinthetestconfigurationconsistsofthedisplayapplicationandprogrammercircuits,describedpreviously,connectedtoaHayes-compatible,Prometheus1200baudmodem.Duringnormaloperation,theapplicationexecutesitsinternalprogramwhilethemodemandprogrammermonitorthephonelineforincomingcalls.Afteracallhasbeendetectedandaconnectionestablished,theprogrammerforcestheapplicationtosuspendexecutionofitsprogram.ThenewprogramisthendownloadedandprogrammedintotheAT89C51embeddedintheapplication.Whenprogrammingiscomplete,theapplicationisallowedtobeginexecutionofitsnewprogram,andtheprogrammerreturnstomonitoringthephonelineforthenextcall.Theprogrammerpowersupwithitsprogrammingcontroloutputsinactive,allowingtheapplicationtorunnormally.Afterconfiguringthemodemtoanswerincomingcalls,theprogrammerputsitselftosleep.Theprogrammerwillnotdisturbtheapplicationuntilanewprogramistobedownloaded.TheprogrammercontrolsthemodembysendingASCIIcommandstringsovertheserialinterface,towhichthemodemrespondswithHayes-styleASCIInumericcodes.ThesoftwareisdesignedforusewithHayes-compatiblemodems,whichincludesthePrometheusProModem1200usedhere.Theserialinterface,throughwhichtheprogrammerconnectstothemodem,supportstwohandshakingsignals,DTRandDSR.Onpowerup,theprogrammerassertsDTR,towhichthemodemrespondsbyassertingDSR.Ifthemodemshouldfailtorespondtoanycommand,includingthecommandtohangup,theprogrammerdeassertsDTR,whichforcesthemodemtodroptheline.Themodemmonitorsthephonelinewhiletheprogrammersleeps,waitingforanincomingcall.Whenacallisdetected,themodemanswersandattemptstoestablishcommunicationwiththecaller.Ifaconnectionisestablished,themodemsendsacodetotheprogrammer,wakingitup.Theprogrammerverifiestheconnectcodeandbeginspollingforavalidpacketheader.Incomingpacketsmustarrivefewerthanthirtysecondsapart,orthemodemdropsthelinehangsupandtheprogrammerreturnstosleep,waitingforthenextcall.Ifthecallerhangsup,thethirtysecondperiodmustexpirebeforeanothercallwillbeanswered.Callsincomingduringtheresetdelayperiodareignored.Ifavalidpacketheaderisreceivedpriortotheexpirationoftheresetdelayperiod,theprogrammerwillattempttoreadandvalidatetheincomingpacket.Atanytimeduringpacketreception,aninvalidcharacter,parityerrorortimeoutduringcharacterreceptionwillcausethepartialpackettobedeclaredinvalidanddiscarded.Twopackettypesaredefined:dataandend-of-file.Adatapacketcontainsfivefieldsinadditiontothepacketheader,oneofwhichisavariablelengthdatafield.ThedatafieldcontainsprogramdatatobewrittenintotheAT89C51controllerintheapplication.Theloadaddressfieldcontainstheaddressatwhichthedataistobewritten.Theend-of-filepacketcontainsthesamefieldsasthedatapacket,exceptthatthedatafieldisempty.Thispackettypehasspecialmeaningtotheprogrammer,asexplainedbelow.Anypacketwhichcontainsaninvalidrecordtype,recordlengthorchecksumisinvalid.Programdataaccumulatedduringtheprocessingofaninvalidpacketisdiscarded.TheprogrammersendsaNAKtothetransmittertosignalreceptionofaninvalidpacketandresumespollingforavalidpacketheader.Receiptofthefirstvaliddatapacketcausestheprogrammertointerrupttheapplicationcontroller.Thecontrollerr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年戶外裝飾防腐木材項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年微機(jī)多元素分析儀項(xiàng)目投資價(jià)值分析報(bào)告
- 2025年度版海域租賃合同書樣本3篇
- 2024至2030年安全網(wǎng)絡(luò)存儲(chǔ)產(chǎn)品項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2031年中國(guó)狐貍皮袖口行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年固定式液壓載貨電梯項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2031年中國(guó)殘疾人用品用具管理系統(tǒng)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國(guó)蘭花吊籃行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年科技項(xiàng)目債務(wù)豁免及知識(shí)產(chǎn)權(quán)共享合同3篇
- 二零二五年度建筑勞務(wù)居間與施工現(xiàn)場(chǎng)安全管理服務(wù)合同6篇
- 《小學(xué)生良好書寫習(xí)慣培養(yǎng)的研究》中期報(bào)告
- 大學(xué)英語四級(jí)詞匯表(下載)
- 2025年四川成都市溫江區(qū)市場(chǎng)監(jiān)督管理局選聘編外專業(yè)技術(shù)人員20人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 手術(shù)室發(fā)生地震應(yīng)急預(yù)案演練
- 初中數(shù)學(xué)新課程標(biāo)準(zhǔn)(2024年版)
- 高職院校專業(yè)教師數(shù)字素養(yǎng)架構(gòu)與提升路徑
- 售后服務(wù)人員培訓(xùn)資料課件
- 2024-2030年中國(guó)薯?xiàng)l行業(yè)發(fā)展趨勢(shì)及投資盈利預(yù)測(cè)報(bào)告
- 生命智能學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 中華傳統(tǒng)文化之戲曲瑰寶學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 公路工程利用鋰渣技術(shù)規(guī)范 第一部分:路基工程-編制說明
評(píng)論
0/150
提交評(píng)論