51單片機下載完程序后不亮_程序如何下載到單片機中?單片機常用的四種燒寫程序方式介紹...

單片機是一種可編程控制器,搭好硬件電路后,可以利用程序實現很多非常復雜的邏輯功能,與純硬件電路相比,簡化了硬件外圍的設計、方便了邏輯的設計、豐富了邏輯的輸出。不同廠家的單片機需要不同編程IDE來實現編程。在學習單片機之前,要先清楚單片機程序是如何燒寫到單片機內部的,在燒寫的過程中需要用到什么工具?因為不通用的燒寫工具可能價格較貴,比如說Micorchip單片機使用的ICD系列編程器,單臺價格在600-1000元人民幣之間。今天和大學來認識一下單片機最常用的四種燒寫方式和所使用到的工具。

1.使用JTAG接口實現

JTAG接口是一種標準的測試協議,可以實現編程時在線調試,利用單步追蹤可以很方便的查找代碼的Bug,大多數的單片機都支持這種接口。這種接口除了電源線和復位引腳之外,還要用到單片機的四個引腳,分別是:TDI、TMS、TCK、TDO,他們所代表的含義如下所示:

  • TDI--數據輸入,所有寫入寄存器的數據都是通過TDI接口串行輸入的;
  • TMS--模式選擇,Jlink輸出給目標CPU的時鐘信號;
  • TCK--時鐘信號,所有數據的輸入輸出都是以該時鐘信號為基準的;
  • TDO--數據輸出,所有從寄存器讀出的數據都是通過TDO接口串行輸出的;

以上這四個引腳都是協議里強制要求的,而且協議建議在設計電路時要選用上拉電阻。JTAG接口有多種形式,常用的20引腳、14引腳和10引腳。以20引腳JTAG為例,所設計的JTAG燒寫電路如下圖所示:

07c0f9dedc188dd6c11a08e610bd29d5.png

JTAG接口

上圖中JTAG接口都通過電阻上拉了,有的單片機的這幾個引腳在內部已經上拉,所以這幾個上拉電阻可以省略,減少了成本和PCB空間的占用。

JTAG接口燒錄方式常用的工具為J-Link,實物圖如下圖所示。

d02254da0468a0c7f4ce03079ce6fa04.png

Jlink實物圖

相信大家都見過或者聽過這個燒寫工具,這個工具很通用,但是大家在使用的時候一定要注意版權信息,因為這個工具是有版權的,前兩年因為版權風波,網購平臺還集中整治過一次。

2.SWD接口燒錄方式

SWD是一種串行調試接口,與JTAG相比,SWD只需要兩根線,分別為:SWCLK和SWDIO。他們的含義如下:

  • SWDIO--串行數據線,用于數據的讀出和寫入;
  • SWDCLK--串行時鐘線,提供所需要的時鐘信號;

一般來說,大多數單片機的JTAG接口和SWDIO接口是復用的,SWD也是用J-Link工具來實現的。所以在使用的時候,只需要在軟件界面做一下選擇,使用SWD方式還是JTAG方式,硬件上無需改動。除了J-Link外,意法半導體的ST-Link也是支持SWD模式的。

3acb828468fa538ae3c33f386b2dafff.png

SWD接口

SWD的接口如上圖所示,可以看出,SWD和JTAG是相互復用的,由于SWD只需要兩根線所以大大減少了對單片機GPIO口的占用,SWD方式也是可以在線調試的。

3.ISP燒寫方式,用UART實現

使用過國產51單片機的朋友都清楚這種燒寫方式,這種燒寫方式是通過單片機的UART串口來實現的,所需要的工具也比較簡單-USB/TTL。這個USB/TTL的芯片可以通過MAX232、CH340G等芯片來實現,通過MAX232實現的UART燒寫電路如下所示:

da82f05dbf3298466c8fbba24803808d.png

UART串口燒寫電路

在與單片機連接的時候,一定要注意交叉連接,所謂交叉連接即,單片機的TXD接串口RXD,單片機的RXD接串口TXD,否則數據通信失敗。51單片機在使用該方式下載時需要斷一下點再上電才能下載。

STM32單片機可以使用UART來實現程序下載,但是需要選擇BOOT的模式,現在通過CH340G芯片可以實現自動ISP的下載方式,即不需要手動設置BOOT模式。

4.SWIM單總線下載方式

這種下載方式是針對STM8系列的單片機,這種方式只需要一根線即可實現程序的下載,所使用的工具為ST-Link,如下圖所示:

e553c8db3d946d8f63745580aa903217.png

ST-Link

以上為幾種常見的燒寫方式以及所使用的工具,歡迎大家留言評論,如果轉載請注明作者信息和頭條出處,感謝支持。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446341.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446341.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446341.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 使用三元運算符和if-else獲取兩個和三個數中的最大值

三元運算符格式 三元運算符:獲取兩個數中最大值 三元運算符:獲取三個數中最大值 三元運算符:總代碼 //案例1:獲取兩個數中最大的數int num178;int num256;int max1(num1>num2)?num1:num2;System.out.println("max1"max1);//max178//案例2:…

密碼學專題 鑒別協議|實際應用的混合協議

鑒別是指確定一個人的身份,即確定一個人是否是他所宣稱的身份 基于口令的鑒別協議 口令是最常用和最常見的鑒別協議。當登錄一臺重要的計算機時,它會要求輸入用戶 名和密碼,用戶名代表你的身份,口令起鑒別作用,如果你…

如何用texstudio下載ctex_公眾號素材庫視頻如何下載,用這種方法就可以哦

隨著微信的不斷崛起,它現在不僅僅是一個交流軟件還包含著很多功能,其中里面就有各種微信公眾號,我們可以在公眾號上找到許多有用的視頻,今天拓途數據就告訴大家公眾號素材庫視頻如何下載吧。 如何下載微信公眾號里的視頻文件 復制…

java 進制轉換 十進制轉二,八,十六進制

十進制轉其他進制 因為在java中位運算符是直接對數值的二進制數進行操作的 并且 寫的是二進制數在輸出和操作時是以十進制數的形式; 所以十進制轉二,八,十六進制;就已經實現了二進制,八進制,十進制&#x…

密碼學專題 密鑰生成|分組加密的模式 ECB|CBC|CFB|OFB

密鑰生成 如何安全地生成密鑰。即如何生成可信任的密鑰,保證用戶得到的密鑰是安全的, 生成密鑰的機器或程序是可信的。如何生成安全的密鑰。安全的密鑰沒有統一準確的定義,但一般來說是指密鑰抗 猜測和抗窮舉等針對密鑰攻擊的能力。涉及密鑰…

java 狗的年齡轉換為對應的人的年齡

題目 我家的狗5歲了,5歲的狗相當于人類多大呢? 其實,狗的前兩年每 一年相當于人類的10.5歲,之后每增加一年就增加四歲。 那么5歲的狗相當于人類多少年齡呢?應該是:10.5 10.5 4 4 4 33歲。 編寫一個程序…

excel高級篩選怎么用_Excel表格中高級篩選的優點以及常用方法介紹

在Excel表格中普通的數據篩選只能滿足一些基本的篩選要求,這篇文章為朋友們總結一下高級篩選的優點以及常用方法。一.與普通篩選相比,高級篩選可以使用比較運算符。在下圖中要篩選性別為男并且評分大于90的人員。如果使用普通篩選需要一個個的勾選成績大…

STL源碼剖析 第二次溫習 細節審核

臨時對象的產生 臨時對象也叫做 無名對象,(使用pass by value的方式會引發copy的操作,于是產生一個臨時的對象),造成效率的負擔,但是可以可以制造一些臨時對象在型別的后面 直接加上() 并可以指定初始數值,相當于調用…

java 彩票游戲

題目 Math.random()獲取隨機數 Math.random()返回的是一個[0.0,1.0)的doule類型的數 所以,獲取0-9:(int)Math.random()*10–> [0,10) 獲取0-10:(int)Math.random()*101–> [0,11) 獲取10-99:(int)Math.random()9010–> […

python異常處理_Python入門 斷言與異常處理

一、斷言斷言,可以理解為判斷是否斷開的預言。assert 表達式 , 描述表達式為我們的預期結果,當表達式的結果為False時,拋出 AssertionError 異常,如無異常捕獲程序遇到異常時直接結束運行。反之,表達式結果為True 程序…

C++ 左值和右值 的學習

引用是一個變量,它引用其他變量的內存位置 int x 34; int &lRef x; 標識符 IRef 就是一個引用。在聲明中,引用是通過 & 來指示的,出現在類型與變量的標識符之間,這種類型的引用稱為左值引用左值看作是一個關聯了名稱的…

百度關鍵詞排名查詢源碼_章丘百度霸屏總部,關鍵詞排名騰沃云

上海保沃騰沃云為您詳細解讀URiIr章丘百度霸屏總部的相關知識與詳情,做網站SEO優化文章內容優化效果已經十分明顯。內容的量量關于網站的整體量量很重要。通過關鍵字闡發,陳某們曉得需要環繞關鍵字編寫網頁。使您的內容的重要根底是您對網頁籌算描述的賣…

java 結婚問題

題目 大家都知道,男大當婚,女大當嫁。那么女方家長要嫁女兒,當然要提出 一定的條件:高:180cm以上;富:財富1千萬以上;帥:是。 如果這三個條件同時滿足,則&…

密碼學專題 數據填充的方式|序列加密的方式

電子密碼本模式和加密分組鏈接模式的分組算法都要求加密輸入的分組是固定長度 的,但是大多數輸入明文可能都不是分組長度的整數倍,也就是說,最后一個分組一般來 說是不足一個分組長度的。為了使分組加密算法能夠正常工作,通常使用…

win10此電腦不見了_教程 | win10總提示“你要允許此應用對電腦的修改嗎”,如何關閉?...

在使用電腦的時候,你是否曾遇到過這樣的情況,點擊打開軟件的時候,系統總是提示我們“你要允許此應用對你的設備進行修改嗎?”難道是軟件中病毒了嗎?,這其實上并沒有什么用處,只是系統無法判斷軟…

java 小時轉換為xx天xx小時

題目 為抵抗洪水,戰士連續作戰89小時,編程計算共多少天零多少小時? 代碼 使用/與% class ExchangeTime {public static void main(String[] args) {/*為抵抗洪水,戰士連續作戰89小時,編程計算共多少天零多少小時&a…

密碼學專題 加密模式的選擇|傳輸數據加密

分組加密模式和序列加密模式。它們之間最大的區 別在于分組加密模式每次對一組數據進行加密運算處理,而序列加密模式則逐位對數據進 行加密運算處理。事實上,在實際設計應用的算法中,并沒有那么嚴格的區別,它們有可能是相互結合的…

微信公眾號數據2019_2019年9月原創公眾號排行榜數據報告出爐

西瓜數據發布 2019 年 9 月原創公眾號排行榜,分別從西瓜指數、原創文章占比、周期內公眾號發文次數、發文篇數、總閱讀數、頭條平均閱讀數等方面展示公眾號數據。榜單說明1、涉及榜單本期月榜截取 ①財經、②教育、③娛樂、④科技、⑤體育、⑥游戲、⑦文化、⑧美食、…

java 求100天之后是周幾

題目 今天是周二,100天以后是周幾? 代碼 代碼1:減去天數,使循環從周一開始 //方法1:減去天數,使循環從周一開始int today2;//7天一個循環:3 4 5 6 7 1 2 3 4 5 6 7int after100;//(100-5)%…

密碼學專題 OpenSSL專題

OpenSSL總體架構 軟件包分為三個主要的功能部分:密碼算法庫 、 SSL協議庫及應用程序 MacOS,MS,OS/2及 VMS這幾個目錄,包含了在不同的 平臺編譯時的環境變量配置文件,在安裝編譯完成之后,這幾個目錄就沒有作…