什么是C51數(shù)據(jù)類(lèi)型擴(kuò)充定義
掃描二維碼
隨時(shí)隨地手機(jī)看文章
數(shù)據(jù)元(Data Element),也稱(chēng)為數(shù)據(jù)元素,是用一組屬性描述其定義、標(biāo)識(shí)、表示和允許值的數(shù)據(jù)單元,在一定語(yǔ)境下,通常用于構(gòu)建一個(gè)語(yǔ)義正確、獨(dú)立且無(wú)歧義的特定概念語(yǔ)義的信息單元。數(shù)據(jù)元可以理解為數(shù)據(jù)的基本單元,將若干具有相關(guān)性的數(shù)據(jù)元按一定的次序組成一個(gè)整體結(jié)構(gòu)即為數(shù)據(jù)模型。
數(shù)據(jù)元一般由對(duì)象類(lèi)、特性和表示3部分組成:
(1)對(duì)象類(lèi)(Object Class)。是現(xiàn)實(shí)世界或抽象概念中事物的集合,有清楚的邊界和含義,并且特性和其行為遵循同樣的規(guī)則而能夠加以標(biāo)識(shí)。
(2)特性(Property)。是對(duì)象類(lèi)的所有個(gè)體所共有的某種性質(zhì),是對(duì)象有別于其他成員的依據(jù)。
(3)表示(Representation)。是值域、數(shù)據(jù)類(lèi)型、表示方式的組合,必要時(shí)也包括計(jì)量單位、字符集等信息。對(duì)象類(lèi)是我們所要研究、收集和存儲(chǔ)相關(guān)數(shù)據(jù)的實(shí)體,例如人員、設(shè)施、裝備、組織、環(huán)境、物資等。特性是人們用來(lái)區(qū)分、識(shí)別事物的一種手段,例如人員的姓名、性別、身高、體重、職務(wù),坦克的型號(hào)、口徑、高度、長(zhǎng)度、有效射程等。表示是數(shù)據(jù)元被表達(dá)的方式的一種描述。表示的各種組成成分中,任何一個(gè)部分發(fā)生變化都將產(chǎn)生不同的表示,例如人員的身高用“厘米”或用“米”作為計(jì)量單位,就是人員身高特性的兩種不同的表示。數(shù)據(jù)元的表示可以用一些具有表示含義的術(shù)語(yǔ)作標(biāo)記,例如名稱(chēng)、代碼、金額、數(shù)量、日期、百分比等。
數(shù)據(jù)元基本模型中,對(duì)象類(lèi)對(duì)應(yīng)于數(shù)據(jù)模型中的實(shí)體、特性和表示對(duì)應(yīng)于數(shù)據(jù)模型中的屬性。
單片機(jī)內(nèi)部有很多的特殊功能寄存器,每個(gè)寄存器在單片機(jī)內(nèi)部都分配有唯一的地址,一般我們會(huì)根據(jù)寄存器功能的不同給寄存器賦予各自的名稱(chēng),當(dāng)我們需要在程序中操作這些特殊功能寄存器時(shí),必須要在程序的最前面將這些名稱(chēng)加以聲明,聲明的過(guò)程實(shí)際就是將這個(gè)寄存器在內(nèi)存中的地址編號(hào)賦給這個(gè)名稱(chēng),這樣編譯器在以后的程序中才可認(rèn)知這些名稱(chēng)所對(duì)應(yīng)的寄存器。對(duì)于大多數(shù)初學(xué)者來(lái)講,這些寄存器的聲明已經(jīng)完全被包含在51單片機(jī)的特殊功能寄存器聲明頭文件“reg51.h”中了,初學(xué)者若不想深入了解,完全可以暫不操作它。
sfr—特殊功能寄存器的數(shù)據(jù)聲明,聲明一個(gè)8位的寄存器。
sfrl6—16位特殊功能寄存器的數(shù)據(jù)聲明。
sbit—特殊功能位聲明,也就是聲明某一個(gè)特殊功能寄存器中的某一位。
bit一位變量聲明,當(dāng)定義一個(gè)位變量時(shí)可使用此符號(hào)。
例如:sfr SCON=0x98;
SCON是單片機(jī)的串行口控制寄存器,這個(gè)寄存器在單片機(jī)內(nèi)存中的地址為0x980這樣聲明后,我們?cè)谝院笠僮鬟@個(gè)控制寄存器時(shí),就可以直接對(duì)SCON進(jìn)行操作,這時(shí)編譯器也會(huì)明白,我們實(shí)際要操作的是單片機(jī)內(nèi)部0x98地址處的這個(gè)寄存器,而SCON僅僅是這個(gè)地址的一個(gè)代號(hào)或是名稱(chēng)而已,當(dāng)然,我們也可以定義成其他的名稱(chēng)。
例如:sfr16T2=0xCC;
聲明一個(gè)16位的特殊功能寄存器,它的起始地址為OxCC。
例如:sbit TI=SCON^1;
SCON是一個(gè)8位寄存器,SCON^1表示這個(gè)8位寄存器的次低位,最低位是SCON^0;SCON^7表示這個(gè)寄存器的最高位。該語(yǔ)句的功能就是將SCON寄存器的次低位聲明為T(mén)I,以后若要對(duì)SCON寄存器的次低位操作,則可直接操作TI。
C51中常用的頭文件
通常有reg51.h,reg52.h,math.h,ctype.h,stdio.h,stdlib.h,absacc.h,intrins.h。
但常用的卻只有reg51.h或reg52.h,math.h。
reg51.h和reg52.h是定義51單片機(jī)或52單片機(jī)特殊功能寄存器和位寄存器的,這兩個(gè)頭文件中大部分內(nèi)容是一樣的,52單片機(jī)比51單片機(jī)多一個(gè)定時(shí)器T2,因此,reg52.h中也就比reg51.h中多幾行定義T2寄存器的內(nèi)容。
math.h是定義常用數(shù)學(xué)運(yùn)算的,比如求絕對(duì)值、求方根、求正弦和余弦等,該頭文件中包含有各種數(shù)學(xué)運(yùn)算函數(shù),當(dāng)我們需要使用時(shí)可以直接調(diào)用它的內(nèi)部函數(shù)。
當(dāng)我們對(duì)特殊功能寄存器有了基本的了解后,大家就可以自己動(dòng)手來(lái)寫(xiě)具有自己風(fēng)格的頭文件了。例如,在TX-1C單片機(jī)學(xué)習(xí)板上,我們用的是STC公司的51內(nèi)核單片機(jī),該單片機(jī)內(nèi)部除了一般51單片機(jī)所具有的功能外,還有一些特殊功能,當(dāng)我們要使用這些特殊功能時(shí),就要對(duì)它進(jìn)行另外的操作,此時(shí)就需要我們自己定義這些特殊功能寄存器的名稱(chēng),我們可以根據(jù)芯片說(shuō)明文檔上所注明的各個(gè)寄存器地址來(lái)定義它們,關(guān)于這方面的擴(kuò)展,我們會(huì)在以后的實(shí)際應(yīng)用中再次提到。