購(gòu)買設(shè)計(jì)請(qǐng)充值后下載,,資源目錄下的文件所見即所得,都可以點(diǎn)開預(yù)覽,,資料完整,充值下載可得到資源目錄里的所有文件。。。【注】:dwg后綴為CAD圖紙,doc,docx為WORD文檔,原稿無(wú)水印,可編輯。。。具體請(qǐng)見文件預(yù)覽,有不明白之處,可咨詢QQ:12401814
黃河科技學(xué)院畢業(yè)設(shè)計(jì)(文獻(xiàn)翻譯) 第 7 頁(yè)
畢業(yè)設(shè)計(jì)
文獻(xiàn)翻譯
院(系)名稱
工學(xué)院機(jī)械系
專業(yè)名稱
機(jī)械設(shè)計(jì)制造及其自動(dòng)化
學(xué)生姓名
馬飛
指導(dǎo)教師
牛月蘭
學(xué)號(hào)
080105626
2012年 03 月 05 日
AT89C51單片機(jī)在線編程
本應(yīng)用指南說(shuō)明了Atmel AT89C51是可在線編程的微控制器。它為電路編程提出了相應(yīng)的例子,程序的修改需要在線編程的支持。這類顯示方法在應(yīng)用程序中的AT89C51單片機(jī)可通過(guò)電話線遠(yuǎn)程控制。該應(yīng)用指南所描述的電路只支持5v電壓下編程,需要使用一個(gè)AT89C51-XX-5。標(biāo)準(zhǔn)AT89C51單片機(jī)編程要12V電壓。此應(yīng)用軟件可以到Atmel進(jìn)行下載。
總論
當(dāng)不在進(jìn)行程序設(shè)計(jì)的時(shí)候,在電為低電平才能正常運(yùn)行。路設(shè)計(jì)中的AT89C51設(shè)計(jì)將變得透明化。
在編程期間必須重視EA/VPP這一腳。在不使用外部程序存儲(chǔ)器的應(yīng)用程序中,這腳可能會(huì)永久接到VCC。應(yīng)用程序使用的外部程序存儲(chǔ)器要求這一腳
RST在編程期間必須為高電平。應(yīng)該提供一種方法使得電路通入電源以后,使RST代替主要的復(fù)位電路起到復(fù)位的作用 。
在編程過(guò)程中,PSEN必須保持低電平,在正常運(yùn)行期間絕不能使用。
ALE/ PROG在編程過(guò)程中輸出低電平,在正常運(yùn)行期間絕不能使用。
在編程過(guò)程中,AT89C51的I / O端口是用于選擇地址和數(shù)據(jù)模式應(yīng)用程序,可能需要該控制器與應(yīng)用電路隔離。如何做到這一點(diǎn)取決于應(yīng)用程序。
輸入端口
在編程過(guò)程中,控制器必須與信號(hào)源隔離。具有三個(gè)輸出狀態(tài)的緩沖區(qū)會(huì)在應(yīng)用程電路和控制器之間,同時(shí)在編程時(shí)具有三態(tài)輸出緩沖且在編程時(shí)啟用。一個(gè)多路電路可用于信號(hào)源之間進(jìn)行選擇,適用于任何一方的應(yīng)用電路或編程控制器電路的信號(hào)。
輸出端口
如果應(yīng)用的電路可以允許端口在編程過(guò)程中的狀態(tài)變化,則不需要改變電路。如果應(yīng)用電路的狀態(tài),必須事先在編程過(guò)程中的保持不變,可能在控制器和應(yīng)用電路中插入鎖存。該鎖存器能在編程期間保持應(yīng)用電路的狀態(tài)。
應(yīng)用實(shí)例
應(yīng)用是該AT89C51完成一個(gè)移動(dòng)顯示。此應(yīng)用程序有在電路重新編程時(shí)將結(jié)果以圖表的形式顯示的簡(jiǎn)單能力。文本顯示被設(shè)計(jì)作為其硬件的一部分,不能在無(wú)改編情況下變化。
顯示的文本可在4位DIP開關(guān)選擇兩種模式之一中進(jìn)行。在第一種模式的時(shí)候,進(jìn)入一個(gè)字符從右邊顯示和快速移動(dòng),通過(guò)每個(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è)6 MHz的晶體振蕩器完成應(yīng)用軟件程序。無(wú)論外部程序存儲(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)在編程過(guò)程中不反應(yīng),從而消除端口0和2由于程序控制器的活動(dòng)造成操作失誤。顯示數(shù)據(jù)輸入是不能被孤立的,因?yàn)閿?shù)據(jù)應(yīng)用到輸入被忽略時(shí),控制信號(hào)無(wú)效。
AT89C51單片機(jī)復(fù)位電路,輸入多路復(fù)用器和輸出鎖存器是由程序控制器生成一個(gè)單一的信號(hào)來(lái)控制的。在編程過(guò)程中,復(fù)位鍵生效,多路開關(guān)信號(hào)輸入,以及凍結(jié)顯示鎖存控制線。
為確??刂凭€顯示在已知的狀態(tài)前鎖定,AT89C51的外部中斷是用來(lái)允許程序控制器在復(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)用中必須指出,在編程過(guò)程中不會(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è)MAXIM MAX232線路驅(qū)動(dòng)器/接收器產(chǎn)生RS - 232水平,而只需要5伏的電源系統(tǒng)。
程序控制器所產(chǎn)生的信號(hào)許多只需直接連接到AT89C51,無(wú)需緩沖。這些信號(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)用是與通過(guò)調(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è)和糾正。
Procomm Plus版本2.01,是一個(gè)商業(yè)數(shù)據(jù)通信軟件包,用于配置調(diào)制解調(diào)器,建立通訊設(shè)置參數(shù),并建立與遠(yuǎn)程調(diào)制解調(diào)器的鏈接。 Procomm Plus包括所謂的宏語(yǔ)言方面,它允許用戶編寫實(shí)現(xiàn)自定義的文件傳輸協(xié)議的腳本。一個(gè)簡(jiǎn)單的腳本編寫用來(lái)讀取一個(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)和是有效的,程序員通過(guò)發(fā)送一個(gè)ACK承認(rèn)此數(shù)據(jù)包。如果校驗(yàn)和錯(cuò)誤,程序員通過(guò)發(fā)送一個(gè)NAK來(lái)否定。當(dāng)接收一個(gè)ACK后,發(fā)射器發(fā)送下一個(gè)數(shù)據(jù)包。如果傳送者接收到NAK,它重新發(fā)送相同的數(shù)據(jù)包。以這種方式傳輸,直到整個(gè)文件已被移交。
程序控制器可能通過(guò)發(fā)送一個(gè)CAN來(lái)響應(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ù)包接收和通過(guò)程序員驗(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ā)包來(lái)創(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è)來(lái)電電話線。
通話被檢測(cè)到并連接建立后,程序器強(qiáng)迫暫停其程序的執(zhí)行。新的程序就被下載并嵌入到應(yīng)用程序中的AT89C51的編程。當(dāng)編程完成后,應(yīng)用軟件程序獲準(zhǔn)開始其新的程序執(zhí)行,而程序控制器返回監(jiān)督下一個(gè)通話的電話線。
程序控制輸出無(wú)效時(shí)程序控制器上電,允許應(yīng)用程序正常運(yùn)行。在配置調(diào)制解調(diào)器接聽來(lái)電后,程序控制器停止工作。是程序控制器不會(huì)影響到程序直到一個(gè)新的程序應(yīng)用程序被下載。
程序員通過(guò)發(fā)送控制在串行接口上的ASCII命令字符串來(lái)控制調(diào)制解調(diào)器,對(duì)此調(diào)制解調(diào)器響應(yīng)海斯式調(diào)制解調(diào)器的ASCII數(shù)字代碼。該軟件是專為與海斯兼容使用的調(diào)制解調(diào)器,其中包括這里使用的1200普羅米修斯ProModem。
串行接口,程序員通過(guò)它連接到調(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)聽電話線,等待來(lái)電呼叫。當(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ù)停止工作,等待下一次呼叫。如果來(lái)電掛斷,在得到下一次呼叫之前,三十秒時(shí)間必須終止。在復(fù)位延遲時(shí)間傳入是被忽略的。
如果復(fù)位延遲時(shí)間結(jié)束之前收到一個(gè)有效的數(shù)據(jù)包報(bào)頭,程序控制器將嘗試讀取和驗(yàn)證傳入的數(shù)據(jù)包。在數(shù)據(jù)包的接收過(guò)程中的任何時(shí)間,無(wú)效字符,奇偶校驗(yàn)錯(cuò)誤或超時(shí)的時(shí)間內(nèi)接待字符將導(dǎo)致部分?jǐn)?shù)據(jù)包被宣布無(wú)效,并丟棄。
兩個(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)和無(wú)效。程序數(shù)據(jù)在一個(gè)無(wú)效的數(shù)據(jù)包被丟棄的處理過(guò)程中被積累。編程器給傳送者發(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)用控制在程序模式中被保留,用以阻止它包含的不完整的或無(wú)效的程序。
重要的是要注意,無(wú)效的數(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è)有效的程序文件被上傳,由末端文件包終止。