單片機(jī)內(nèi)部有很多的特殊功能寄存器,每個(gè)寄存器在單片機(jī)內(nèi)部都分配有唯一的地址,一般我們會(huì)根據(jù)寄存器功能的不同給寄存器賦予各自的名稱,當(dāng)我們需要在程序中操作這些特殊功能寄存器時(shí),必須要在程序的最前面將這些名稱加以聲明,聲明的過(guò)程實(shí)際就是將這個(gè)寄存器在內(nèi)存中的地址編號(hào)賦給這個(gè)名稱,這樣編譯器在以后的程序中才可認(rèn)知這些名稱所對(duì)應(yīng)的寄存器。對(duì)于大多數(shù)初學(xué)者來(lái)講,這些寄存器的聲明已經(jīng)完全被包含在51單片機(jī)的特殊功能寄存器聲明頭文件“reg51.h”中了,初學(xué)者若不想深入了解,完全可以暫不操作它。
數(shù)據(jù)元(Data Element),也稱為數(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ù)模型。
C語(yǔ)言是一門面向過(guò)程的、抽象化的通用程序設(shè)計(jì)語(yǔ)言,廣泛應(yīng)用于底層開發(fā)。C語(yǔ)言能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器。C語(yǔ)言是僅產(chǎn)生少量的機(jī)器語(yǔ)言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語(yǔ)言。盡管C語(yǔ)言提供了許多低級(jí)處理的功能,但仍然保持著跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語(yǔ)言程序可在包括類似嵌入式處理器以及超級(jí)計(jì)算機(jī)等作業(yè)平臺(tái)的許多計(jì)算機(jī)平臺(tái)上進(jìn)行編譯。
圖1.2.1至圖1.2.6三組圖是51單片機(jī)芯片不同封裝的引腳圖和實(shí)物圖,其中標(biāo)有NC的是不連接(No Connect)的意思。當(dāng)大家首次看見這些引腳時(shí),一定會(huì)有又多又亂的感覺(jué),而且難以記憶。千萬(wàn)不要著急,對(duì)于初學(xué)者來(lái)說(shuō),單純地記憶引腳標(biāo)號(hào)沒(méi)有任何意義,最好的方法就是邊學(xué)邊記。
二進(jìn)制(binary),是在數(shù)學(xué)和數(shù)字電路中以2為基數(shù)的記數(shù)系統(tǒng),是以2為基數(shù)代表系統(tǒng)的二進(jìn)位制。這一系統(tǒng)中,通常用兩個(gè)不同的符號(hào)0(代表零)和1(代表一)來(lái)表示。發(fā)現(xiàn)者是萊布尼茨。數(shù)字電子電路中,邏輯門的實(shí)現(xiàn)直接應(yīng)用了二進(jìn)制,現(xiàn)代的計(jì)算機(jī)和依賴計(jì)算機(jī)的設(shè)備里都使用二進(jìn)制。每個(gè)數(shù)字稱為一個(gè)比特(Bit,Binary digit的縮寫)。
單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。
很多單片機(jī)初學(xué)者問(wèn)我的第一句話都是:怎樣才能學(xué)好單片機(jī)?今天,我就結(jié)合我自己是如何開始學(xué)習(xí)單片機(jī)的,如何開始上手,又如何開始熟練等話題與大家分享。
Proteus虛擬仿真軟件由英國(guó)Labcenter公司開發(fā),集電路原理圖設(shè)計(jì)、印制電路板設(shè)計(jì)和實(shí)物仿真等功能于一體,可以利用軟件模擬各種硬件(如:電阻、電容等模擬器件,單片機(jī)、微處理器等數(shù)字器件,示波器、萬(wàn)用表等儀器設(shè)備),并支持對(duì)模擬硬件的軟件編程和虛擬仿真調(diào)試。這使得用戶可以在沒(méi)有硬件支持的情況下,以電路原理為基礎(chǔ)搭建虛擬模型,進(jìn)行系統(tǒng)統(tǒng)仿真和調(diào)試,并可以看到系統(tǒng)運(yùn)行的模擬效果。由于可節(jié)約成本、提高研發(fā)效率,利用Proteus軟件進(jìn)行單片機(jī)系統(tǒng)輔助設(shè)計(jì)的方式已經(jīng)被很多高校和研發(fā)機(jī)構(gòu)采用。
Proteus軟件具有良好的人機(jī)交互功能,該軟件啟動(dòng)后將自動(dòng)進(jìn)入ISIS功能界面(見圖9-1),其中多數(shù)工具欄的位置可以通過(guò)鼠標(biāo)拖動(dòng)來(lái)調(diào)整。本節(jié)將以AT89C52單片機(jī)最小系統(tǒng)原理圖繪制為例,介紹ISIS的使用方法。
C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它由美國(guó)貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語(yǔ)言已先后被移植到大、中、小及微型機(jī)上,它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。
C語(yǔ)言是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,它提供了十分完備的規(guī)范化流程控制結(jié)構(gòu)。因此采用C51語(yǔ)言設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)程序時(shí),首先要盡可能地采用結(jié)構(gòu)化的程序設(shè)計(jì)方法,這樣可使整個(gè)應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護(hù)。對(duì)于一個(gè)較大的程序,可將整個(gè)程序按功能分成若干個(gè)模塊,不同的模塊完成不同的功能。對(duì)于不同的功能模塊,分別指定相應(yīng)的入口參數(shù)和出口參數(shù),而經(jīng)常使用的一些程序最好編成函數(shù),這樣既不會(huì)引起整個(gè)程序管理的混亂,還可增強(qiáng)可讀性,移植性也好。
單片機(jī)C51語(yǔ)言兼?zhèn)涓呒?jí)語(yǔ)言與低級(jí)語(yǔ)言的優(yōu)點(diǎn)。語(yǔ)法結(jié)構(gòu)和標(biāo)準(zhǔn)C語(yǔ)言基本一致,語(yǔ)言簡(jiǎn)潔,便于學(xué)習(xí)。運(yùn)行于單片機(jī)平臺(tái),支持的微處理器種類繁多,可移植性好。對(duì)于兼容的8051系列單片機(jī),只要將一個(gè)硬件型號(hào)下的程序稍加修改,甚至不加改變,就可移植到另一個(gè)不同型號(hào)的單片機(jī)中運(yùn)行。具有高級(jí)語(yǔ)言的特點(diǎn),盡量減少底層硬件寄存器的操作。單片機(jī)C51語(yǔ)言提供了完備的數(shù)據(jù)類型、運(yùn)算符及函數(shù)供使用。C51語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,可以使用一對(duì)花括號(hào)“{}”將一系列語(yǔ)句組合成一個(gè)復(fù)合語(yǔ)句,程序結(jié)構(gòu)清晰明了。C51語(yǔ)言代碼執(zhí)行的效率方面十分接近匯編語(yǔ)言,且比匯編語(yǔ)言的程序易于理解,便于代碼共享。
程序設(shè)計(jì)語(yǔ)言是用于書寫計(jì)算機(jī)程序的語(yǔ)言。語(yǔ)言的基礎(chǔ)是一組記號(hào)和一組規(guī)則。根據(jù)規(guī)則由記號(hào)構(gòu)成的記號(hào)串的總體就是語(yǔ)言。在程序設(shè)計(jì)語(yǔ)言中,這些記號(hào)串就是程序。程序設(shè)計(jì)語(yǔ)言有3個(gè)方面的因素,即語(yǔ)法、語(yǔ)義和語(yǔ)用。語(yǔ)法表示程序的結(jié)構(gòu)或形式,亦即表示構(gòu)成語(yǔ)言的各個(gè)記號(hào)之間的組合規(guī)律,但不涉及這些記號(hào)的特定含義,也不涉及使用者。語(yǔ)義表示程序的含義,亦即表示按照各種方法所表示的各個(gè)記號(hào)的特定含義,但不涉及使用者。
當(dāng)程序的運(yùn)行結(jié)果與預(yù)期不同時(shí),需要利用μVision4的調(diào)試功能分析和查找程序中隱藏的邏輯錯(cuò)誤。下面介紹程序調(diào)試的具體方法。
KeilμVision4是Keil軟件公司為8051系列微控制器及其兼容產(chǎn)品設(shè)計(jì)的集成式軟件開發(fā)環(huán)境。μVision4集成了C51編譯器和A51匯編器,其界面類似于Microsoft VS,支持C語(yǔ)言和匯編語(yǔ)言程序的編寫和調(diào)試,功能強(qiáng)大。
Wuying00
譚意義
baby321
后一個(gè)5年
龍牙
13935218969
st6666
學(xué)吧
jiayouxuexi
Fimer
isabella2019
zspzspzsp
yjm1995
tengfei1266
heisetiantang
YDavy
魚躍此時(shí)海
1243907563
慕容垂
QQ23
curryLIHENGLEI
羅晶凡
Liuxds
無(wú)心h
與你無(wú)瓜
Senmin
夜是打火機(jī)
floodsource
tonifyingheart
10468005