第3章-C51語言編程基礎ppt課件.ppt
《第3章-C51語言編程基礎ppt課件.ppt》由會員分享,可在線閱讀,更多相關《第3章-C51語言編程基礎ppt課件.ppt(153頁珍藏版)》請在匯文網(wǎng)上搜索。
1、1,第3章 C51語言編程基礎與 Keil Vision3開發(fā)平臺,2,單片機應用系統(tǒng)日趨復雜,對程序的可讀性、升級與維護以及模塊化要求越來越高,對軟件編程要求也越來越高,要求編程人員在短時間內(nèi)編寫出執(zhí)行效率高、運行可靠的程序代碼。同時,也要方便多個編程人員來進行協(xié)同開發(fā)。C51語言是近年來在8051單片機開發(fā)中,普遍使用的程序設計語言,能直接對8051單片機硬件進行操作,既有高級語言特點,又有匯編語言特點,因此在8051單片機程序設計中,得到廣泛使用。本章介紹8051單片機的C51語言,以及如何使用C51語言集成化開發(fā)平臺Keil Vision3,進行C51程序設計與開發(fā)。,3.1 C51編
2、程語言簡介用于8051單片機編程的C語言,在標準C基礎上針對8051硬件特點進行擴展,并向8051上移植,經(jīng)多年努力,C51已成為公認的高效、簡潔的8051單片機的實用高級編程語言。與8051匯編語言相比,C51語言在功能上、結構性、可讀性、可維護性上有明顯優(yōu)勢,易學易用。3.1.1 C51語言與8051匯編語言比較與8051匯編語言相比, C51有如下優(yōu)點。(1)可讀性好。C51語言程序比匯編語言程序的可讀性好,編程效率高,程序便于修改、維護以及升級。,4,(2)模塊化開發(fā)與資源共享。用C51開發(fā)的程序模塊可不經(jīng)修改,直接被其他工程所用,使得開發(fā)者能夠很好地利用已有的大量標準C程序資源與豐富
3、的庫函數(shù),減少重復勞動,同時也有利于多個工程師進行協(xié)同開發(fā)。(3)可移植性好。為某種型號單片機開發(fā)的C語言程序,只需把與硬件相關的頭文件和編譯鏈接的參數(shù)進行適當修改,就可方便地移植到其他型號的單片機上。例如,為8051單片機編寫的程序通過改寫頭文件以及少量的程序行,就可方便地移植到PIC單片機上。(4)生成的代碼效率高。當前較好的C51語言編譯系統(tǒng)編譯出來的代碼效率只比直接使用匯編語言低20%左右,如果使用優(yōu)化編譯選項,最高可達到90%左右。,5,3.1.2 C51語言與標準C語言的比較C51語言與標準C語言間有許多相同地方,但也有自身特點。不同的嵌入式C語言編譯系統(tǒng)之所以與標準C語言有不同的
4、地方,主要是由于它們所針對的硬件系統(tǒng)不同。對于8051單片機,目前廣泛使用的是C51語言。C51語言基本語法與標準C相同,是在標準C的基礎上進行適合8051內(nèi)核單片機硬件的擴展。深入理解C51語言對標準C語言的擴展部分以及它們的不同之處,是掌握C51語言的關鍵之一。,6,C51語言與標準C語言一些差別如下。 (1)庫函數(shù)不同。標準C中不適合于嵌入式控制器系統(tǒng)的庫函數(shù),被排除在C51語言之外,如字符屏幕和圖形函數(shù)。有些庫函數(shù)必須針對8051的硬件特點來做出相應的開發(fā)。 例如,在標準C中,庫函數(shù)printf和scanf,常用于屏幕打印和接收字符,而在C51語言中,主要用于串行口數(shù)據(jù)的收發(fā)。 (2)
5、數(shù)據(jù)類型有一定區(qū)別。在C51中增加幾種8051單片機的數(shù)據(jù)類型,在標準C的基礎上又擴展了4種類型。例如,8051單片機包含位操作空間和豐富的位操作指令,因此,C51語言與標準C語言相比增加了位類型。,7,(3)C51語言變量存儲模式與標準C語言中變量存儲模式數(shù)據(jù)不一樣。標準C最初是為通用計算機設計的,在通用計算機中只有一個程序和數(shù)據(jù)統(tǒng)一尋址的內(nèi)存空間,而C51語言中變量的存儲模式與8051單片機的各種存儲器區(qū)緊密相關。 (4)數(shù)據(jù)存儲類型不同。8051存儲區(qū)可分為內(nèi)部數(shù)據(jù)存儲區(qū)、外部數(shù)據(jù)存儲區(qū)以及程序存儲區(qū)。 內(nèi)部數(shù)據(jù)存儲區(qū)可分為3個不同的C51存儲類型:data、idata和bdata。 外
6、部數(shù)據(jù)存儲區(qū)分為2個不同的C51存儲類型:xdata和pdata。 程序存儲區(qū)只能讀不能寫,可能在8051內(nèi)部或者在外部,C51語言提供的code存儲類型用來訪問程序存儲區(qū)。,8,(5)標準C語言沒有處理單片機中斷的定義,而C51語言中有專門的中斷函數(shù)。(6)頭文件不同。C51語言頭文件必須把8051單片機內(nèi)部的外設硬件資源(如定時器、中斷、I/O等)相應的特殊功能寄存器寫入到頭文件內(nèi),而標準C不用。 (7)程序結構的差異。由于8051單片機的硬件資源有限,它的編譯系統(tǒng)不允許太多的程序嵌套。其次,標準C語言所具備的遞歸特性不被C51語言支持。,9,但從數(shù)據(jù)運算操作、程序控制語句以及函數(shù)的使用上
7、來說,C51與標準C幾乎沒有什么明顯差別。如果程序設計者具備了有關標準C語言的編程基礎,只要注意C51與標準C不同之處,并熟悉8051單片機的硬件結構,就能較快掌握C51編程。3.2 C51語言程序設計基礎本節(jié)在標準C基礎上,了解掌握C51的數(shù)據(jù)類型和存儲類型、C51的基本運算與流程控制語句、C51語言構造數(shù)據(jù)類型、C51函數(shù)以及C51程序設計的其他一些問題,為C51的程序開發(fā)打下基礎。,10,3.2.1 C51語言中的數(shù)據(jù)類型與存儲類型1數(shù)據(jù)類型 數(shù)據(jù)是單片機操作的對象,具有一定格式的數(shù)字或數(shù)值,數(shù)據(jù)的不同格式就稱為數(shù)據(jù)類型。 Keil C51支持的基本數(shù)據(jù)類型見表3-1。 針對8051的硬
8、件特點,C51在標準C基礎上,擴展了4種數(shù)據(jù)類型(見表3-1中最后4行)。 注意,擴展的4種數(shù)據(jù)類型,不能使用指針來對它們存取。,12,2C51的擴展數(shù)據(jù)類型 下面對擴展的4種數(shù)據(jù)類型說明。 (1)位變量bit的值可以是1(true),也可是0(false)。 (2)特殊功能寄存器sfr。8051單片機的特殊功能寄存器分布在片內(nèi)數(shù)據(jù)存儲區(qū)的地址單元80HFFH之間,“sfr”數(shù)據(jù)類型占用一個內(nèi)存單元。利用它可訪問8051單片機內(nèi)部的所有特殊功能寄存器。 例如:sfr P1=0 x90這一語句定義了P1端口在片內(nèi)的寄存器,在程序后續(xù)的語句中可以用“P1=0 xff”,使P1的所有引腳輸出為高電平
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- C51 語言 編程 基礎 ppt 課件