<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 第八節:把.hex 機器碼程序燒錄到單片機的操作流程 ## 【8.1 燒錄程序的本質】 “燒錄” 是比較專業的說法,很多初學者第一次聽這詞還以為跟火有關,莫名其妙的 “燒錄” 是啥意思?燒錄其實就是下載,燒錄程序就是下載程序。下載好理解了吧,下載電影,下載歌曲,讓播放器去播放。此處的下載程序跟下載歌曲的 “下載” 完全是一回事。有人會問,下載歌曲到手機,手機是成品,下載程序到單片機,單片機也是成品?新買回來的單片機不是一張白紙的電子元件嗎?其實,新買回來的單片機就是一個成品,它不是白紙,它內部已經嵌入了一段系統程序,這個系統程序就像你剛買回來的手機就幫你預裝了安卓系統一樣,只是它的用戶存儲區是空白的。比如手機,你往這個存儲區里存電影就可以看電影,存音樂就可以聽音樂。比如單片機,你往這個存儲區存不同的程序就可以讓單片機做不同的事。而預裝在新單片機內部的系統程序就是專門負責跟外部接口通訊,同時負責把 hex 格式的程序代碼存放在單片機內部正確的位置,這個就是燒錄程序 (下載程序) 的本質。這樣一比喻,所以.hex 格式的燒錄文件跟.MP3 格式的音樂文件在存儲本質上是一樣的。 再回顧總結一下,燒錄程序的本質是:把單片機當做一個存儲器,每一條程序指令都對應一個唯一的存儲地址,把這些指令以字節為單位一條條存儲到指定的存儲地址中,這就是燒錄程序的本質。對于 STC89C52RC 單片機,在下載程序時需要上位機軟件和一根 USB 轉串口線。上位機軟件負責把.hex 格式的機器碼文件打開,機器碼文件里面記錄著每條程序指令所對應的地址信息,下載過程時,上位機軟件根據.hex 文件記錄的指令內容和對應的地址信息,經過 USB 轉串口線,跟單片機的預置系統程序進行串口通訊,從而把.hex 記錄的信息傳輸到單片機內部的 flash 存儲器中,實現了程序的燒錄下載。 ## 【8.2 燒錄程序所需的工具和軟件】 ### (1)裝有 XP 或者 WIN7 系統的電腦一臺 其它更高系統的我還沒測試過,應該問題也不大。 ![](https://img.kancloud.cn/ca/7f/ca7fd998746a88e26d835c4ecd7cb1d1_848x543.png) 圖 8.2.2 帶串口的單片機最小系統 ### (2)帶 9 針串口、1 顆 LED 燈、電源撥動開關、能 5V 電源供電的 stc89c52rc 單片機核心板一塊 單片機的學習離不開硬件平臺的編程練習,本教程用的學習板原理圖已經分享到網上連載貼的附件資料里。大家也可以根據原理圖自己焊接一塊學習板來學習,或者用其它廠家帶有串口的單片機學習板來學習。 串口是用來單片機跟電腦通訊的接口,是 STC89C52RC 單片機下載程序的通道。LED 燈用來觀察單片機是否正常運行程序。電源撥動開關方便燒錄程序時提供所需的斷電和上電的操作。本單片機系統是 5V 供電。 ![](https://img.kancloud.cn/a3/f7/a3f766eccfae39f7e3a93f5a6c08876d_468x332.png) 圖 8.2.3 USB 轉串口線 ### (3)主控芯片是 CH340 的 USB 轉 RS232 串口線一條 我之所以推薦主控芯片是 CH340 的 USB 轉 RS232 串口線,因為 CH340 的下載線在燒錄程序時很穩定可靠。這款 USB 轉串口線可以在淘寶購買到。 ![](https://img.kancloud.cn/e3/58/e3581fbc6be8c43027e4296cff732592_385x341.png) 圖 8.2.4 USB 取電的電源線 ### (4)5V 供電的 USB 電源線一條 此 USB 線可以從電腦的 USB 口取電,也可以從輸出 5V 的手機充電器處取電。但是我建議大家用輸出 5V 的手機充電器來供電,因為很多電腦的 USB 口供電干擾比較大,會影響程序燒錄。 ![](https://img.kancloud.cn/72/cc/72cc786e7e5b15f10a71eef0d15bf672_621x265.png) 圖 8.2.5 USB 轉串口的驅動安裝程序 ### (5)主控芯片是 CH340 的 USB 轉 RS232 串口線驅動安裝程序 此驅動程序 USB 轉 RS232 串口線的廠家通常都會提供,但是建議用我在附件資料里推薦給大家的驅動程序,畢竟這個程序經過我本人驗證測試過。 ![](https://img.kancloud.cn/4a/30/4a308ec676b16033e38e7bcebdf8e4e4_531x242.png) 圖 8.2.6 上位機軟件 ### (6)燒錄程序和串口助手功能都具備的 “stc-isp-15xx-v6.85I” 上位機軟件 這是宏晶單片機官方免費提供的上位機軟件,可以在宏晶單片機的官網上下載獲取。這款軟件有很多功能,除了有下載程序和串口助手的功能外,還可以用來配置自動生成所需的初始化代碼。當然,本教程后面主要是用到此軟件的下載程序和串口助手這兩個功能。所以大家所選的軟件版本必須是 v6.85I 版本或者以上的版本,因為早些年有一些版本只有燒錄功能但是沒有串口助手的功能。 ## 【8.3 把.hex 文件燒錄到單片機的操作流程】 前面第 6 節內容已經教大家把一個驅動 LED 燈閃爍的 C 源代碼編譯成.hex 文件的操作流程,同時在 D 盤的 “stc89c52rc” 文件夾里已經生成了一個 “stc89c52rc.hex” 的機器碼文件,現在就要教大家如何燒錄此文件到單片機內。此程序的功能是讓單片機驅動一顆 LED 燈閃爍。 ![](https://img.kancloud.cn/f1/4f/f14fbe06d22af0c869969b66e9075169_544x412.png) 圖 8.3.1.1 雙擊安裝 USB 轉串口驅動程序的啟動圖標 ![](https://img.kancloud.cn/9d/80/9d80f85925de388d773dbeb9fa22a53c_423x279.png) 圖 8.3.1.2 安裝 USB 轉串口驅動程序 ![](https://img.kancloud.cn/b5/fb/b5fb5e10fbac64b60bb315cfd0011dd0_203x183.png) 圖 8.3.1.3 驅動程序安裝成功 ### 第一步:安裝 USB 轉串口驅動程序 上位機 “stc-isp-15xx-v6.85I” 燒錄軟件就是安裝在電腦端的用戶軟件,電腦跟單片機進行通訊,需要一根 USB 轉串口線,欲使 USB 轉串口線正常工作,必須預先安裝 USB 轉串口的驅動程序。具體的操作是這樣的:在本連載貼附件資料處下載 “USB 轉串口的驅動程序 CH340.zip” 文件壓縮包,解壓后打開此文件夾,找到 “SETUP.EXE” 這個安裝應用程序,雙擊啟動,在彈出的界面中,單擊 “安裝” 按鈕即可完成驅動程序的安裝。 ![](https://img.kancloud.cn/8b/38/8b381668de7bd654c73ffbed8f4168ce_301x313.png) 圖 8.3.2.1 打開 WIND7 系統電腦的管理窗口 ![](https://img.kancloud.cn/3c/fa/3cfa307ec7a94b491238c3f234801dc9_371x348.png) 圖 8.3.2.2 打開設備管理器窗口 ![](https://img.kancloud.cn/af/e8/afe869b14c19e5fe69db52cff687e5c8_536x404.png) 圖 8.3.2.3 查看 COM 口號 ![](https://img.kancloud.cn/fd/0f/fd0f7564cfe85bfe0fdfacb5f8bbff01_561x432.png) 圖 8.3.2.4 記錄當前正用到的 COM 口號 ### 第二步:硬件線路連接,同時記錄串口號 把 USB 轉串口線插入電腦 USB 口,此時 USB 轉串口線的另外一端連接 51 學習板的 9 針串口。同時,電源線一端用輸出的 5V 手機充電器 USB 端口供電,電源線另一端連接 51 學習板的 USB 供電端口,此時可以通過 51 學習板的電源撥動開關來控制斷電和上電。然后是查找串口號,方法是:以電腦 WIN7 系統為例,右擊桌面 “計算機”,單擊選擇下拉菜單的 “管理” 選項,在彈出的窗口中,點擊 “設備管理器” 選項切換到對應的設置窗口,雙擊 “端口(COM 和 LPT)” 選項,在展開的下拉選項中,會看到 “USB-SERTAL CH340 (COM3)”,這個 COM3 就是我們要記住的串口號,記住此串口號,后面的步驟要用到。你們的串口號不一定是 COM3,請以你們電腦顯示的串口號為準。 \---------------------------------- 步驟之間的分割線 ---------------------------------------- ![](https://img.kancloud.cn/0e/11/0e11d85be2ea8ea252c8d72e6d003d50_522x249.png) 圖 8.3.3 雙擊打開上位機軟件 ### 第三步:打開上位機用戶軟件 “stc-isp-15xx-v6.85I.exe” 這個軟件可以在宏晶單片機的官網下載獲取,獲取到的軟件壓縮包只需解壓后就可以使用,不用安裝, 直接雙擊打開 “stc-isp-15xx-v6.85I.exe”,此時會彈出 “溫馨提示” 的窗口,我們按 “確定” 就可以進入到真正的工作界面了。 ![](https://img.kancloud.cn/bb/2d/bb2d986cb91545dc4dd400d1deaa9672_645x582.jpeg) 圖 8.3.4 設置燒錄(下載)選項 ### 第四步:選擇單片機型號 在 “單片機型號” 的下拉菜單中選擇 “STC89C/LE52RC” 這個型號。如果中途彈出推薦選用其它型號的窗口,可以忽略它,我們用來學習只要認準 “STC89C/LE52RC” 這個型號就可以了。 ### 第五步:設置串口號 點擊 “串口號” 右側的選項,在 “串口號” 的下拉菜單中,選擇跟前面第二步所記錄一樣的串口號 COM3(你們的串口號不一定是 COM3,請根據你們的電腦實際顯示情況來選擇)。 ### 第六步:設置最低波特率和最高波特率 “最低波特率” 設置為 2400,,“最高波特率” 設置為 9600。波特率如果設置太高,可能會導致燒錄(下載)不成功。 ### 第七步:導入.hex 格式的機器碼文件 點擊 “打開程序文件” 的按鈕,在彈出的對話框中,選擇 D 盤下 “stc89c52rc” 文件夾目錄下的 “stc89c52rc.hex”,雙擊把 “stc89c52rc.hex” 導入到上位機用戶軟件。 ![](https://img.kancloud.cn/17/9a/179abc3a7b491455914b107b77847f4d_646x357.png) 圖 8.3.8 等待 51 學習板重新斷電再上電 ### 第八步:啟動下載 點擊 “下載 / 編程” 的按鈕,發現 “正在檢測目標單片機..” 的提示信息,此時需要通過電源波動開關把 51 學習板重新斷電然后再上電才能正常下載,很多人也把這個重新上電的過程稱為 “冷啟動”。之所以要重新斷電再上電,是因為單片機內部預置的系統程序只在上電短暫的瞬間才會檢查一下是否接收到需要重新燒錄程序的指令,如果沒有接收到燒錄指令,單片機整個話語權就由原來的系統程序轉交給我們的用戶程序來接管,所以此串口后面的時間就給我們用戶程序來使用。因此每次燒錄程序時,先啟動上位機的下載命令,此時上位機不斷發送請求下載的命令給單片機,但是此時單片機并不理會這些指令,因為此時單片機的話語權已經交給了我們的用戶程序,此時并不是預置系統程序在掌控,所以除非重新斷電然后再上電那一瞬間才會讓系統內置程序去檢測并且響應此下載命令。另外多說一句,其實不是所有廠家的單片機在燒錄程序時都需要 “冷啟動”,也不是所有單片機都支持串口燒錄,各廠家的單片機燒錄程序方式會有一些差異,但基本原理是一樣的,大同小異。 ![](https://img.kancloud.cn/d1/2f/d12fc9de765f6f2f50619a803c5754f2_695x345.png) 圖 8.3.9 燒錄(下載)成功 ### 第九步:“冷啟動” 后觀察是否操作成功的信息 執行完前面第九步的 “冷啟動” 后,如果發現有 “... 操作成功!” 的提示信息,就說明程序下載成功了。此時會發現 51 學習板上面的一顆 LED 燈不斷閃爍,是因為我們的 LED 燈程序驅動它才開始閃爍的,說明我們的程序在單片機上正常工作了。 補充說明: * (1)以后只要每次重新編譯了 C 源代碼后,都會生成最新版本的.hex 格式文件,所以每次燒錄程序時,必須重新返回第七步,重新執行一次導入最新版本.hex 格式文件的操作,確保被燒錄的程序是最新版本的.hex 燒錄文件。 ## 【8.4 51 學習板下載程序失敗時的解決辦法】 - (1)可以先松一下單片機卡座,稍微挪動一下單片機,然后再卡緊單片機。卡座必須卡緊單片機,避免接觸不良。 - (2)改變供電電源,很多電腦的 USB 口供電電源干擾非常大,嚴重影響下載程序,請把 USB 電源線插入到手機充電器 5V 的 USB 接口,效果顯著,明顯提高了下載的成功率。 - (3)檢查確保所選擇的單片機型號是 STC89C/LE52RC,如果軟件彈出推薦其它型號的單片機窗口,不用管它,我們就選 STC89C/LE52RC。 - (4)檢查 STC-ISP 燒寫軟件是否選擇匹配的 COM 口。 - (5)單片機是靠串口燒錄程序進去的,單片機的串口是 P3.0,P3.1 兩根線經過 232 轉換芯片,然后才與 USB 轉串口線連接的。因此,在燒錄程序時,請確保 P3.0,P3.1 兩個 IO 口不能跳線連接到其它外圍元器件上。 - (6)點擊 “下載 / 編程” 后,記得再斷電并且重新上電一次。看看是否燒錄成功。 - (7)確保最低波特率一直設置為 2400,最高波特率為 9600。如果還不行再把最高波特率也改成 2400 試試。 - (8)如果還不行,就退出軟件,拔掉 USB 轉串口線,同時斷電(必須把整根電源線拔出!),重新插入 USB 串口線,重新插入電源線開電,重新打開軟件。 - (9)如果還不行,學習板先斷電(必須把整根電源線拔出!),然后重啟一次電腦。 - (10)總之:如果還不行,就按上述步驟多折騰幾次。 - (11)最后實在不行,就嘗試更換到其它 USB 口,或者嘗試更換到其它電腦上試試。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看