<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STC單片機專(zhuān)用的自動(dòng)下載系統

STC單片機專(zhuān)用的自動(dòng)下載系統

作者: 時(shí)間:2013-01-19 來(lái)源:網(wǎng)絡(luò ) 收藏

STC單片機專(zhuān)用的自動(dòng)下載系統

對目標單片機進(jìn)行冷啟動(dòng),實(shí)現斷電、再上電,可以用三極管作為電子開(kāi)關(guān)實(shí)現。必須注意到的是,三極管的最大可通過(guò)電流不要小于單片機電路的所需電流。如果三極管僅作為單片機供電的開(kāi)關(guān),由于STC89系列單片機的正常丁作模式功耗為2~7 mA,90系列三極管通常情況下可以滿(mǎn)足需求。但在某些情況下,單片機的串口上電后會(huì )給單片機供電,使單片機各引腳電平處于不確定的狀態(tài),因而必須對目標電路板整體進(jìn)行冷啟動(dòng),三極管必須滿(mǎn)足目標電路板的總電流需求。由于三極管8550的最大可通過(guò)電流為1.5 A,可以滿(mǎn)足絕大多數電路的供電需求。所以選擇三極管8550連接到目標單片機STC89C52RC的VCC腳,作為對其冷啟動(dòng)的開(kāi)關(guān)。

如圖1所示,D1為指示燈,其亮滅可以通過(guò)的P3.3腳控制。在程序中加入相應的語(yǔ)句即可實(shí)現燈的亮滅與閃爍,以顯示系統的狀態(tài)。

3 系統軟件設計

軟件流程如圖2所示。在初始化后,系統循環(huán)檢測是否接收到下載信號;經(jīng)過(guò)判斷證實(shí)接收到下載信號后,就切斷目標單片機電源;等待適當的時(shí)間后,再給目標單片機上電。單片機正常工作期間,系統接收到發(fā)往目標單片機串口的非下載命令程序,經(jīng)自動(dòng)判斷后不作任何動(dòng)作。

3.1 串口模擬程序

由于沒(méi)有串口,因而必須利用定時(shí)器模擬串口。其方法是,定義一個(gè)常量,根據所需要的波特率對該常量賦值,并將該常量值賦到定時(shí)所用的寄存器中。在模擬外部晶振為11.059 2 MHz、波特率為9 600 bps的情況下,設置常量BAUD為0xFE80,并將該常量賦值到TL1、TH1兩個(gè)寄存器中,實(shí)現定時(shí)。每到相應時(shí)間觸發(fā)定時(shí)中斷程序,將外部引腳的狀態(tài)讀入并存入預先設定的數組中,完成模擬串口讀入字節的任務(wù)。

3.2 下載命令檢測程序

在STC上位機軟件發(fā)出的下載命令中,波特率為9 600 bps時(shí)數據流為連續的0x80。由于在單片機正常工作時(shí)也有可能接收0x80,下載系統只有嚴格檢測到連續多個(gè)0x80時(shí),才能判斷為接收到了下載命令。如果其中有一個(gè)不是0x80,則重新檢測計數。這里設定為當系統連續接收到200個(gè)0x80時(shí),判定為接收到了下載命令。

3.3 冷啟動(dòng)操作和指示燈程序

接收到下載命令后,首先關(guān)閉定時(shí)器中斷,停止模擬串口的接收工作。之后將P3.4置1,切斷目標單片機的電源。延遲1~2 s后置0,恢復對目標單片機的供電??紤]到STC上位機下載軟件從發(fā)送下載命令到單片機開(kāi)始下載大約需要1~2 s的時(shí)間,恢復供電后需要繼續延遲5 s,保證目標單片機已經(jīng)開(kāi)始下載后再啟動(dòng)定時(shí)器中斷。

接收到下載命令后,必須作出回應才能進(jìn)行下載。上位機發(fā)出的下載信號同時(shí)發(fā)送到目標單片機和,中的單片機的P3.1腳懸空,而目標單片機的P3.1與上位機串口相連。這樣,只有目標單片機能夠回應下載命令實(shí)現下載,自動(dòng)下載系統中的單片機不能回應下載命令,避免了對上位機的干擾。

結語(yǔ)

本文針對冷啟動(dòng)下載的特點(diǎn),設計了STC單片機自動(dòng)下載系統,自動(dòng)判斷下載命令并對目標單片機實(shí)現自動(dòng)冷啟動(dòng)下載。由于自動(dòng)下載系統是以STC15F104E為核心,在使用前仍然需要以傳統冷啟動(dòng)方式將代碼下載到STC15F104E中,之后才可以對目標單片機實(shí)現自動(dòng)下載。STC單片機自動(dòng)下載系統省去了操作人員手動(dòng)開(kāi)關(guān)電源的不便,避免了相應的機械損耗,具有較高的實(shí)用價(jià)值。

燃氣報警器相關(guān)文章:燃氣報警器原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: STC單片機 自動(dòng)下載系統 STC15F104E

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>