(1小時學(xué)會C語言51單片機(jī))C語言入門教學(xué)教程_第1頁
(1小時學(xué)會C語言51單片機(jī))C語言入門教學(xué)教程_第2頁
(1小時學(xué)會C語言51單片機(jī))C語言入門教學(xué)教程_第3頁
(1小時學(xué)會C語言51單片機(jī))C語言入門教學(xué)教程_第4頁
(1小時學(xué)會C語言51單片機(jī))C語言入門教學(xué)教程_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

相信很多愛好電子的朋友,對單片機(jī)這個詞應(yīng)該都不會陌生了吧。不過有些朋友可能只聽說他叫單片機(jī),他的全稱是什么也許并不太清楚,更不用說他的英文全稱和簡稱了。單片機(jī)是一塊在集成電路芯片上集成了一臺有一定規(guī)模的微型計算機(jī)。簡稱為:單片微型計算機(jī)或單片機(jī)(SingleChipComputer)。單片機(jī)的應(yīng)用到處可見,應(yīng)用領(lǐng)域廣泛,主要應(yīng)用在智能儀表、實時控制、通信、家電等方面。不過這一切都沒什么關(guān)系,因為我(當(dāng)然也包括任何人)都是從不知道轉(zhuǎn)變成知道的,再轉(zhuǎn)變成精通的。現(xiàn)在我只想把我學(xué)習(xí)單片機(jī)的經(jīng)歷,詳細(xì)地講敘給大家聽聽,可能有些大蝦會笑話我,想:那么簡單的東西還在這里賣弄。但是你錯了,我只是把我個人學(xué)習(xí)的經(jīng)歷講述一遍而已,僅僅對那些想量少走些彎路而已!而明天玩上半天,后天就不知道那個本書在講什之前,正如上面所說的:我知道有種芯片叫單片機(jī),可千萬別笑,有些大四畢業(yè)的人也同樣不知道單片全放棄了復(fù)習(xí),每當(dāng)室友拿著書在埋頭復(fù)習(xí)的時候,時我就想過,為了單片機(jī)值不值得我這樣去付出,該大部分都能過了。于是,我橫下一條心,堅持看我的單片機(jī)書和資料。當(dāng)你明白了單片機(jī)是這么一回事的時候,顯而易見的問題出來了:我要選擇那種語言為單片機(jī)編寫程序呢?這個問題,困擾了我好久。具體選擇C51還是A51呢?匯編在我們大二之前并沒有開過課,雖然看著人家的講解,很容易明白單片機(jī)的每一時刻的具體工作情況,但是一合上書或者資料,自己卻什么也不知道了,根本不用說自己寫程序了。于是,我最終還是決定學(xué)編程的思想可以說是相通的。而且C51還有更大的優(yōu)點就是編寫大程序時的優(yōu)越性更不言點,還是在后來的實踐過程中,漸漸體會到的!朋友如果你選擇了C51,那么請繼續(xù)往下看,如果你選擇了A51,那么你可以不要看了!因為下面講的全是C方面的,完全在浪費你的時間!呵呵^_^第二,既然你想學(xué)好單片機(jī),你必須得舍得花錢,如果不買些芯片回來自己動手焊焊拆拆的(但是在后期會介紹給大家一個很好用的硬件仿真軟件,并不需要你用實驗板和仿真器了,直接在你的PC上完成,但是軟件畢竟是軟件,從某個特定的意義上來說是并不能代替硬件的),即使一定會對以下幾個詞見的比較多,但是具體的概念還是比較模糊,現(xiàn)作如下說明:(1)編程器編程器是用來燒單片機(jī)芯片的,是把HEX或者BIN文件燒到單片機(jī)ROM里(2)實驗板實驗板是專為初學(xué)者根據(jù)某些要求而特做的板,一般上面就有一個單片機(jī)的最小系統(tǒng),使用者只需寫好程序,燒好芯片,放煩。但是對于電子開發(fā)人員來說,作用并不是很大(3)仿真器仿真器是直接把HEX或者BIN文件暫時放在一個芯片里,再通過這個芯片的引腳連接到實驗板或者系統(tǒng)上工作。這樣以來,可以省去了來回插拔芯片帶來的不必要麻煩。焊板,因為不可能為了點亮幾個流水燈,而去焊個單片機(jī)的最小系統(tǒng))把我給氣的,這個編程器,現(xiàn)在還躺在我的抽屜里稚的問題,他也能不嫌麻煩地盡量幫我解答!這點讓第三,想學(xué)單片機(jī)的必需品--PC。因為寫程序,編譯或者是仿真都是通過PC完成的。通,那么估計你學(xué)習(xí)單片機(jī)的熱情就會隨著時間的率一定很高!真正的高手是從論壇中泡出來的!有了上述3個條件后,你就可以開始學(xué)你的單片機(jī)了。但是,真的做起來并沒有我所說的那么簡單。你一定會遇到很多很多的問題。比如似的程序,你自己卻寫不出來。遇到類似的情況,記住:千萬不要急噪,就行!(二)面講過幾個條件的哦)。那個單片機(jī)究竟有什么功能和作用呢?先不要著急!接下來讓我們點亮一個LED(搞電子的應(yīng)該知道LED是什么我們在單片機(jī)最小系統(tǒng)上接個LED,看我們能否點亮它!對了,上面也有好幾次提到過單片機(jī)最小系統(tǒng)了,所謂單片機(jī)最小系統(tǒng)就是在單片機(jī)#include<>裝軟件,這個應(yīng)該不用再講了吧!2.安裝完后,啟動KEIL軟件左擊Project-->NewProject-->輸入文件名-->選擇我們所以使用的芯片(這里我們一般用到Atmel的upFiles前打上鉤,點確omXXX表示編譯和生成HEX文件成功!接下來的就是把HEX文件燒到單片機(jī)中,或是仿真器上,看是否達(dá)到預(yù)先的目的!加上驅(qū)動電路,就可以做出漂亮的流動彩燈路的知識去設(shè)計一個流動彩燈,可能要花點工夫也并不無道理的,學(xué)單片機(jī),程序思想很重要!(四)呵呵,朋友!相信你的流水燈也做的不錯了吧,現(xiàn)在能玩出幾種花樣了?你可能會說,只要你想得到,想怎么流就怎么流!呵呵,是的。學(xué)過數(shù)字電路的朋友,一定動手做過8路或者6路的搶答器。用純粹的數(shù)字電路知識來做,自己設(shè)計電路,感到比較困難!搶答器上用的顯我們來講講,如何用單片機(jī)讓數(shù)碼管顯示0-9。搶答器的實現(xiàn),我們放到后面再來探討,因為搶答器還涉及了鍵盤的d一般情況下,為了計算或取碼的方便,我們把a(bǔ)-dp依次接到單片機(jī)某個口上的上。x表要給某個口,賦一個值,則相應(yīng)的LED段就被點亮,但是在硬件連接上要注意了:單片機(jī)可能不能直接驅(qū)動LED,所以我們可以通過控制三級管為上拉電阻,簡單的說,就是把電平拉其I/O的電平分別為高、高、高、高、高、高、低、低,即對應(yīng)的a--dp為亮、亮、亮、亮、亮其他段均亮,即為我們所看到的數(shù)字0字樣。其他的數(shù)字或字符,也同理可以得到。但是有些朋友就會問,那我們每取一個字模,豈不是很麻煩?還有自己考慮高低電平什么的?^-^呵呵,其實網(wǎng)上有很多LED取模軟件,如果有一定計算機(jī)編程語言的朋友,也可以試著自己寫個取模的程序,讓計算機(jī)為我們計算,諸如上述0X3F的數(shù)值。{{}}{嘿嘿,問你個問題?黑夜里,拿著一支煙,在你面前快速的晃動,你會發(fā)現(xiàn)什么樣的現(xiàn)象?是不是原本不連續(xù)的點變成了一條看上去連續(xù)的曲線或者直線!再回過頭來,仔細(xì)想想我們的數(shù)碼管!原理是一樣的,你可別忘了,我們的單片機(jī)可是一個計算機(jī)哦,計算機(jī)的運算速度,大家可想而知吧!M妙。如果晶體為6M,時鐘周期和機(jī)器周期各是多少呢到的是不是6個一起亮或一起滅了!^_^哈哈,原來如此...記住,在任何某一時刻,有且只有一個數(shù)碼管能發(fā)光。如果你能把這句話理解了,你是真明白己可以搞定不?你自己先試著寫寫看咯...{{}}{{sec,min,hour初始化后,其值一直沒有改變!那我們怎么樣才能讓他改變數(shù)值呢?有的朋友但是朋友你有沒有想過C語言的一般延時(除非你把他放到中斷里)極不精確!這樣累計下來,一天24小時的誤差,肯定很大很大,我曾經(jīng)的方法可以改進(jìn)些呢?有!這里就要涉及到單片機(jī)中的相對前面的做法而言比較精確而已,如果要做更加精確的時鐘,用時鐘芯片比較好點,常用的有DS12887和DS1302等)的時鐘程序,就一定要調(diào)用中斷和定時器。還是大家先看看教材和書吧,畢竟人家出的書,肯定比我要寫的系統(tǒng)多了,下面我們再來簡單的講講!(六)什么是中斷呢?講個比較通俗的例子:比如你正在家中看電視,突然電話響了,你的第一反應(yīng)是什么?是不是先跑過去接電話!接完電話后,繼續(xù)看電視。這就是個中斷的例子,中斷是由電話引起了,你跑過去就是響應(yīng)中斷,接電話就是中斷的處理!接完電話后,接續(xù)看電視,即恢復(fù)中斷,等待下個中斷的到來!但是這個好象和單片機(jī)沒什么聯(lián)系呀?有的朋友或許會這樣疑問。是的。單片機(jī)當(dāng)然不會看電視了,也不會接電話了!^_^但是,類就會應(yīng)答響應(yīng),去執(zhí)行更為重要的任務(wù)(中斷處理),原來的任務(wù)就繼續(xù)等待(現(xiàn)場的保護(hù))。執(zhí)行完更重要的任務(wù)后,回到中斷的入口處,繼續(xù)執(zhí)行原來的任務(wù)(現(xiàn)場中斷的恢復(fù))。51系列或許,有些朋友已經(jīng)大概領(lǐng)會了其中的意思,有些朋友還迷迷糊糊。不過不要緊,我們繼續(xù)往下看,下面我們來講講單片機(jī)的定時器是什時作用!也就是讓單片機(jī)計數(shù)。定時器分為:方式定時器,相信大家一定都用過吧!但是單片機(jī)的定時器,該如何啟動呢?總不該也用手一擰定時器吧!^_^當(dāng)然不是,我們只要給單片機(jī)一些指令,就可以啟動定時器了!下面我們就定時器0,來說/*********************************************************************************************/ara高,讀列狀態(tài)3.若有鍵按下,則為2次所讀狀態(tài)的結(jié)果即為鍵所在的位置,這樣2次輸出和2次讀入可以{F}下面我們再來介紹介紹一鍵多能的程序,即按下一個鍵,可以執(zhí)行不同的命令!{{{{ }}}}}句),所以在做大的產(chǎn)品或者代碼時,這個是非常耗費單片機(jī)內(nèi)部資源的。有什么辦法嗎?呵,那是肯定的。碼,見EX1*/}}}{}當(dāng)然在實際過程當(dāng)中,并不是如此簡單簡潔的,還希望大家能夠舉一反三哦...^_^。(九)寫了這么多了,大家也看了這么多了,感覺怎么樣?大家也覺得

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論