<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C語(yǔ)言知識(shí)點(diǎn)全攻略

          單片機(jī)C語(yǔ)言知識(shí)點(diǎn)全攻略

          作者: 時(shí)間:2012-08-17 來(lái)源:網(wǎng)絡(luò) 收藏

          根據(jù)有網(wǎng)友提出美中不足的是所用編程語(yǔ)言為匯編,基于此,電子發(fā)燒友網(wǎng)再接再厲再次為讀者誠(chéng)摯奉上非常詳盡的《全攻略》系列學(xué)習(xí)教程,本教程共分為四部分,主要如下所示。

          第一部分

            點(diǎn)擊瀏覽下一頁(yè)第一課 建立你的第一個(gè)KeilC51項(xiàng)目

            點(diǎn)擊瀏覽下一頁(yè)第二課 C51HEX文件的生成和單片機(jī)

            點(diǎn)擊瀏覽下一頁(yè)第三課 C51數(shù)據(jù)類型

            點(diǎn)擊瀏覽下一頁(yè)第四課 C51常量

          第二部分知識(shí)點(diǎn):

            點(diǎn)擊瀏覽下一頁(yè)第五課 C51變量

            點(diǎn)擊瀏覽下一頁(yè)第六課 C51運(yùn)算符和表達(dá)式

            點(diǎn)擊瀏覽下一頁(yè)第七課 運(yùn)算符和表達(dá)式(關(guān)系運(yùn)算符)

            點(diǎn)擊瀏覽下一頁(yè)第八課 運(yùn)算符和表達(dá)式(位運(yùn)算符)

            點(diǎn)擊瀏覽下一頁(yè)第九課 C51運(yùn)算符和表達(dá)式(指針和地址運(yùn)算符)

          第三部分知識(shí)點(diǎn):

            點(diǎn)擊瀏覽下一頁(yè)第十課 C51表達(dá)式語(yǔ)句及仿真器

            點(diǎn)擊瀏覽下一頁(yè)第十一課 C51復(fù)合語(yǔ)句和條件語(yǔ)句

            點(diǎn)擊瀏覽下一頁(yè)第十二課 C51開(kāi)關(guān)分支語(yǔ)句

            點(diǎn)擊瀏覽下一頁(yè)第十三課 C51循環(huán)語(yǔ)句

            點(diǎn)擊瀏覽下一頁(yè)第十四課 C51函數(shù)

          第四部分知識(shí)點(diǎn):

            點(diǎn)擊瀏覽下一頁(yè)第十五課 C51數(shù)組的使用

            點(diǎn)擊瀏覽下一頁(yè)第十六課 C51指針的使用

            點(diǎn)擊瀏覽下一頁(yè)第十七課 C51結(jié)構(gòu)、聯(lián)合和枚舉的使用

            點(diǎn)擊瀏覽下一頁(yè)附錄(運(yùn)算符優(yōu)先級(jí)和結(jié)合性等)

            c語(yǔ)言是很好用的結(jié)構(gòu)化語(yǔ)言,80年代后,c也能用在單片機(jī)上了。本站為了方便大家學(xué)習(xí)制作了一個(gè)單片機(jī)c語(yǔ)言教程,如果你是新手先看下下面的c51介紹吧,過(guò)去長(zhǎng)期困擾人們的所謂“高級(jí)語(yǔ)言產(chǎn)生代碼太長(zhǎng),運(yùn)行速度太慢,運(yùn)行效率不高,所以不適合單片機(jī)使用”keil公司出品的單片機(jī)c語(yǔ)言集成開(kāi)發(fā)環(huán)境成功的解決了這個(gè)難題,使得單片機(jī)c語(yǔ)言的效率大大的提高,而且在關(guān)鍵部位還能嵌入?yún)R編語(yǔ)言代碼,從而挖掘程序的最高潛力。

            目前,8051上的的代碼長(zhǎng)度,已經(jīng)做到了匯編水平的1.2~1.5倍。4K字節(jié)以上的程度,C語(yǔ)言的優(yōu)勢(shì)更能得到發(fā)揮。至于運(yùn)行速度的問(wèn)題,只要有好的仿真器,找出關(guān)鍵的代碼,再進(jìn)一步做一下人工優(yōu)化,就可很容易達(dá)到美滿。單片機(jī)c語(yǔ)言是高效的單片機(jī)開(kāi)發(fā)語(yǔ)言,本站提供的單片機(jī)c語(yǔ)言教程共17課時(shí),由淺入深,看完了這些教程你就基本了解了c51,能進(jìn)行一般的單片機(jī)c語(yǔ)言程序設(shè)計(jì)了,現(xiàn)在讓我們開(kāi)始學(xué)習(xí)吧。

          第一課、建立你的第一個(gè)KeilC51項(xiàng)目

            隨著單片機(jī)技術(shù)的不斷發(fā)展,以單片機(jī)C語(yǔ)言為主流的高級(jí)語(yǔ)言也不斷被更多的單片機(jī)愛(ài)好者和工程師所喜愛(ài)。使用C51肯定要使用到編譯器,以便把寫好的C程序編譯為機(jī)器碼,這樣單片機(jī)才能執(zhí)行編寫好的程序。KEIL uVISION2 是眾多單片機(jī)應(yīng)用開(kāi)發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不一樣公司的MCS51架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還支持,PLM,匯編和C語(yǔ)言的程序設(shè)計(jì),它的界面和常用的微軟 VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。本站提供的單片機(jī)c語(yǔ)言教程都是基于keilc51的。

            下面結(jié)合8051介紹單片機(jī)C語(yǔ)言的優(yōu)越性:

            ·無(wú)須懂得單片機(jī)的具體硬件,也能夠編出符合硬件實(shí)際的專業(yè)水平的程序;

            ·不懂得單片機(jī)的指令集,也能夠編寫完美的單片機(jī)程序;

            ·不同函數(shù)的數(shù)據(jù)實(shí)行覆蓋,有效利用片上有限的RAM空間;

            ·提供auto、static、const等存儲(chǔ)類型和專門針對(duì)8051單片機(jī)的data、idata、pdata、xdata、code等存儲(chǔ)類型,自動(dòng)為變量合理地分配地址;

            ·C語(yǔ)言提供復(fù)雜的數(shù)據(jù)類型(數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉、指針等),極大地增強(qiáng)了程序處理能力和靈活性;

            ·提供small、compact、large等編譯模式,以適應(yīng)片上存儲(chǔ)器的大??;

            ·中斷服務(wù)程序的現(xiàn)場(chǎng)保護(hù)和恢復(fù),中斷向量表的填寫,是直接與單片機(jī)相關(guān)的,都由C編譯器代辦;

            ·程序具有堅(jiān)固性:數(shù)據(jù)被破壞是導(dǎo)致程序運(yùn)行異常的重要因素。C語(yǔ)言對(duì)數(shù)據(jù)進(jìn)行了許多專業(yè)性的處理,避免了運(yùn)行中間非異步的破壞

            ·提供常用的標(biāo)準(zhǔn)函數(shù)庫(kù),以供用戶直接使用;

            ·有嚴(yán)格的句法檢查,錯(cuò)誤很少,可容易地在高級(jí)語(yǔ)言的水平上迅速地被排掉;

            ·可方便地接受多種實(shí)用程序的服務(wù):如片上資源的初始化有專門的實(shí)用程序自動(dòng)生成;再如,有實(shí)時(shí)多任務(wù)操作系統(tǒng)可調(diào)度多道任務(wù),簡(jiǎn)化用戶編程,提高運(yùn)行的安全性等等。

            ·頭文件中定義宏、說(shuō)明復(fù)雜數(shù)據(jù)類型和函數(shù)原型,有利于程序的移植和支持單片機(jī)的系列化產(chǎn)品的開(kāi)發(fā);

            以上簡(jiǎn)單介紹了 KEILC51 軟件,要使用KEILC51軟件,必需先要安裝它,這也是學(xué)習(xí)單片機(jī)編程語(yǔ)言所要求的第一步――建立學(xué)習(xí)環(huán)境。

            安裝好后,您是不是想建立自己的第一個(gè)單片機(jī)C語(yǔ)言程序項(xiàng)目呢?下面就讓我們一起來(lái)建立一個(gè)小程序吧,請(qǐng)根據(jù)教程一步步的來(lái),你絕對(duì)可以在短時(shí)間內(nèi)熟悉c51的。

            首先當(dāng)然是運(yùn)行KEIL軟件,接著按下面的步驟建立您的第一個(gè)項(xiàng)目:

           ?。?)點(diǎn)擊 Project 菜單,選擇彈出的下拉式菜單中的 New Project,如圖 1-2。接著彈 出一個(gè)標(biāo)準(zhǔn) Windows 文件對(duì)話窗口,如圖 1-3。在“文件名”中輸入您的第一個(gè) C 程序項(xiàng) 目名稱,這里我們用“test”?!氨4妗焙蟮奈募U(kuò)展名為 uv2,這是 KEIL uVision2 項(xiàng)目文件擴(kuò)展名,以后能直接點(diǎn)擊此文件以打開(kāi)先前做的項(xiàng)目。

            點(diǎn)擊瀏覽下一頁(yè)

            圖 1-2 New Project 菜單

            點(diǎn)擊瀏覽下一頁(yè)

            圖 1-3 文件窗口

           ?。?)選擇所要的單片機(jī),這里選擇常用的 Ateml 公司的 AT89c51。而且本單片機(jī)c語(yǔ)言教程里的大部分程序都是基于此芯片的,此時(shí)屏幕如圖 1-4 所示。AT89c51 有什么功能、特點(diǎn)呢?看圖中右邊有簡(jiǎn)單的介紹。完成上面步驟后,就可 以進(jìn)行程序的編寫了。

           ?。?)首先在項(xiàng)目中創(chuàng)建新的程序文件或加入舊程序文件。如果您沒(méi)有現(xiàn)成的程序,那 么就要新建一個(gè)程序文件。在 KEIL 中有一些程序的 Demo,在這里我們還是以一個(gè) C 程序 為例介紹如何新建一個(gè) C 程序和如何加到您的第一個(gè)項(xiàng)目中吧。點(diǎn)擊圖 1-5 中 1 的新建文 件的快捷按鈕,在 2 中出現(xiàn)一個(gè)新的文字編輯窗口,這個(gè)操作也能通過(guò)菜單 File-New 或 快捷鍵 Ctrl+N 來(lái)實(shí)現(xiàn)。好了,現(xiàn)在能編寫程序了。

          下面是經(jīng)典的一段程序,呵,如果您看過(guò)別的程序書也許也有類似的程序:

            #include 《AT89X51.H》

            #include 《stdio.h》

            void main(void)

            {

            SCON = 0x50; //串口方式1,允許接收

            TMOD = 0x20; //定時(shí)器1定時(shí)方式2

            TCON = 0x40; //設(shè)定時(shí)器1開(kāi)始計(jì)數(shù)

            TH1 = 0xE8; //11.0592MHz 1200波特率

            TL1 = 0xE8;

            TI = 1;

            TR1 = 1; //啟動(dòng)定時(shí)器

            while(1)

            printf (Hello World!n);; //顯示Hello World

            }

            點(diǎn)擊瀏覽下一頁(yè)

            圖 1-4 選取芯片

            點(diǎn)擊瀏覽下一頁(yè)

            圖 1-5 新建程序文件

            這段程序的功能是不斷從串行口輸出“Hello World!”字符,先不管程序的語(yǔ)法和意思吧,先 看看如何把它加入到項(xiàng)目中和如何編譯試運(yùn)行。

           ?。?)點(diǎn)擊圖 1-5 中的 3 保存新建的程序,也能用菜單 File-Save 或快捷鍵 Ctrl+S

            進(jìn)行保存。因是新文件所以保存時(shí)會(huì)彈出類似圖 1-3 的文件操作窗口,把第一個(gè)程序命名


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();