標(biāo)題: 我的單片機(jī)之路 [打印本頁]

作者: xueer    時間: 2013-8-2 18:01
標(biāo)題: 我的單片機(jī)之路
  讀書時也學(xué)過單片機(jī),不過那是應(yīng)付考試用的,而且當(dāng)時用的是匯編語言,太難懂了。畢業(yè)后發(fā)現(xiàn)單片機(jī)的用途相當(dāng)廣泛,特別是想做一些功能處理,用模擬跟數(shù)字電路都要比較復(fù)雜才能解決的問題,用單片機(jī)卻可以輕松搞掂,那時已有重學(xué)之心,但后來又由于各種原因總是一拖再拖。直到上幾個月,覺得還是趁著年輕,多學(xué)一兩項技術(shù)傍身吧,自用也好,謀生也罷,懂多一點總是有用的,于是重學(xué)單片機(jī)又再放上日程了。上網(wǎng)查看了一下,原來現(xiàn)在的編譯器已經(jīng)支持C語言了,大喜!一拖再拖不想學(xué)單片機(jī),就是因為當(dāng)時的編繹語言是匯編語言,難懂移植性低且枯燥,但C語言可是我的強(qiáng)項,讀書時就能用C語言編些小病毒來捉弄一下同學(xué)了(后來那程序還發(fā)表上《電腦愛好者》,印像中賺了100塊的稿酬)……
接著從網(wǎng)上訂回了一塊功能較齊全的51單片機(jī)學(xué)習(xí)板,幾天就到貨了,正式開啟了我的單片機(jī)之路 。

       跟著資料學(xué)習(xí)了一個星期后,接到了第一個工程任務(wù),就是幫一臺老式的電冰箱裝控制器。 這款老式的冰箱溫度控制器是機(jī)械式,就是那種熱電偶形式,通過熱電偶的熱漲冷縮去接通或斷開冰箱壓縮機(jī),從而達(dá)到恒溫原理。但這個控制器已損壞,于是正好用51單片機(jī)做一個控制器,可以達(dá)到高精度控制。由于人家并沒有提出具體的交貨時間,所以可以邊學(xué)邊寫程序,慢慢來,畢竟這時才正式學(xué)習(xí)單片機(jī)1個星期。
然后在選材上就用DS18B20這個做溫度檢測,就一個IC,通過跟單片機(jī)的協(xié)議通信,就可以直接得出檢測溫度了,簡單可靠。于是又從網(wǎng)上訂來了DS18B20IC跟單片機(jī)最小系統(tǒng)板。順便下載了一個參考案例協(xié)助編寫程序。



        看似簡單,但實際操作起來還是相當(dāng)?shù)穆闊┑,因為溫度傳感器是走單總線形式, 編程上還是相當(dāng)?shù)穆闊┑模钪匾氖,這個參考資料居然是有錯誤的!按它的程序,完全無法得到正確的溫度,后來只能看著IC的功能介紹,一步一步慢慢調(diào)試,終于在花掉兩個晚上后,成功地在學(xué)習(xí)板上顯示出正確的溫度值了。



     然后拿自家的冰箱不斷做測試跟調(diào)整程序 。按照人家的要求,初步設(shè)計三檔選擇,低檔為急凍室溫度在-3度時壓縮機(jī)停機(jī),升到-1度時壓縮機(jī)再次工作制冷,中檔是-4到-2度,高檔是-6至-3度,然后設(shè)計了一個防錯值,若選擇開關(guān)信號不良,則自動在-4到-1度運(yùn)行。對于這種雙閥值的設(shè)計,若用普通的模擬電路來實現(xiàn),相當(dāng)困難了,但單片機(jī)來說則只是寫程序而已,輕松完成。又花了一晚的時間,總算把所有功能都在學(xué)習(xí)板上調(diào)試完成通過了。
     接著畫好原理接線圖,買齊各種零件,開始實物電路組裝了。為了讓單片機(jī)更穩(wěn)定地工作,所以把晶震也用慢一點的8MHZ,這個晶震就是決定單片機(jī)的工作頻率了,最高支持到40MHZ,但頻率越高,工作穩(wěn)定性越差?偣╇婋妷簽12V,而由于單片機(jī)使用工作電壓為5V,所以還要有一個5V的三端穩(wěn)壓管,繼電器用12V驅(qū)動,減輕5V三端穩(wěn)壓管的負(fù)載,單片機(jī)通過ULN2003驅(qū)動繼電器,原本打算用分立原元做降低成本,但后來還是覺得用IC穩(wěn)定可靠一點。



      原本以為這只是一件很輕松的事,畢竟外圍電路相當(dāng)簡單。誰知接好后居然完全不能工作!暈得一陣陣,多方排查無果!最后實在沒法,唯有查成品的單片機(jī)最小系統(tǒng)的電路了,這一查還真查出問題了,原來訂回來的最小系統(tǒng)板訂錯了,訂的是AVR的系統(tǒng)板,外觀跟我要的51單片機(jī)系統(tǒng)板外觀幾乎一樣,但就是完全不通用的!怪不得死活不工作了!就這個最小系統(tǒng)板,訂的時候沒注意看,結(jié)果浪費(fèi)了我大量的時間,悲~~



     由于打算趕在五一放假前交貨,再訂系統(tǒng)板趕不及了,于是把插座焊下來,再手工搭橋吧!還好自己的焊接功底還可以,不到一個小時間就重新整理完成線路板了。橙色線就是高中低的選擇端,插到下面的三個針上代表選擇。



      再次試驗,終于程序能正常運(yùn)行了!但試了一會兒,問題又來了,繼電器不能保證每次都能良好吸合!測量過繼電器是沒有問題的,ULN2003也是好的,單片機(jī)也是好的!學(xué)習(xí)板上驅(qū)動繼電器的也是ULN2003,每次都工作得好好的,但在這里單片機(jī)卻有時會驅(qū)動不起ULN2003,無奈唯有給ULN2003的驅(qū)動腳接了個10K的上拉電阻,終于能每次都能可靠地通斷繼電器了。
      五一時把電路板裝到冰箱上了,看到工常工作,并兩次循環(huán)正常后,才有點放下心來。 但其實內(nèi)心還有點小不安的,因為最大的隱患是我這個設(shè)備沒有裝上看門狗電路,萬一單片機(jī)運(yùn)行到神馬時候死機(jī)了,沒看門狗那它永遠(yuǎn)就無法自行復(fù)位,那冰箱的壓縮機(jī)要么就是一直制冷,要么就是一直不制冷,所以還是屬于有缺陷的設(shè)計,還好,現(xiàn)在得到的消息是,那家伙不間斷工作了一個星期,未曾死過機(jī),且我裝上去的是52單片機(jī),理論上比51單片機(jī)的穩(wěn)定性要高得多,而且52單片機(jī)支持軟件看門狗,可以用程序做看門狗,遲點學(xué)習(xí)好后,把新的程序刷寫到這個單片機(jī)上就行了。

作者: 小小單片機(jī)0    時間: 2013-8-3 09:21
好貼,謝樓主共享
作者: 酷愛diy    時間: 2013-8-4 09:10
樓主是怎么學(xué)會C語言的?看見你這么自信;會C語言的學(xué)單片機(jī)都是一星期搞定;我自學(xué)C語言就很難,有好多都不懂,買了2~3本厚厚的C語言書,看著頭暈,沒理念;沒教師教,沒上過大學(xué);{:soso_e183:}我該怎么去學(xué)自學(xué),才能有收獲
作者: guo1000    時間: 2013-8-4 15:37
頂   
作者: 酷愛diy    時間: 2013-8-5 10:35
頂起來,樓主難道去泡妞去了,遲遲不肯歸來{:soso_e120:}
作者: ongcaiyun    時間: 2016-3-8 18:53
你是我偶像,課程設(shè)計就是抄你的數(shù)字溫度計,丟丟臉2,現(xiàn)在找工作 想要單片機(jī)傍身,就來看你的信息分享,,感動要哭了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1