準備寫一個單片機學習入門的系列。這方面的教材很多。不乏很多的專家寫的文章。比如《平凡的單片機》。但是個人感覺單片機入門學習是一回事,如何調試一個單板又是另外一回事。大家剛入門的時候總會不免出現各種各樣的錯誤。導致板子無法正常工作。由于是新手,電路板出了問題的時候不知道怎么分析。無法定位問題所在。 所以,打算從最基本的調試說起。寫一個系列,讓單片機的調試不再成為入門的攔路虎。 由于51單片機是大家學的最多,用的最多的,同時本人也是從51開始入門的,對51比較熟悉,所以,后文中提到的單片機一般都指51單片機。 調試階段之一準備說說《單片機的運行是否正常》。 第一塊電路板的成功運行難度對于單片機學習的興趣有很大的幫助。有一些人用開發板用的很流暢,看書也基本都看懂了。可是等他自己做了第一塊電路板來用的時候發現,咦,程序好像沒有成功運行!怎么回事?我不是和書上的一模一樣嗎? 根據本人的經驗,51單片機的成功運行該從如下幾個方面來分析。 ▲1:當然是電源。電源沒有成功供電。電源供電可以從如下幾個方面來分析。你用的電源本身沒有問題。比如你用的開關電源,開關電源如果空載的時候輸出正常,那么接到你電路板上開關電源的影響可以忽略不計了。問題是你的電路板上有沒有問題。 比如: 存在IC插反?51單片機本身插反?IC插反可能導致一些未知的問題。 電容插反?一般來說電容插反不會導致單片機不運行但是可能導致其他的一些問題。但是電源部分的電解電容如果反了,也許不出問題,也許過了幾分鐘后,你可以看到一道白光,然后是啪的一聲巨響,你的電容爆了,可以嚇到一片人。(做模擬炸彈比較好) 供電接口松動,沒有正常供電上電路板! △1:所以,一塊電路板在上電以前,我一般要用萬用表的阻抗檔(有的是二極管檔)測量VCC和GND之間的阻抗,如果短路,那電路板肯定有問題。如果不存在短路,則測量各個IC的電源引腳到VCC是否短路,各個地引腳到GND是否短路。然后再看關鍵電容,主要是電源部分的電解電容是否插反。 一切OK后才給電路板上點。同時,強烈建議做一個電源指示燈。電源插頭插上后如果電源指示燈亮,至少表明90%的可能性電源供電不出問題了。10%的問題處在電容接反不會出現提示。 ▲2:然后是看晶振是否接對。對于51單片機,晶振的比較簡單,只要一個晶體振蕩器+2個小電容就可以了。但是現在很多公司用貼片電容,如果開發物料管理不是很好,很有可能焊接上去的不是30p附近的電容,比如焊接一個103或者104上去。程序照樣不會跑。 在有示波器的時候,很簡單,直接用示波器觀察以下51的晶振腳,如果有3V附近的正弦波出現,OK,晶振起振了。 沒有示波器怎么辦?如果有仿真頭,也行,很多仿真頭有自帶晶振。比如WAVE系列仿真頭。WAVE仿真頭連不上電路板其中一個原因就是選擇了外部晶振,而你的外部晶振沒有起振,那么仿真頭連不上電路板的。 沒有示波器,也沒有自帶晶振的仿真頭,萬用表你總有吧。用萬用表測量晶振腳的電壓,如果在2V附近,那么恭喜你,晶振也起振了。 △2:最佳的解決方案是用示波器觀看。這種方法最直觀最快。 還有,匹配電容在你使用不同大小晶振的時候可能電容大小不同。需要查閱芯片手冊尋找一個最佳的電容。對于51而言,偏差50%影響不大。 ▲3:EA是否上拉到VCC。51單片機要燒片子運行。必需EA上拉到VCC,可以用4.7K-10K上拉,有的人甚至不用電阻,直接接VCC也可以用。不過不推薦直接接VCC的方案。 △3:用萬用表測量EA上電平,如果是5V則表明燒片子運行的硬件條件已經滿足了。 ▲4:復位電路。51的復位電路要求不是很嚴格,但是設計如果太草率也有可能出現問題。注意有的新手可能會出現復位電路的電容和電阻位置弄反的情況。另外一種錯誤就是復位時間不夠。電阻電容常數不對。 △4:解決方案查閱手冊,看你使用的芯片對于復位電路的要求到底是什么?一般手冊上都有說明。 ▲5:以上四點都已經做到了,但是還是不運行。 △5:可以嘗試將電路板上所有的IC全部取下,然后通電看是否程序運行。然后一片一片的上IC。 以上是一個最簡單的51系統是否運行應該注意的幾個方面。 注意做電子開發的過程中。切記心平氣和,萬事小心行事,不急不燥。一個一個問題慢慢調試,不要一下子被它嚇到了不知道從哪里下手。 問題一個個排除后你會發現,原來一切就這么簡單。 下一步調試準備講如何調試二極管,鍵盤等常用接口器件!請看"調試初級階段之二--如何讓鍵盤、顯示正常" |