STC單片機程序燒錄與ISP下載相關知識

2021-01-08 電子產品世界

  導讀:本文為您介紹常見串口USB、RS232、UART三者轉換模塊及其電路原理圖,單片機ISP下載及單片機程序燒錄相關內容,設備連接操作方法。

本文引用地址:http://www.eepw.com.cn/article/201710/366385.htm

  前面已經說了,單片機相當於一個微型電腦,所以單片機是可以執行程序的。在電腦上,我們可以上網下載各種遊戲各種軟體,但是單片機這灰不溜秋的一塊晶片,怎麼讓它執行程序呢?不要急,這就給大家介紹相關知識。這裡涉及到一些專業詞彙,可能大家不明白,但是並沒有很大影響,大致了解就好了,有興趣的可以上網搜索去了解下。另外等學到後面,不少概念也自然就明白了。

  1、串口(RS232、UART)

  廣義上而言,串行接口簡稱串口,也稱串行通信接口,是採用串行通信方式的擴展接口。我們比較熟悉的USB接口,全名通用串行總線(Universal Serial BUS),就屬於串口。串口還包括UART、RS232、RS422、RS485等。通常狹義上,我們所說的串口指的是RS232、UART這一類串口,常稱為COM接口。

  老式的臺式計算機和部分筆記本上就有RS232串口(RS232指RS232電平的串口)。後來由於這種串口使用很少、速度較慢、體積較大而逐漸在筆記本甚至臺式機上被淘汰了。

  而51單片機具有UART串口(UART = Universal Asynchronous Receiver/Transmitter, 通用異步收發傳輸器,指的是TTL電平的串口)。

  UART與RS232區別主要在於其電平定義不同。UART是TTL電平,定義3~5V為高電平,表示「1」,0V為低電平,表示「0」,就和前文說的一樣;而RS232是負邏輯電平,它定義+5~+12V為低電平,表示「0」,而-12~-5V為高電平,表示「1」。

  標準串口指的就是RS232串口(也叫做COM接口),如圖就是桌上型電腦機箱後面的標準串口。

  2、給單片機下載程序

  一些讀者可能已經猜到,給單片機裝進程序是通過電腦並且是使用串口來完成的。但是很可惜只猜對了一半。

  說點題外話,為了感覺「專業」一點,以後不要再說給單片機「裝程序」了,專業點的說法應該是燒寫程序,或者下載程序。讀者很可能會好奇為什麼叫燒寫程序呢?難道下載程序的時候,要用火烤一烤單片機嗎?當然不是。這個就像馬路為什麼叫馬路一樣,是有來歷的,想知道具體原因,還是等大家學習了單片機,了解早期ROM的工作原理再去深究吧。

  回歸正題,不同的單片機燒寫程序的方式是不一樣的。剛開始介紹STC單片機的時候,我提到了它的一個優點:可使用串口下載程序,不知讀者有沒有注意到。同樣是51單片機,Atmel的產品分為兩種,一種是早期的89Cxx系統,這種型號的單片機下載程序時,需要把單片機取下來,使用專用的編程器燒寫程序,非常麻煩;另一種是後來推出的支持ISP的89Sxx系列(ISP = In System Programming,在線編程),只需要幾根線連接單片機和下載器,就能輕鬆下載程序。

  3、ISP在線編程

  什麼是ISP呢?ISP意為在線編程,其作用在於,下載程序的時候,單片機不需要從已有的電路中取下來。大家可能體會不到這樣有什麼好處,但是它的好處還是非常明顯的。下面我舉個例子。

  有一天你給客戶設計了一種電器,是通過單片機控制的。然後很多人都購買了,但是過了一段時間,你發現你寫的程序有問題,或者有些地方需要優化一下,但是你賣出去的產品,程序已經寫在裡面了呀。這個時候,如果你用的單片機不支持ISP,你得親自一個個的去找客戶,把他們的產品拆下來,然後取下單片機,燒好程序,再裝回去。如果你設計不當,單片機還是焊接在電路上的,取不下了,那就更慘了。

  但是有了ISP就不一樣了。你可以設計好產品,然後把ISP接口留出來。發現程序有問題,你把寫好的新的程序發到網上,然後群發一批電子郵件,告訴你的客戶,用產品附贈的下載線連接電腦和你的產品ISP接口,然後安裝一個下載軟體,把新的程序下載進去,就可以用了。你甚至可以在說明書上寫,我們的產品軟體經常會更新,請自行到官網下載最新軟體,這樣簡直是一勞永逸。

  所以一個小小的改進,就帶來了如此大的變化。要用單片機,我選ISP,實惠又好用。

  而STC單片機不僅支持ISP下載,而且只需要通過串口和電腦連接就可以下載,這樣又省去了我們購買編程器的錢,實在是物美價廉,適合我們使用。

  4、USB與串口的轉換模塊

  由於USB接口與單片機的TTL串口不一樣,不能直接連接,一般通過轉換晶片來連接。連接到USB接口的轉換晶片則要求在電腦上安裝相應的驅動程序,驅動程序很容易在網上找到。

  USB、RS232、UART三者之間的轉換都有晶片可以實現,並且很容易買到做好的成品模塊。下面給出了幾種常用的轉接器。

  第一個是USB轉TTL串口,這是最常用的一種轉接器,常稱為USB轉TTL小板,USB-TTL轉接板,常用轉換晶片為PL2303,需要在電腦上安裝對應驅動程序。

  USB轉RS232串口,常用轉換晶片為CH341,使用時要在電腦上安裝CH341的驅動程序,可以在百度上搜索

  RS232串口轉TTL串口,電平轉換晶片是MAX232,如果你的電腦有串口,可以直接使用這種轉接器,然後把TTL串口一端接到單片機上,這個不需要驅動程序。

  也有這種集成了三種接口轉換功能的 USB - RS232串口 - TTL串口轉接板,如圖所示。這個功能比較強大,但是電子市場不一定能買到。

  市面上的成品單片機學習板,很多都提供USB接口,或者RS232串口+USB接口。一方面USB接口負責給單片機供電,另一方面,USB轉TTL,或RS232轉TTL已經集成在學習板上。

  5、參考電路圖

  下面順便提供這些模塊的參考電路原理圖,不需要掌握。如果有需要自己製作這些模塊,可以參考這幾個電路圖。

  MAX232電路圖

  PL2303電路圖

  USB-RS232電路圖

  6、51單片機程序的燒寫

  關於AT89Cxx系列單片機使用的編程器下載,以及AT89Sxx系列單片機使用的ISP方式下載程序,不做詳細介紹,這裡我們主要介紹STC單片機的串口下載方式。STC單片機燒寫程序時,電腦端除了驅動以外,一般使用宏晶專用的STC-ISP軟體進行下載。其界面如圖。

  這裡先說一點注意事項。STC-ISP軟體最好在宏晶官網下載最新版本。在首次運行時常常會出現類似下圖中的情況,提示部件XXX不能註冊。對應Win7 系統可以先嘗試右擊STC-ISP的exe程序文件,選擇「以管理員身份運行」(如果是XP系統,則只需以管理員身份登錄計算機運行程序)。如果還是不行,則需要上網下載提示的XXX.DLL或XXX.OCX文件,放在C:\Windows\System32文件夾中,然後以管理員身份運行C: \Windows\System32\cmd.exe,輸入regsvr32 C:\Windows\System32\xxx.dll回車,進行註冊。這樣的文件是系統動態連結庫文件,是程序執行所需要的,有些電腦裡沒有,或者無法註冊,所以會發生這種情況。

  如果你已經購買了USB轉串口模塊,你可以安裝好對應驅動並把它插到電腦的USB口上,如果是成品學習板,就用給學習板供電,然後把下載線連接到電腦上。如果一切順利,我們可以在電腦上右擊「我的電腦」(XP系統)或「計算機」(Win7以上系統),管理,打開設備管理器,在設備管理器中就能看到相應的串口,如圖。

  希望本篇看完了,大家把STC-ISP軟體安裝到自己的電腦上,有條件的把驅動也安裝好。具體下載方法將在隨後進行介紹。

相關焦點

  • 51單片機玩轉物聯網基礎篇01-開發環境搭建
    前言上至航天,下至兒童玩具,凡事沾一點智能的東西,都離不開單片機的身影......,本文開始,我們學習STC89C52單片機,這款單片機屬於8051系列單片機,51單片機作為入門級單片機不僅在教學實驗中應用廣泛,在實際項目中應用亦是十分廣泛。
  • stm32怎麼燒錄程序
    ULink 燒錄程序在安裝MDK過程中,會有提示是否安裝驅動,該驅動就為ULink驅動,如果選擇是就不需要再安裝驅動了,否則就需要自己手動下載驅動並安裝,驅動安裝完畢之後我們需要告訴我們的MDK我們使用的是什麼燒錄工具
  • 如何編寫STC單片機的ISP協議
    (1)SST89C54相關特性 SST89C54內部有20KB(16KB+4KB)程序存儲器,統一編址.Block0為0000H~3FFFH;Block1為F000H~FFFFH.Block1可以選擇映射到0000H地址開始的1KB/2KB/4KB程序區.
  • 學習單片機,為什麼我建議你從51單片機開始
    隨著物聯網的大潮,單片機的學習又有高潮,可是面對品類繁多的單片機,不知從何學起,不知道到底學習單片機需要哪些知識;是從8位單片機、16位單片機,還是現在正流行的32位單片機開始學習呢。因此經過我的教學經驗,如果想開始學習單片機,最好從51單片機開始學起,我都推薦STC系列的51單片機學習。原因就是一句話,因為51系列單片機簡單,學習起來也簡單。但是簡單不代表它功能少,51單片機雖然簡單,但體系是完備的。所以當你學會51單片機,會非常快速入門其它單片機學習。
  • 51單片機程序下載、ISP及串口基礎知識
    本文詳細介紹了串口、51單片機的ISP下載等基礎知識,已經學過單片機的也可以看看,加強一下對這方面的了解。 串口 串行接口簡稱串口,也稱串行通信接口,是採用串行通信方式的擴展接口。早期的AT89C51系列(89後面是字母C)單片機,下載程序時需要使用專門的燒寫器燒寫進去,單片機燒寫程序時必須從電路上取下來,非常麻煩。後來推出了支持ISP(In System Programming)在線編程的AT89S51系列單片機,只需連接幾根線即可燒寫程序,也不需取下單片機。
  • STC單片機免斷電下載程序的另一種更簡單的方法
    看到網上有一些STC單片機免斷電下載程序的例子。但是都是要用串口中斷來完成。以下是一個程序片斷本文引用地址:http://www.eepw.com.cn/article/171071.htm拿來說明在調試程序中加入串口初始化代碼,串口中斷代碼即可實現不斷電下載程序TMOD|=0x20;SCON=0x50;TH1=0xfd; //12T時鐘9600bpsTL1=0xfd;TR1=
  • 如何給Atmega328P單片機燒錄Arduino引導程序
    有些單片機出廠時晶片廠商已經燒錄好了引導程序,例如串口方式下載的引導程序。單片機復位或重新上電時先從引導程序執行代碼檢測是否有其他命令需要執行,再跳轉到用戶程序代碼執行。Arduino開發板預先寫入了bootloader,通過USB轉串口晶片下發下載命令給Arduino開發板使其復位進入bootloader,bootloader識別到下載命令後接著引導新的用戶程序下載到單片機內部flash,若沒有識別到下載命令則跳轉到原來的用戶應用程式繼續執行。
  • STC單片機程序下載問題及解決方法
    失敗現象:Chinese:正在嘗試與 MCU/單片機 握手連接 ...打開串口失敗!Chinese: 串口已被其它程序打開或該串口不存在。解決方法:1,檢查USB下載模塊的連接是否正常,模塊上的綠色和紅色LED燈都亮起表示連接正常。綠色LED燈不亮表示USB驅動程序出現問題,可以拔下USB模塊重插一次。
  • 單片機三種燒錄方式ISP、IAP和ICP有什麼不同?
    ,內分3個程序區,1作引導程序區,2作運行程序區,3作下載區,晶片通過串口接收到下載命令,進入引導區運行引導程序,在引導程序下將new code內容下載到下載區,下載完畢並校驗通過後再將下載區內容複製到2區,運行復位程序,則Iap完成;  應用場合:  1,ISP 程序升級需要到現場解決,不過好一點的是不必拆機器了;  2,IAP 如果有網管系統的話,用網管下載一切搞定
  • PIC單片機12F629燒錄器電路設計與製作
    首先必須下載燒錄程式WinPIC進去後 看下面有一個Download那邊可以下載下載完開始安裝了~基本上.下一步按到完成就對了.與PIC12F629燒錄器製作沒什麼關係了。6.先上WiiFree抓檔桉下來進去後找WiiFree 2.xx(版本)點進去,最下面有WiiFree_2_xx.rar,按一下就可以下載.下載解壓縮後,真的要開始燒錄了歐!
  • stm32程序燒錄方式匯總
    在彈出的 Options for target Debug 選項,在其右上方的下拉框中選擇 ULink/ME Cortex 即是選擇了 ULink 進行程序燒錄。 JLink 驅動並沒有集成在 MDK 安裝程序中所以一定需要我們手動下Jlink 驅動並安裝,驅動安裝完畢之後我們需要告訴我們的 MDK 我們使用 Target 目錄選擇 Options for Target…。。,在彈出的 for target 選項卡中選擇 Debug 選項,在其右上方的下拉框中選擇即是選擇了 JLink 進行程序燒錄。
  • 燒錄Hex文件到Silabs單片機
    通常我們會用燒錄器EC5或者EC6在Silabs IDE下載程序但是有很多人會比較習慣用Keil生成Hex文件再燒錄其實這也是可以的Silabs也提供了下載的工具
  • STC12C2052AD單片機AD轉換C語言程序
    首先:這個小程序搞了我兩天,加上焊板子共三天,當然是業餘時間。也有24個小時了。本文引用地址:http://www.eepw.com.cn/article/170915.htm我瞪著電腦兩個晚上,我拆了裝,裝了拆(下載程序不在本板子上)。
  • 51單片機下載程序的(RXD TXD)連線方式
    首先我們在下載程序自己我們需要安裝開發板USB轉串口CH340驅動,安裝成功後我們還需要下載STC程序燒錄工具,下載完成後打開目錄如下所示以上的準備工作做好之後我們就來連線,把51單片機和USB轉串口工具(下載線)連接起來。可能你們會好奇,51開發版需要接線嗎?不是集成好的嗎?
  • EMC單片機實現多次燒錄的辦法
    一般來說,EMC的OTP類型晶片是只能進行一次燒錄的。但是如果在第一次燒錄時,某一位為被燒為「1」,則該位可以再次被燒錄成「0」;反之,如果已經被燒錄成「0」了,則無法再次燒錄成「1」。由此,有人發現了以下文章中介紹的這種多次燒錄OTP晶片的方法。
  • 單片機燒錄是什麼意思?只讀存儲器真的只能讀嗎?原來如此
    問題導入:問題1:我們在學習單片機的時候,在編輯好代碼以後要把代碼「寫入」到單片機中,那麼為什麼這個過程稱為「燒錄」呢?在回答這2個問題前,我們必須先了解ROM的有關知識。ROM的分類如下:掩膜ROM:不可編程ROM,屬於第一代ROM,只能讀,不能寫。PROM:可編程ROM,但是只能寫一次。之後只能讀,不能寫。
  • JTAG/SWD/ISP/SWIM詳解單片機的四種燒寫方式
    單片機是一種可編程控制器,搭好硬體電路後,可以利用程序實現很多非常複雜的邏輯功能,與純硬體電路相比,簡化了硬體外圍的設計、方便了邏輯的設計、豐富了邏輯的輸出。不同廠家的單片機需要不同編程IDE來實現編程。
  • JFlash ARM對stm32程序的讀取和燒錄
    本篇文章主要是記錄一下JFlash ARM 的相關使用和操作步驟,讀取程序說不上破解,這只是在沒有任何加密情況下對Flash的讀寫罷了!在我們裝了JLINK驅動後再根目錄下找到JFlash ARM ,運行。
  • 關於PL2303用於STC單片機下載的討論
    這個很容易,直接用串口調試程序查了一下,一般照著網上的電路接,都是沒有問題的。2、PL2303輸出電平和STC的電平是否匹配。看了很多資料,PL2303的D版以後的輸出電平都是高電平5V,低電平小於0.5V。所以電平是匹配的。網上有人說電平不匹配,最簡單的方法是接上拉電阻,我試過了,沒有效果。
  • 嵌入式C編程的萬能模板程序
    本教程沒有用這種方法, 既然本教程的 C 語言主要針對單片機, 所以我想出了另外一種方法, 這種方法就是直接在單片機上練習 C 語言,這樣會讓初學者體驗更深刻。按前面章節介紹燒錄程序時所需的步驟, 用 USB 轉串口線連接 51 學習板和電腦, 記錄 COM 號, 打開「stc-isp-15xx-v6.85I」 軟體, 選擇單片機型號, 選擇對應的串口號(COM 號), 設置最低波特率和最高波特率, 這部分的內容跟燒錄程序時的配置步驟是一樣的, 唯一必須要特別注意的是最高波特率必須選擇 9600!