單片機C語言知識點全攻略
根據(jù)有網(wǎng)友提出美中不足的是所用單片機編程語言為匯編,基于此,電子發(fā)燒友網(wǎng)再接再厲再次為讀者誠摯奉上非常詳盡的《單片機C語言知識點全攻略》系列單片機C語言學習教程,本教程共分為四部分,主要知識點如下所示。
第一部分知識點:
第一課 建立你的第一個KeilC51項目
第二課 C51HEX文件的生成和單片機
第三課 C51數(shù)據(jù)類型
第四課 C51常量
第二部分知識點:
第五課 C51變量
第六課 C51運算符和表達式
第七課 運算符和表達式(關系運算符)
第八課 運算符和表達式(位運算符)
第九課 C51運算符和表達式(指針和地址運算符)
第三部分知識點:
第十課 C51表達式語句及仿真器
第十一課 C51復合語句和條件語句
第十二課 C51開關分支語句
第十三課 C51循環(huán)語句
第十四課 C51函數(shù)
第四部分知識點:
第十五課 C51數(shù)組的使用
第十六課 C51指針的使用
第十七課 C51結(jié)構(gòu)、聯(lián)合和枚舉的使用
附錄(運算符優(yōu)先級和結(jié)合性等)
c語言是很好用的結(jié)構(gòu)化語言,80年代后,c也能用在單片機上了。本站為了方便大家學習制作了一個單片機c語言教程,如果你是新手先看下下面的c51介紹吧,過去長期困擾人們的所謂“高級語言產(chǎn)生代碼太長,運行速度太慢,運行效率不高,所以不適合單片機使用”keil公司出品的單片機c語言集成開發(fā)環(huán)境成功的解決了這個難題,使得單片機c語言的效率大大的提高,而且在關鍵部位還能嵌入?yún)R編語言代碼,從而挖掘程序的最高潛力。
目前,8051上的C語言的代碼長度,已經(jīng)做到了匯編水平的1.2~1.5倍。4K字節(jié)以上的程度,C語言的優(yōu)勢更能得到發(fā)揮。至于運行速度的問題,只要有好的仿真器,找出關鍵的代碼,再進一步做一下人工優(yōu)化,就可很容易達到美滿。單片機c語言是高效的單片機開發(fā)語言,本站提供的單片機c語言教程共17課時,由淺入深,看完了這些教程你就基本了解了c51,能進行一般的單片機c語言程序設計了,現(xiàn)在讓我們開始學習吧。
第一課、建立你的第一個KeilC51項目
隨著單片機技術(shù)的不斷發(fā)展,以單片機C語言為主流的高級語言也不斷被更多的單片機愛好者和工程師所喜愛。使用C51肯定要使用到編譯器,以便把寫好的C程序編譯為機器碼,這樣單片機才能執(zhí)行編寫好的程序。KEIL uVISION2 是眾多單片機應用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不一樣公司的MCS51架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時還支持,PLM,匯編和C語言的程序設計,它的界面和常用的微軟 VC++的界面相似,界面友好,易學易用,在調(diào)試程序,軟件仿真方面也有很強大的功能。本站提供的單片機c語言教程都是基于keilc51的。
下面結(jié)合8051介紹單片機C語言的優(yōu)越性:
·無須懂得單片機的具體硬件,也能夠編出符合硬件實際的專業(yè)水平的程序;
·不懂得單片機的指令集,也能夠編寫完美的單片機程序;
·不同函數(shù)的數(shù)據(jù)實行覆蓋,有效利用片上有限的RAM空間;
·提供auto、static、const等存儲類型和專門針對8051單片機的data、idata、pdata、xdata、code等存儲類型,自動為變量合理地分配地址;
·C語言提供復雜的數(shù)據(jù)類型(數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉、指針等),極大地增強了程序處理能力和靈活性;
·提供small、compact、large等編譯模式,以適應片上存儲器的大小;
·中斷服務程序的現(xiàn)場保護和恢復,中斷向量表的填寫,是直接與單片機相關的,都由C編譯器代辦;
·程序具有堅固性:數(shù)據(jù)被破壞是導致程序運行異常的重要因素。C語言對數(shù)據(jù)進行了許多專業(yè)性的處理,避免了運行中間非異步的破壞
·提供常用的標準函數(shù)庫,以供用戶直接使用;
·有嚴格的句法檢查,錯誤很少,可容易地在高級語言的水平上迅速地被排掉;
·可方便地接受多種實用程序的服務:如片上資源的初始化有專門的實用程序自動生成;再如,有實時多任務操作系統(tǒng)可調(diào)度多道任務,簡化用戶編程,提高運行的安全性等等。
·頭文件中定義宏、說明復雜數(shù)據(jù)類型和函數(shù)原型,有利于程序的移植和支持單片機的系列化產(chǎn)品的開發(fā);
以上簡單介紹了 KEILC51 軟件,要使用KEILC51軟件,必需先要安裝它,這也是學習單片機編程語言所要求的第一步――建立學習環(huán)境。
安裝好后,您是不是想建立自己的第一個單片機C語言程序項目呢?下面就讓我們一起來建立一個小程序吧,請根據(jù)教程一步步的來,你絕對可以在短時間內(nèi)熟悉c51的。
首先當然是運行KEIL軟件,接著按下面的步驟建立您的第一個項目:
(1)點擊 Project 菜單,選擇彈出的下拉式菜單中的 New Project,如圖 1-2。接著彈 出一個標準 Windows 文件對話窗口,如圖 1-3。在“文件名”中輸入您的第一個 C 程序項 目名稱,這里我們用“test”?!氨4妗焙蟮奈募U展名為 uv2,這是 KEIL uVision2 項目文件擴展名,以后能直接點擊此文件以打開先前做的項目。
圖 1-2 New Project 菜單
圖 1-3 文件窗口
?。?)選擇所要的單片機,這里選擇常用的 Ateml 公司的 AT89c51。而且本單片機c語言教程里的大部分程序都是基于此芯片的,此時屏幕如圖 1-4 所示。AT89c51 有什么功能、特點呢?看圖中右邊有簡單的介紹。完成上面步驟后,就可 以進行程序的編寫了。
(3)首先在項目中創(chuàng)建新的程序文件或加入舊程序文件。如果您沒有現(xiàn)成的程序,那 么就要新建一個程序文件。在 KEIL 中有一些程序的 Demo,在這里我們還是以一個 C 程序 為例介紹如何新建一個 C 程序和如何加到您的第一個項目中吧。點擊圖 1-5 中 1 的新建文 件的快捷按鈕,在 2 中出現(xiàn)一個新的文字編輯窗口,這個操作也能通過菜單 File-New 或 快捷鍵 Ctrl+N 來實現(xiàn)。好了,現(xiàn)在能編寫程序了。
下面是經(jīng)典的一段程序,呵,如果您看過別的程序書也許也有類似的程序:
#include 《AT89X51.H》
#include 《stdio.h》
void main(void)
{
SCON = 0x50; //串口方式1,允許接收
TMOD = 0x20; //定時器1定時方式2
TCON = 0x40; //設定時器1開始計數(shù)
TH1 = 0xE8; //11.0592MHz 1200波特率
TL1 = 0xE8;
TI = 1;
TR1 = 1; //啟動定時器
while(1)
printf (Hello World!n);; //顯示Hello World
}
圖 1-4 選取芯片
圖 1-5 新建程序文件
這段程序的功能是不斷從串行口輸出“Hello World!”字符,先不管程序的語法和意思吧,先 看看如何把它加入到項目中和如何編譯試運行。
(4)點擊圖 1-5 中的 3 保存新建的程序,也能用菜單 File-Save 或快捷鍵 Ctrl+S
進行保存。因是新文件所以保存時會彈出類似圖 1-3 的文件操作窗口,把第一個程序命名
評論