A. 單片機離線燒錄是什麼意思是先寫好文件再無線燒錄的嗎
單片機燒錄
要冷啟動
也就是先把單片機的電源關了
然後在按「下載」,等到顯示「仍在連接中,
請給
mcu
上電」
再把電源打開。
如果你是按照這個程序做的話,還有問題的話
,那是不是電源過低的問題啊,或者是單片機的問題
可能的問題實在太多了
不好說
B. 如何給單片機燒錄程序
需要利用下載器和下載軟體才能將keil程序輸出的hex文件燒錄到單片機中。具體操作請參照以下步驟,演示單片機為51單片機。
1、首先准備好51單片機最小系統板和燒錄器。
C. 單片機三種燒錄方式ISP,IAP和ICP的區別詳解
單片機ISP、IAP和ICP幾種燒錄方式的區別
玩單片機的都應該聽說過這幾個詞。一直搞不太清楚他們之間的區別。今天查了資料後總結整理如下。
ISP:In System Programing,在系統編程
IAP:In applicaTIng Programing,在應用編程
ICP:In Circuit Programing,在電路編程
ISP是指可以在板級上進行編程,也就是不用拆晶元下來,寫的是整個程序,一般是通過ISP介面線來寫。
IAP雖然同樣也是在板級上進行編程,但是是自已對自已進行編程,在應用中進行編程,也即可以只是更改某一部分而不影響系統的其它部分,另外介面程序是自已寫的,這樣可以進行遠程升級而不影響應用。
打個比喻吧:
1、ISP是把房子拆了再重造一間,那麼在造好之前當然是不能住人的啦!
2、IAP是在造好的房子里邊進行一些裝修,當然人可以繼續住啦!
ICP是在電路編程,是LPC晶元的編程方式,相當於ATMEL的ISP,而LPC的ISP就相當於ATMEL的IAP了。
ISP與IAP的區別
ISP:in system programming, 在系統編程
IAP: in applicaTIn programming 在應用編程
但兩者的操作方式,結果和應用場合有什麼區別
什麼是ISP:
用寫入器將code燒入,不過,晶元可以在目標板上,不用取出來,在設計目標板的時候就將介面設計在上面,所以叫「在系統編程」,即不用脫離系統;
什麼是IAP:
在應用編程,有晶元本身(或通過外圍的晶元)可以通過一系列操作將code寫入,比如一款支持Iap的單片機,內分3個程序區,1作引導程序區,2作運行程序區,3作下載區,晶元通過串口接收到下載命令,進入引導區運行引導程序,在引導程序下將new code內容下載到下載區,下載完畢並校驗通過後再將下載區內容復制到2區,運行復位程序,則Iap完成;
應用場合:
1,ISP 程序升級需要到現場解決,不過好一點的是不必拆機器了;
2,IAP 如果有網管系統的話,用網管下載一切搞定,人不用跑來跑去,
這可能是他們的優點或應用吧
在線編程目前有兩種實現方法:在系統編程(ISP)和在應用編程(IAP)。ISP一般是通過單片機專用的串列編程介面對單片機內部的Flash存儲器進行編程,而IAP技術是從結構上將Flash存儲器映射為兩個存儲體,當運行一個存儲體上的用戶程序時,可對另一個存儲體重新編程,之後將控制從一個存儲體轉向另一個。ISP的實現一般需要很少的外部電路輔助實現,而IAP的實現更加靈活,通常可利用單片機的串列口接到計算機的RS232口,通過專門設計的固件程序來編程內部存儲器。 ISP和IAP很相似,都是不需要把晶元從板子上拔出來,就達到了用PC-MCU的編程介面(JTAG、串口、雙絞線、SPI等)搞定新版本的升級的目的。MCU內部都是首先執行一段獨立的Boot代碼(這段Boot代碼一般是出廠預置,或使用編程器燒錄的,通常只有1k或4k,SST通常是佔用一塊獨立的Block,Philips通常是讓BootROM地址與其他Flash重疊,以達到隱藏的效果),Boot負責控制擦除程序存儲器及給程序存儲器編程的代碼(或是處理器外部提供的執行代碼),然後通過某種與PC計算機的通信方式(如,ether網口),將用戶指定的某個在PC上編譯完成的MCU可運行的二進制代碼文件編程入MCU內的程序存儲器。
ISP和IAP最大的不同是:由誰來觸發。
ISP有4種觸發方式:
1.由外部硬體電路:如VDD保持高電平,給RST連續3個脈沖;
2.檢測狀態位:如ISPEN,為0時PC指針從0000H開始執行;為1時,通過「引導向量」計算出「ISP代碼」的位置。每次復位後都會檢測該狀態位;
3.中止控制符信號觸發晶元復位:中止控制符信號就是指在非同步串列口的接收腳上出現長 達一幀長度的低電平,這里一幀的長度與非同步串列口的工作模式有關。
4.直接調用ISP:用戶程序也可以調用,但是很危險。
4種方式的目的是相同的——進入ISP子程序,比如Philips出廠的ISP子程序在1E00H-1FFFH,只要能引導PC指針指向1E00H就可以了。
而進入ISP代碼的目的是:進入BootROM。
IAP的觸發比較簡單一些,沒有外部觸發。通過一些指示位(SST為SC0/SC1、SFCF;Philips為一段IAP子程序,保存在FF00H~FFFFH地址空間中),達到引導到BootROM的目的。
殊途同歸,ISP、IAP所進入的BootROM裡面駐留的Boot代碼,才是最終目標。
最後一種:並行編程模式。不需要BootROM,直接設置晶元的多個引腳來讓晶元識別命令(如:擦除、寫入、驗證等),從P口傳地址、數據,就可以寫入Flash
用LPC2000的IAP,你自己分配好FLASH空間,指定一個BLOCK用來存放你的數據,然後通過IAP進行寫操作。每次開機後,從這個BLOCK讀你的數據。
D. 51單片機程序燒錄失敗怎麼解決
51單片機燒錄失敗,除了連線、操作等外,可能就是單片機接觸不良,壞了等原因,視具體情況分別處理。
E. 單片機突然就燒錄不進去了。。。
第一種可能是可能選擇了「內部復位」,
第二種可能是串口可能有些問題,STC下載程序,串口電路設計不好的話,很容易損壞電腦的串口。
F. 單片機的物理燒錄過程
單片機寫入程序不叫燒錄,叫下載,或者模擬,內部工作有點復雜,你可以理解為從電腦吧程序下載到單片機晶元裡面去,就跟你吧軟體拷貝到U盤裡面一樣,因為單片機晶元帶有內存,工作機制跟U盤一樣
Flash晶元並不是像光碟那樣把信息刻上去的。為了更加清楚地說明,我首先讓你知道計算機的信息是怎樣儲存的。計算機用的是二進制,也就是0與1。在二進制中,0與1可以組成任何數。而電腦的器件都有兩種狀態,可以表示0與1。比如三極體的斷電與通電,磁性物質的已被磁化與未被磁化,物質平面的凹與凸,都可以表示0與1。硬碟就是採用磁性物質記錄信息的,磁碟上的磁性物質被磁化了就表示1,未被磁化就表示0,因為磁性在斷電後不會喪失,所以磁碟斷電後依然能保存數據。而內存的儲存形式則不同,內存不是用磁性物質,而是用RAM晶元。現在請你在一張紙上畫一個「田」,就是畫一個正方形再平均分成四份,這個「田」字就是一個內存,這樣,「田」裡面的四個空格就是內存的儲存空間了,這個儲存空間極小極小,只能儲存電子。。好,內存現在開始工作。內存通電後,如果我要把「1010」這個信息保存在內存(現在畫的「田」字)中,那麼電子就會進入內存的儲存空間里。「田」字的第一個空格你畫一點東西表示電子,第二個空格不用畫東西,第三個空格又畫東西表示電子,第四個格不畫東西。這樣,「田」的第一格有電子,表示1,第二格沒有,表示0,第三格有電子,表示1,第四格沒有,表示0,內存就是這樣把「1010」這個數據保存好了。電子是運動沒有規律的物質,必須有一個電源才能規則地運動,內存通電時它很安守地在內存的儲存空間里,一旦內存斷電,電子失去了電源,就會露出它亂雜無章的本分,逃離出內存的空間去,所以,內存斷電就不能保存數據了。再看看U盤,U盤里的儲存晶元是Flash晶元,它與RAM晶元的工作原理相似但不同。現在你在紙上再畫一個「田」字,這次要在四個空格中各畫一個頂格的圓圈,這個圓圈不是表示電子,而是表示一種物質。好,Flash晶元工作通電了,這次也是保存「1010」這個數據。電子進入了「田」的第一個空格,也就是晶元的儲存空間。電子把裡面的物質改變了性質,為了表示這個物質改變了性質,你可以把「田」內的第一個圓圈塗上顏色。由於數據「1010」的第二位數是0,所以Flash晶元的第二個空間沒有電子,自然裡面那個物質就不會改變了。第三位數是1,所以「田」的第三個空格通電,第四個不通電。現在你畫的「田」字,第一個空格的物質塗上了顏色,表示這個物質改變了性質,表示1,第二個沒有塗顏色,表示0,以此類推。當Flash晶元斷電後,物質的性質不會改變了,除非你通電擦除。當Flash晶元通電查看儲存的信息時,電子就會進入儲存空間再反饋信息,電腦就知道晶元裡面的物質有沒有改變。就是這樣,RAM晶元斷電後數據會丟失,Flash晶元斷電後數據不會丟失,但是RAM的讀取數據速度遠遠快於Flash芯