什么是單片機燒寫(xiě)程序
為什么叫燒寫(xiě)呢?
早期一般是將調試好的單片機程序寫(xiě)入到ROM、EPROM中,這種操作就像刻制光盤(pán)一樣,實(shí)在高電壓方式下寫(xiě)入,PROM是一次性寫(xiě)入,存儲內部發(fā)生變化,有些線(xiàn)路或元件就被燒斷,不可再恢復,所以叫做燒寫(xiě),EPROM可以使用紫外線(xiàn)將原來(lái)寫(xiě)入的內容擦除,重新燒寫(xiě),目前大量采用EEPROM,是可以電擦寫(xiě)的存儲器。
單片機啟動(dòng)時(shí)會(huì )直接運行這些芯片中的程序,完成既定的功能。
所謂燒寫(xiě),其實(shí)就是對單片機中的rom進(jìn)行擦寫(xiě)?,F代工藝下,rom已經(jīng)可以進(jìn)行多次擦寫(xiě),但在早期,rom只能一次性設計好,例如早期的PLC,把二極管上的絲燒了后就永久編碼出1。而我們知道,單片機程序經(jīng)編譯連接后傳給機器便是機器語(yǔ)言,簡(jiǎn)而言之就是一大堆1和0。在少些過(guò)程中,我們將燒不燒一大堆MOS管和BJT的絲或連不連上通道來(lái)表示這些1和0。
燒寫(xiě)的三種方式:
1.把單片機當做一個(gè)ROM芯片,早期的單片機都是如此。將單片機放在通用編程上編程時(shí),就像給28C256這樣的ROM中寫(xiě)程序的過(guò)程一樣。只是不同的單片機使用的端口,編程用的時(shí)序不一樣。
2.像AT89S52或AVR單片機一樣,在單片機上有SPI接口,這時(shí)用專(zhuān)用的下載線(xiàn)將程序燒寫(xiě)到單片機中。這時(shí)不同的是,單片機的CPU除了執行單片機本身的指令之外,還能執行對ROM進(jìn)行操作的特殊指令,如ROM擦除、燒寫(xiě)和校驗指令。在編程ROM時(shí),下載線(xiàn)先通過(guò)傳輸這些指令給CPU執行(擦除ROM、讀入數據、燒寫(xiě)ROM、和校驗ROM),這樣完成對單片機的ROM的燒寫(xiě)。此外,現在普遍使用的JTAG仿真器也是這樣,單片機的CPU能執行JTAG的特殊指令,完成對ROM的燒寫(xiě)操作。
3.引導程序,即單片機中已經(jīng)存在了一個(gè)燒寫(xiě)程序。啟動(dòng)單片機時(shí)首先運行這程序,程序判斷端口狀態(tài),如果符合“要燒寫(xiě)ROM”的狀態(tài)存在,就從某個(gè)端口(串口、SPI等等)讀取數據,然后寫(xiě)入到單片機的ROM中。如果沒(méi)有“要燒寫(xiě)ROM”的狀態(tài),就轉到用戶(hù)的程序開(kāi)始執行。像AVR單片機的bootloader方式、STC的串口下載方式,還有其他單片機的串口編程等等都是這樣。
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論