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