小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【轉(zhuǎn)】1小時(shí)c語言入門(加后續(xù)六篇全部貼完)

 jiangnan1726 2014-08-23

(一)相信很多愛好電子的朋友,對單片機(jī)這個(gè)詞應(yīng)該都不會(huì)陌生了吧。不過有些朋友可能只聽說他叫單片機(jī),他的全稱是什么也許并不太清楚,更不用說他的英文全稱和簡稱了。單片機(jī)是一塊在集成電路芯片上集成了一臺(tái)有一定規(guī)模的微型計(jì)算機(jī)。簡稱為:單片微型計(jì)算機(jī)或單片機(jī) (Single Chip Computer)。單片機(jī)的應(yīng)用到處可見,應(yīng)用領(lǐng)域廣泛,主要應(yīng)用在智能儀表、實(shí)時(shí)控制、通信、家電等方面。不過這一切都沒什么關(guān)系,因?yàn)槲遥ó?dāng)然也包括任何人)都是從不知道轉(zhuǎn)變成知道的,再轉(zhuǎn)變成精通的。現(xiàn)在我只想把我學(xué)習(xí)單片機(jī)的經(jīng)歷,詳細(xì)地講敘給大家聽聽,可能有些大蝦會(huì)笑話我,想:那么簡單的東西還在這里賣弄。但是你錯(cuò)了,我只是把我個(gè)人學(xué)習(xí)的經(jīng)歷講述一遍而已,僅僅對那些想學(xué)習(xí)單片機(jī),但又找不到好方法或者途徑的朋友,提供一個(gè)幫助,使他們在學(xué)習(xí)過程中,盡量少走些彎路而已! 首先,你必須有學(xué)習(xí)單片機(jī)的熱情,不是說今天去圖書館看了一個(gè)下午關(guān)于單片機(jī)的書,而明天玩上半天,后天就不知道那個(gè)本書在講什 么東西了。還是先說說我吧,我從大二的第一個(gè)學(xué)期期末的時(shí)候才開始接觸單片機(jī),但在這之前,正如上面所說的:我知道有種芯片叫單片機(jī), 但是具體長成什么樣子,卻一點(diǎn)也不知道!看到這里很多朋友一定會(huì)忍不住發(fā)笑。嘿嘿,你可千萬別笑,有些大四畢業(yè)的人也同樣不知道單片 機(jī)長成什么樣子呢!而我對單片機(jī)的癡迷更是常人所不能想象的地步,大二的期末考試,我全放棄了復(fù)習(xí),每當(dāng)室友拿著書在埋頭復(fù)習(xí)的時(shí)候, 我卻捧著自己從圖書館借的單片機(jī)書在那看,雖然有很多不懂,但是我還是堅(jiān)持了下來,當(dāng)時(shí)我就想過,為了單片機(jī)值不值得我這樣去付出, 或許這也是在一些三流學(xué)校的好處吧,考試掛科后,明年開學(xué)交上幾十元一門的補(bǔ)考費(fèi),應(yīng)該大部分都能過了。于是,我橫下一條心,堅(jiān)持看 我的單片機(jī)書和資料。 當(dāng)你明白了單片機(jī)是這么一回事的時(shí)候,顯而易見的問題出來了:我要選擇那種語言為單片機(jī)編寫程序呢?這個(gè)問題,困擾了我好久。具體選擇C51還是A51呢?匯編在我們大二之前并沒有開過課,雖然看著人家的講解,很容易明白單片機(jī)的每一時(shí)刻的具體工作情況,但是一合上 書或者資料,自己卻什么也不知道了,根本不用說自己寫程序了。于是,我最終還是決定學(xué)C51,畢竟C51和我們課上講的C語言,有些類似,編程的思想可以說是相通的。而且C51還有更大的優(yōu)點(diǎn)就是編寫大程序時(shí)的優(yōu)越性更不言而喻,當(dāng)然在那時(shí),我并沒有想的那么深遠(yuǎn),C51的特 點(diǎn),還是在后來的實(shí)踐過程中,漸漸體會(huì)到的!朋友如果你選擇了C51,那么請繼續(xù)往下看,如果你選擇了A51,那么你可以不要看了!因?yàn)橄旅嬷v的全是C方面的,完全在浪費(fèi)你的時(shí)間! 呵呵 ^_^ 第二,既然你想學(xué)好單片機(jī),你必須得舍得花錢,如果不買些芯片回來自己動(dòng)手焊焊拆拆的(但是在后期會(huì)介紹給大家一個(gè)很好用的硬件仿真軟件,并不需要你用實(shí)驗(yàn)板和仿真器了,直接在你的PC上完成,但是軟件畢竟是軟件,從某個(gè)特定的意義上來說是并不能代替硬件的),即使你每天捧著本書,把那本書翻爛,也永遠(yuǎn)學(xué)不會(huì)單片機(jī)的!剛接觸單片機(jī)的朋友,看了資料,一定會(huì)對以下幾個(gè)詞見的比較多,但是具體的概念還是比較模糊,現(xiàn)作如下說明:

(1)編程器 編程器是用來燒單片機(jī)芯片的,是把HEX或者BIN文件燒到單片機(jī)ROM里的,供單片機(jī)運(yùn)行的。

(2)實(shí)驗(yàn)板 實(shí)驗(yàn)板是專為初學(xué)者根據(jù)某些要求而特做的板,一般上面就有一個(gè)單片機(jī)的最小系統(tǒng),使用者只需寫好程序,燒好芯片,放到上面加以驗(yàn)證的這么一個(gè)工具。有了實(shí)驗(yàn)板,對與初學(xué)者來說,省去了焊個(gè)最小系統(tǒng)的麻煩。但是對于電子開發(fā)人員來說,作用并不是很大

(3)仿真器 仿真器是直接把HEX或者BIN文件暫時(shí)放在一個(gè)芯片里,再通過這個(gè)芯片的引腳連接到實(shí)驗(yàn)板或者系統(tǒng)上工作。這樣以來,可以省去了來回插拔芯片帶來的不必要麻煩。我一開始也不知道上面3個(gè)的概念和作用,嘿嘿,原本想買個(gè)實(shí)驗(yàn)板(不想焊板,因?yàn)椴豢赡転榱它c(diǎn)亮幾個(gè)流水燈,而去焊個(gè)單片機(jī)的最小系統(tǒng))的,可是結(jié)果,確和我想的正好相反,人家出售的是編程器。等貨物寄到后,才知道自己搞錯(cuò)了!汗。。嘿嘿?,F(xiàn)在想想實(shí)在是又氣又笑。我花了160大樣買了個(gè)編程器(很不幸的是,這個(gè)編程器更本用不了,一燒芯片,芯片就燒壞了)把我給氣的,這個(gè)編程器,現(xiàn)在還躺在我的抽屜里呢不過,現(xiàn)在想想,唯一讓我覺得欣慰的是,那個(gè)老板每次能解答我的問題,連那種超級幼稚的問題,他也能不嫌麻煩地盡量幫我解答!這點(diǎn)讓我很感動(dòng)! 第三,想學(xué)單片機(jī)的必需品—PC。因?yàn)閷懗绦?,編譯或者是仿真都是通過PC完成的。如果沒有PC,什么也做不了!??!有了PC最好還要可以上網(wǎng),因?yàn)槿绻銢]有可以和你交流單片機(jī)的人,遇到自己解決不了的問題,一直都想不通,那么估計(jì)你學(xué)習(xí)單片機(jī)的熱情就會(huì)隨著時(shí)間的推移而慢慢耗盡。如果你能上網(wǎng)通過論壇或者QQ群,問題就很快得到解決。這樣的學(xué)習(xí)效率一定很高!真正的高手是從論壇中泡出來的!有了上述3個(gè)條件后,你就可以開始學(xué)你的單片機(jī)了。但是,真的做起來并沒有我所說的那么簡單。你一定會(huì)遇到很多很多的問題。比如為了讓單片機(jī)實(shí)現(xiàn)某個(gè)功能,你可能不知道怎么去寫某個(gè)程序。或是你看懂了資料上某個(gè)相似的程序,你自己卻寫不出來。遇到類似的情況,記?。呵f不要急噪,就行!

(二)說了這么多了,相信你也看了很多資料了,手頭應(yīng)該也有必備的工具了吧?。ú灰松厦嬷v過幾個(gè)條件的哦)。那個(gè)單片機(jī)究竟有什么功能和作用呢?先不要著急!接下來讓我們點(diǎn)亮一個(gè)LED(搞電子的應(yīng)該知道LED是什么吧^_^) 我們在單片機(jī)最小系統(tǒng)上接個(gè)LED,看我們能否點(diǎn)亮它!對了,上面也有好幾次提到過單片機(jī)最小系統(tǒng)了,所謂單片機(jī)

最小系統(tǒng)就是在單片機(jī) 上接上最少的外圍電路元件讓單片機(jī)工作。一般只須連接晶體、VCC、GND、RST即可,一般情況下,AT89C51的31腳須接高電平。

#include<reg51.h>    //頭文件定義?;蛴?include<at89x51.h>其具體的區(qū)別在于:后者定義了更多的地址空間。

//在Keil安裝文件夾中,找到相應(yīng)的文件,比較一下便知!

sbit P1_0 = P1 ^ 0; //定義管腳

void main (void)

{

while(1)

{

P1_0 = 0;//低電平有效,如果把LED反過來接那么就是高電平有效

}

}

就那么簡單,我們就把接在單片機(jī)P1_0上的LED點(diǎn)亮了,當(dāng)然LED是低電平,才能點(diǎn)亮。因?yàn)槲覀儼袻ED的正通過電阻接至VCC。P1_0 = 0; 類似與C語言中的賦值語句,即把0賦給單片機(jī)的P1_0引腳,讓它輸出相應(yīng)的電平。那么這樣就能達(dá)到了我們預(yù)先的要求了。

while(1)語句只是讓單片機(jī)工作在死循環(huán)狀態(tài),即一直輸出低電平。如果我們要試著點(diǎn)亮其他的LED,也類似上述語句。這里就不再講了。點(diǎn)亮了幾個(gè)LED后,是不是讓我們聯(lián)想到了繁華的街區(qū)上流動(dòng)的彩燈。我們是不是也可以讓幾個(gè)LED依次按順序亮呢?答案是肯定的!其實(shí)顯示的原理很簡單,就是讓一個(gè)LED滅后,另一個(gè)立即亮,依次輪流下去。 假設(shè)我們有8個(gè)LED分別接在P1口的8個(gè)引腳上。硬件連接,在P1_1--P1_7上再接7個(gè)LED即可。例程如下:

#include<reg51.h>

sbit P1_0 = P1 ^ 0;

sbit P1_1 = P1 ^ 1;

sbit P1_2 = P1 ^ 2;

sbit P1_3 = P1 ^ 3;

sbit P1_4 = P1 ^ 4;

sbit P1_5 = P1 ^ 5;

sbit P1_6 = P1 ^ 6;

sbit P1_7 = P1 ^ 7;

void Delay(unsigned char a)

{

unsigned char i;

while( --a != 0)

{

for(i = 0; i < 125; i++); //一個(gè) ; 表示空語句,CPU空轉(zhuǎn)。

}       //i從0加到125,CPU大概就耗時(shí)1毫秒

}

void main(void)

{

while(1)

{

P1_0 = 0;

Delay(250);

P1_0 = 1;

P1_1 = 0;

Delay(250);

P1_1 = 1;

P1_2 = 0;

Delay(250);

P1_2 = 1;

P1_3 = 0;

Delay(250);

P1_3 = 1;

P1_4 = 0;

Delay(250);

P1_4 = 1;

P1_5 = 0;

Delay(250);

P1_5 = 1;

P1_6 = 0;

Delay(250);

P1_6 = 1;

P1_7 = 0;

Delay(250);

P1_7 = 1;

}

}

sbit定義位變量,unsigned char a定義無符字符型變量a,以節(jié)省單片機(jī)內(nèi)部資源,其有效值為0~255。main函數(shù)調(diào)用Delay()函數(shù)。Delay函數(shù)使單片機(jī)空轉(zhuǎn),LED持續(xù)點(diǎn)亮后,再滅,下一個(gè)LED亮。while(1)產(chǎn)生循環(huán)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多