喜歡就充值下載吧。。。資源目錄里展示的全都有,,下載后全都有,,請放心下載,原稿可自行編輯修改=====================喜歡就充值下載吧。。。資源目錄里展示的全都有,,下載后全都有,,請放心下載,原稿可自行編輯修改=====================喜歡就充值下載吧。。。資源目錄里展示的全都有,,下載后全都有,,請放心下載,原稿可自行編輯修改=====================
黃河科技學(xué)院畢業(yè)設(shè)計(文獻翻譯) 第 7 頁
畢業(yè)設(shè)計
文獻翻譯
院(系)名稱
工學(xué)院機械系
專業(yè)名稱
機械設(shè)計制造及其自動化
學(xué)生姓名
馬飛
指導(dǎo)教師
牛月蘭
學(xué)號
080105626
2012年 03 月 05 日
AT89C51單片機在線編程
本應(yīng)用指南說明了Atmel AT89C51是可在線編程的微控制器。它為電路編程提出了相應(yīng)的例子,程序的修改需要在線編程的支持。這類顯示方法在應(yīng)用程序中的AT89C51單片機可通過電話線遠(yuǎn)程控制。該應(yīng)用指南所描述的電路只支持5v電壓下編程,需要使用一個AT89C51-XX-5。標(biāo)準(zhǔn)AT89C51單片機編程要12V電壓。此應(yīng)用軟件可以到Atmel進行下載。
總論
當(dāng)不在進行程序設(shè)計的時候,在電為低電平才能正常運行。路設(shè)計中的AT89C51設(shè)計將變得透明化。
在編程期間必須重視EA/VPP這一腳。在不使用外部程序存儲器的應(yīng)用程序中,這腳可能會永久接到VCC。應(yīng)用程序使用的外部程序存儲器要求這一腳
RST在編程期間必須為高電平。應(yīng)該提供一種方法使得電路通入電源以后,使RST代替主要的復(fù)位電路起到復(fù)位的作用 。
在編程過程中,PSEN必須保持低電平,在正常運行期間絕不能使用。
ALE/ PROG在編程過程中輸出低電平,在正常運行期間絕不能使用。
在編程過程中,AT89C51的I / O端口是用于選擇地址和數(shù)據(jù)模式應(yīng)用程序,可能需要該控制器與應(yīng)用電路隔離。如何做到這一點取決于應(yīng)用程序。
輸入端口
在編程過程中,控制器必須與信號源隔離。具有三個輸出狀態(tài)的緩沖區(qū)會在應(yīng)用程電路和控制器之間,同時在編程時具有三態(tài)輸出緩沖且在編程時啟用。一個多路電路可用于信號源之間進行選擇,適用于任何一方的應(yīng)用電路或編程控制器電路的信號。
輸出端口
如果應(yīng)用的電路可以允許端口在編程過程中的狀態(tài)變化,則不需要改變電路。如果應(yīng)用電路的狀態(tài),必須事先在編程過程中的保持不變,可能在控制器和應(yīng)用電路中插入鎖存。該鎖存器能在編程期間保持應(yīng)用電路的狀態(tài)。
應(yīng)用實例
應(yīng)用是該AT89C51完成一個移動顯示。此應(yīng)用程序有在電路重新編程時將結(jié)果以圖表的形式顯示的簡單能力。文本顯示被設(shè)計作為其硬件的一部分,不能在無改編情況下變化。
顯示的文本可在4位DIP開關(guān)選擇兩種模式之一中進行。在第一種模式的時候,進入一個字符從右邊顯示和快速移動,通過每個元素顯示其在最后的裝配位置的左側(cè)。在第二個模式,信息在信息窗口中右到左移動顯示。這種模式與常常在股票價格的顯示器所使用的方法類似。
輸出包括四個DL1414T,4位17段的積分解碼器和驅(qū)動程序的字母數(shù)字顯示器。這就產(chǎn)生了16名顯示元素,每個數(shù)字有0-9的顯示能力,是大寫字母,標(biāo)點符號和一些字符??娠@示字符的ASCII 碼,范圍為20H-5FH。上電復(fù)位電路和一個6 MHz的晶體振蕩器完成應(yīng)用軟件程序。無論外部程序存儲器或外部數(shù)據(jù)存儲器都時可用的。
支持應(yīng)用程序的修改
據(jù)推測,編程器在休眠時,既不會驅(qū)動,也不會加載應(yīng)用程序。由于應(yīng)用程序不使用外部程序存儲器,EA/VPP腳接VCC電源。復(fù)位電路被兩種轉(zhuǎn)換器改變狀態(tài),此轉(zhuǎn)換器允許編程時RST接高電平。在基本應(yīng)用時未使用的PSEN和ALE/ PROG,是被程序員直接控制的。
編程器的編程需要獲得所有數(shù)據(jù)表中記錄的AT89C51的I / O端口。編程器是與那些應(yīng)用程序未使用的控制器的引腳相連的,而這些應(yīng)用程序的引腳需要最低有效位的四所產(chǎn)生的地址是可獲得的,如下段所述。
由編程器生成的最小的四位地址是與DIP轉(zhuǎn)換的數(shù)據(jù)在控制器的端口多路復(fù)用的
請注意,加在開關(guān)上的四個電阻在基本應(yīng)用中并不是必須的,因為AT89C51的端口上提供一個內(nèi)部上拉電阻。
在應(yīng)用程序的正常運作時,控制器端口0,1個分別在顯示器上提供數(shù)據(jù)和控制信號。在編程和程序驗證時,編程受端口0和端口2的一部分控制。程序設(shè)計器連接端口0和1,沒有緩沖,因為,在不活動時,它的存在不影響應(yīng)用程序的正常運作。
透明鎖存器被加在了控制器的兩個端口之間做輸入控制。鎖存持有的顯示控制信號在編程過程中不反應(yīng),從而消除端口0和2由于程序控制器的活動造成操作失誤。顯示數(shù)據(jù)輸入是不能被孤立的,因為數(shù)據(jù)應(yīng)用到輸入被忽略時,控制信號無效。
AT89C51單片機復(fù)位電路,輸入多路復(fù)用器和輸出鎖存器是由程序控制器生成一個單一的信號來控制的。在編程過程中,復(fù)位鍵生效,多路開關(guān)信號輸入,以及凍結(jié)顯示鎖存控制線。
為確??刂凭€顯示在已知的狀態(tài)前鎖定,AT89C51的外部中斷是用來允許程序控制器在復(fù)位之前向應(yīng)用程序發(fā)出信號。應(yīng)用程序固件響應(yīng)中斷顯示一條消息,關(guān)閉顯示控制線。
編程后,當(dāng)復(fù)位生效,當(dāng)鎖存可視控制器端口輸出高電平。由于顯示控制輸入不為高電平,直到新的程序?qū)懭腼@示器內(nèi)部不被打亂。雖然這個應(yīng)用程序是沒有必要的,它可能在某些應(yīng)用中必須指出,在編程過程中不會擾亂外圍電路的狀態(tài)
程序控制器
程序控制器生成的地址,數(shù)據(jù)和控制信號,對嵌入到程序中的AT89C51有重要作用。
程序控制器電路由一個AT89C51和一個RS - 232電平轉(zhuǎn)換器組成。該控制器運行在11.0592兆HZ,此頻率允許串口運行在一個標(biāo)準(zhǔn)波特率下。一個MAXIM MAX232線路驅(qū)動器/接收器產(chǎn)生RS - 232水平,而只需要5伏的電源系統(tǒng)。
程序控制器所產(chǎn)生的信號許多只需直接連接到AT89C51,無需緩沖。這些信號,在不活動時,不再是三種狀態(tài),但被接高電平。AT89C51的端口1,2,3內(nèi)部有大約3000歐姆的上拉電阻,因為端口0沒有內(nèi)部上拉電阻,所以外部10千歐姆的上拉電阻已經(jīng)加上允許適當(dāng)?shù)某绦蛘J(rèn)證模式操作。示例應(yīng)用程序在這種環(huán)境下可正常運行。如果有需要的應(yīng)用程序兼容性,程序發(fā)出的信號可能在類似74xx125三態(tài)緩沖緩沖區(qū)內(nèi)緩沖。
AT89C51的程序不使用外部程序或數(shù)據(jù)存儲器,這需要犧牲所需要的I / O引腳。這就要求程序代碼和I / O緩沖區(qū)保持足夠小以適合片上存儲器。
商業(yè)電話線遠(yuǎn)程編程
編程器和前面描述的顯示應(yīng)用是與通過調(diào)制解調(diào)器連接在遠(yuǎn)程站點電話線相連的。使用鏈接調(diào)制解調(diào)器的個人電腦,用戶可以上傳包含一個新的消息的程序,這個信息被變成進了嵌入到應(yīng)用程序的AT89C51中。當(dāng)編程完成后,應(yīng)用程序執(zhí)行新的程序,它顯示新信息。
本地配置
測試配置的本地配置包括一臺IBM個人電腦級的計算機連接到與Hayes兼容的,普羅米修斯1200波特的調(diào)制解調(diào)器。選擇此調(diào)制解調(diào)器,因為它是廉價可得。更快的調(diào)制解調(diào)器如果需要的話可使用更快速的調(diào)制解調(diào)器,盡管一旦該文件的傳輸時間低于1分鐘,進一步削減的傳輸時間不會進一步降低連接時間費用。更高的傳輸速度的可能優(yōu)勢是在某些高速調(diào)制解調(diào)器內(nèi)的自動錯誤檢測和糾正。
Procomm Plus版本2.01,是一個商業(yè)數(shù)據(jù)通信軟件包,用于配置調(diào)制解調(diào)器,建立通訊設(shè)置參數(shù),并建立與遠(yuǎn)程調(diào)制解調(diào)器的鏈接。 Procomm Plus包括所謂的宏語言方面,它允許用戶編寫實現(xiàn)自定義的文件傳輸協(xié)議的腳本。一個簡單的腳本編寫用來讀取一個程序文件的內(nèi)容,并上傳到遠(yuǎn)程編程器 。
文件傳輸協(xié)議(FTP)的實施,是一個簡單的發(fā)送和等待的,數(shù)據(jù)包導(dǎo)向的協(xié)議。FTP模式發(fā)送和接收的是用數(shù)字4和5,如流程圖所示。不在流程控制下發(fā)射器發(fā)送每個數(shù)據(jù)包,并等待響應(yīng)。
在計算校驗和時那個程序控制器(接收器)讀取并剖析了數(shù)據(jù)包。如果計算出的校驗和是有效的,程序員通過發(fā)送一個ACK承認(rèn)此數(shù)據(jù)包。如果校驗和錯誤,程序員通過發(fā)送一個NAK來否定。當(dāng)接收一個ACK后,發(fā)射器發(fā)送下一個數(shù)據(jù)包。如果傳送者接收到NAK,它重新發(fā)送相同的數(shù)據(jù)包。以這種方式傳輸,直到整個文件已被移交。
程序控制器可能通過發(fā)送一個CAN來響應(yīng)數(shù)據(jù)包,CAN表明一個不可恢復(fù)的錯誤發(fā)生,而發(fā)射機應(yīng)立即中止文件傳輸。如果程序員沒有在有限的時間內(nèi)響應(yīng)到一個數(shù)據(jù)包,發(fā)送器將重新發(fā)送相同的數(shù)據(jù)包。
發(fā)射器將繼續(xù)重發(fā),直到接收到一個有效的反應(yīng),或者,超出文件傳輸被中止的時間。每個數(shù)據(jù)包接收和通過程序員驗證后,數(shù)據(jù)包中包含的數(shù)據(jù)被加載到的AT89C51單片機控制器編程。
編程后,數(shù)據(jù)從控制器讀回并對接收的數(shù)據(jù)包進行驗證。成功的審查表明,成功的程序設(shè)計,使程序員發(fā)送ACK給傳送者。如果編程失敗,程序員發(fā)送CAN向傳送者發(fā)送信號中止文件傳輸。
簡單的FTP減少了AT89C51的程序在編程時使用的內(nèi)存量。由于AT89C51的編程和擦除時間可以很容易地吸收,F(xiàn)TP發(fā)送和等待的性質(zhì)允許跨包延遲。對程序驗證的支持是透明的,不需要明確的命令或結(jié)果代碼,或轉(zhuǎn)讓的其他數(shù)據(jù)。
上傳到程序控制器的文件是用英特爾MCS- 51軟件開發(fā)包來創(chuàng)建的。在包中包括了MCS - 51宏匯編,MCS - 51單片機Relocator和連接器,以及一個有用的工具,OH。OH將8051絕對目標(biāo)文件轉(zhuǎn)換為為等效的ASCII十六進制目標(biāo)文件。
遠(yuǎn)程配置
在測試配置中的遠(yuǎn)程配置包括顯示應(yīng)用程序和程序員電路,如前所述,連接到一個與Hayes兼容的普羅米修斯1200波特調(diào)制解調(diào)器。在正常操作時,應(yīng)用程序執(zhí)行其內(nèi)部程序,而調(diào)制解調(diào)器和程序員監(jiān)測來電電話線。
通話被檢測到并連接建立后,程序器強迫暫停其程序的執(zhí)行。新的程序就被下載并嵌入到應(yīng)用程序中的AT89C51的編程。當(dāng)編程完成后,應(yīng)用軟件程序獲準(zhǔn)開始其新的程序執(zhí)行,而程序控制器返回監(jiān)督下一個通話的電話線。
程序控制輸出無效時程序控制器上電,允許應(yīng)用程序正常運行。在配置調(diào)制解調(diào)器接聽來電后,程序控制器停止工作。是程序控制器不會影響到程序直到一個新的程序應(yīng)用程序被下載。
程序員通過發(fā)送控制在串行接口上的ASCII命令字符串來控制調(diào)制解調(diào)器,對此調(diào)制解調(diào)器響應(yīng)海斯式調(diào)制解調(diào)器的ASCII數(shù)字代碼。該軟件是專為與海斯兼容使用的調(diào)制解調(diào)器,其中包括這里使用的1200普羅米修斯ProModem。
串行接口,程序員通過它連接到調(diào)制解調(diào)器,它支持兩個握手信號,DTR和DSR。上電時,程序控制器判定DTR,斷定為DTR后調(diào)制解調(diào)器響應(yīng)。如果調(diào)制解調(diào)器不響應(yīng)任何命令,包括命令掛斷,程序控制器抬高DTR點位,強制調(diào)制解調(diào)器下降。
當(dāng)程序控制器停止工作后,監(jiān)測調(diào)制解監(jiān)聽電話線,等待來電呼叫。當(dāng)檢測到輸入,調(diào)制解調(diào)器響應(yīng)并試圖與輸入建立通信。如果建立了連接,調(diào)制解調(diào)器發(fā)送一個代碼,喚醒程序控制器。程序控制器驗證連接的代碼,并開始審查有效的數(shù)據(jù)包報頭。
傳入數(shù)據(jù)包必須在少于30秒內(nèi)到達(dá),否則調(diào)制解調(diào)器掛斷和程序控制器繼續(xù)停止工作,等待下一次呼叫。如果來電掛斷,在得到下一次呼叫之前,三十秒時間必須終止。在復(fù)位延遲時間傳入是被忽略的。
如果復(fù)位延遲時間結(jié)束之前收到一個有效的數(shù)據(jù)包報頭,程序控制器將嘗試讀取和驗證傳入的數(shù)據(jù)包。在數(shù)據(jù)包的接收過程中的任何時間,無效字符,奇偶校驗錯誤或超時的時間內(nèi)接待字符將導(dǎo)致部分?jǐn)?shù)據(jù)包被宣布無效,并丟棄。
兩個數(shù)據(jù)包類型定義:數(shù)據(jù)和最終文件。數(shù)據(jù)包包含五個領(lǐng)域,除了包報頭,是一個可變長度的數(shù)據(jù)字段。數(shù)據(jù)字段包含程序的數(shù)據(jù)在應(yīng)用程序中被寫入在AT89C51的控制器。負(fù)載地址字段中包含數(shù)據(jù)寫入的地址。末端文件包中包含與數(shù)據(jù)包相同的領(lǐng)域的文件,但該數(shù)據(jù)字段是空的。這包類型對程序控制器具有特殊的意義,如下所述。
任何包含有效文種的數(shù)據(jù)包,記錄長度或校驗和無效。程序數(shù)據(jù)在一個無效的數(shù)據(jù)包被丟棄的處理過程中被積累。編程器給傳送者發(fā)送一個NAK作為信號數(shù)據(jù)包的接收和恢復(fù)為一個有效的數(shù)據(jù)包報頭審查的警示信號。
第一個有效數(shù)據(jù)的接收引起編程器中斷應(yīng)用程序控制器。該控制器的中斷響應(yīng)放棄其正在運行的程序,并顯示一條消息,表明程序已經(jīng)被替代。如果這是由于接收了末端文件或者是電源觸發(fā)從而接收的第一個有效的數(shù)據(jù)包,運用必要的控制信號清除在應(yīng)用控制器內(nèi)的記憶程序。然后編程器在程序模式中放置控制器。
當(dāng)接收到第一個和其后的有效數(shù)據(jù)程序包時,將它們分開,它們包含的數(shù)據(jù)被編程到程序包負(fù)載地址域中的地址中的應(yīng)用控制器內(nèi)。編程后,從控制器內(nèi)將數(shù)據(jù)讀回并與接收到的數(shù)據(jù)包中的數(shù)據(jù)進行比較。成功的核查表明,方案是成功的,導(dǎo)致編程器向傳送者發(fā)送ACK信號。由于30秒的復(fù)位延遲,編程器重新對有效的數(shù)據(jù)包報頭進行測試。
如果編程失敗,編程器向傳送者發(fā)送信號CAN中止文件傳輸。調(diào)制解調(diào)器掉線,程序器繼續(xù)休眠等待下一次呼叫。應(yīng)用控制在程序模式中被保留,用以阻止它包含的不完整的或無效的程序。
重要的是要注意,無效的數(shù)據(jù)包永遠(yuǎn)不會規(guī)劃到應(yīng)用程序控制器。這樣做將要求錯誤被糾正之前,編程器中的記憶程序被徹底抹掉,造成先前所有數(shù)據(jù)的不可恢復(fù)。
根據(jù)末端文件的接收,編程器向閑置的狀態(tài)電源返回其控制輸出,允許應(yīng)用程序控制器,開始執(zhí)行新的程序。然后編程器在三十秒延遲之下重新開始對一個數(shù)據(jù)包報進行審查。
如果一個有效的數(shù)據(jù)包在30秒延遲之前接收,另一個只能被接受一個有效的末端文件而終止的程序循環(huán)開始執(zhí)行。
如果復(fù)位在收有效末端文件之前終止,那么調(diào)制解調(diào)器會掉線,編程器停止工作,等待下一次傳入。在這種情況下應(yīng)用控制器被保留在程序設(shè)計模式,以防止它執(zhí)行這個程序。要返回應(yīng)用程序的正常運行,另一個傳入必須被接收,一個有效的程序文件被上傳,由末端文件包終止。